@expofp/floorplan
Version:
Interactive floor plan library for expos and events
7,047 lines • 418 kB
JavaScript
function __vite_inject_css__(css, id, forceLightDom){ if (typeof document==='undefined') return; var shadow=!forceLightDom&&typeof window!=='undefined'&&window.__efpShadowDOMStyleParent; var parent=shadow||document.head; var s=document.createElement('style'); s.setAttribute('data-chunk-style', id); s.appendChild(document.createTextNode(css)); parent.appendChild(s); if (shadow) (window.__efpStyleElements||(window.__efpStyleElements=[])).push(s);}
(function() {
try {
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
e.SENTRY_RELEASE = { id: "3.47.0" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "6073fe07-c8a3-4ebd-906d-a729a6146d1a", e._sentryDebugIdIdentifier = "sentry-dbid-6073fe07-c8a3-4ebd-906d-a729a6146d1a");
} catch {}
})();
import { r as e, t } from "./rolldown-runtime-5rOLGCTp.js";
import { c as n, h as r, m as i, n as a, o, s, t as c, u as l, y as u } from "./i18n-DlquqKCP.js";
import { s as d } from "./efp-debug-init-D3gNE8Zq.js";
import { t as f } from "./react-XuvSZP7j.js";
import { t as p } from "./jsx-runtime-BzLvm2y2.js";
import { o as m, t as h } from "./is-debug-IkNSAGo8.js";
import { n as g } from "./exports-CnYQMV4a.js";
import { c as _, u as v } from "./mobx.module-BTnTbXnp.js";
import { t as y } from "./fuse-jVBfzHic.js";
import { t as b } from "./react-dom-Cg1Pcvni.js";
import { t as x } from "./classnames-CQMYVTW5.js";
import { d as S, h as C, l as w, n as T, o as E, p as D, u as O } from "./UIState-Dd6fvko0.js";
import { t as k } from "./Button-DyqVe4xL.js";
import { f as A } from "./kioskApi-CG3QGuUx.js";
import { n as j } from "./GalleryContainer-Do5QXu8h.js";
import { t as M } from "./useRenderTarget-C__MnkX7.js";
import { t as N } from "./ModalContainer-DAh3OT88.js";
import { n as P, r as F, t as I } from "./index.module-CN0EtZcO.js";
import "./CookieConsent-Dne5UXwi.js";
import { a as L, i as ee, l as R, n as z, o as B, r as V, s as H, t as te, u as U } from "./store-DTvNQcN7.js";
import "./Demo-AI-22qbf.js";
import { i as W, r as G, t as ne } from "./mobx-CUFHrL57.js";
import { n as re, t as ie } from "./expofpUrl-CUIqO5kL.js";
import { n as ae } from "./event-scoped-cache-CUHa0QyF.js";
import { $t as oe, D as se, E as ce, Ht as le, I as ue, J as de, Jt as K, Kt as fe, L as pe, R as me, Ut as he, Vt as q, Yt as ge, Zt as _e, b as ve, bt as ye, d as be, dt as xe, et as Se, ft as Ce, g as we, h as Te, ht as Ee, k as De, lt as Oe, mt as ke, nt as Ae, pt as je, r as Me, rt as Ne, t as Pe, u as Fe, v as Ie, x as Le, y as Re } from "./LayerStore-DCg-juRT.js";
import { f as ze, n as Be, v as Ve } from "./wayfinding-BUQns13Y.js";
import { _ as He, c as Ue, d as We, f as Ge, g as Ke, h as qe, l as Je, m as J, n as Ye, u as Y, v as Xe, w as Ze } from "./RouteStore-B82dztUW.js";
import { t as Qe } from "./camera-events-DzSywgw0.js";
import { t as $e } from "./viewport-DBuFXrrj.js";
import { n as et } from "./scene-CeKqMicD.js";
import { a as tt, d as nt, i as rt, l as it, n as at, o as ot, r as st, s as ct, t as lt, u as ut } from "./framing-rect-BIpsCqTB.js";
//#region ../ui/src/components/Alert/Alert.tsx
var X = /* @__PURE__ */ e(x(), 1), Z = /* @__PURE__ */ e(f(), 1), Q = p(), dt = ({ children: e, position: t, variant: n = "info", inline: r = !1, showIcon: i = !0, size: a = "md", closable: o = !1, title: s, closeLabel: c, onClose: l }) => {
let u = () => {
switch (n) {
case "error": return "icon-close-solid";
case "success": return "icon-checkmark-solid";
case "warning": return "icon-warning-solid";
default: return "icon-info-solid";
}
};
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-alert", `efp-alert--${n} efp-alert--${a}`, {
"efp-alert--inline": r,
[`efp-alert--${t}`]: t
}),
role: n === "error" || n === "warning" ? "alert" : "status",
"aria-live": n === "error" || n === "warning" ? "assertive" : "polite",
children: [
i && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-alert__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: (0, X.default)(u()),
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-alert__content",
children: [s && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-alert__title",
children: s
}), e]
}),
o && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-alert__close",
onClick: l,
"aria-label": c,
title: c
})
]
});
}, ft = /* @__PURE__ */ e(b(), 1), pt = C();
function mt(e, t, n = !0) {
let r = (0, Z.useRef)(e), i = (0, Z.useRef)(t);
(0, Z.useEffect)(() => {
r.current = e, i.current = t;
}), (0, Z.useEffect)(() => {
if (!n) return;
let e = (e) => {
(Array.isArray(r.current) ? r.current : [r.current]).some((t) => {
if (!(t != null && t.current)) return !1;
let n = e.target;
return t.current.contains(n) || e.composed && t.current.contains(e.composedPath()[0]);
}) || i.current(e);
};
return document.addEventListener("click", e), document.addEventListener("touchstart", e), () => {
document.removeEventListener("click", e), document.removeEventListener("touchstart", e);
};
}, [n]);
}
//#endregion
//#region ../ui/src/components/Overlay/OverlayKeyboardInsetContext.ts
var ht = (0, Z.createContext)(0), gt = (0, Z.createContext)(null), _t = 4, vt = 96, yt = .45, bt = ({ placeholder: e, options: t, value: n, showClear: r = !1, onChange: i, renderTarget: a = document.body, inline: o = !1, noOptionsLabel: s, ariaLabel: c, clearLabel: l, getOptionKey: u = (e) => e.value }) => {
let d = a, f = (0, Z.useContext)(gt), p = (0, Z.useContext)(ht), m = (0, Z.useRef)(null), h = (0, Z.useRef)(null), g = (0, Z.useRef)(null), _ = (0, Z.useRef)(null), [v, y] = (0, Z.useState)(null), b = (0, Z.useRef)(null), x = (0, Z.useId)(), S = (e) => `${x}-option-${e}`, C = (e) => e.label, w = (e, t) => u(e) === u(t), T = (e) => t.findIndex((t) => w(t, e)), E = (e) => t.find((t) => w(t, e)), [D, O] = (0, Z.useState)(null), [k, A] = (0, Z.useState)(null), [j, M] = (0, Z.useState)(!1), [N, P] = (0, Z.useState)(null), [F, I] = (0, Z.useState)({
top: 0,
left: 0,
width: 0,
maxHeight: 0
}), L = n ? E(n) : void 0, ee = L ? T(L) : null, R = D == null ? L ? C(L) : "" : D, z = (0, Z.useMemo)(() => {
if (!D) return [];
let e = D.toLowerCase();
return t.filter((t) => C(t).toLowerCase().includes(e));
}, [D, t]), B = () => {
var e, t, n;
if (o || !m.current || !j) return;
let r = m.current.getBoundingClientRect(), i = window.visualViewport === void 0 ? null : window.visualViewport, a = i ? i.offsetTop : 0, s = i ? i.offsetTop + i.height : window.innerHeight, c = s - r.bottom - _t, l = r.top - a - _t, u = (s - a) * yt, f = c < u && l > c, p = Math.min(u, Math.max(f ? l : c, vt)), h = d == null ? void 0 : d.getBoundingClientRect(), g = (e = h == null ? void 0 : h.top) == null ? 0 : e;
I({
...f ? { bottom: ((t = h == null ? void 0 : h.bottom) == null ? window.innerHeight : t) - r.top + _t } : { top: r.bottom - g + _t },
left: r.left - ((n = h == null ? void 0 : h.left) == null ? 0 : n),
width: r.width,
maxHeight: p
});
};
(0, Z.useEffect)(() => {
if (o || !j) return;
B(), window.addEventListener("scroll", B, !0), window.addEventListener("resize", B);
let e = window.visualViewport === void 0 ? null : window.visualViewport;
return e == null || e.addEventListener("resize", B), e == null || e.addEventListener("scroll", B), () => {
window.removeEventListener("scroll", B, !0), window.removeEventListener("resize", B), e == null || e.removeEventListener("resize", B), e == null || e.removeEventListener("scroll", B);
};
}, [j, o]), (0, Z.useEffect)(() => {
if (!o || !j || !f) {
P(null);
return;
}
let e = () => {
let e = m.current;
if (!e) return;
let t = f.getBoundingClientRect().bottom - p - e.getBoundingClientRect().bottom - _t;
P(Math.max(t, vt));
};
e();
let t = new pt.ResizeObserver(e);
return t.observe(f), () => t.disconnect();
}, [
o,
j,
f,
p
]), (0, Z.useEffect)(() => {
var e;
k !== null && ((e = _.current) == null || e.scrollIntoView({ index: k }));
}, [k]), mt([m, g], () => M(!1), j), (0, Z.useEffect)(() => () => {
b.current && clearTimeout(b.current);
}, []);
let V = (e) => {
O(null), i == null || i(e);
}, H = (e) => {
var t;
V(e), A(null), M(!1), (t = h.current) == null || t.blur();
}, te = (e = !1) => {
var t;
V(void 0), A(null), e && ((t = h.current) == null || t.focus());
}, U = () => {
M(!0);
}, W = () => {
b.current && clearTimeout(b.current), b.current = setTimeout(() => {
O(null);
}, 200);
}, G = () => {
var e;
if (!R && k === null || D && k === null) return;
let n = z.length > 0 ? z : t;
if (k !== null && n[k]) {
let e = n[k];
V(e);
}
A(null), M(!1), (e = h.current) == null || e.blur();
}, ne = () => {
!j || k === 0 || k === null || A(k - 1);
}, re = () => {
if (!j) {
A(ee == null ? 0 : ee), M(!0);
return;
}
let e = z.length > 0 ? z : t, n = k === null ? 0 : k + 1;
n < e.length && A(n);
}, ie = (e) => {
switch (e.key) {
case "Enter":
G();
break;
case "ArrowUp":
ne();
break;
case "ArrowDown":
re();
break;
case "Delete":
te(!0);
break;
case "Escape":
if (D) O(null), A(ee);
else {
var t;
e.preventDefault(), M(!1), (t = h.current) == null || t.blur();
}
break;
}
}, ae = (e) => {
O(e.target.value), M(!0), A(null);
}, oe = () => {
let e = z.length > 0 ? z : t;
if (D && z.length === 0) return /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-autocomplete__empty",
children: s
});
if (!v) return null;
let n = {
listboxId: x,
focusIndex: k,
activeIndex: z.length === 0 ? ee : null,
onSelect: (t) => H(e[t])
};
return /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(wt, {
ref: _,
customScrollParent: v,
data: e,
context: n,
computeItemKey: (e, t) => u(t),
itemContent: (e, t) => C(t),
components: {
List: xt,
Item: St
},
increaseViewportBy: 200
})
});
};
return /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
ref: m,
"data-no-drag": !0,
className: (0, X.default)("efp-autocomplete", {
"is-open": j,
"with-clear": j && r
}),
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-autocomplete__inner",
children: [/* @__PURE__ */ (0, Q.jsx)("input", {
type: "search",
className: "efp-autocomplete__input",
role: "combobox",
"aria-label": c,
"aria-autocomplete": "list",
"aria-expanded": j,
"aria-controls": j ? x : void 0,
"aria-activedescendant": j && k !== null ? S(k) : void 0,
onChange: ae,
onFocus: U,
onBlur: W,
onKeyDown: ie,
value: R,
placeholder: e,
ref: h
}), r && j && R && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-autocomplete__clear",
"aria-label": l,
onMouseDown: (e) => {
e.preventDefault(), te(!0);
}
})]
}), j && o && /* @__PURE__ */ (0, Q.jsx)("div", {
ref: g,
"data-no-drag": !0,
className: "efp-autocomplete-options efp-autocomplete-options--inline",
style: N === null ? void 0 : { maxHeight: `${N}px` },
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-autocomplete-options__scroll",
ref: y,
children: oe()
})
})]
}), j && !o && d && (0, ft.createPortal)(/* @__PURE__ */ (0, Q.jsx)("div", {
ref: g,
className: "efp-autocomplete-options",
style: {
...F.top === void 0 ? {} : { top: `${F.top}px` },
...F.bottom === void 0 ? {} : { bottom: `${F.bottom}px` },
left: `${F.left}px`,
width: `${F.width}px`,
maxHeight: `${F.maxHeight}px`
},
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-autocomplete-options__scroll",
ref: y,
children: oe()
})
}), d)] });
};
function xt({ context: e, ref: t, ...n }) {
return /* @__PURE__ */ (0, Q.jsx)("ul", {
...n,
ref: t,
role: "listbox",
id: e.listboxId
});
}
function St({ context: e, item: t, ...n }) {
let r = n["data-index"], i = r === e.focusIndex, a = !i && r === e.activeIndex;
return /* @__PURE__ */ (0, Q.jsx)("li", {
...n,
id: `${e.listboxId}-option-${r}`,
role: "option",
"aria-selected": r === e.activeIndex,
className: i ? "is-focus" : a ? "is-active" : void 0,
onMouseDown: (e) => e.preventDefault(),
onClick: () => e.onSelect(r)
});
}
function Ct() {
return import("./dist-DrhAFaXl.js").then((e) => ({ default: e.Virtuoso })).catch(() => new Promise((e) => {
setTimeout(() => e(Ct()), 3e3);
}));
}
var wt = (0, Z.lazy)(Ct), Tt = ({ children: e, variant: t = "ghost", size: n = "lg", noMargins: r, rounded: i, inline: a }) => /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)({
"efp-badge": !0,
[`efp-badge--${t}`]: !0,
[`efp-badge--${n}`]: !0,
"is-no-margin": r,
"is-rounded": i,
"is-inline": a
}),
children: e
}), Et = ({ checked: e, label: t, ariaLabel: n, className: r, onClick: i }) => {
let [a, o] = (0, Z.useState)(!1);
return /* @__PURE__ */ (0, Q.jsxs)("button", {
type: "button",
role: "checkbox",
"aria-checked": e,
"aria-label": n == null ? t ? void 0 : "Toggle" : n,
className: (0, X.default)("efp-checkbox-button", r, { "efp-checkbox-button--checked": e }),
onClick: () => {
o(!0), i(), setTimeout(() => {
o(!1);
}, 320);
},
children: [/* @__PURE__ */ (0, Q.jsx)("div", { className: (0, X.default)("efp-checkbox-button__inner", { "efp-checkbox-button__inner--animate": a }) }), t && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-checkbox-button__label",
children: t
})]
});
};
//#endregion
//#region ../ui/src/components/DownloadList/DownloadList.tsx
function Dt({ fileName: e, path: t, downloadLabel: n }) {
return /* @__PURE__ */ (0, Q.jsxs)("a", {
className: "efp-download-list__item",
href: t,
download: !0,
target: "_blank",
rel: "noopener noreferrer",
"aria-label": n(e),
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-download-list__item-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-file-solid",
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-download-list__item-name",
children: /* @__PURE__ */ (0, Q.jsx)("span", { children: e })
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-download-list__item-download",
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-download",
"aria-hidden": "true"
})
})
]
});
}
function Ot({ list: e, title: t, downloadLabel: n }) {
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-download-list",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-download-list__title font-medium",
children: t
}), /* @__PURE__ */ (0, Q.jsx)("ul", {
className: "efp-download-list__list",
children: e.map((e) => /* @__PURE__ */ (0, Q.jsx)("li", { children: /* @__PURE__ */ (0, Q.jsx)(Dt, {
fileName: e.fileName,
path: e.path,
downloadLabel: n
}) }, e.path))
})]
});
}
//#endregion
//#region ../ui/src/components/HighlightText/HighlightText.tsx
var kt = "#FFFF99", At = ({ text: e, highlight: t }) => {
if (!t || !e) return /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: e });
let n = e.toLowerCase().indexOf(t.toLowerCase());
if (n === -1) return /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: e });
let r = n + t.length;
return /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [
e.slice(0, n),
/* @__PURE__ */ (0, Q.jsx)("mark", {
style: { background: `linear-gradient(to top, ${kt}, transparent)` },
children: e.slice(n, r)
}),
e.slice(r)
] });
}, jt = ({ id: e, title: t, subtitle: n, image: r, icon: i, typeColor: a, iconClassName: o, variant: s = "default", titleBadge: c, datetime: l, subtitleLabel: u, additionalInfo: d = [], bookmarked: f = !1, featured: p = !1, visited: m, current: h = !1, heatmapColor: g, accentBorderColor: _, hideUserState: v = !1, compactDetails: y, secondaryText: b, highlight: x, featuredLabel: S, hallLabel: C, levelLabel: w, onClick: T }) => {
let E = !!(l != null && l.date || l != null && l.time), D = E || !!u || !!n;
return /* @__PURE__ */ (0, Q.jsx)("div", {
role: "button",
className: (0, X.default)("efp-entity-item", {
"is-featured": p,
"is-visited": m,
"is-current": h,
"has-heatmap": !!g,
"has-accent": !!_,
"is-person": s === "person"
}),
"aria-label": t,
tabIndex: 0,
"aria-current": h ? "true" : void 0,
onClick: () => T == null ? void 0 : T(e),
onKeyDown: (t) => {
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), T == null || T(e));
},
style: {
...a ? { "--item-type-color": a } : {},
...g && { "--heatmap-color": g },
..._ && { "--accent-border-color": _ }
},
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__body",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__left",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-entity-item__icon",
children: i ? /* @__PURE__ */ (0, Q.jsx)("img", {
src: i,
alt: t
}) : o ? /* @__PURE__ */ (0, Q.jsx)("i", {
className: o,
"aria-hidden": "true"
}) : null
}), !v && /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [m && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-entity-item__visited",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-checkmark" })
}), f && /* @__PURE__ */ (0, Q.jsx)("i", { className: (0, X.default)("efp-entity-item__bookmarked", "icon-bookmark-solid") })] })]
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__right",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-entity-item__content", { "with-image": r }),
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__header",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__title",
children: [
/* @__PURE__ */ (0, Q.jsx)(At, {
text: t,
highlight: x
}),
b && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-entity-item__description",
children: /* @__PURE__ */ (0, Q.jsx)(At, {
text: b,
highlight: x
})
}),
c !== void 0 && /* @__PURE__ */ (0, Q.jsx)("span", { children: c })
]
}), p && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-entity-item__featured",
children: S
})]
}),
D && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__subtitle",
children: [
E && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-entity-item__datetime",
children: [(l == null ? void 0 : l.date) && /* @__PURE__ */ (0, Q.jsx)("strong", { children: l.date }), (l == null ? void 0 : l.time) && /* @__PURE__ */ (0, Q.jsx)("span", { children: l.time })]
}),
u && /* @__PURE__ */ (0, Q.jsx)("span", { children: u }),
n && /* @__PURE__ */ (0, Q.jsx)("div", { children: n })
]
}),
!!d.length && /* @__PURE__ */ (0, Q.jsx)("ul", {
className: (0, X.default)("efp-entity-item__details", { "compact-details": y }),
children: d.map((e, t) => /* @__PURE__ */ (0, Q.jsxs)("li", {
className: "efp-entity-item__details-item",
children: [e.type === "location" && /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [
e.locationName && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-entity-item__details-item-booth",
children: /* @__PURE__ */ (0, Q.jsx)(At, {
text: e.locationName,
highlight: x
})
}),
e.hall && /* @__PURE__ */ (0, Q.jsxs)("div", { children: [
C,
"\xA0",
/* @__PURE__ */ (0, Q.jsx)("span", { children: e.hall })
] }),
e.level && /* @__PURE__ */ (0, Q.jsxs)("div", { children: [e.showLevelLabel && /* @__PURE__ */ (0, Q.jsxs)("span", { children: [w, "\xA0"] }), /* @__PURE__ */ (0, Q.jsx)("span", { children: e.level })] })
] }), e.type === "text" && /* @__PURE__ */ (0, Q.jsx)("span", { children: e.text })]
}, t))
})
]
}), r && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-entity-item__image",
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: r,
alt: t
})
})]
})]
})
});
}, Mt = ({ status: e, statusLabel: t, showFullBadge: n = !1, fullLabel: r, isUrgent: i = !1, className: a = "" }) => {
let o = e === "none" ? null : /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-event-badge", `efp-event-badge--${e}`, { "is-urgent": i }, a),
children: t
});
return !o && !n ? null : /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [o, n && /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-event-badge", "efp-event-badge--full", a),
children: r
})] });
}, Nt = ({ ticks: e, ariaLabel: t, className: n, style: r }) => {
if (e.length === 0) return null;
let i = e.map((e) => e.color), a = i.length === 1 ? i[0] : `linear-gradient(to right, ${i.join(", ")})`;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-heatmap-legend", n),
style: r,
role: "img",
"aria-label": t,
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-heatmap-legend__colors",
style: { background: a },
"aria-hidden": "true"
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-heatmap-legend__values",
children: e.map(({ value: e }, t) => /* @__PURE__ */ (0, Q.jsx)("span", {
"aria-hidden": "true",
children: e
}, t))
})]
});
}, Pt = (e) => /^\d+$/.test(e), Ft = ({ level: e, levelLabel: t }) => e ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-level-badge",
children: /* @__PURE__ */ (0, Q.jsx)("span", { children: Pt(e) ? `${t} ${e}` : e })
}) : null;
//#endregion
//#region ../ui/src/components/LevelSelector/LevelSelector.tsx
function It({ floors: e, layout: t, onSelect: n, floorSelectionLabel: r, currentFloorLabel: i, floorLabel: a }) {
var o, s;
let c = (0, Z.useRef)(null), l = (0, Z.useRef)(null), u = (0, Z.useRef)(/* @__PURE__ */ new Map()), [d, f] = (0, Z.useState)(!1), [p, m] = (0, Z.useState)("down"), h = (0, Z.useCallback)(() => {
var e;
f(!1), (e = l.current) == null || e.focus();
}, []);
mt([c, l], () => f(!1), d), j(h, d), (0, Z.useLayoutEffect)(() => {
if (d && l.current) {
let e = l.current.getBoundingClientRect(), t = window.innerHeight - e.bottom;
m(t < 200 ? "up" : "down");
}
}, [d]);
let g = (0, Z.useCallback)((e) => {
var t;
e.disabled || (n(e.id), f(!1), (t = l.current) == null || t.focus());
}, [n]), _ = (0, Z.useCallback)((t, n) => {
if (t.key !== "ArrowDown" && t.key !== "ArrowUp") return;
t.preventDefault();
let r = e.findIndex((e) => e.id === n.id), i = t.key === "ArrowDown" ? 1 : -1, a = r + i;
for (; a >= 0 && a < e.length;) {
if (!e[a].disabled) {
var o;
(o = u.current.get(e[a].id)) == null || o.focus();
return;
}
a += i;
}
}, [e]), v = (0, Z.useCallback)((e, t) => {
if (e.key === "Enter" || e.key === " ") {
if (t.disabled) return;
e.preventDefault(), g(t);
return;
}
_(e, t);
}, [_, g]);
if (e.length === 0) return null;
let y = e.find((e) => e.active);
if (t === "compact-list") {
let t = y && !y.disabled ? y : e.find((e) => !e.disabled);
return /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-level-selector", "efp-level-selector--compact-list"),
role: "radiogroup",
"aria-label": r,
children: e.map((e) => /* @__PURE__ */ (0, Q.jsx)("button", {
ref: (t) => {
t ? u.current.set(e.id, t) : u.current.delete(e.id);
},
type: "button",
className: (0, X.default)("efp-level-selector__item", {
"efp-level-selector__item--active": e.active,
"efp-level-selector__item--disabled": e.disabled
}),
role: "radio",
title: `${e.active ? i : a} ${e.label}`,
"aria-label": `${e.active ? i : a} ${e.label}`,
"aria-checked": e.active,
"aria-disabled": e.disabled,
tabIndex: e.id === (t == null ? void 0 : t.id) ? 0 : -1,
onClick: () => g(e),
onKeyDown: (t) => _(t, e),
children: /* @__PURE__ */ (0, Q.jsx)("span", {
dir: "auto",
children: e.label
})
}, e.id))
});
}
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-level-selector", "efp-level-selector--dropdown"),
children: [/* @__PURE__ */ (0, Q.jsxs)("button", {
ref: l,
type: "button",
className: (0, X.default)("efp-level-selector__trigger", { "efp-level-selector__trigger--open": d }),
onClick: () => f(!d),
"aria-haspopup": "listbox",
"aria-expanded": d,
"aria-label": `${i}: ${(o = y == null ? void 0 : y.label) == null ? "" : o}`,
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-level-selector__trigger-text",
children: [/* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-layers",
"aria-hidden": "true"
}), /* @__PURE__ */ (0, Q.jsx)("span", {
dir: "auto",
children: (s = y == null ? void 0 : y.label) == null ? "" : s
})]
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-level-selector__trigger-chevron",
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-chevron-down",
"aria-hidden": "true"
})
})]
}), d && /* @__PURE__ */ (0, Q.jsx)("div", {
ref: c,
className: (0, X.default)("efp-level-selector__dropdown", "efp-level-selector__dropdown--full", {
"efp-level-selector__dropdown--opens-up": p === "up",
"efp-level-selector__dropdown--opens-down": p === "down"
}),
role: "listbox",
"aria-label": r,
children: e.map((e) => /* @__PURE__ */ (0, Q.jsxs)("div", {
ref: (t) => {
t ? u.current.set(e.id, t) : u.current.delete(e.id);
},
className: (0, X.default)("efp-level-selector__dropdown-item", {
"efp-level-selector__dropdown-item--active": e.active,
"efp-level-selector__dropdown-item--disabled": e.disabled
}),
role: "option",
"aria-selected": e.active,
"aria-disabled": e.disabled,
tabIndex: e.disabled ? -1 : 0,
onClick: () => g(e),
onKeyDown: (t) => v(t, e),
children: [/* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-level-selector__dropdown-item-icon",
children: e.active && /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-checkmark-solid",
"aria-hidden": "true"
})
}), /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-level-selector__dropdown-item-name",
dir: "auto",
children: e.label
})]
}, e.id))
})]
});
}
//#endregion
//#region ../ui/src/components/LogoStrip/LogoStrip.tsx
var Lt = ({ items: e, spacing: t, onItemClick: n, onPointerEnter: r, onPointerLeave: i, className: a, style: o, ref: s }) => /* @__PURE__ */ (0, Q.jsx)("section", {
ref: s,
className: (0, X.default)("efp-logo-strip", a),
style: o,
onPointerEnter: r,
onPointerLeave: i,
children: e.map((e) => /* @__PURE__ */ (0, Q.jsx)("a", {
href: e.href,
className: "efp-logo-strip__item",
style: { margin: `0 ${t / 2}px` },
onClick: (t) => n == null ? void 0 : n(e.key, t),
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: e.src,
alt: e.alt,
crossOrigin: "anonymous",
style: {
width: `${e.width}px`,
height: `${e.height}px`
}
})
}, e.key))
});
//#endregion
//#region ../ui/src/components/LogoStrip/logo-layout.ts
function Rt(e, t) {
let n = Number.isFinite(e) && e > 0 ? e : 1, r = t.base * n ** +t.exponent, i = r / n;
return i < t.minHeight && (i = t.minHeight, r = i * n), r > t.maxWidth && (r = t.maxWidth, i = r / n), i > t.maxHeight && (i = t.maxHeight, r = i * n), {
width: r,
height: i
};
}
function zt(e, t, n) {
let r = 0;
for (let i = 0; i < e.length; i++) if (r += e[i] + n, r > t) return i;
return e.length;
}
function Bt(e, t, n, r) {
let i = e.length;
if (!i) return n;
let a = 0;
for (let t of e) a += t;
return Math.max(n, Math.min(r, (t - a) / i));
}
//#endregion
//#region ../ui/src/components/MapControls/MapControls.tsx
var Vt = ({ className: e, style: t, title: n, findLocationLabel: r, zoomInLabel: i, zoomOutLabel: a, viewModeLabel: o, fitToScreenLabel: s, layersLabel: c, isMap3d: l, showModeSwitch: u, showFindLocation: d, defaultLayersOpen: f = !1, layersList: p, layersActiveItems: m = [], layersWidth: h, onViewModeSwitch: g, onFindLocation: _, onZoomIn: v, onZoomOut: y, onFitToScreen: b, onChangeLayers: x }) => {
let S = (0, Z.useRef)(null), C = (0, Z.useRef)(null), w = (0, Z.useId)(), [T, E] = (0, Z.useState)(f), [D, O] = (0, Z.useState)("down");
mt(S, () => E(!1), T), j(() => {
var e;
E(!1), (e = C.current) == null || e.focus();
}, T), (0, Z.useLayoutEffect)(() => {
if (T && S.current) {
let e = S.current.getBoundingClientRect();
window.innerHeight - e.bottom < 250 ? O("up") : O("down");
}
}, [T]);
let k = (e) => x(e);
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-map-controls", e),
style: t,
role: "toolbar",
"aria-label": n,
children: [
d && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": r,
title: r,
onClick: _,
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-navigation",
"aria-hidden": "true"
})
}),
p && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-layers-button",
ref: S,
children: [/* @__PURE__ */ (0, Q.jsx)("button", {
ref: C,
type: "button",
className: (0, X.default)("efp-map-control", { "efp-map-control--active": T }),
"aria-label": c,
title: c,
"aria-haspopup": "true",
"aria-expanded": T,
onClick: () => E(!T),
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-layers",
"aria-hidden": "true"
})
}), T && /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-checked-panel", {
"efp-checked-panel--opens-up": D === "up",
"efp-checked-panel--opens-down": D === "down"
}),
style: { minWidth: h },
children: /* @__PURE__ */ (0, Q.jsx)("ul", {
className: "efp-checked-panel__list",
children: p.map((e) => /* @__PURE__ */ (0, Q.jsxs)("li", { children: [/* @__PURE__ */ (0, Q.jsx)("input", {
type: "checkbox",
className: "efp-checked-panel__checkbox",
value: e.id,
id: `${w}-${e.id}`,
checked: m.includes(e.id),
onChange: () => k(e.id)
}), /* @__PURE__ */ (0, Q.jsx)("label", {
className: "efp-checked-panel__label",
htmlFor: `${w}-${e.id}`,
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-checked-panel__item-name",
children: e.name
})
})] }, e.id))
})
})]
}),
u && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": o,
title: o,
onClick: g,
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: l ? "icon-two-dim" : "icon-three-dim",
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-map-control-group",
children: [
/* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": i,
title: i,
onClick: v,
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-plus",
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Q.jsx)("div", { className: "efp-map-control-divider" }),
/* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": a,
title: a,
onClick: y,
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-minus",
"aria-hidden": "true"
})
})
]
}),
/* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": s,
title: s,
onClick: b,
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-maximize",
"aria-hidden": "true"
})
})
]
});
};
//#endregion
//#region ../ui/src/components/MobileToggleButton/MobileToggleButton.tsx
function Ht({ mode: e, label: t, ariaLabel: n, onClick: r }) {
let i = e === "list";
return /* @__PURE__ */ (0, Q.jsxs)("button", {
className: (0, X.default)("efp-mobile-toggle-button", i ? "efp-mobile-toggle-button--list" : "efp-mobile-toggle-button--map"),
onClick: r,
type: "button",
"aria-label": n,
children: [/* @__PURE__ */ (0, Q.jsx)("i", {
className: i ? "icon-list" : "icon-map",
"aria-hidden": "true"
}), /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-mobile-toggle-button__text",
children: t
})]
});
}
//#endregion
//#region ../ui/src/components/ShowMoreButton/ShowMoreButton.tsx
function Ut({ expanded: e, showMoreLabel: t, showLessLabel: n, className: r, suffix: i, ...a }) {
return /* @__PURE__ */ (0, Q.jsxs)("button", {
...a,
type: "button",
className: (0, X.default)("efp-show-more-button", { "efp-show-more-button--expanded": e }, r),
"aria-expanded": e,
children: [
/* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-chevron-down",
"aria-hidden": "true"
}),
/* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-show-more-button__label",
children: e ? n : t
}),
i
]
});
}
//#endregion
//#region ../ui/src/components/MultiSelectGroups/MultiSelectGroups.tsx
var Wt = Z.memo(({ item: e, isSelected: t, variant: n, showCount: r, count: i, onClick: a, customRenderer: o }) => o ? /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: o(e, t) }) : /* @__PURE__ */ (0, Q.jsxs)("button", {
type: "button",
className: (0, X.default)("efp-multi-select-groups__item", {
"efp-multi-select-groups__item--selected": t,
"efp-multi-select-groups__item--disabled": e.disabled,
[`efp-multi-select-groups__item--${n}`]: n
}),
onClick: () => !e.disabled && a(e.id),
disabled: e.disabled,
"aria-pressed": t,
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-multi-select-groups__item-name",
children: e.name
}), r && i > 0 && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-multi-select-groups__item-count",
children: i
})]
}));
function Gt({ groups: e = [], selectedIds: t = [], showItemCounts: n = !0, showGroupActions: r = !0, variant: i = "default", maxItemsVisible: a = 20, selectAllLabel: o, clearAllLabel: s, selectedLabel: c, showMoreLabel: l, showLessLabel: u, itemCountProvider: d, customItemRenderer: f, onChange: p }) {
let [m, h] = (0, Z.useState)(() => /* @__PURE__ */ new Set()), g = (0, Z.useCallback)((e) => {
p(t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
}, [t, p]), _ = (0, Z.useCallback)((e) => {
let n = e.items.filter((e) => e.id && !e.disabled).map((e) => e.id).filter((e) => !t.includes(e));
n.length !== 0 && p([...t, ...n]);
}, [t, p]), v = (0, Z.useCallback)((e) => {
let n = new Set(e.items.map((e) => e.id));
p(t.filter((e) => !n.has(e)));
}, [t, p]), y = (0, Z.useCallback)((e) => {
h((t) => {
let n = new Set(t);
return n.has(e) ? n.delete(e) : n.add(e), n;
});
}, []), b = (e) => e.count === void 0 ? e.countProvider ? e.countProvider() : d ? d(e) : 0 : e.count, x = (0, Z.useMemo)(() => new Set(t), [t]);
return !Array.isArray(e) || !e.length ? null : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-multi-select-groups",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-multi-select-groups__list",
children: e.map((e) => {
if (!(e != null && e.groupName) || !Array.isArray(e.items)) return null;
let t = e.items.filter((e) => e.id), d = t.filter((e) => x.has(e.id)), p = d.length === t.length && t.length > 0, h = d.length > 0 && !p, S = m.has(e.groupName), C = S || t.length <= a ? t : t.slice(0, a), w = t.length - C.length > 0 ? t.slice(a).filter((e) => x.has(e.id)).length : 0;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-multi-select-groups__group", { "efp-multi-select-groups__group--full-width": e.fullWidth }, e.customGroupClass),
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-multi-select-groups__group-header",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-multi-select-groups__group-title",
children: e.groupName
}), r && e.showGroupActions !== !1 && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-multi-select-groups__group-actions",
children: [!p && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-multi-select-groups__action-btn",
onClick: () => _(e),
children: o
}), (h || p) && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-multi-select-groups__action-btn",
onClick: () => v(e),
children: s
})]
})]
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-multi-select-groups__group-items",
children: C.map((e) => /* @__PURE__ */ (0, Q.jsx)(Wt, {
item: e,
isSelected: x.has(e.id),
variant: i,
showCount: n,
count: b(e),
onClick: g,
customRenderer: f
}, e.id))
}),
t.length > a && /* @__PURE__ */ (0, Q.jsx)(Ut, {
className: "efp-multi-select-groups__show-more",
expanded: S,
showMoreLabel: l,
showLessLabel: u,
onClick: () => y(e.groupName),
suffix: !S && w > 0 && /* @__PURE__ */ (0, Q.jsxs)("span", {
className: "efp-multi-select-groups__show-more-badge",
children: [
w,
" ",
c
]
})
})
]
}, e.groupName);
})
})
});
}
//#endregion
//#region ../ui/src/shared/debounce.ts
function Kt(e, t) {
let n;
return (...r) => {
clearTimeout(n), n = setTimeout(() => {
e(...r);
}, t);
};
}
//#endregion
//#region ../ui/src/shared/hooks/useKeyboardInset.ts
var qt = 100, Jt = 2, Yt = .6, Xt = .01, Zt = (e) => {
let [t, n] = (0, Z.useState)(0), r = (0, Z.useRef)(0), i = (0, Z.useRef)(null);
return (0, Z.useEffect)(() => {
if (!e) {
n(0), r.current = 0, i.current = null;
return;
}
let t = window.visualViewport === void 0 ? null : window.visualViewport;
if (!t) return;
let a = () => {
let e = window.innerHeight - t.height;
return Math.abs(t.scale - 1) >= Xt || e <= qt ? 0 : Math.round(Math.min(e, window.innerHeight * Yt));
}, o = () => document.documentElement.scrollHeight <= window.innerHeight + Jt, s = (e) => {
Math.abs(e - r.current) <= Jt || (r.current === 0 && (i.current = o() ? window.scrollY : null), e === 0 && (i.current = null), r.current = e, n(e));
}, c = 0, l = () => {
c || (c = requestAnimationFrame(() => {
c = 0, s(a());
}));
}, u = () => {
let e = i.current;
e === null || r.current === 0 || Math.abs(window.scrollY - e) > Jt && window.scrollTo(0, e);
};
return s(a()), t.addEventListener("resize", l), t.addEventListener("scroll", u), () => {
c && cancelAnimationFrame(c), t.removeEventListener("resize", l), t.removeEventListener("scroll", u);
};
}, [e]), t;
}, Qt = 2, $t = .4, en = .4, tn = 100, nn = 500, rn = 2, an = 550, on = "transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)", sn = (e) => Math.max(8 * (Math.log(e + 1) - 2), 0), cn = (e) => {
if (!e || typeof DOMMatrixReadOnly != "function") return null;
let { transform: t } = getComputedStyle(e);
if (!t || t === "none") return null;
try {
return new DOMMatrixReadOnly(t).m42;
} catch {
return null;
}
}, ln = (e, t) => {
let n = e instanceof Element ? e : null;
for (; n && t != null && t.contains(n);) {
if (n.scrollWidth > n.clientWidth) {
let { overflowX: e } = getComputedStyle(n);
if (e === "auto" || e === "scroll") return !0;
}
n = n.parentElement;
}
return !1;
};
function un({ enabled: e, panelRef: t, scrollElement: n, snapPoints: r, current: i, openedAtRef: a, onDragStart: o, onSnap: s, onSettle: c, onHandleTap: l }) {
let u = (0, Z.useRef)(null), d = (0, Z.useRef)(0), f = (0, Z.useRef)(null), p = (0, Z.useRef)(null), m = (0, Z.useRef)({
enabled: e,
snapPoints: r,
current: i
});
(0, Z.useLayoutEffect)(() => {
m.current = {
enabled: e,
snapPoints: r,
current: i
};
}, [
e,
r,
i
]);
let h = (0, Z.useRef)({
onDragStart: o,
onSnap: s,
onSettle: c,
onHandleTap: l
});
(0, Z.useLayoutEffect)(() => {
h.current = {
onDragStart: o,
onSnap: s,
onSettle: c,
onHandleTap: l
};
}, [
o,
s,
c,
l
]);
let g = (0, Z.useCallback)((e) => {
var t;
let { snapPoints: n } = m.current, r = n[n.length - 1].height, i = n.find((t) => t.name === e);
return r - ((t = i == null ? void 0 : i.height) == null ? r : t);
}, []), _ = (0, Z.useCallback)((e, n) => {
let r = t.current;
r && (r.style.transition = n, r.style.transform = `translate3d(0, ${e}px, 0)`);
}, [t]), v = (0, Z.useCallback)((e, n) => {
var r;
let i = performance.now(), o = a.current;
if (o !== void 0 && i - o < nn || i - d.current < tn || (r = window.getSelection()) != null && r.toString()) return !1;
let s = e instanceof Element ? e : null;
if (s != null && s.closest("[data-no-drag]")) return !1;
let { snapPoints: c, current: l } = m.current;
if (!n && l === c[c.length - 1].name) return d.current = i, !1;
let u = t.current;
for (; s && u != null && u.contains(s);) {
if (s.scrollHeight > s.clientHeight && s.scrollTop !== 0) return d.current = i, !1;
s = s.parentElement;
}
return !0;
}, [a, t]), y = (0, Z.useCallback)((e, t, n) => {
let { snapPoints: r, current: i } = m.current, a = t > 0;
if (n > Qt) return a ? r[r.length - 1].name : r[0].name;
if (n > $t && Math.abs(t) < window.innerHeight * en) {
let e = r.findIndex((e) => e.name === i) + (a ? 1 : -1);
return r[Math.min(Math.max(e, 0), r.length - 1)].name;
}
return r.reduce((t, n) => Math.abs(g(n.name) - e) < Math.abs(g(t.name) - e) ? n : t).name;
}, [g]), b = (0, Z.useCallback)(() => {
var e;
(e = f.current) == null || e.flush();
}, []), x = (0, Z.useCallback)(() => {
let e = t.current, n = () => {
f.current = null, clearTimeout(a), e == null || e.removeEventListener("transitionend", i);
}, r = () => {
n(), h.current.onSettle();
}, i = (t) => {
t.target === e && t.propertyName === "transform" && r();
}, a = setTimeout(r, an);
e == null || e.addEventListener("transitionend", i), f.current = {
flush: r,
cancel: n
};
}, [t]);
(0, Z.useEffect)(() => () => {
var e, t;
(e = f.current) == null || e.cancel(), (t = p.current) == null || t.call(p);
}, []);
let S = (0, Z.useCallback)((e) => {
if (!m.current.enabled || u.current || e.pointerType === "mouse" && e.button !== 0) return;
let r = f.current ? cn(t.current) : null;
b();
let i = r == null ? g(m.current.current) : r, a = {
pointerId: e.pointerId,
startX: e.clientX,
startY: e.clientY,
lastY: e.clientY,
startTime: performance.now(),
startOffset: i,
offset: i,
committed: !1,
commit: (r, i) => {
if (a.committed) return !0;
let s = r - a.startX, c = i - a.startY;
if (Math.hypot(s, c) < rn) return !1;
if (Math.abs(s) > Math.abs(c)) return ln(e.target, t.current) && o(), !1;
if (!v(e.target, c > 0)) return o(), !1;
a.committed = !0;
try {
var l;
(l = t.current) == null || l.setPointerCapture(a.pointerId);
} catch {}
return n && (n.style.overflow = "hidden"), h.current.onDragStart(), !0;
}
};
u.current = a;
let o = () => {
window.removeEventListener("pointermove", c), window.removeEventListener("pointerup", s), window.removeEventListener("pointercancel", s), u.current = null, p.current = null;
}, s = (t) => {
if (t.pointerId !== a.pointerId) return;
if (o(), n && n.style.removeProperty("overflow"), !a.committed) {
let t = e.target;
t instanceof Element && t.closest("[data-sheet-handle]") && h.current.onHandleTap();
return;
}
let r = a.startY - a.lastY, i = Math.max(performance.now() - a.startTime, 1), s = Math.abs(r) / i, c = y(a.offset, r, s);
_(g(c), on), x(), h.current.onSnap(c);
}, c = (e) => {
if (e.pointerId !== a.pointerId || (a.lastY = e.clientY, !a.commit(e.clientX, e.clientY))) return;
let t = e.clientY - a.startY, n = g(m.current.snapPoints[0].name), r = a.startOffset + t, i = r < 0 ? -sn(-r) : r > n ? n + sn(r - n) : r;
a.offset = i, _(i, "none");
};
window.addEventListener("pointermove", c), window.addEventListener("pointerup", s), window.addEventListener("pointercancel", s), p.current = o;
}, [
b,
g,
t,
y,
x,
n,
v,
_
]);
return (0, Z.useEffect)(() => {
if (!n || !e) return;
let t = (e) => {
let t = u.current, n = e.targetTouches[0];
!t || !n || !e.cancelable || t.commit(n.clientX, n.clientY) && e.preventDefault();
};
return n.addEventListener("touchmove", t, { passive: !1 }), () => n.removeEventListener("touchmove", t);
}, [n, e]), { onPointerDown: S };
}
//#endregion
//#region ../ui/src/shared/hooks/useWindowSize.ts
var dn = 200, fn = () => window === window.top ? {
width: window.innerWidth,
height: window.innerHeight
} : {
width: document.documentElement.clientWidth || window.innerWidth,
height: document.documentElement.clientHeight || window.innerHeight
}, pn = () => {
let [e, t] = (0, Z.useState)(fn);
return (0, Z.useEffect)(() => {
let e, n = () => {
clearTimeout(e), e = setTimeout(() => t(fn()), dn);
};
return window.addEventListener("resize", n), window.addEventListener("orientationchange", n), () => {
clearTimeout(e), window.removeEventListener("resize", n), window.removeEventListener("orientationchange", n);
};
}, []), e;
}, mn = (0, Z.createContext)(null), hn = "0.3s", gn = 10, _n = 768, vn = () => window === window.top ? window.innerHeight : document.documentElement.clientHeight || document.body.clientHeight || window.innerHeight, yn = (e = vn(), t, n, r) => ({
small: e / t,
medium: e / n,
full: e - r
}), bn = ({ children: e, open: t, size: n = "medium", particles: r, className: i, onChangeSize: a, onScrollStateChange: o, onScrollActivity: s, smallSizeMultiplier: c = 12.6, mediumSizeMultiplier: l = 2.6, fullSizeOffset: u = 0, scrollThreshold: d = gn, disableDrag: f = !1, forceFull: p = !1, scrollResetKey: m, mobileBreakpoint: h = _n, noContentLabel: g, withFloatingButton: _ = !1 }) => {
let { width: v, height: y } = pn(), b = v <= h, x = (0, Z.useMemo)(() => yn(y, c, l, u), [
y,
c,
l,
u
]), S = Zt(b), C = (0, Z.useMemo)(() => {
if (S <= 0) return x;
let e = Math.max(x.full - S, x.small);
return {
small: Math.min(x.small, e),
medium: Math.min(x.medium, e),
full: e
};
}, [x, S]), [w, T] = (0, Z.useState)(!1), [E, D] = (0, Z.useState)(!t), [O, k] = (0, Z.useState)(!1), [A, j] = (0, Z.useState)(t), [M, N] = (0, Z.useState)(!1), P = (0, Z.useRef)(null), F = (0, Z.useRef)(null), I = (0, Z.useRef)(void 0), [L, ee] = (0, Z.useState)(null), R = (0, Z.useCallback)((e) => {
F.current = e, ee(e);
}, []), [z, B] = (0, Z.useState)(null), [V, H] = (0, Z.useState)(n), te = (0, Z.useRef)(V), U = (0, Z.useRef)(n), W = (0, Z.useRef)(a);
(0, Z.useLayoutEffect)(() => {
te.current = V, U.current = n, W.current = a;
});
let G = (0, Z.useCallback)((e) => {
var t;
H(e), D(!1), (t = W.current) == null || t.call(W, e);
}, []), ne = (0, Z.useMemo)(() => {
if (b) {
let e = (e) => ({ height: e + S });
return p && t ? e(Math.max(vn() - S, x.small)) : w ? e(C.full) : E || !(t || O) ? { height: 0 } : e(C[V]);
}
return { height: t ? "auto" : void 0 };
}, [
b,
t,
E,
V,
O,
p,
w,
x,
C,
S
]), re = (0, Z.useMemo)(() => b && S > 0 ? {
paddingBottom: S,
scrollPaddingBottom: S
} : void 0, [b, S]), ie = (0, Z.useMemo)(() => [
{
name: "small",
height: C.small
},
{
name: "medium",
height: C.medium
},
{
name: "full",
height: C.full
}
], [C]), ae = (0, Z.useCallback)(() => T(!0), []), oe = (0, Z.useCallback)(() => T(!1), []), se = (0, Z.useCallback)(() => {
let e = te.current;
G(e === "small" ? "medium" : e === "medium" ? "full" : "small");
}, [G]), { onPointerDown: ce } = un({
enabled: b && !f && !p,
panelRef: P,
scrollElement: L,
snapPoints: ie,
current: V,
openedAtRef: I,
onDragStart: ae,
onSnap: G,
onSettle: oe,
onHandleTap: se
});
(0, Z.useLayoutEffect)(() => {
if (w) return;
let e = P.current;
if (!e) return;
e.style.transition = "none", e.style.removeProperty("transform");
let t = requestAnimationFrame(() => e.style.removeProperty("transition"));
return () => cancelAnimationFrame(t);
}, [w]);
let le = (0, Z.useCallback)(() => {
let e = F.current;
if (!e) return;
let t = e.scrollTop >= d;
M !== t && (N(t), o == null || o(t));
}, [
d,
M,
o
]), ue = (0, Z.useMemo)(() => Kt(() => {
s == null || s();
}, 250), [s]);
return (0, Z.useEffect)(() => {
if (t) {
j(!0), k(!0), I.current = performance.now();
return;
}
k(!0), I.current = void 0, b && D(!0);
let e = setTimeout(() => {
j(!1), k(!1), N(!1);
}, parseFloat(hn) * 1e3);
return () => clearTimeout(e);
}, [t, b]), (0, Z.useEffect)(() => {
if (!t || !A) return;
let e = setTimeout(() => {
G(U.current), k(!1);
}, 10);
return () => clearTimeout(e);
}, [
t,
A,
G
]), (0, Z.useEffect)(() => {
H(n);
}, [n]), (0, Z.useEffect)(() => {
if (t && !O) {
var e;
(e = F.current) == null || e.scrollTo({ top: 0 }), N(!1), o == null || o(!1);
}
}, [
t,
O,
o,
m
]), A ? /* @__PURE__ */ (0, Q.jsx)(gt, {
value: L,
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-overlay", {
"efp-overlay--draggable": w,
"efp-overlay--keyboard": b && S > 0,
"efp-overlay--full": V === "full",
"efp-overlay--mobile": b,
"efp-overlay--desktop": !b,
"efp-overlay--hidden": !b && !t,
"efp-overlay--scrolled": M,
"efp-overlay--forced-full": p && b,
"efp-overlay--button-inset": b && _
}, i),
style: ne,
ref: P,
onPointerDown: ce,
children: [
!f && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-overlay__draghandle",
"data-sheet-handle": !0
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-overlay__header",
ref: B
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-overlay__scroll",
style: re,
ref: R,
onScroll: () => {
le(), ue();
},
children: [r, /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-overlay__content",
children: /* @__PURE__ */ (0, Q.jsx)(mn, {
value: z,
children: /* @__PURE__ */ (0, Q.jsx)(ht, {
value: b ? S : 0,
children: e || g
})
})
})]
})
]
})
}) : null;
}, xn = ({ isFull: e, onToggle: t, ariaLabel: n, className: r }) => /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: (0, X.default)("efp-overlay-grip", { "efp-overlay-grip--full": e }, r),
onClick: t,
"aria-label": n,
"aria-expanded": e,
children: /* @__PURE__ */ (0, Q.jsxs)("svg", {
viewBox: "0 0 1200 200",
preserveAspectRatio: "xMidYMid meet",
xmlns: "http://www.w3.org/2000/svg",
"aria-hidden": "true",
children: [/* @__PURE__ */ (0, Q.jsx)("path", { d: "M100,100 l 500 100 L 1100 100" }), /* @__PURE__ */ (0, Q.jsx)("path", { d: "M100,150 l 500 0 L 1100 150" })]
})
}), Sn = ({ name: e, label: t, value: n, checked: r, disabled: i, className: a, ariaLabel: o, onChange: s }) => {
let c = (0, Z.useId)();
return /* @__PURE__ */ (0, Q.jsxs)("label", {
htmlFor: c,
className: (0, X.default)("efp-radio", a, {
"efp-radio--checked": r,
"efp-radio--disabled": i
}),
children: [
/* @__PURE__ */ (0, Q.jsx)("input", {
type: "radio",
className: "efp-radio__input",
id: c,
name: e,
value: n,
checked: r,
disabled: i,
"aria-label": o,
onChange: s
}),
/* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-radio__control",
"aria-hidden": "true"
}),
/* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-radio__label",
children: t
})
]
});
}, Cn = ({ value: e, noteLabel: t, saveButtonLabel: n, saveButtonAriaLabel: r, onSave: i }) => {
let a = (0, Z.useId)(), o = `${a}-label`, s = `${a}-textarea`, [c, l] = (0, Z.useState)(e == null ? "" : e);
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "rebooking-notes",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-notes__view-header",
children: /* @__PURE__ */ (0, Q.jsx)("strong", {
id: o,
children: t
})
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "rebooking-notes__edit",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-notes__val",
children: /* @__PURE__ */ (0, Q.jsx)("textarea", {
id: s,
value: c,
onChange: (e) => l(e.target.value),
"aria-labelledby": o
})
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-notes__buttons",
children: /* @__PURE__ */ (0, Q.jsx)(k, {
inline: !0,
onClick: () => {
i(c);
},
disabled: (e == null ? "" : e) === c,
"aria-label": r,
children: n
})
})]
})]
});
}, wn = ({ options: e, value: t, title: n, onChange: r }) => {
let i = (0, Z.useId)();
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "rebooking-radio-group",
children: [n && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-radio-group__title",
children: n
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-radio-group__options",
children: e.map((e) => {
let n = `${i}-${e.value}`;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "rebooking-radio",
style: { "--rebooking-color-primary": e.color },
children: [/* @__PURE__ */ (0, Q.jsx)("input", {
type: "radio",
name: i,
value: e.value,
id: n,
checked: e.value === t,
disabled: e.disabled,
onChange: () => r(e.value)
}), /* @__PURE__ */ (0, Q.jsxs)("label", {
htmlFor: n,
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-radio__label",
children: e.label
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "rebooking-radio__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: e.iconName,
"aria-hidden": "true"
})
})]
})]
}, e.value);
})
})]
});
}, Tn = 5, En = 768, Dn = ({ children: e, ariaLabel: t, leftAriaLabel: n, rightAriaLabel: r, className: i, scrollAmount: a = 150, mobileBreakpoint: o = En, showArrowsOnMobile: s = !1, arrowPosition: c = "inside", scrollBehavior: l = "smooth", isRtl: u = !1, enableDragScroll: d = !0, dragScrollSensitivity: f = 1, onScroll: p }) => {
let m = (0, Z.useRef)(null), h = (0, Z.useRef)(null), g = (0, Z.useRef)(null), [_, v] = (0, Z.useState)(!1), [y, b] = (0, Z.useState)(!1), [x, S] = (0, Z.useState)(!1), [C, w] = (0, Z.useState)(0), [T, E] = (0, Z.useState)(0), D = (0, Z.useCallback)(() => window.innerWidth > o && !("ontouchstart" in window || navigator.maxTouchPoints > 0), [o]), O = (0, Z.useCallback)((e, t, n) => {
let r = t - n;
return e < 0 ? Math.abs(e) : e > r / 2 ? r - e : e;
}, []), k = (0, Z.useCallback)(() => {
let e = h.current;
if (!e) return;
if (window.innerWidth <= o && !s) {
v(!1), b(!1);
return;
}
let { scrollLeft: t, scrollWidth: n, clientWidth: r } = e;
if (!(n > r)) {
v(!1), b(!1);
return;
}
if (u) {
let e = n - r, i = O(t, n, r);
v(i > Tn), b(i < e - Tn);
} else v(t > Tn), b(t < n - r - Tn);
}, [
o,
s,
O,
u
]), j = (0, Z.useCallback)(() => {
k(), p && h.current && p(h.current.scrollLeft);
}, [k, p]), M = (0, Z.useCallback)((e) => {
let t = h.current;
if (!t) return;
let n = t.scrollLeft, r;
if (u) {
let i = -(t.scrollWidth - t.clientWidth);
r = e === "left" ? Math.min(0, n + a) : Math.max(i, n - a);
} else r = e === "left" ? Math.max(0, n - a) : n + a;
t.scrollTo({
left: r,
behavior: l
});
}, [
a,
l,
u
]), N = (0, Z.useCallback)((e) => {
!d || !D() || !h.current || A(e.target) || (S(!0), w(e.pageX - h.current.offsetLeft), E(h.current.scrollLeft), e.preventDefault());
}, [d, D]), P = (0, Z.useCallback)((e) => {
if (!x || !h.current) return;
e.preventDefault();
let t = (e.pageX - h.current.offsetLeft - C) * f;
h.current.scrollLeft = T - t;
}, [
x,
C,
T,
f
]), F = (0, Z.useCallback)(() => {
S(!1);
}, []);
(0, Z.useEffect)(() => {
if (x) return document.addEventListener("mousemove", P), document.addEventListener("mouseup", F), document.addEventListener("mouseleave", F), () => {
document.removeEventListener("mousemove", P), document.removeEventListener("mouseup", F), document.removeEventListener("mouseleave", F);
};
}, [
x,
P,
F
]), (0, Z.useEffect)(() => {
k();
let e = () => k();
return window.addEventListener("resize", e), m.current && !g.current && (g.current = new pt.ResizeObserver(k), g.current.observe(m.current)), () => {
window.removeEventListener("resize", e), g.current && (g.current.disconnect(), g.current = null);
};
}, [k]);
let I = d && D() ? x ? "grabbing" : "grab" : void 0;
return /* @__PURE__ */ (0, Q.jsx)("div", {
ref: m,
className: (0, X.default)("efp-scrollable-row", i),
role: "group",
"aria-label": t,
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-scrollable-row__container", { [`efp-scrollable-row__container--${c}`]: c }),
children: [
_ && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: (0, X.default)("efp-scrollable-row__arrow", "efp-scrollable-row__arrow--left", { "efp-scrollable-row__arrow--rtl": u }),
onClick: () => M("left"),
"aria-label": n,
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-chevron-left" })
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
ref: h,
className: (0, X.default)("efp-scrollable-row__scroll-wrapper", { "efp-scrollable-row__scroll-wrapper--dragging": x }),
onScroll: j,
onMouseDown: N,
style: {
cursor: I,
userSelect: x ? "none" : void 0
},
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-scrollable-row__content",
children: e
})
}),
y && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: (0, X.default)("efp-scrollable-row__arrow", "efp-scrollable-row__arrow--right", { "efp-scrollable-row__arrow--rtl": u }),
onClick: () => M("right"),
"aria-label": r,
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-chevron-right" })
})
]
})
});
}, On = /* @__PURE__ */ t(((e, t) => {
t.exports = function() {
var e = document.getSelection();
if (!e.rangeCount) return function() {};
for (var t = document.activeElement, n = [], r = 0; r < e.rangeCount; r++) n.push(e.getRangeAt(r));
switch (t.tagName.toUpperCase()) {
case "INPUT":
case "TEXTAREA":
t.blur();
break;
default:
t = null;
break;
}
return e.removeAllRanges(), function() {
e.type === "Caret" && e.removeAllRanges(), e.rangeCount || n.forEach(function(t) {
e.addRange(t);
}), t && t.focus();
};
};
})), kn = /* @__PURE__ */ e((/* @__PURE__ */ t(((e, t) => {
var n = On(), r = {
"text/plain": "Text",
"text/html": "Url",
default: "Text"
}, i = "Copy to clipboard: #{key}, Enter";
function a(e) {
var t = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
return e.replace(/#{\s*key\s*}/g, t);
}
function o(e, t) {
var o, s, c, l, u, d, f = !1;
t || (t = {}), o = t.debug || !1;
try {
if (c = n(), l = document.createRange(), u = document.getSelection(), d = document.createElement("span"), d.textContent = e, d.ariaHidden = "true", d.style.all = "unset", d.style.position = "fixed", d.style.top = 0, d.style.clip = "rect(0, 0, 0, 0)", d.style.whiteSpace = "pre", d.style.webkitUserSelect = "text", d.style.MozUserSelect = "text", d.style.msUserSelect = "text", d.style.userSelect = "text", d.addEventListener("copy", function(n) {
if (n.stopPropagation(), t.format) if (n.preventDefault(), n.clipboardData === void 0) {
o && console.warn("unable to use e.clipboardData"), o && console.warn("trying IE specific stuff"), window.clipboardData.clearData();
var i = r[t.format] || r.default;
window.clipboardData.setData(i, e);
} else n.clipboardData.clearData(), n.clipboardData.setData(t.format, e);
t.onCopy && (n.preventDefault(), t.onCopy(n.clipboardData));
}), document.body.appendChild(d), l.selectNodeContents(d), u.addRange(l), !document.execCommand("copy")) throw Error("copy command was unsuccessful");
f = !0;
} catch (n) {
o && console.error("unable to copy using execCommand: ", n), o && console.warn("trying IE specific stuff");
try {
window.clipboardData.setData(t.format || "text", e), t.onCopy && t.onCopy(window.clipboardData), f = !0;
} catch (n) {
o && console.error("unable to copy using clipboardData: ", n), o && console.error("falling back to prompt"), s = a("message" in t ? t.message : i), window.prompt(s, e);
}
} finally {
u && (typeof u.removeRange == "function" ? u.removeRange(l) : u.removeAllRanges()), d && document.body.removeChild(d), c();
}
return f;
}
t.exports = o;
})))(), 1), An = {
facebook: "icon-facebook",
xcom: "icon-twitter-x",
linkedin: "icon-linkedin"
}, jn = ({ title: e, url: t, shareHeading: n, socials: r, copyLinkSectionLabel: i, directLinkAriaLabel: a, copyButtonAriaLabel: o, copyLabel: s, copiedLabel: c }) => {
let [l, u] = (0, Z.useState)(!1), d = (0, Z.useRef)(void 0);
return (0, Z.useEffect)(() => () => clearTimeout(d.current), []), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "share",
children: [
/* @__PURE__ */ (0, Q.jsxs)("h3", { children: [
n,
" ",
e
] }),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "share__socials",
children: r.map((e) => /* @__PURE__ */ (0, Q.jsxs)("a", {
href: e.url,
rel: "noopener noreferrer",
target: "_blank",
className: (0, X.default)("share-social", e.network),
"aria-label": e.ariaLabel,
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "share-social__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: An[e.network],
"aria-hidden": "true"
})
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "share-social__title",
children: e.name
})]
}, e.network))
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "share__copy",
children: [/* @__PURE__ */ (0, Q.jsx)("span", { children: i }), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "share__copy-input",
children: [/* @__PURE__ */ (0, Q.jsx)("input", {
type: "text",
defaultValue: t,
readOnly: !0,
"aria-label": a
}), /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: (0, X.default)({ isCopied: l }),
onClick: () => {
(0, kn.default)(t) && (u(!0), clearTimeout(d.current), d.current = setTimeout(() => u(!1), 2e3));
},
"aria-label": o,
children: l ? /* @__PURE__ */ (0, Q.jsx)("span", {
"aria-live": "polite",
children: c
}) : s
})]
})]
})
]
});
}, Mn = ({ className: e, inBookmark: t = !1, visited: n = !1, showVisited: r = !1, showBookmark: i = !0, showDirections: a = !0, showRoutePlanner: o = !1, showShare: s = !0, directionsLabel: c, visitedLabel: l, notVisitedLabel: u, saveBookmarkLabel: d, removeBookmarkLabel: f, routePlannerLabel: p, shareLabel: m, onClickBookmark: h, onClickVisited: g, onClickDirections: _, onClickRoutePlanner: v, onClickShare: y }) => {
let [b, x] = (0, Z.useState)(!1), S = (0, Z.useRef)(void 0);
return (0, Z.useEffect)(() => () => {
S.current !== void 0 && clearTimeout(S.current);
}, []), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-sidebar-actions", e),
children: [
a && /* @__PURE__ */ (0, Q.jsxs)("button", {
type: "button",
className: "efp-action-button efp-action-button--directions",
onClick: _,
title: c,
"aria-label": c,
children: [/* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-directions",
"aria-hidden": "true"
}), c]
}),
r && /* @__PURE__ */ (0, Q.jsx)(Et, {
className: "efp-visited-btn",
ariaLabel: n ? l : u,
checked: n,
label: l,
onClick: g == null ? (() => {}) : g
}),
i && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: (0, X.default)("efp-action-button", "efp-action-button--bookmark", {
"efp-action-button--active": t,
"efp-action-button--animate": b
}),
title: t ? f : d,
"aria-label": t ? f : d,
"aria-pressed": t,
onClick: () => {
clearTimeout(S.current), x(!0), h == null || h(), S.current = setTimeout(() => {
x(!1);
}, 320);
},
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: t ? "icon-bookmark-solid" : "icon-bookmark",
"aria-hidden": "true"
})
}),
o && /* @__PURE__ */ (0, Q.jsxs)("button", {
type: "button",
className: "efp-action-button efp-action-button--route-planner",
title: p,
"aria-label": p,
onClick: v,
children: [/* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-route-solid",
"aria-hidden": "true"
}), p]
}),
s && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-action-button efp-action-button--share",
title: m,
"aria-label": m,
onClick: y,
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-share",
"aria-hidden": "true"
})
})
]
});
}, Nn = ({ title: e, subtitle: t, trailing: n, slug: r, style: i, className: a, active: o = !1, onClick: s }) => /* @__PURE__ */ (0, Q.jsxs)("a", {
href: "?" + encodeURIComponent(r),
onClick: (e) => {
e.preventDefault(), s();
},
className: (0, X.default)("efp-simple-row", { "efp-simple-row--active": o }, a),
style: i,
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-simple-row__col",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-simple-row__main",
dir: "auto",
children: e
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-simple-row__sub",
dir: "auto",
children: t
})]
}), n && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-simple-row__end",
children: n
})]
}), Pn = ({ active: e, isCenter: t = !1 }) => /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-spinner", { "is-hidden": !e }),
style: t ? {
top: 0,
bottom: 0,
left: 0,
right: 0,
margin: "auto"
} : void 0,
children: /* @__PURE__ */ (0, Q.jsx)("svg", {
viewBox: "25 25 50 50",
children: /* @__PURE__ */ (0, Q.jsx)("circle", {
r: "20",
cy: "50",
cx: "50"
})
})
}), Fn = ({ name: e, value: t, label: n, className: r, onChange: i }) => {
let a = (0, Z.useId)();
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-toggle-switch", r),
children: [/* @__PURE__ */ (0, Q.jsx)("input", {
type: "checkbox",
role: "switch",
"aria-checked": t,
id: a,
name: e,
checked: t,
onChange: () => i(!t)
}), /* @__PURE__ */ (0, Q.jsx)("label", {
htmlFor: a,
children: /* @__PURE__ */ (0, Q.jsx)("span", { children: n })
})]
});
}, In = ({ floors: e, value: t, floorSelectionLabel: n = "Floor selection", onSelect: r }) => {
let i = e.findIndex((e) => (e == null ? void 0 : e.id) === (t == null ? void 0 : t.id)), a = (e) => i !== -1 && e === i;
return /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfinding-floor",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfinding-floor__body",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfinding-floor__list",
role: "radiogroup",
"aria-label": n,
children: e.map((n, o) => {
var s, c, l;
let u = (n == null ? void 0 : n.id) === (t == null ? void 0 : t.id), d = i !== -1 && o < i, f = o === e.length - 1, p = f || (s = n.directionToNext) == null ? null : s, m = a(o), h = i !== -1 && o < i;
return /* @__PURE__ */ (0, Q.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-wayfinding-floor__item", {
"is-current": u,
"is-passed": d
}),
children: /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
role: "radio",
title: n.description,
"aria-checked": u,
"aria-label": (c = (l = n.ariaLabel) == null ? n.description : l) == null ? n.name : c,
onClick: () => r == null ? void 0 : r({
id: n.id,
name: n.name
}),
children: /* @__PURE__ */ (0, Q.jsx)("span", { children: n.name })
})
}), !f && p && /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-wayfinding-floor__arrow", {
[`efp-wayfinding-floor__arrow--${p}`]: p,
"efp-wayfinding-floor__arrow--blink": m,
"efp-wayfinding-floor__arrow--passed": h
}),
"aria-hidden": "true",
children: h || m ? /* @__PURE__ */ (0, Q.jsx)("svg", {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: /* @__PURE__ */ (0, Q.jsx)("path", {
d: "M11.7502 18.2823C11.7503 19.0928 12.4074 19.7499 13.218 19.75C13.5885 19.75 13.9455 19.6096 14.217 19.3575L20.6438 13.3897C21.0303 13.0308 21.2502 12.5274 21.2502 12C21.2502 11.4727 21.0303 10.9693 20.6438 10.6104L14.217 4.64258C13.9795 4.42202 13.6768 4.28716 13.3566 4.25684L13.218 4.25L13.0686 4.25782C12.3282 4.3328 11.7503 4.95766 11.7502 5.71778L11.7502 8.25L4.50024 8.25C3.53374 8.25 2.75024 9.03351 2.75024 9.99996L2.75024 14C2.75024 14.9665 3.53374 15.75 4.50024 15.75L11.7502 15.75L11.7502 18.2823Z",
fill: "currentColor"
})
}) : /* @__PURE__ */ (0, Q.jsx)("svg", {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: /* @__PURE__ */ (0, Q.jsx)("path", {
d: "M2.5 10C2.5 8.89544 3.39544 8 4.5 8H11.5V5.71777C11.5001 4.76912 12.2692 4.00012 13.2178 4C13.5973 4 13.9649 4.12537 14.2637 4.35449L14.3867 4.45898L20.8145 10.4268C21.2518 10.8329 21.5 11.4032 21.5 12C21.5 12.5968 21.2518 13.1671 20.8145 13.5732L14.3867 19.54L14.3877 19.541C14.0697 19.8365 13.6514 20 13.2178 20C12.2692 19.9999 11.5001 19.2308 11.5 18.2822V16H4.5C3.39545 16 2.5 15.1046 2.5 14V10ZM4.5 14H12.5C13.0523 14 13.5 14.4477 13.5 15V17.6348L19.4531 12.1074C19.4829 12.0797 19.5 12.0407 19.5 12C19.5 11.9593 19.4829 11.9203 19.4531 11.8926L13.5 6.36426V9C13.5 9.55228 13.0523 10 12.5 10H4.5V14Z",
fill: "currentColor"
})
})
})] }, n.id);
})
})
})
});
}, Ln = I((e) => /* @__PURE__ */ (0, Q.jsx)(dt, {
...e,
closeLabel: s("Close alert")
})), Rn = I((e) => {
let t = M();
return /* @__PURE__ */ (0, Q.jsx)(bt, {
...e,
renderTarget: t,
inline: R.uiState.overlayBottom,
noOptionsLabel: s("No options"),
ariaLabel: s("Search options"),
clearLabel: s("Clear")
});
}), zn = (e, t) => {
let n = t.trim().toLowerCase();
if (!n) return e;
let r = [];
for (let t of e) {
if (t.groupName.toLowerCase().includes(n)) {
r.push(t);
continue;
}
let e = t.items.filter((e) => e.name.toLowerCase().includes(n));
e.length > 0 && r.push({
...t,
items: e
});
}
return r;
}, Bn = I((e) => /* @__PURE__ */ (0, Q.jsx)(Gt, {
...e,
selectAllLabel: s("Select all"),
clearAllLabel: s("Clear all"),
selectedLabel: s("selected"),
showMoreLabel: s("Show more"),
showLessLabel: s("Show less")
})), Vn = 10, Hn = I(({ store: e, rootStore: t, title: n, groups: r }) => {
let i = P(() => ({
get pendingSelectedIds() {
return e.state.pendingItems.map((e) => e.id);
},
get totalItemsCount() {
return e.state.pendingItems.length === 0 ? e.getFilteredItems().length : t.exhibitorStore.exhibitors.filter((t) => t.categories.some((t) => e.state.pendingItems.some((e) => e.id === t.id))).length;
}
})), [a, o] = (0, Z.useState)(""), c = (0, Z.useMemo)(() => zn(r, a), [r, a]), l = (0, Z.useMemo)(() => r.reduce((e, t) => e + t.items.length, 0) > Vn, [r]), [u, d] = (0, Z.useState)({
isOpen: e.state.isOpen,
groups: r
});
return (u.isOpen !== e.state.isOpen || u.groups !== r) && (d({
isOpen: e.state.isOpen,
groups: r
}), o("")), /* @__PURE__ */ (0, Q.jsxs)(N, {
open: e.state.isOpen,
title: n,
onClose: () => {
e.closeFilter();
},
footerLeft: [{
label: s("Clear all"),
onClick: () => {
e.clearPendingItems();
},
variant: "gray",
disabled: i.pendingSelectedIds.length === 0
}],
footerRight: [{
label: i.pendingSelectedIds.length > 0 ? s("Show #{{count}}# Matching Exhibitors", { count: i.totalItemsCount }) : s("Show All Exhibitors"),
onClick: () => {
e.applyFilter();
},
variant: "primary",
withBadge: !0,
disabled: !e.state.isOpen
}],
children: [l && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-filter-modal__search",
children: [
/* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-search efp-filter-modal__search-icon",
"aria-hidden": "true"
}),
/* @__PURE__ */ (0, Q.jsx)("input", {
type: "search",
className: "efp-filter-modal__search-input",
value: a,
placeholder: s("Search..."),
"aria-label": s("Search..."),
onChange: (e) => o(e.target.value)
}),
a && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-filter-modal__search-clear",
"aria-label": s("Clear search"),
onClick: () => o(""),
children: /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-close",
"aria-hidden": "true"
})
})
]
}), c.length > 0 ? /* @__PURE__ */ (0, Q.jsx)(Bn, {
groups: c,
selectedIds: i.pendingSelectedIds,
variant: "categories",
onChange: (t) => {
let n = r.flatMap((e) => e.items).filter((e) => t.includes(e.id));
e.setPendingItems(n);
},
itemCountProvider: (e) => {
var n;
return ((n = t.categoryStore.categoryById.get(Number(e.id))) == null || (n = n.exhibitors) == null ? void 0 : n.length) || 0;
}
}) : /* @__PURE__ */ (0, Q.jsx)("p", {
className: "efp-filter-modal__empty",
role: "status",
children: s("Oops, nothing found")
})]
});
}), Un = I((e) => /* @__PURE__ */ (0, Q.jsx)(Mn, {
...e,
directionsLabel: s("Directions"),
visitedLabel: s("Visited"),
notVisitedLabel: s("Not visited"),
saveBookmarkLabel: s("Save to Bookmarks"),
removeBookmarkLabel: s("Remove from Bookmarks"),
routePlannerLabel: s("Route planner"),
shareLabel: s("Share")
}));
//#endregion
//#region src/components/Bookmarks.tsx
function Wn() {
return F(() => !q.wayfinding || !R.bookmarksStore.hasRoutableBookmarks ? null : /* @__PURE__ */ (0, Q.jsx)(Un, {
className: "efp-sidebar-actions--bookmarks",
showDirections: !1,
showBookmark: !1,
showRoutePlanner: !0,
showShare: !1,
onClickRoutePlanner: () => R.routePlannerStore.launchFromBookmarks()
}));
}
function Gn() {
let e = (0, Z.useRef)(null);
return F(() => /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [/* @__PURE__ */ (0, Q.jsx)(Wn, {}), /* @__PURE__ */ (0, Q.jsx)(br, { updatedScrollableRef: e })] }));
}
var Kn = () => F(() => !K.hideBookmarks && !U.details && U.list.type === "bookmarks" && /* @__PURE__ */ (0, Q.jsx)(Gn, {})), qn = (e) => {
let t = (0, Z.useMemo)(() => e ? R.heatmapStore.getClicksByItem(e) : 0, [e]);
return {
clicks: t,
background: (0, Z.useMemo)(() => R.heatmapStore.getColorByClicks(t), [t])
};
}, Jn = (e) => {
e.length === 4 && (e = e.replace(/^#([a-f\d])([a-f\d])([a-f\d])$/i, (e, t, n, r) => `#${t}${t}${n}${n}${r}${r}`));
let t = parseInt(e.slice(1), 16);
return {
r: t >> 16 & 255,
g: t >> 8 & 255,
b: t & 255
};
}, Yn = (e) => {
let { clicks: t, background: n } = qn(e);
return { heatmapBar: (0, Z.useMemo)(() => {
if (!U.heatmap) return null;
let e = n.trim().toLowerCase(), r = 255, i = 255, a = 255;
if (e.startsWith("#") && (e.length === 7 || e.length === 4)) {
let t = Jn(e);
r = t.r, i = t.g, a = t.b;
}
let o = .299 * r + .587 * i + .114 * a < 170 ? "#fff" : "#000", s = o === "#fff" ? "rgba(0, 0, 0, 0.4)" : "rgba(255, 255, 255, 0.4)";
return /* @__PURE__ */ (0, Q.jsxs)("div", {
style: {
display: "flex",
alignItems: "center",
alignSelf: "flex-start",
gap: "0.2rem",
minHeight: "1.8rem",
marginLeft: "auto",
padding: "0.2rem 0.5rem",
borderRadius: "var(--border-radius-md)",
background: n,
color: o,
textShadow: `0 0 2px ${s}`,
fontWeight: "var(--font-weight-bold)",
fontSize: "var(--font-size-md)",
textAlign: "center"
},
children: [/* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-eye",
style: {
fontSize: "var(--icon-size-xs)",
textShadow: `0 0 2px ${s}`
}
}), t]
});
}, [n, t]) };
}, Xn = (e) => !!e && /^\d+$/.test(e), Zn = {
booth: { typeColor: "var(--color-booth)" },
exhibitor: { typeColor: "var(--color-exhibitor)" },
event: {
typeColor: "var(--color-event)",
hasDatetime: !0
},
speaker: {
typeColor: "var(--color-speaker)",
variant: "person"
},
category: {
typeColor: "var(--color-category)",
hasTitleBadge: !0,
hasSubtitleLabel: !0
}
}, Qn = (e) => e.type === "location" ? {
...e,
showLevelLabel: Xn(e.level)
} : e, $n = I(({ kind: e, itemsCount: t, date: n, time: r, additionalInfo: i, ...a }) => {
var o;
let c = Zn[e], l = c.hasDatetime && (n || r) ? {
date: n,
time: r
} : void 0, u = U.list.type === "search" ? U.list.text : void 0;
return /* @__PURE__ */ (0, Q.jsx)(jt, {
...a,
additionalInfo: i == null ? void 0 : i.map(Qn),
typeColor: c.typeColor,
iconClassName: `icon-${e}-solid`,
variant: (o = c.variant) == null ? "default" : o,
titleBadge: c.hasTitleBadge ? t : void 0,
datetime: l,
subtitleLabel: c.hasSubtitleLabel ? s("Category") : void 0,
highlight: u,
featuredLabel: s("Featured"),
hallLabel: s("Hall"),
levelLabel: s("Level")
});
}), er = /* @__PURE__ */ t(((e, t) => {
(function(n) {
var r = (function() {
var e = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g, t = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, n = /[^-+\dA-Z]/g;
return function(c, l, u, d) {
if (arguments.length === 1 && s(c) === "string" && !/\d/.test(c) && (l = c, c = void 0), c = c || /* @__PURE__ */ new Date(), c instanceof Date || (c = new Date(c)), isNaN(c)) throw TypeError("Invalid date");
l = String(r.masks[l] || l || r.masks.default);
var f = l.slice(0, 4);
(f === "UTC:" || f === "GMT:") && (l = l.slice(4), u = !0, f === "GMT:" && (d = !0));
var p = u ? "getUTC" : "get", m = c[p + "Date"](), h = c[p + "Day"](), g = c[p + "Month"](), _ = c[p + "FullYear"](), v = c[p + "Hours"](), y = c[p + "Minutes"](), b = c[p + "Seconds"](), x = c[p + "Milliseconds"](), S = u ? 0 : c.getTimezoneOffset(), C = a(c), w = o(c), T = {
d: m,
dd: i(m),
ddd: r.i18n.dayNames[h],
dddd: r.i18n.dayNames[h + 7],
m: g + 1,
mm: i(g + 1),
mmm: r.i18n.monthNames[g],
mmmm: r.i18n.monthNames[g + 12],
yy: String(_).slice(2),
yyyy: _,
h: v % 12 || 12,
hh: i(v % 12 || 12),
H: v,
HH: i(v),
M: y,
MM: i(y),
s: b,
ss: i(b),
l: i(x, 3),
L: i(Math.round(x / 10)),
t: v < 12 ? r.i18n.timeNames[0] : r.i18n.timeNames[1],
tt: v < 12 ? r.i18n.timeNames[2] : r.i18n.timeNames[3],
T: v < 12 ? r.i18n.timeNames[4] : r.i18n.timeNames[5],
TT: v < 12 ? r.i18n.timeNames[6] : r.i18n.timeNames[7],
Z: d ? "GMT" : u ? "UTC" : (String(c).match(t) || [""]).pop().replace(n, ""),
o: (S > 0 ? "-" : "+") + i(Math.floor(Math.abs(S) / 60) * 100 + Math.abs(S) % 60, 4),
S: [
"th",
"st",
"nd",
"rd"
][m % 10 > 3 ? 0 : (m % 100 - m % 10 != 10) * m % 10],
W: C,
N: w
};
return l.replace(e, function(e) {
return e in T ? T[e] : e.slice(1, e.length - 1);
});
};
})();
r.masks = {
default: "ddd mmm dd yyyy HH:MM:ss",
shortDate: "m/d/yy",
mediumDate: "mmm d, yyyy",
longDate: "mmmm d, yyyy",
fullDate: "dddd, mmmm d, yyyy",
shortTime: "h:MM TT",
mediumTime: "h:MM:ss TT",
longTime: "h:MM:ss TT Z",
isoDate: "yyyy-mm-dd",
isoTime: "HH:MM:ss",
isoDateTime: "yyyy-mm-dd'T'HH:MM:sso",
isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",
expiresHeaderFormat: "ddd, dd mmm yyyy HH:MM:ss Z"
}, r.i18n = {
dayNames: [
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
monthNames: [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec",
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
timeNames: [
"a",
"p",
"am",
"pm",
"A",
"P",
"AM",
"PM"
]
};
function i(e, t) {
for (e = String(e), t = t || 2; e.length < t;) e = "0" + e;
return e;
}
function a(e) {
var t = new Date(e.getFullYear(), e.getMonth(), e.getDate());
t.setDate(t.getDate() - (t.getDay() + 6) % 7 + 3);
var n = new Date(t.getFullYear(), 0, 4);
n.setDate(n.getDate() - (n.getDay() + 6) % 7 + 3);
var r = t.getTimezoneOffset() - n.getTimezoneOffset();
t.setHours(t.getHours() - r);
var i = (t - n) / (864e5 * 7);
return 1 + Math.floor(i);
}
function o(e) {
var t = e.getDay();
return t === 0 && (t = 7), t;
}
function s(e) {
return e === null ? "null" : e === void 0 ? "undefined" : typeof e == "object" ? Array.isArray(e) ? "array" : {}.toString.call(e).slice(8, -1).toLowerCase() : typeof e;
}
typeof define == "function" && define.amd ? define(function() {
return r;
}) : typeof e == "object" ? t.exports = r : n.dateFormat = r;
})(e);
})), tr = (e, t, n) => {
let r = t || [
"p",
"span",
"strong",
"em",
"ul",
"ol",
"li",
"a"
], i = n || [
"href",
"target",
"rel"
], a = document.createElement("template");
a.innerHTML = e;
let o = a.content;
return Array.from(o.querySelectorAll("*")).forEach((e) => {
r.includes(e.tagName.toLowerCase()) || e.remove();
}), Array.from(o.querySelectorAll("*")).forEach((e) => {
Array.from(e.attributes).forEach((t) => {
i.includes(t.name.toLowerCase()) || e.removeAttribute(t.name);
});
}), a.innerHTML;
}, nr = I((e) => /* @__PURE__ */ (0, Q.jsx)(Ut, {
...e,
showMoreLabel: s("Show more"),
showLessLabel: s("Show less")
})), $ = /* @__PURE__ */ e(er(), 1);
function rr(e, t) {
let n = /* @__PURE__ */ new Date();
return e <= n && n <= t;
}
function ir(e) {
let t = /* @__PURE__ */ new Date();
return new Date(e) < t;
}
var ar = I(({ events: e = [], descriptionMaxLength: t = 200, showBooths: n = !1, isSessions: r = !1, onEventClick: i }) => {
let [a, o] = (0, Z.useState)({}), c = /* @__PURE__ */ new Date(), l = e.filter((e) => (e.endDate ? new Date(e.endDate) : new Date(e.startDate)) > c), u = e.filter((e) => (e.endDate ? new Date(e.endDate) : new Date(e.startDate)) <= c), d = l.reduce((e, t) => {
let [n] = t.startDate.split("T");
return e[n] ? e[n].push(t) : e[n] = [t], e;
}, {}), f = u.reduce((e, t) => {
let [n] = t.startDate.split("T");
return e[n] ? e[n].push(t) : e[n] = [t], e;
}, {});
(0, Z.useEffect)(() => {
let e = {};
for (let t in d) e[t] = d[t].map(() => ({ showFullDescription: !1 }));
for (let t in f) e[t] = f[t].map(() => ({ showFullDescription: !1 }));
o(e);
}, [e.map((e) => e.id).join(",")]);
let p = (e, t, n) => {
e.preventDefault(), e.stopPropagation(), o((e) => {
let r = { ...e };
return Array.isArray(r[t]) || (r[t] = []), r[t][n] || (r[t][n] = { showFullDescription: !1 }), r[t][n].showFullDescription = !r[t][n].showFullDescription, r;
});
}, m = (e, n) => e.length > t && !n ? e.slice(0, t) + "..." : e, h = (e) => {
let t = R.sessionsFilterStore.state.filters.use24hFormat.value;
return (0, $.default)(new Date(e), t ? "HH:MM" : "h:MMtt");
}, g = (e) => {
let [t, n, r] = e.split("-"), i = new Date(parseInt(t), parseInt(n) - 1, parseInt(r));
return {
day: r,
month: (0, $.default)(i, "mmm"),
weekday: (0, $.default)(i, "ddd"),
full: (0, $.default)(i, "dddd, mmmm d")
};
}, _ = ({ children: e, link: t, current: n, ended: r, event: a }) => {
let o = (e) => {
i && (e.preventDefault(), i(a));
};
return t ? /* @__PURE__ */ (0, Q.jsx)("a", {
href: t,
className: (0, X.default)("efp-schedule__event", n, r),
target: "_blank",
rel: "noopener noreferrer",
onClick: o,
children: e
}) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-schedule__event", { ended: r }),
onClick: o,
children: e
});
}, v = (e, o = !1) => Object.entries(e).map(([e, o]) => {
let s = g(e);
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-schedule__item",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__date",
"aria-label": `Date: ${s.full}`,
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-schedule__date-sticky",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", { children: s.day }),
/* @__PURE__ */ (0, Q.jsx)("div", { children: s.month }),
/* @__PURE__ */ (0, Q.jsx)("div", { children: s.weekday })
]
})
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__events",
role: "list",
children: o.map((o, s) => {
var c, l;
let u = o.boothId ? R.boothStore.boothById.get(Number(o.boothId)) : null, d = (c = (l = a[e]) == null || (l = l[s]) == null ? void 0 : l.showFullDescription) != null && c;
return /* @__PURE__ */ (0, Q.jsx)("div", {
role: "listitem",
"data-event-id": o.id,
onClick: () => i == null ? void 0 : i(o),
style: { cursor: i ? "pointer" : "default" },
children: /* @__PURE__ */ (0, Q.jsxs)(_, {
link: "",
ended: o.isEnded || ir(o.endDate || o.startDate),
current: rr(o.startDate, o.endDate),
event: o,
children: [
/* @__PURE__ */ (0, Q.jsxs)("span", { children: [h(o.startDate), o.endDate ? ` - ${h(o.endDate)}` : null] }),
/* @__PURE__ */ (0, Q.jsxs)("strong", { children: [o.name, /* @__PURE__ */ (0, Q.jsx)(Fr, { event: o })] }),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__event-booth-and-tracks",
children: u && n && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__event-booth",
children: /* @__PURE__ */ (0, Q.jsx)("div", { children: u.name })
})
}),
o.logoFile && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__event-logo",
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: o.logoFile,
alt: o.name,
crossOrigin: "anonymous"
})
}),
o.description && !r && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-schedule__event-desc",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
id: `event-desc-${e}-${s}`,
dangerouslySetInnerHTML: { __html: tr(m(o.description, d)) }
}), o.description.length > t && /* @__PURE__ */ (0, Q.jsx)(nr, {
expanded: d,
onClick: (t) => p(t, e, s),
"aria-controls": `event-desc-${e}-${s}`
})]
})
]
})
}, o.id);
})
})]
}, e);
});
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-schedule", { "is-sessions": r }),
children: [v(d), Object.keys(f).length > 0 && /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__past-events-header",
children: s("Past Sessions")
}), v(f, !0)] })]
});
}), or = I(({ booth: e, level: t }) => /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__content -reg",
children: [
/* @__PURE__ */ (0, Q.jsx)(Do, { level: t }),
/* @__PURE__ */ (0, Q.jsxs)(Tt, {
variant: "orange",
children: [/* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-hand-solid" }), s("On Hold")]
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__infos",
children: [
e.type && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info is-onhold",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-box-3d" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("{{boothTerm}} Type", { boothTerm: K.boothTerm })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: e.type
})]
})]
}),
e.size && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info is-onhold",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-size" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("Size")
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: e.size
})]
})]
}),
e.price && e.price !== "0" && !U.previewMode && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info is-onhold",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-tag" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("Price")
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: e.price
})]
})]
})
]
})
]
})), sr = I(() => /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__content -reg",
children: /* @__PURE__ */ (0, Q.jsx)("div", { children: s("Reserved") })
}));
//#endregion
//#region src/utils/is-iframe.ts
function cr() {
try {
return window.self !== window.top;
} catch {
return !0;
}
}
var lr = cr();
m.log("Running in iframe: ", lr);
//#endregion
//#region src/components/Booth/BoothWithoutExhibitor.tsx
var ur = I(({ booth: e, description: t, showBuy: n, showReserve: r, isRebooking: i, level: a }) => {
let o = (t) => {
if (t) {
let n = new URL(t);
return !n.searchParams.has("type") && e.type && n.searchParams.append("type", e.type), !n.searchParams.has("price") && e.price && !U.previewMode && n.searchParams.append("price", e.price), n;
} else return null;
}, c = o(e.buyUrl), l = o(e.reserveUrl);
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__content -reg",
children: [
/* @__PURE__ */ (0, Q.jsx)(Do, { level: a }),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__infos",
children: [
e.type && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-box-3d" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("{{boothTerm}} Type", { boothTerm: K.boothTerm })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: e.type
})]
})]
}),
e.size && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-size" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("Size")
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: e.size
})]
})]
}),
!i && e.price && e.price !== "0" && !U.previewMode && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-tag" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("Price")
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: e.price
})]
})]
})
]
}),
!i && t && /* @__PURE__ */ (0, Q.jsx)("span", {
dangerouslySetInnerHTML: { __html: t },
className: "booth__reserve-instructions"
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__buy",
children: [!i && n && /* @__PURE__ */ (0, Q.jsx)(k, {
link: c == null ? void 0 : c.href,
target: lr ? "_blank" : "_self",
children: s("Buy")
}), !i && r && /* @__PURE__ */ (0, Q.jsx)(k, {
link: (l == null ? void 0 : l.href) || (c == null ? void 0 : c.href),
target: lr ? "_blank" : "_self",
children: s("Reserve")
})]
})
]
});
}), dr = I(() => {
var e, t;
let n = (0, Z.useRef)(), r = P(() => ({
get booth() {
return U.selectedBooth;
},
get regular() {
return this.booth instanceof Ae ? this.booth : null;
},
get special() {
return this.booth instanceof Ne ? this.booth : null;
},
get showReserve() {
return !U.kiosk && this.regular && (this.regular.price === "0" && !!this.regular.buyUrl || !!this.regular.reserveUrl);
},
get showBuy() {
return !U.kiosk && this.regular && this.regular.buyUrl && this.regular.price && this.regular.price !== "0";
},
get title() {
return this.booth.fullName;
},
get reserveTitle() {
return K.reserveButtonTerm || s("Reserve");
},
get descriptionCombined() {
return this.booth.description || K.reserveInstructions || "";
}
}));
(0, Z.useEffect)(() => {
var e;
if ((e = r.booth.schedule) != null && e.length) {
let e = /* @__PURE__ */ new Date(), t = [...r.booth.schedule].sort((e, t) => new Date(e.startDate).getTime() - new Date(t.startDate).getTime());
if (t.some((t) => (t.endDate ? new Date(t.endDate) : new Date(t.startDate)) < e)) {
let r = t.find((t) => (t.endDate ? new Date(t.endDate) : new Date(t.startDate)) > e);
if (r && n.current) {
let e = n.current.querySelector(`[data-event-id="${r.id}"]`);
e && setTimeout(() => {
let t = n.current.getBoundingClientRect(), r = e.getBoundingClientRect().top - t.top - 20;
n.current.scrollTop = r;
}, 100);
}
}
}
}, [r.booth.schedule]);
function i(e) {
let t = parseInt(e);
R.clickExhibitor(R.exhibitorStore.exhibitors.find((e) => e.id === t));
}
function a(e) {
R.selectEventItem(e, !0);
}
function o() {
r.booth.exhibitors.length === 0 && (r.booth.bookmarkedDirectly = !r.booth.bookmarkedDirectly, r.booth.bookmarkedDirectly && Xe("bookmark", r.booth.name, "booth"));
}
r.title;
let c = null, l = (e = r.booth.layer) == null ? void 0 : e.description, { heatmapBar: u } = Yn(r.booth), d = r.booth.exhibitors.sort((e, t) => Number(!!t.featured) - Number(!!e.featured)).map((e) => {
var t;
return /* @__PURE__ */ (0, Q.jsx)($n, {
onClick: i,
id: e.id.toString(),
featured: e.featured,
kind: "exhibitor",
image: (t = e.logo) == null ? void 0 : t.url,
title: e.name,
bookmarked: e.bookmarked,
visited: e.visited,
additionalInfo: e.booths.map((e) => {
var t;
return {
type: "location",
locationName: e.name,
level: l || ((t = e.layer) == null ? void 0 : t.name)
};
})
}, e.id.toString());
});
if (K.isRebooking) c = /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: d });
else if (r.regular) {
let e = r.regular;
c = e.onHold ? /* @__PURE__ */ (0, Q.jsx)(or, {
booth: e,
description: "",
showBuy: !1,
showReserve: !1,
isRebooking: !1,
level: l
}) : e.reserved ? /* @__PURE__ */ (0, Q.jsx)(sr, {}) : e.exhibitors.length === 0 ? /* @__PURE__ */ (0, Q.jsx)(ur, {
booth: e,
description: r.descriptionCombined,
showBuy: !U.previewMode && r.showBuy,
showReserve: !U.previewMode && r.showReserve,
isRebooking: !1,
level: l
}) : /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: d });
} else c = /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__content -spec",
children: [
/* @__PURE__ */ (0, Q.jsx)(Do, { level: l }),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__desc",
dangerouslySetInnerHTML: { __html: r.special.description }
}),
/* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: d })
]
});
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth",
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__header",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__header-name",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__header-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-booth-solid" })
}),
/* @__PURE__ */ (0, Q.jsx)("span", {
dir: "auto",
children: r.title
}),
u
]
}), /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
onClick: () => R.searchStore.handleBackAction(),
className: "booth__header-close",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-close" })
})]
}),
!K.isRebooking && q.wayfinding && !U.isGuidedToursActive && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor__directions",
style: {
paddingLeft: 15,
paddingRight: 15
},
children: /* @__PURE__ */ (0, Q.jsx)(Un, {
showBookmark: !U.disableBookmarked && !K.hideBookmarks && !U.kiosk && r.booth.exhibitors.length === 0,
showShare: !1,
inBookmark: r.booth.exhibitors.length === 0 && r.booth.bookmarkedDirectly,
onClickBookmark: o,
onClickDirections: () => {
R.routeStore.clickRoute(null, r.booth);
}
})
}),
c,
K.isRebooking && r.regular && r.regular.exhibitors.length === 0 && /* @__PURE__ */ (0, Q.jsx)(ur, {
showBuy: !1,
description: r.descriptionCombined,
showReserve: !1,
booth: r.regular,
isRebooking: K.isRebooking,
level: l
}),
!!((t = r.booth.schedule) != null && t.length) && /* @__PURE__ */ (0, Q.jsx)(ar, {
isSessions: !0,
showBooths: !0,
events: [...r.booth.schedule].sort((e, t) => new Date(e.startDate).getTime() - new Date(t.startDate).getTime()),
onEventClick: a
})
]
});
}), fr = I(() => !U.menu && U.selectedBooth ? /* @__PURE__ */ (0, Q.jsx)(dr, {}) : null), pr = I(({ text: e }) => /* @__PURE__ */ (0, Q.jsx)(At, {
text: e,
highlight: U.list.type === "search" ? U.list.text : void 0
})), mr = ({ title: e, highlight: t = !0, style: n, ...r }) => /* @__PURE__ */ (0, Q.jsx)(Nn, {
...r,
title: t ? /* @__PURE__ */ (0, Q.jsx)(pr, { text: e }) : e,
style: {
marginLeft: K.isRebooking ? "5px" : void 0,
...n
}
}), hr = ({ yah: e, active: t }) => {
let { clicks: n, background: r } = qn(e);
return F(() => /* @__PURE__ */ (0, Q.jsx)(mr, {
style: { background: U.heatmapYah ? `linear-gradient(to right, transparent 98%, ${r} 93%) center / 100% 99% no-repeat` : null },
active: t,
slug: e.id.toString(),
onClick: i,
title: e.name,
subtitle: e.z ? `Level ${e.z}` : "",
trailing: n.toString(),
highlight: !1
}));
function i() {
let t = L.findLayer(e.z);
t && L.updateVisibility(t, !0), R.routeStore.selectMarker(e.id.toString(), !0);
}
}, gr = I(({ item: e, index: t, current: n, compactDetails: r, onClick: i }) => {
let a = {
background: void 0,
clicks: void 0
};
U.heatmap && (e instanceof we || e instanceof Se || e instanceof w) && (a = qn(e));
let o = U.foundInDescriptionStruct[e.id];
if (e instanceof we) {
var s, c;
let t = "exhibitor";
return /* @__PURE__ */ (0, Q.jsx)($n, {
onClick: (e) => i(t, e),
id: e.id.toString(),
featured: e.featured,
kind: t,
image: (s = e.logo) == null ? void 0 : s.url,
title: e.name,
bookmarked: e.bookmarked,
visited: e.visited,
additionalInfo: e.booths.map((e) => ({
type: "location",
locationName: e.name,
level: e.layer && (K.shortLevelName ? e.layer.shortName : e.layer.description) || ""
})),
current: n,
compactDetails: r,
heatmapColor: a.background,
accentBorderColor: K.isRebooking ? (c = Te[e.rebookingState]) == null ? void 0 : c.color.primary : void 0,
hideUserState: U.kiosk,
secondaryText: o
});
}
if ("rect" in e) return /* @__PURE__ */ (0, Q.jsx)($n, {
onClick: (e) => i("booth", e),
id: e.id.toString(),
kind: "booth",
title: e.name,
icon: e.poiIcon,
bookmarked: e.bookmarked,
current: n,
heatmapColor: a.background,
secondaryText: o
});
if (e instanceof D) return /* @__PURE__ */ (0, Q.jsx)($n, {
onClick: (e) => i("category", e),
id: e.id.toString(),
itemsCount: e.exhibitors.length,
kind: "category",
title: e.name,
current: n,
secondaryText: o
});
if (e instanceof E) {
let t = [];
return e.jobTitle && t.push({
type: "text",
text: e.jobTitle
}), /* @__PURE__ */ (0, Q.jsx)($n, {
id: e.id.toString(),
kind: "speaker",
title: e.name,
subtitle: e.company,
image: e.photoFile,
additionalInfo: t,
bookmarked: e.bookmarked,
onClick: () => R.selectSpeaker(e, !0),
secondaryText: o
}, e.id);
}
if (e instanceof S) {
var l, u;
let t = e.boothId ? te.booths.find((t) => t.id === e.boothId) : null;
return /* @__PURE__ */ (0, Q.jsx)($n, {
id: e.id.toString(),
onClick: (e) => i("event", e),
kind: "event",
title: e.name,
date: (0, $.default)(e.startDate, "dd mmm ddd"),
time: `${(0, $.default)(e.startDate, "h:MM")} - ${(0, $.default)(e.endDate, "h:MM")}`,
additionalInfo: t ? [{
type: "location",
locationName: t.name,
level: K.shortLevelName ? (l = t.layer) == null ? void 0 : l.shortName : (u = t.layer) == null ? void 0 : u.description
}] : [],
bookmarked: e.bookmarked,
visited: e.visited,
current: n,
hideUserState: U.kiosk,
secondaryText: o
});
}
return e instanceof w ? /* @__PURE__ */ (0, Q.jsx)(hr, {
yah: e,
active: t === U.activeListIndex
}) : null;
}), _r = () => import(
/* webpackChunkName: "react-virtuoso-entity-list" */
"./dist-DrhAFaXl.js"
).then((e) => ({ default: e.Virtuoso })).catch(() => new Promise((e) => setTimeout(() => e(_r()), 3e3))), vr = (0, Z.lazy)(_r), yr = ["ipia2025"], br = I(({ updatedScrollableRef: e, updateScroll: t }) => {
let n = (0, Z.useContext)(gt), r = (0, Z.useRef)(null), i = U.getListScrollItemId(U.list.type), a = yr.includes(q.EXPO);
(0, Z.useEffect)(() => {
let e = U.getListScrollTop(U.list.type), t = U.getListScrollItemId(U.list.type);
(e > 0 || t) && setTimeout(() => {
if (r.current) {
if (t) {
let e = U.listItems.findIndex((e) => {
var n;
return (e == null || (n = e.id) == null ? void 0 : n.toString()) === t.toString();
});
if (e !== -1) {
r.current.scrollToIndex({
index: e,
align: "center",
behavior: "auto"
});
return;
}
}
e > 0 && r.current.scrollTo({
top: e,
behavior: "auto"
});
}
}, 100);
}, [U.list.type]);
let o = U.showRouteInstantly, c = (0, Z.useCallback)((t, n) => {
var i;
let a = parseInt(n, 10);
if (U.setListScrollItemId((i = U.list) == null ? void 0 : i.type, a), r.current) r.current.getState((e) => {
var t;
let n = (e == null ? void 0 : e.scrollTop) || 0;
U.setListScrollTop((t = U.list) == null ? void 0 : t.type, n);
});
else if (e.current) {
var s;
U.setListScrollTop((s = U.list) == null ? void 0 : s.type, e.current.scrollTop || 0);
}
switch (t) {
case "exhibitor":
let e = R.exhibitorStore.exhibitors.find((e) => e.id === a);
o ? R.routeStore.clickRoute(null, R.routeStore.tempToBooth || e.booths[0]) : R.clickExhibitor(e);
break;
case "booth":
let t = R.boothStore.booths.find((e) => e.id === a);
o ? R.routeStore.clickRoute(null, t) : R.clickBoothInList2(t);
break;
case "category":
R.clickCategory(R.categoryStore.categories.find((e) => e.id === a));
break;
case "event":
let n = R.eventStore.eventItems.find((e) => e.id === a);
if (n) {
let e = R.boothStore.booths.find((e) => e.id === n.boothId);
o && e ? R.routeStore.clickRoute(null, e) : R.selectEventItem(n, !0);
}
break;
case "speaker": {
let e = R.speakerStore.speakers.find((e) => e.id === a);
e && R.selectSpeaker(e, !0);
break;
}
}
}, [o, e]);
return n === null || U.setKioskModeEnabled ? null : U.listItems.length ? /* @__PURE__ */ (0, Q.jsx)("div", {
style: {
height: "100%",
cursor: "pointer",
resize: "both",
minHeight: 100
},
children: /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: /* @__PURE__ */ (0, Q.jsx)(Pn, {
active: !0,
isCenter: !0
}),
children: /* @__PURE__ */ (0, Q.jsx)(vr, {
ref: r,
className: "list-virtual",
style: { minHeight: U.listItems.length ? "1px" : 0 },
data: U.listItems,
itemContent: (e, t) => {
var n;
let r = t;
return r ? /* @__PURE__ */ (0, Q.jsx)(gr, {
item: r,
index: e,
current: (i == null ? void 0 : i.toString()) === ((n = r.id) == null ? void 0 : n.toString()),
compactDetails: a,
onClick: c
}, r.id) : null;
},
itemsRendered: () => t && setTimeout(t),
totalListHeightChanged: () => t && t(),
customScrollParent: n,
totalCount: U.listItems.length,
overscan: 20,
increaseViewportBy: 200,
initialItemCount: Math.min(U.listScrollIndex + 30, U.listItems.length)
})
})
}) : /* @__PURE__ */ (0, Q.jsx)(() => /* @__PURE__ */ (0, Q.jsx)("div", {
className: "list-empty",
children: U.list.type === "search" ? s("Oops, nothing found") : s("No items to show")
}), {});
});
//#endregion
//#region src/components/Category.tsx
function xr() {
let e = (0, Z.useRef)(), t = P(() => ({ updateOverlayContent: null })), n = (0, Z.useCallback)(() => {
t.updateOverlayContent && t.updateOverlayContent();
}, [t.updateOverlayContent]);
return F(() => /* @__PURE__ */ (0, Q.jsx)(br, {
updateScroll: n,
updatedScrollableRef: e
}));
}
var Sr = () => F(() => !U.menu && U.list.type === "category" && U.details instanceof D && /* @__PURE__ */ (0, Q.jsx)(xr, {})), Cr = () => {
let { urlFilterManager: e, uiState: t } = R, n = F(() => ({
categories: t.selectedCategoryFilters.map((e) => e.name),
poiType: t.selectedPoiTypeFilters.length > 0 ? t.selectedPoiTypeFilters[0].name : null,
exhibitors: e.currentFilters.exhibitors,
isActive: t.hasAppliedFilters || e.currentFilters.exhibitors
})), r = (0, Z.useCallback)((t) => {
e.isInitialized && e.setCategories(t);
}, [e]), i = (0, Z.useCallback)((t) => {
e.isInitialized && e.setPoiType(t);
}, [e]), a = (0, Z.useCallback)(() => {
e.isInitialized && e.clearAllFilters();
}, [e]), o = (0, Z.useCallback)((t) => e.validateFilters(t), [e]);
return (0, Z.useEffect)(() => {
e.isInitialized || e.initialize();
}, [e]), {
currentFilters: n,
setCategories: r,
setPoiType: i,
clearAllFilters: a,
validateFilters: o,
isInitialized: e.isInitialized
};
}, wr = I(() => {
var e, t;
let { currentFilters: r } = Cr(), { viewScope: i, viewsOwnSelection: a } = R.categoryFilterStore, o = (e = i == null ? void 0 : i.categoryIds) == null ? null : e, c = (t = i == null ? void 0 : i.title) == null ? null : t, l = (0, Z.useMemo)(() => {
let e = R.categoryStore.categories || [], t = o ? e.filter((e) => o.includes(e.id)) : e, n = {}, r = [], i = [];
t.forEach((e) => {
if (!e || !e.exhibitors || e.exhibitors.length === 0) return;
let t = (e.name || "").split("/").map((e) => e.trim());
if (t.length > 1) {
let r = t[0], a = t.slice(1).join(" / ");
n[r] || (n[r] = {
groupName: r,
items: []
}, i.push(r)), n[r].items.push({
id: e.id,
name: a
});
} else r.push({
id: e.id,
name: e.name
});
});
let a = [];
return r.length > 0 && a.push({
groupName: "General",
items: r,
fullWidth: !0
}), i.forEach((e) => {
let t = n[e];
t && t.items && t.items.length > 0 && a.push(t);
}), a;
}, [R.categoryStore.categories, o]);
return (0, Z.useEffect)(() => {
if (R.categoryFilterStore.state.isOpen && a && r.categories.length > 0) {
let e = r.categories.map((e) => {
let t = R.categoryStore.categories.find((t) => t.name.toLowerCase() === e.toLowerCase());
return t ? {
id: t.id,
name: t.name
} : null;
}).filter((e) => e !== null).filter((e) => !o || o.includes(e.id));
e.length > 0 && R.categoryFilterStore.setPendingItems(e);
}
}, [
R.categoryFilterStore.state.isOpen,
a,
r.categories,
o
]), /* @__PURE__ */ (0, Q.jsx)(Hn, {
store: R.categoryFilterStore,
rootStore: R,
title: c ? n(c) : s("Categories"),
groups: l
});
}), Tr = I((e) => /* @__PURE__ */ (0, Q.jsx)(Ot, {
...e,
title: s("Read More"),
downloadLabel: (e) => s("Download {{fileName}}", { fileName: e })
})), Er = class extends Z.Component {
constructor(...e) {
super(...e), this.state = { hasError: !1 };
}
static getDerivedStateFromError() {
return { hasError: !0 };
}
componentDidCatch(e, t) {
g(e, { contexts: { react: { componentStack: t.componentStack } } });
}
render() {
return this.state.hasError ? /* @__PURE__ */ (0, Q.jsx)("h4", {
style: { textAlign: "center" },
children: "Not available offline."
}) : this.props.children;
}
}, Dr = [9148, 9151];
function Or(e) {
let t = q.EXPO === "demo", n = Dr.includes(e.id) || Dr.includes(e.externalId);
return t && n;
}
//#endregion
//#region src/utils/eventTime.ts
function kr(e) {
if (!e) return null;
let t = Date.parse(e);
return isNaN(t) ? null : t;
}
function Ar(e, t) {
let n = kr(e);
if (n === null) return {
minutes: 0,
seconds: 0,
totalSeconds: 0,
isLessThan10Minutes: !1
};
let r = n - t;
if (r <= 0) return {
minutes: 0,
seconds: 0,
totalSeconds: 0,
isLessThan10Minutes: !1
};
let i = Math.floor(r / 1e3);
return {
minutes: Math.floor(i / 60),
seconds: i % 60,
totalSeconds: i,
isLessThan10Minutes: i < 600
};
}
function jr(e, t, n) {
var r;
let i = kr(e.startDate), a = (r = kr(e.endDate)) == null ? Infinity : r;
return i === null || a === null ? "none" : t > a ? "past" : i - t <= 1e3 && t <= a || t >= i && t <= a ? "live" : n.totalSeconds > 0 && n.totalSeconds <= 3600 ? "starting-soon" : i <= t + 360 * 60 * 1e3 ? "upcoming" : "none";
}
function Mr(e) {
return e.isLessThan10Minutes ? `${String(e.minutes).padStart(2, "0")}:${String(e.seconds).padStart(2, "0")}` : `${e.minutes}`;
}
function Nr(e, t) {
switch (e) {
case "live": return s("LIVE");
case "upcoming": return s("UPCOMING");
case "starting-soon": return t.totalSeconds <= 0 ? s("Started") : t.isLessThan10Minutes ? s("Starts in {{time}}", { time: Mr(t) }) : s("Starts in {{count}} min", { count: t.minutes });
case "past": return s("PAST");
default: return "";
}
}
//#endregion
//#region src/components/EventBadgeContainer.tsx
function Pr(e) {
let [t, n] = (0, Z.useState)(() => Date.now()), r = Ar(e.startDate, t), i = jr(e, t, r), a = i !== "past" && i !== "none";
return (0, Z.useEffect)(() => {
if (!a) return;
let e = setInterval(() => n(Date.now()), 1e3);
return () => clearInterval(e);
}, [a]), {
status: i,
statusLabel: Nr(i, r),
isUrgent: i === "starting-soon" && r.isLessThan10Minutes
};
}
var Fr = I(({ event: e, ...t }) => {
let { status: n, statusLabel: r, isUrgent: i } = Pr(e);
return /* @__PURE__ */ (0, Q.jsx)(Mt, {
status: n,
statusLabel: r,
showFullBadge: Or(e),
fullLabel: s("EVENT IS FULL"),
isUrgent: i,
...t
});
});
//#endregion
//#region src/components/utils/getDescription.ts
function Ir(e) {
if (typeof e != "string" || e.length === 0) return "";
let t = e.split(RegExp("(?=!\\*\\/\\/\\|\\|\\^\\^[a-z]{2}\\^\\^\\/\\/\\|\\|\\*!)")), n = `!*//||^^${c()}^^//||*!`, r = t.find((e) => e.startsWith(n));
return r == null ? t[0].startsWith("!*//||^^") && t[0].length > 18 ? t[0].substring(18) : t[0] : r.substring(18);
}
//#endregion
//#region src/components/Event.tsx
function Lr() {
let e = (0, Z.useRef)(null), t = P(() => ({
collapsed: !0,
updateOverlayContent: null,
get event() {
return U.selectedEventItem;
},
get booth() {
var e;
return (e = this.event) != null && e.boothId ? R.boothStore.boothById.get(this.event.boothId) : null;
},
get disableCollapse() {
var e;
return (((e = this.event) == null ? void 0 : e.description) || "").length < 800;
}
})), [n, r] = (0, Z.useState)(!1), [i, a] = (0, Z.useState)(!1), o = (0, Z.useRef)(null);
(0, Z.useEffect)(() => {
(() => {
if (o.current) {
let e = o.current.offsetHeight;
r(e > 300);
}
})();
}, []), W(() => t.event, () => {
e.current && e.current.parentElement && (e.current.parentElement.scrollTop = 0), t.collapsed = !0, a(!1);
});
let s = (e) => {
let t = R.sessionsFilterStore.state.filters.use24hFormat.value;
return (0, $.default)(new Date(e), t ? "HH:MM" : "h:MMtt");
}, c = (e) => (0, $.default)(new Date(e), "dddd, mmmm d, yyyy");
return F(() => {
var e, r;
let l = t.event;
if (!l) return null;
l.name, K.boothTerm;
let u = () => {
t.collapsed = !1, setTimeout(t.updateOverlayContent);
};
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)({
"efp-event": !0,
[U.responsiveClass]: !0
}),
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event__header",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event__header-name",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event__header-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-event-solid" })
}), /* @__PURE__ */ (0, Q.jsxs)("span", {
dir: "auto",
children: [l.name, /* @__PURE__ */ (0, Q.jsx)(Fr, { event: l })]
})]
}), /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
onClick: () => R.searchStore.handleBackAction(),
className: "efp-event__header-close",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-close" })
})]
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event__buttons",
children: !U.isGuidedToursActive && /* @__PURE__ */ (0, Q.jsx)(Un, {
showBookmark: !U.disableBookmarked && !K.hideBookmarks && !U.kiosk,
showDirections: t.booth && q.wayfinding,
inBookmark: ((e = t.event) == null ? void 0 : e.bookmarked) || !1,
showShare: !0,
showVisited: !U.kiosk,
visited: ((r = t.event) == null ? void 0 : r.visited) || !1,
onClickBookmark: zr,
onClickShare: Rr,
onClickDirections: () => {
t.booth && R.routeStore.clickRoute(null, t.booth);
},
onClickVisited: Br
})
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-event__details", { "details-hidden": U.kiosk && n && !i }),
ref: o,
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-event-booths", { "is-links-disabled": U.isGuidedToursActive }),
children: [t.booth && /* @__PURE__ */ (0, Q.jsxs)("a", {
href: `?${t.booth.slug}`,
onClick: (e) => {
e.preventDefault(), R.toggleMapOverlay(), R.selectBooth(t.booth);
},
className: "efp-event-booths__booth",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-booths__booth-name",
children: t.booth.name
}), t.booth.layer && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-categories__booth-level",
children: K.shortLevelName ? t.booth.layer.shortName : t.booth.layer.description
})]
}), l.hasTracks && l.tracks.map((e) => /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-booths__track",
children: e.name
}, e.id))]
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list__block",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-event-solid" })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-content",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-item",
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list__block-info",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-title",
children: c(l.startDate)
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list__block-description",
children: [
s(l.startDate),
" to",
" ",
l.endDate ? s(l.endDate) : "-"
]
})]
})
})
})]
}), l.hasSpeakers && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list__block",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-speaker-solid" })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-content",
children: l.speakers.map((e) => /* @__PURE__ */ (0, Q.jsxs)("a", {
href: `?${e.slug}`,
onClick: (t) => {
t.preventDefault(), R.selectSpeaker(e, !0);
},
className: "efp-event-list__block-item efp-event-list__block-item--clickable",
children: [e.photoFile && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-avatar",
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: e.photoFile,
alt: e.name
})
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list__block-info",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-event-list__block-title",
children: e.name
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-event-list__block-description",
children: [e.company && /* @__PURE__ */ (0, Q.jsx)("strong", { children: e.company }), e.jobTitle && /* @__PURE__ */ (0, Q.jsx)("span", { children: e.jobTitle })]
})]
})]
}, e.id))
})]
})]
}),
(l.description || l.logoFile) && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-event-description", { collapsed: t.collapsed && !t.disableCollapse && !U.kiosk }),
children: [l.logoFile && /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-event-description__logo", { "efp-event-description__logo--left": !l.description }),
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: l.logoFile,
alt: l.name,
crossOrigin: "anonymous"
})
}), l.description && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "event-description__content",
dir: "auto",
dangerouslySetInnerHTML: { __html: tr(Ir(l.description)) },
onClick: u
})]
})
]
}),
U.kiosk && n && /* @__PURE__ */ (0, Q.jsx)(nr, {
className: (0, X.default)("efp-event__show-more", { "is-sticky": i }),
expanded: i,
onClick: () => a((e) => !e)
})
]
});
});
}
function Rr() {
let e = U.selectedEventItem;
e && (J(Y.ClickCustomButton, e.name), R.toggleModal("share"));
}
function zr() {
let e = U.selectedEventItem;
e && (e.bookmarked = !e.bookmarked, U.onBookmarkClick && U.onBookmarkClick({
name: e.name,
bookmarked: e.bookmarked,
externalId: e.externalId
}), J(Y.ClickBookmark, e.name), e.bookmarked && Xe("bookmark", e.name, "session"));
}
function Br() {
let e = U.selectedEventItem;
e && (e.visited = !e.visited, U.onVisitedClick && U.onVisitedClick({
name: e.name,
visited: e.visited,
externalId: e.externalId
}), J(Y.ClickCustomButton, e.name));
}
var Vr = I(() => U.selectedEventItem ? /* @__PURE__ */ (0, Q.jsx)(Lr, {}) : null);
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
function Hr(e, t) {
if (e == null) return {};
var n = {};
for (var r in e) if ({}.hasOwnProperty.call(e, r)) {
if (t.indexOf(r) !== -1) continue;
n[r] = e[r];
}
return n;
}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
function Ur(e, t) {
e.prototype = Object.create(t.prototype), e.prototype.constructor = e, l(e, t);
}
//#endregion
//#region ../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-transition-group/esm/config.js
var Wr = { disabled: !1 }, Gr = Z.createContext(null), Kr = function(e) {
return e.scrollTop;
}, qr = "unmounted", Jr = "exited", Yr = "entering", Xr = "entered", Zr = "exiting", Qr = /*#__PURE__*/ function(e) {
Ur(t, e);
function t(t, n) {
var r = e.call(this, t, n) || this, i = n, a = i && !i.isMounting ? t.enter : t.appear, o;
return r.appearStatus = null, t.in ? a ? (o = Jr, r.appearStatus = Yr) : o = Xr : o = t.unmountOnExit || t.mountOnEnter ? qr : Jr, r.state = { status: o }, r.nextCallback = null, r;
}
t.getDerivedStateFromProps = function(e, t) {
return e.in && t.status === "unmounted" ? { status: Jr } : null;
};
var n = t.prototype;
return n.componentDidMount = function() {
this.updateStatus(!0, this.appearStatus);
}, n.componentDidUpdate = function(e) {
var t = null;
if (e !== this.props) {
var n = this.state.status;
this.props.in ? n !== "entering" && n !== "entered" && (t = Yr) : (n === "entering" || n === "entered") && (t = Zr);
}
this.updateStatus(!1, t);
}, n.componentWillUnmount = function() {
this.cancelNextCallback();
}, n.getTimeouts = function() {
var e = this.props.timeout, t = n = r = e, n, r;
return e != null && typeof e != "number" && (t = e.exit, n = e.enter, r = e.appear === void 0 ? n : e.appear), {
exit: t,
enter: n,
appear: r
};
}, n.updateStatus = function(e, t) {
if (e === void 0 && (e = !1), t !== null) if (this.cancelNextCallback(), t === "entering") {
if (this.props.unmountOnExit || this.props.mountOnEnter) {
var n = this.props.nodeRef ? this.props.nodeRef.current : ft.default.findDOMNode(this);
n && Kr(n);
}
this.performEnter(e);
} else this.performExit();
else this.props.unmountOnExit && this.state.status === "exited" && this.setState({ status: qr });
}, n.performEnter = function(e) {
var t = this, n = this.props.enter, r = this.context ? this.context.isMounting : e, i = this.props.nodeRef ? [r] : [ft.default.findDOMNode(this), r], a = i[0], o = i[1], s = this.getTimeouts(), c = r ? s.appear : s.enter;
if (!e && !n || Wr.disabled) {
this.safeSetState({ status: Xr }, function() {
t.props.onEntered(a);
});
return;
}
this.props.onEnter(a, o), this.safeSetState({ status: Yr }, function() {
t.props.onEntering(a, o), t.onTransitionEnd(c, function() {
t.safeSetState({ status: Xr }, function() {
t.props.onEntered(a, o);
});
});
});
}, n.performExit = function() {
var e = this, t = this.props.exit, n = this.getTimeouts(), r = this.props.nodeRef ? void 0 : ft.default.findDOMNode(this);
if (!t || Wr.disabled) {
this.safeSetState({ status: Jr }, function() {
e.props.onExited(r);
});
return;
}
this.props.onExit(r), this.safeSetState({ status: Zr }, function() {
e.props.onExiting(r), e.onTransitionEnd(n.exit, function() {
e.safeSetState({ status: Jr }, function() {
e.props.onExited(r);
});
});
});
}, n.cancelNextCallback = function() {
this.nextCallback !== null && (this.nextCallback.cancel(), this.nextCallback = null);
}, n.safeSetState = function(e, t) {
t = this.setNextCallback(t), this.setState(e, t);
}, n.setNextCallback = function(e) {
var t = this, n = !0;
return this.nextCallback = function(r) {
n && (n = !1, t.nextCallback = null, e(r));
}, this.nextCallback.cancel = function() {
n = !1;
}, this.nextCallback;
}, n.onTransitionEnd = function(e, t) {
this.setNextCallback(t);
var n = this.props.nodeRef ? this.props.nodeRef.current : ft.default.findDOMNode(this), r = e == null && !this.props.addEndListener;
if (!n || r) {
setTimeout(this.nextCallback, 0);
return;
}
if (this.props.addEndListener) {
var i = this.props.nodeRef ? [this.nextCallback] : [n, this.nextCallback], a = i[0], o = i[1];
this.props.addEndListener(a, o);
}
e != null && setTimeout(this.nextCallback, e);
}, n.render = function() {
var e = this.state.status;
if (e === "unmounted") return null;
var t = this.props, n = t.children;
t.in, t.mountOnEnter, t.unmountOnExit, t.appear, t.enter, t.exit, t.timeout, t.addEndListener, t.onEnter, t.onEntering, t.onEntered, t.onExit, t.onExiting, t.onExited, t.nodeRef;
var r = Hr(t, [
"children",
"in",
"mountOnEnter",
"unmountOnExit",
"appear",
"enter",
"exit",
"timeout",
"addEndListener",
"onEnter",
"onEntering",
"onEntered",
"onExit",
"onExiting",
"onExited",
"nodeRef"
]);
return /*#__PURE__*/ Z.createElement(Gr.Provider, { value: null }, typeof n == "function" ? n(e, r) : Z.cloneElement(Z.Children.only(n), r));
}, t;
}(Z.Component);
Qr.contextType = Gr, Qr.propTypes = {};
function $r() {}
Qr.defaultProps = {
in: !1,
mountOnEnter: !1,
unmountOnExit: !1,
appear: !1,
enter: !0,
exit: !0,
onEnter: $r,
onEntering: $r,
onEntered: $r,
onExit: $r,
onExiting: $r,
onExited: $r
}, Qr.UNMOUNTED = qr, Qr.EXITED = Jr, Qr.ENTERING = Yr, Qr.ENTERED = Xr, Qr.EXITING = Zr;
//#endregion
//#region src/components/RebookingNotesContainer.tsx
var ei = I((e) => /* @__PURE__ */ (0, Q.jsx)(Cn, {
noteLabel: s("Note"),
saveButtonLabel: s("Save note"),
saveButtonAriaLabel: s("Save rebooking note"),
...e
})), ti = {
[Ie.Unasked]: "Unasked",
[Ie.Accepted]: "Accepted",
[Ie.Rejected]: "Rejected",
[Ie.Undecided]: "Undecided"
}, ni = () => Object.entries(Te).map(([e, t]) => ({
value: e,
label: s(ti[Number(e)]),
iconName: t.iconName,
color: t.color.primary
})), ri = I((e) => {
let { showTitle: t, ...n } = e;
return /* @__PURE__ */ (0, Q.jsx)(wn, {
options: ni(),
title: t ? s("Choose Rebooking offer") : void 0,
...n
});
}), ii = Z.lazy(() => import(
/* webpackChunkName: "gallery" */
"./GalleryContainer-Do5QXu8h.js"
).then((e) => e.t)), ai = I(function() {
let e = P(() => ({
collapsed: !0,
get exhibitor() {
return U.selectedExhibitor;
},
get websiteTrimmed() {
return this.exhibitor.website ? this.exhibitor.website.replace(/^(http(s?):\/\/)([^/]+)(\/)?$/i, "$3") : "";
},
get anySocial() {
return !U.kiosk && !![
"facebook",
"instagram",
"linkedin",
"twitter",
"googlePlus",
"xing",
"youtube"
].find((e) => this.exhibitor[e]);
},
get anyAddress() {
return !![
"address",
"address2",
"phone1",
"website",
"email"
].find((e) => this.exhibitor[e]);
},
get anyMedia() {
return !!this.exhibitor.videoUrl || !!(this.exhibitor.gallery && this.exhibitor.gallery.length);
},
get anyButtons() {
return !!(this.exhibitor.customButtonTitle || this.exhibitor.customButton2Title || this.exhibitor.customButton3Title);
},
get disableCollapse() {
return !this.anySocial && !this.anyAddress && !this.anyMedia && !this.anyButtons || U.overlayPosition === "left" && (this.exhibitor.description || "").length < 800;
},
get showEdit() {
return !!(K.sendLoginLinkUrl && this.sendLinkEmail);
},
get sendLinkEmail() {
return this.exhibitor.privateEmail || this.exhibitor.email;
}
})), { heatmapBar: t } = Yn(e.exhibitor), [n, r] = (0, Z.useState)(!1), [i, a] = (0, Z.useState)(!1), o = (0, Z.useRef)(null);
(0, Z.useEffect)(() => () => {
R.exhibitorStore.rebookingStateChangeRequested = !1;
}, []);
let c = e.exhibitor;
(0, Z.useEffect)(() => {
let e = o.current;
if (!e) return;
let t = new pt.ResizeObserver(() => r(e.scrollHeight > 300));
return t.observe(e), () => t.disconnect();
}, [c]), W(() => e.exhibitor, () => {
e.collapsed = !0, a(!1);
});
function l(e, t) {
if (d(t), U.kiosk) return e.preventDefault();
}
function u(t, n, r) {
J(Y.ClickCustomButton, e.exhibitor.name);
let i = {
externalId: e.exhibitor.externalId,
buttonNumber: t,
buttonUrl: n,
preventDefault: r.preventDefault.bind(r)
};
U.onExhibitorCustomButtonClick && U.onExhibitorCustomButtonClick(i);
}
function d(t) {
J(t, e.exhibitor.name);
}
let f = (0, Z.useRef)(null), p = {
entering: { opacity: 1 },
entered: { opacity: 1 },
exiting: { opacity: 0 },
exited: { opacity: 0 }
};
return F(() => {
var r, c, m, b, x;
let S = e.exhibitor, C = K.isRebooking ? (() => {
let e = /* @__PURE__ */ new Set();
for (let t of S.booths) t instanceof Ae && t.size && e.add(t.size);
let t = Array.from(e);
return /* @__PURE__ */ (0, Q.jsxs)("div", { children: [
t.length > 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__infos",
style: {
padding: "0 15px",
marginBottom: "1rem"
},
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-size" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-title",
children: s("Size")
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "booth__info-val",
children: t.join(", ")
})]
})]
})
}),
/* @__PURE__ */ (0, Q.jsx)(ri, {
value: S.rebookingState.toString(),
onChange: (e) => R.exhibitorStore.setRebookingState(S, parseInt(e), S.rebookingNote)
}),
/* @__PURE__ */ (0, Q.jsx)(ei, {
value: S.rebookingNote || "",
onSave: (e) => R.exhibitorStore.setRebookingState(S, S.rebookingState, e)
}, S.id),
/* @__PURE__ */ (0, Q.jsx)(Qr, {
in: R.exhibitorStore.rebookingStateChangeRequested,
nodeRef: f,
timeout: 150,
appear: !0,
enter: !0,
exit: !0,
mountOnEnter: !0,
unmountOnExit: !0,
children: (e) => /* @__PURE__ */ (0, Q.jsx)("div", {
ref: f,
style: {
position: "fixed",
bottom: "1rem",
left: "1rem",
zIndex: 9999,
transition: "opacity 150ms ease-in-out",
opacity: 0,
...p[e]
},
children: /* @__PURE__ */ (0, Q.jsx)(Ln, {
title: R.exhibitorStore.rebookingStateSaved ? s("Changes saved") : s("Oops! Something went wrong"),
variant: R.exhibitorStore.rebookingStateSaved ? "success" : "error",
inline: !0,
closable: !0,
onClose: () => {
R.exhibitorStore.rebookingStateChangeRequested = !1;
}
})
})
})
] });
})() : null, w = (0, X.default)({
exhibitor: !0,
"is-featured": S.featured,
bookmarked: S.bookmarked,
[U.responsiveClass]: !0
}), T = () => {
e.collapsed = !1;
};
function E(e, t, n) {
return !e || !t || U.kiosk || U.previewMode ? null : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-custom-button",
children: /* @__PURE__ */ (0, Q.jsx)(k, {
link: t,
inline: !0,
onClick: (e) => {
u(n, t, e);
},
target: "_blank",
children: e
})
}, n);
}
function D() {
let e = [
E(S.customButtonTitle, S.customButtonUrl, 1),
E(S.customButton2Title, S.customButton2Url, 2),
E(S.customButton3Title, S.customButton3Url, 3)
].filter(Boolean);
return e.length === 0 ? null : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-custom-buttons",
children: e
});
}
function O() {
return !K.hideShareButton && !U.kiosk && window.location.host.endsWith(".expofp.com") && q.EXPO !== "globalaltsmiami2024";
}
let A = () => {
R.routeStore.clickRoute(null, R.routeStore.tempToBooth || S.booths[0]), R.routeStore.currentRouteExhibitor = S;
}, j = (e) => /^\d+$/.test(e), M = (e) => {
var t, n;
return K.shortLevelName ? (t = e.layer) == null ? void 0 : t.shortName : (n = e.layer) == null ? void 0 : n.description;
};
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: w,
"aria-label": s("Details"),
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor__header",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor__header-name",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor__header-icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-exhibitor-solid" })
}),
/* @__PURE__ */ (0, Q.jsx)("span", {
dir: "auto",
children: S.name
}),
t
]
}), /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
onClick: () => R.searchStore.handleBackAction(),
className: "exhibitor__header-close",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-close" })
})]
}), C || /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor__buttons",
children: !U.isGuidedToursActive && /* @__PURE__ */ (0, Q.jsx)(Un, {
showBookmark: !U.disableBookmarked && !K.hideBookmarks && !U.kiosk,
showDirections: S.booths.length > 0 && q.wayfinding,
inBookmark: S.bookmarked,
showShare: O(),
showVisited: !U.kiosk,
visited: S.visited,
onClickBookmark: v,
onClickShare: h,
onClickDirections: A,
onClickVisited: y
})
}),
S.leadingImageUrl ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor__leading-image-container exhibitor-slider",
children: S.leadingImageLinkUrl ? /* @__PURE__ */ (0, Q.jsx)("a", {
href: S.leadingImageLinkUrl,
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: S.leadingImageUrl,
className: "exhibitor__leading-image",
alt: "",
crossOrigin: "anonymous"
})
}) : /* @__PURE__ */ (0, Q.jsx)(Er, { children: /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(ii, {
className: U.responsiveClass,
onOpenGallery: () => R.openGallery(),
onCloseGallery: () => R.closeGallery(),
leading: !0,
images: [S.leadingImageUrl]
})
}) })
}) : null,
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("exhibitor__details", { "details-hidden": U.kiosk && n && !i }),
ref: o,
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("exhibitor-categories", { "is-links-disabled": U.isGuidedToursActive }),
children: [
S.featured && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-featured",
children: s("Featured")
}),
S.booths.map((e) => {
let t = M(e);
return /* @__PURE__ */ (0, Q.jsxs)("a", {
href: `?${e.slug}`,
onClick: (t) => {
t.preventDefault(), R.toggleMapOverlay(), R.selectBooth(e);
},
className: "exhibitor-categories__booth",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-categories__booth-name",
children: e.name
}), t && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-categories__booth-level",
children: [j(t) ? s("Level") + " " : "", t]
})]
}, e.id);
}),
S.categories.map((e) => /* @__PURE__ */ (0, Q.jsx)("a", {
href: "?" + encodeURIComponent(e.slug),
onClick: (t) => {
t.preventDefault(), g(e);
},
className: e.sponsorship ? "exhibitor-categories__sponsorship" : "exhibitor-categories__cat",
children: e.name
}, e.id))
]
}),
S.description || (r = S.logo) != null && r.url ? /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("exhibitor-description", { collapsed: e.collapsed && !e.disableCollapse }),
children: [(c = S.logo) != null && c.url ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("exhibitor-description__logo", { "exhibitor-description__logo--left": !S.description }),
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: S.logo.url,
alt: S.name,
crossOrigin: "anonymous"
})
}) : null, S.description ? /* @__PURE__ */ (0, Q.jsx)("span", {
className: "exhibitor-description__content",
dir: "auto",
dangerouslySetInnerHTML: { __html: Ir(S.description) },
onClick: T
}) : null]
}) : null,
(!!((m = S.schedule) != null && m.length) || !!((b = S.booths[0]) != null && b.schedule.length)) && /* @__PURE__ */ (0, Q.jsx)(ar, { events: [...S.schedule || ((x = S.booths[0]) == null ? void 0 : x.schedule) || []].sort((e, t) => new Date(e.startDate).getTime() - new Date(t.startDate).getTime()) }),
!U.kiosk && S.videoUrl && navigator.onLine && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-video",
children: /* @__PURE__ */ (0, Q.jsx)("iframe", {
src: S.videoUrl,
"data-allow": "encrypted-media; autoplay; fullscreen",
title: s("Exhibitor Video"),
allowFullScreen: !0
})
}),
S.gallery && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-slider",
onClick: () => d(Y.ViewGallery),
children: /* @__PURE__ */ (0, Q.jsx)(Er, { children: /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(ii, {
className: U.responsiveClass,
onOpenGallery: () => R.openGallery(),
onCloseGallery: () => R.closeGallery(),
images: S.gallery
})
}) })
}),
!U.kiosk && S.marketMaterials && /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [/* @__PURE__ */ (0, Q.jsx)("div", { className: "exhibitor-sep" }), /* @__PURE__ */ (0, Q.jsx)(Tr, { list: S.marketMaterials })] }),
e.showEdit && /* @__PURE__ */ (0, Q.jsx)("div", { className: "exhibitor-sep" }),
!U.kiosk && e.showEdit && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-edit",
children: /* @__PURE__ */ (0, Q.jsx)(k, {
size: "sm",
variant: "secondary",
onClick: _,
children: s("Edit")
})
}),
e.anyAddress && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta",
children: [
!!(S.address || S.address2) && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-marker-pin-solid" })
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta__content",
children: [
S.address,
!!S.address2 && /* @__PURE__ */ (0, Q.jsx)("div", { children: S.address2 }),
!!(S.city || S.state || S.zip) && /* @__PURE__ */ (0, Q.jsxs)("div", { children: [
S.city,
!!(S.city && S.state) && /* @__PURE__ */ (0, Q.jsx)("span", { children: " " }),
S.state,
!!(S.state && S.zip) && /* @__PURE__ */ (0, Q.jsx)("span", { children: "\xA0" }),
" ",
S.zip
] }),
!!S.country && /* @__PURE__ */ (0, Q.jsx)("div", { children: S.country })
]
})]
}),
!!S.phone1 && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-phone-solid" })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__content",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
dir: "ltr",
href: "tel:" + S.phone1,
className: "exhibitor-meta__link",
onClick: (e) => l(e, Y.ClickPhone),
children: S.phone1
})
})]
}),
!!S.website && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-globe-solid" })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__content",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
href: S.website,
target: "_blank",
rel: "noopener noreferrer",
className: "exhibitor-meta__link",
onClick: (e) => l(e, Y.ClickWebsite),
children: e.websiteTrimmed
})
})]
}),
!!S.email && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-mail-at-solid" })
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "exhibitor-meta__content",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
href: "mailto:" + S.email,
target: "_blank",
rel: "noopener noreferrer",
className: "exhibitor-meta__link",
onClick: (e) => l(e, Y.ClickEmail),
children: S.email
})
})]
}),
e.anySocial && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "exhibitor-meta__socials",
children: [
/* @__PURE__ */ (0, Q.jsx)("a", {
href: S.facebook,
className: "exhibitor-meta__social",
onClick: () => d(Y.ClickFacebook),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-facebook" })
}),
/* @__PURE__ */ (0, Q.jsx)("a", {
href: S.instagram,
className: "exhibitor-meta__social",
onClick: () => d(Y.ClickInstagaram),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-instagram" })
}),
/* @__PURE__ */ (0, Q.jsx)("a", {
href: S.linkedin,
className: "exhibitor-meta__social",
onClick: () => d(Y.ClickLinkedin),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-linkedin" })
}),
/* @__PURE__ */ (0, Q.jsx)("a", {
href: S.twitter,
className: "exhibitor-meta__social",
onClick: () => d(Y.ClickTwitter),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-twitter-x" })
}),
/* @__PURE__ */ (0, Q.jsx)("a", {
href: S.xing,
className: "exhibitor-meta__social",
onClick: () => d(Y.ClickXing),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-xing" })
}),
/* @__PURE__ */ (0, Q.jsx)("a", {
href: S.youtube,
className: "exhibitor-meta__social",
onClick: () => d(Y.ClickYoutube),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-youtube" })
})
]
})
]
}),
D()
]
}),
U.kiosk && n && /* @__PURE__ */ (0, Q.jsx)(nr, {
className: (0, X.default)("exhibitor__show-more", { "is-sticky": i }),
expanded: i,
onClick: () => a((e) => !e)
})
] })]
});
});
function h() {
let t = {
title: e.exhibitor.name,
url: window.location.href
};
se && typeof navigator.canShare == "function" && navigator.canShare(t) ? navigator.share(t) : R.toggleModal("share");
}
function g(e) {
R.clickCategory(e);
}
function _(t) {
if (U.kiosk) return t.preventDefault();
t.target.blur();
let n = e.sendLinkEmail;
if (!window.confirm(s("Send login instructions to {{email}} to edit profile?", { email: n })) || q.EXPO === "expo") return;
let r = new XMLHttpRequest();
r.open("POST", K.sendLoginLinkUrl), r.setRequestHeader("Content-Type", "application/json");
function i() {
alert(s("Error sending login instructions"));
}
r.onload = function() {
if (this.status !== 200) {
i();
return;
}
alert(s("A link to edit profile was sent to {{email}}", { email: n }));
}, r.onerror = function(e) {
m.error("Error", e), i();
}, r.send(JSON.stringify({ id: e.exhibitor.id }));
}
function v() {
e.exhibitor.bookmarked = !e.exhibitor.bookmarked, U.onBookmarkClick && U.onBookmarkClick({
name: e.exhibitor.name,
bookmarked: e.exhibitor.bookmarked,
externalId: e.exhibitor.externalId
}), e.exhibitor.bookmarked && Xe("bookmark", e.exhibitor.id, "exhibitor");
}
function y() {
e.exhibitor.visited = !e.exhibitor.visited, U.onVisitedClick && U.onVisitedClick({
name: e.exhibitor.name,
visited: e.exhibitor.visited,
externalId: e.exhibitor.externalId
});
}
}), oi = () => F(() => /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: !U.menu && U.selectedExhibitor ? /* @__PURE__ */ (0, Q.jsx)(ai, {}) : null }));
//#endregion
//#region src/components/Filter.tsx
function si() {
let e = (0, Z.useRef)(), t = P(() => ({
updateOverlayContent: null,
get list() {
return U.list;
}
})), n = (0, Z.useCallback)(() => {
t.updateOverlayContent && t.updateOverlayContent();
}, [t.updateOverlayContent]);
return F(() => /* @__PURE__ */ (0, Q.jsx)(br, {
updateScroll: n,
updatedScrollableRef: e
}));
}
var ci = () => F(() => /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: !U.details && !U.menu && U.list.type === "filter" && /* @__PURE__ */ (0, Q.jsx)(si, {}) })), li = 8e3, ui = {
base: 62 / 16,
minHeight: 20 / 16,
maxHeight: 44 / 16,
maxWidth: 140 / 16,
spacing: 20 / 16
}, di = {
base: 62 / 16,
minHeight: 20 / 16,
maxHeight: 44 / 16,
maxWidth: 110 / 16,
spacing: 20 / 16
}, fi = .5;
function pi(e, t) {
let n = e ? di : ui;
return {
base: t(n.base),
exponent: fi,
minHeight: t(n.minHeight),
maxHeight: t(n.maxHeight),
maxWidth: t(n.maxWidth),
spacing: t(n.spacing)
};
}
//#endregion
//#region src/components/HeaderLogos/logo-page.ts
function mi(e, t, n, r, i) {
let a = e.length, o = {
items: [],
next: a ? t % a : 0,
fitsAll: !1,
wrapped: !1
};
if (!a) return o;
let s = [], c = [];
for (let r = 0; r < a; r++) {
let i = (t + r) % a, o = n(e[i]);
o !== void 0 && (s.push(i), c.push(o));
}
if (!s.length) return o;
let l = Math.max(1, zt(c, r, i)), u = s.slice(0, l), d = (u[u.length - 1] + 1) % a;
return {
items: u.map((t) => e[t]),
next: d,
fitsAll: l === s.length,
wrapped: d <= t % a
};
}
function hi(e, t, n) {
return t >= n ? !1 : e.items.length === 0 || e.fitsAll || e.wrapped || t - e.next < e.items.length;
}
var gi = (0, (/* @__PURE__ */ e(d(), 1)).default)("efp:header-logos");
function _i(e) {
var t;
let n = be(e) === e.url || (t = e.smallUrl) == null ? e.url : t;
return n === e.url ? { fallback: e.url } : {
preferred: n,
fallback: e.url
};
}
function vi(e, t) {
let [n, r] = (0, Z.useState)(() => /* @__PURE__ */ new Map()), [i, a] = (0, Z.useState)(0), [o, s] = (0, Z.useState)(() => Math.min(t, e.length));
return (0, Z.useEffect)(() => {
if (i >= o) return;
let t = !1, n = e.slice(i, o);
return ce(new Map(n.flatMap((e) => e.logo ? [[e.id, _i(e.logo)]] : []))).then((e) => {
var i;
if (!t) {
for (let t of n) e.has(t.id) || gi("logo did not load", t.id, (i = t.logo) == null ? void 0 : i.url);
r((t) => {
let n = new Map(t);
for (let [t, r] of e) n.set(t, {
src: r.src,
aspectRatio: r.naturalWidth / r.naturalHeight
});
return n;
}), a(o);
}
}), () => {
t = !0;
};
}, [
e,
i,
o
]), {
loaded: n,
attempted: i,
loadMore: (0, Z.useCallback)(() => {
s((n) => n > i ? n : Math.min(e.length, i + t));
}, [
i,
t,
e.length
])
};
}
//#endregion
//#region src/components/HeaderLogos/use-logo-rotation.ts
function yi(e, t, n) {
return e.maxWidth === n && e.next === t.next && e.fitsAll === t.fitsAll && e.wrapped === t.wrapped && e.items.length === t.items.length && e.items.every((e, n) => e === t.items[n]);
}
function bi(e) {
var t;
let { ready: n, layoutKey: r, paused: i, delayMs: a, debounceMs: o } = e, [s, c] = (0, Z.useState)(null), [l, u] = (0, Z.useState)(0), d = (0, Z.useRef)({
options: e,
state: s
});
(0, Z.useLayoutEffect)(() => {
d.current = {
options: e,
state: s
};
});
let f = (0, Z.useRef)(null), p = (0, Z.useCallback)((e, t) => {
let { options: n, state: r } = d.current, i = n.measureWidth(), a = mi(n.items, e, n.widthOf, i, n.spacing);
if (f.current = n.layoutKey, u((e) => e + 1), !t && (r == null ? void 0 : r.start) === e && yi(r.page, a, i)) return;
let o = r ? r.page.seq + +!!t : 0;
c({
start: e,
page: {
...a,
maxWidth: i,
seq: o
}
});
}, []);
return (0, Z.useEffect)(() => {
n && p(0, !1);
}, [n, p]), (0, Z.useEffect)(() => {
if (!n) return;
let e = setTimeout(() => {
let { options: e, state: t } = d.current;
t && f.current !== e.layoutKey && p(t.start, !1);
}, o);
return () => clearTimeout(e);
}, [
n,
r,
o,
p
]), (0, Z.useEffect)(() => {
if (!s || s.page.fitsAll || !s.page.items.length || i) return;
let e = setTimeout(() => p(s.page.next, !0), a);
return () => clearTimeout(e);
}, [
s,
i,
a,
p
]), {
page: (t = s == null ? void 0 : s.page) == null ? null : t,
pass: l
};
}
//#endregion
//#region src/components/HeaderLogos/HeaderLogos.tsx
function xi(e) {
if (!e) return 0;
let t = getComputedStyle(e);
return e.clientWidth - (parseFloat(t.paddingLeft) || 0) - (parseFloat(t.paddingRight) || 0);
}
function Si() {
U.wsStarted || v(() => U.wsStarted = !0);
}
var Ci = I(() => {
var e;
let [t] = (0, Z.useState)(() => me([...z.advertised])), n = (0, Z.useRef)(null), [r, i] = (0, Z.useState)(!1), { loaded: a, attempted: o, loadMore: s } = vi(t, 100), c = (0, Z.useMemo)(() => t.slice(0, o), [t, o]), l = U.screenWidth, { uiScale: u } = U, d = l <= 768, f = (0, Z.useMemo)(() => pi(d, (e) => U.scaledRemsToPixels(e)), [d, u]), p = (e) => {
let t = a.get(e);
return t && Rt(t.aspectRatio, f);
}, { page: m, pass: h } = bi({
items: c,
ready: o > 0,
widthOf: (e) => {
var t;
return (t = p(e.id)) == null ? void 0 : t.width;
},
measureWidth: () => xi(n.current),
spacing: f.spacing,
layoutKey: `${l}:${u}:${o}`,
paused: r,
delayMs: li,
debounceMs: 250
}), g = (0, Z.useRef)(0);
(0, Z.useEffect)(() => {
!m || g.current === h || (g.current = h, hi(m, o, t.length) && s());
}, [
m,
h,
o,
t.length,
s
]), (0, Z.useEffect)(() => {
m && Si();
}, [m]), (0, Z.useEffect)(() => Si, []);
let _ = [], v = /* @__PURE__ */ new Map();
for (let t of (e = m == null ? void 0 : m.items) == null ? [] : e) {
let e = a.get(t.id), n = p(t.id);
if (!e || !n) continue;
n.width + f.spacing > m.maxWidth && (n = Rt(e.aspectRatio, {
...f,
maxWidth: Math.max(0, m.maxWidth - f.spacing)
}));
let r = `${m.seq}:${t.id}`;
v.set(r, t), _.push({
key: r,
src: e.src,
alt: t.name,
href: `?${t.slug}`,
...n
});
}
return /* @__PURE__ */ (0, Q.jsx)(Lt, {
ref: n,
items: _,
spacing: m ? Bt(_.map((e) => e.width), m.maxWidth, f.spacing, 2 * f.spacing) : f.spacing,
className: (0, X.default)("efp-header-logos", `efp-header-logos--${U.wsPosition}`, { "efp-semi-transparent": U.setKioskModeEnabled }),
style: { opacity: +!!U.wsStarted },
onPointerEnter: (e) => e.pointerType === "mouse" && i(!0),
onPointerLeave: (e) => e.pointerType === "mouse" && i(!1),
onItemClick: (e, t) => {
t.preventDefault();
let n = v.get(e);
n && (He(n), R.clickExhibitor(n));
}
});
});
//#endregion
//#region src/components/heatmap-legend-ticks.ts
function wi(e, t, n) {
let r = t - e, i = r <= 0 ? 2 : Math.min(r + 1, 5);
return Array.from({ length: i }, (r, a) => {
let o = a / (i - 1), s = Math.round(e + (t - e) * o);
return {
value: s,
color: O(s, e, t, n)
};
});
}
//#endregion
//#region src/components/HeatmapLegendContainer.tsx
var Ti = I((e) => {
let { min: t, max: n } = V.minAndMaxClicks, r = wi(t, n, q.heatmapColors);
return /* @__PURE__ */ (0, Q.jsx)(Nt, {
...e,
ticks: r,
ariaLabel: s("Heatmap intensity scale")
});
}), Ei = I(({ item: e }) => /* @__PURE__ */ (0, Q.jsx)(Sn, {
name: "language",
label: e.name,
value: e.id,
checked: e.id === c(),
className: "language-row",
ariaLabel: s("Change language to {{language}}", { language: e.name }),
onChange: () => o(e.id)
})), Di = () => import(
/* webpackChunkName: "react-virtuoso-list" */
"./dist-DrhAFaXl.js"
).then((e) => ({ default: e.Virtuoso })).catch(() => new Promise((e) => setTimeout(() => e(Di()), 3e3))), Oi = (0, Z.lazy)(Di);
function ki({ updatedScrollableRef: e, updateScroll: t }) {
let [n, r] = (0, Z.useState)(null), i = (0, Z.useRef)(null);
(0, Z.useEffect)(() => {
r(e == null ? null : e);
}, [e]), (0, Z.useEffect)(() => {
let e = U.getListScrollTop(U.list.type);
if (e > 0) {
let t = setTimeout(() => {
i.current && i.current.scrollTo({
top: e,
behavior: "auto"
});
}, 100);
return () => clearTimeout(t);
}
}, [U.list.type]);
let a = (0, Z.useCallback)(() => {
if (i.current) i.current.getState((e) => {
var t;
let n = (e == null ? void 0 : e.scrollTop) || 0;
U.setListScrollTop((t = U.list) == null ? void 0 : t.type, n);
});
else if (n != null && n.current) {
var e;
U.setListScrollTop((e = U.list) == null ? void 0 : e.type, n.current.scrollTop || 0);
}
}, [n]);
(0, Z.useEffect)(() => () => {
a();
}, []);
let o = ({ index: e }) => {
let t = U.listItems[e];
return t.entity.type === "language" ? /* @__PURE__ */ (0, Q.jsx)(Ei, { item: t }, t.id) : (console.error("Invalid item type"), null);
}, s = () => {
t && setTimeout(t);
}, l = () => {
t && t();
};
return F(() => {
let e = U.listItems.findIndex((e) => e.id === c());
return /* @__PURE__ */ (0, Q.jsx)("div", {
style: {
height: "100%",
cursor: "pointer",
resize: "both",
minHeight: 100
},
children: n && /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: /* @__PURE__ */ (0, Q.jsx)(Pn, {
active: !0,
isCenter: !0
}),
children: /* @__PURE__ */ (0, Q.jsx)(Oi, {
ref: i,
className: "list-virtual",
style: { minHeight: U.listItems.length ? "1px" : 0 },
data: U.listItems,
itemContent: (e) => o({ index: e }),
itemsRendered: s,
totalListHeightChanged: l,
customScrollParent: n.current,
totalCount: U.listItems.length,
overscan: 20,
increaseViewportBy: 200,
initialTopMostItemIndex: e === -1 ? 0 : e,
components: { EmptyPlaceholder: () => /* @__PURE__ */ (0, Q.jsx)("div", {
className: "list-empty",
children: "No items to show"
}) }
})
})
});
});
}
//#endregion
//#region src/components/Language.tsx
var Ai = I(() => {
let e = (0, Z.useRef)();
return !K.hideLanguage && !U.details && U.list.type === "language" && /* @__PURE__ */ (0, Q.jsx)(ki, { updatedScrollableRef: e });
}), ji = I(() => {
var e;
return (e = U.globalErrorMessages) != null && e.length ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "global-error-message",
children: U.globalErrorMessages.map((e, t) => /* @__PURE__ */ (0, Q.jsx)(Ln, {
variant: "error",
closable: !0,
title: e.title,
onClose: () => U.popGlobalErrorMessage(),
children: e.body
}, t))
}) : null;
}), Mi = I(function() {
if (!ee.enabled || U.kiosk) return null;
let e = () => {
let e = window;
typeof e.Intercom == "function" && e.Intercom("show");
}, t = ee.unreadCount;
return /* @__PURE__ */ (0, Q.jsxs)("button", {
className: "efp-intercom-launcher",
type: "button",
"aria-label": s("Open chat"),
onClick: e,
children: [/* @__PURE__ */ (0, Q.jsx)("svg", {
width: "24",
height: "24",
viewBox: "0 0 28 32",
fill: "currentColor",
"aria-hidden": "true",
focusable: "false",
children: /* @__PURE__ */ (0, Q.jsx)("path", { d: "M28 32s-4.714-1.855-8.527-3.34H3.437C1.54 28.66 0 27.026 0 25.013V3.644C0 1.633 1.54 0 3.437 0h21.125c1.898 0 3.437 1.632 3.437 3.645v18.404H28V32zm-4.139-11.982a.88.88 0 00-1.292-.105c-.03.026-3.015 2.681-8.57 2.681-5.486 0-8.517-2.636-8.571-2.684a.88.88 0 00-1.29.107 1.01 1.01 0 00-.219.708.992.992 0 00.318.664c.142.128 3.537 3.15 9.762 3.15 6.226 0 9.621-3.022 9.763-3.15a.992.992 0 00.317-.664 1.01 1.01 0 00-.218-.707z" })
}), t > 0 && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-intercom-launcher__badge",
"aria-label": s("Unread messages"),
children: t > 99 ? "99+" : t
})]
});
}), Ni = ["ice-gaming2026"];
function Pi(e) {
return Ni.includes(q.EXPO) ? {
layout: "compact-list",
useShortNames: e
} : {
layout: e ? "compact-list" : "dropdown",
useShortNames: e
};
}
var Fi = I(() => {
let e = R.layerStore.floors;
if (!(R.layerStore.mode === Me.Radio || R.layerStore.mode === Me.CheckBox) || e.length === 0) return null;
let { layout: t, useShortNames: n } = Pi(K.shortLevelName), r = e.map((e) => ({
id: e.layer.description,
label: n ? e.shortName : e.description,
active: e.active,
disabled: e.disabled
}));
return /* @__PURE__ */ (0, Q.jsx)(It, {
floors: r,
layout: t,
onSelect: (t) => {
let n = e.find((e) => e.layer.description === t);
!n || n.disabled || R.layerStore.selectFloor(n.layer);
},
floorSelectionLabel: s("Floor selection"),
currentFloorLabel: s("Current Floor"),
floorLabel: s("Floor")
});
}), Ii = document.referrer && (document.referrer.indexOf("app.expofp.com") > -1 || document.referrer.indexOf("app-show.expofp.com") > -1), Li = (0, Z.lazy)(() => import("./lib-5KOc2jVl.js").then((t) => /* @__PURE__ */ e(t.default, 1)).then((e) => {
var t;
return { default: (t = e.QRCode) == null ? e.default : t };
})), Ri = /* @__PURE__ */ e(ye(), 1), zi = ["info-techlive2025", "metstrade-superyacht2023"];
function Bi() {
return zi.includes(q.EXPO);
}
var Vi = ae(() => {
var e;
let t = (e = Ve()) == null || (e = e.properties) == null ? void 0 : e.style;
return q.backgroundColor !== "none" && (0, Ri.default)(q.backgroundColor).isDark() || typeof t == "string" && t.includes("dark");
});
function Hi() {
var e, t, n, i;
let a = P(() => {
let e = (e, t, n, r) => ({
width: r,
opacity: +!!U.wsStarted
}), t = Bi() || U.rtl ? "left" : "right";
return {
get style() {
let n = pe((U.overlayPosition, 1));
if (U.overlayPosition === "left") {
let r = U.mapVisibleBottom + n;
return e("bottom", t, r, "5rem");
} else return e("bottom", t, 20, "4.5rem");
},
get warningStyle() {
let n = pe(U.overlayPosition === "left" ? 1 : .5);
if (U.overlayPosition === "left") {
let r = U.mapVisibleBottom + 2 * n;
return e("bottom", t, r, "3rem");
} else {
let r = U.mapVisibleTop + 2 * n;
return R.maplibreStore.showMaplibre && (r = pe(.5)), e("top", t, r, "2rem");
}
}
};
}), o = Math.round(((e = (t = fe().__fpStat) == null ? void 0 : t.dataSize) == null ? 0 : e) / 1024 / 1024), c = Ii && o >= 10, l = Ii && !Ve() && K.allow3dView && !U.kiosk && !U.heatmap, u = U.kiosk && !((n = U.selectedRoute) != null && n.to) && !((i = U.selectedRoute) != null && i.from), d = (0, X.default)("efp-qr", { "is-right": Bi() || U.rtl });
return F(() => /* @__PURE__ */ (0, Q.jsxs)("div", { children: [
!R.maplibreStore.showMaplibre && /* @__PURE__ */ (0, Q.jsx)("a", {
href: re(ie.SUBDOMAIN_LOGO),
target: "_blank",
rel: "noopener noreferrer",
className: (0, X.default)("logo-overlay", { invert: Vi() }),
style: a.style,
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: `${r}expofp-overlay.png`,
alt: s("Made with ExpoFP"),
crossOrigin: "anonymous"
})
}),
c && /* @__PURE__ */ (0, Q.jsx)(Ln, {
title: s("This floor plan is too big"),
variant: "warning",
showIcon: !0,
position: "bottom-right",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
rel: "noopener noreferrer",
target: "_blank",
href: "https://expofp.com/pages/huge-fp-warning",
children: s("Read how to optimize it")
})
}),
l && /* @__PURE__ */ (0, Q.jsx)(Ln, {
title: s("3D view is hidden"),
variant: "warning",
showIcon: !0,
position: "bottom-right",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
rel: "noopener noreferrer",
target: "_blank",
href: "https://expofp.com/pages/expofp-mapbox-integration",
children: s("Setup mapbox first")
})
}),
u && /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)(d, { "efp-semi-transparent": U.setKioskModeEnabled }),
children: [/* @__PURE__ */ (0, Q.jsx)("div", { children: s("View Map on Phone") }), /* @__PURE__ */ (0, Q.jsx)(Li, {
value: U.viewMapOnPhoneQRCodeUrl,
size: 100
})]
})
})
] }));
}
//#endregion
//#region src/utils/camera-map-settings.ts
function Ui(e) {
let t = {};
return e.x !== void 0 && e.y !== void 0 && (t.centerxy = `${e.x},${e.y}`), e.lat !== void 0 && e.lng !== void 0 && (t.center = `${e.lat},${e.lng}`), e.floor !== void 0 && (t.z = e.floor), e.bearing !== void 0 && (t.bearing = e.bearing), e.zoomTime !== void 0 && (t.zoomtime = e.zoomTime), e.pitchTime !== void 0 && (t.pitchtime = e.pitchTime), e.pitchDegrees !== void 0 && (t.pitchdegrees = e.pitchDegrees), t;
}
function Wi(e) {
let t = {}, n = Gi(e.centerxy);
n && ([t.x, t.y] = n);
let r = Gi(e.center);
return r && ([t.lat, t.lng] = r), e.z !== void 0 && (t.floor = e.z), e.bearing !== void 0 && (t.bearing = e.bearing), e.zoomtime !== void 0 && (t.zoomTime = e.zoomtime), e.pitchtime !== void 0 && (t.pitchTime = e.pitchtime), e.pitchdegrees !== void 0 && (t.pitchDegrees = e.pitchdegrees), t;
}
function Gi(e) {
if (!e) return;
let t = e.split(",").map(Number);
if (!(t.length !== 2 || !t.every(Number.isFinite))) return [t[0], t[1]];
}
//#endregion
//#region src/components/Map/MapCamera.tsx
function Ki() {
let e = xe(), t = ke(), n = (0, Z.useRef)({
api: e,
state: t
}), [r] = (0, Z.useState)(() => ge(n));
return (0, Z.useLayoutEffect)(() => {
n.current = {
api: e,
state: t
};
}), (0, Z.useEffect)(() => (_e(r), () => _e(void 0)), [r]), Ce(() => Le()), je(() => Qe()), G(() => U.zoomBy, (e) => {
e && (n.current.api.zoomBy(e), U.zoomBy = null);
}, []), G(() => U.rollReset, (e) => {
e && (n.current.api.reset({ roll: !0 }), U.rollReset = !1);
}, []), G(() => U.centerMap, (e) => {
e && (n.current.api.reset({ zoom: !!(U.list.type === "search" && U.list.text) }), U.centerMap = !1);
}, []), G(() => U.moveToRect, (e) => {
if (!e) return;
let { width: t, height: r } = e.size;
if (t > 0 && r > 0 && Number.isFinite(t) && Number.isFinite(r)) {
var i;
qi(n.current.api, e, (i = U.moveToRectPaddingPercent) == null ? void 0 : i);
}
U.moveToRect = null, U.moveToRectPaddingPercent = null;
}, []), G(() => U.moveToBooths, (e) => {
if (!e) return;
m.log("watched moveToBooths", e);
let t = e.filter((e) => e.rect).map((e) => e.rect);
t.length && qi(n.current.api, oe.fromUnion(...t)), U.moveToBooths = null;
}, []), G(() => U.mapSettings, ({ center: e, centerxy: t, bearing: r, pitchdegrees: i, z: a }) => {
try {
a && R.fp.activateFloor({ name: a });
let o = Yi(e, t);
o && n.current.api.panTo(o), r !== void 0 && Number.isFinite(r) && n.current.api.rollTo(r), i != null && Number.isFinite(i) && n.current.api.pitchTo(i, { immediate: !U.animatePitch });
} catch (e) {
m.error("Error in mapSettings reaction", e);
}
}, []), null;
}
function qi(e, t, n) {
e.zoomTo(at(t), {
padding: n == null ? Ji(t, he()) : n,
maxZoom: Number.isFinite(q.maxZoom) ? void 0 : 10,
within: lt()
});
}
function Ji(e, t) {
return !e || !t ? 0 : (e.area / t.area > .1 ? 15 : 25) / 100;
}
function Yi(e, t) {
if (e) {
var n, r;
let t = Gi(e);
if (!t) return;
let i = (n = Ve()) == null || (n = n.properties) == null ? void 0 : n.config;
if (!i) throw Error("Map center given in GPS, but the plan has no GPS config");
return (r = ze({
lat: t[0],
lng: t[1]
}, i)) == null ? void 0 : r;
}
let i = Gi(t);
if (i) return {
x: i[0],
y: i[1]
};
}
//#endregion
//#region src/components/Map/Map.tsx
var Xi = "#ebebeb", Zi = "routes-api.expofp.com", Qi = 1e4;
function $i(e) {
return Number.isFinite(q.maxZoom) ? q.maxZoom : e.viewbox.size.width > Qi ? 100 : 35;
}
function ea() {
let { zoomtime: e, pitchtime: t } = U.mapSettings;
return {
zoomTime: e === void 0 ? void 0 : e / 1e3,
pitchTime: t === void 0 ? void 0 : t / 1e3
};
}
function ta() {
var e;
let t = (0, Z.useRef)(null), n = (0, Z.useMemo)(() => _({
moving: !1,
prevLevel: R.layerStore.layers.find((e) => !e.frozen && e.visible)
}), []), [r, i] = (0, Z.useState)(void 0), a = (0, Z.useRef)(null), o = (0, Z.useRef)(null);
function s() {
L.layers.forEach((e) => {
e.configured = !1, e.children = [], e.loaded = !1;
});
}
(0, Z.useEffect)(() => {
let e = !1;
return s(), L.layersLoaded = !1, ct().then(({ layers: t, cleanup: n }) => {
if (e) {
n();
return;
}
o.current = n;
let r = q.backgroundColor === "none" ? Xi : q.backgroundColor, s = de(t, he(), r);
i(s), et(s), a.current = ut((e) => {
it(s, e) && Ee(s.rootLayer);
}), a.current.setTarget(U.dimmed, { immediate: !0 }), L.layersLoaded = !0, R.fp.onFpConfigured && R.fp.onFpConfigured(), Fe();
}), () => {
var t, n;
e = !0, (t = o.current) == null || t.call(o), o.current = null, (n = a.current) == null || n.stop(), a.current = null, et(void 0), s();
};
}, []), W(() => U.dimmed, (e) => {
var t;
(t = a.current) == null || t.setTarget(e);
}), (0, Z.useEffect)(() => {
R.fp.getCenterCoordinates = () => $e(t.current);
}, []), (0, Z.useEffect)(() => {
if (!r) return;
let e = Be({
scene: r,
store: R,
canvas: t
}), n = nt({ scene: r });
return () => {
e(), n();
};
}, [r]), W(() => R.routeStore.currentRouteLayer, () => {
let e = R.routeStore.currentRouteLayer;
if (!r || !e || n.prevLevel === e) return;
let t = r.rootLayer.children.filter((e) => R.layerStore.floors.some((t) => e.name.includes(t.name))), i = e.name;
if (!t.find((e) => e.name === i)) return;
let a = [];
t.forEach((e) => {
var t;
e.name === i && e.hidden !== !1 && (e.hidden = !1, a.push(e)), e.name === ((t = n.prevLevel) == null ? void 0 : t.name) && e.hidden !== !0 && (e.hidden = !0, a.push(e));
}), n.prevLevel = e, a.length && Ee(...a);
}, { fireImmediately: !0 }, [r]), W(() => R.layerStore.visible, (e) => {
if (!r) return;
let t = e.filter((e) => De(e.name)), n = r.rootLayer.children, i = [];
for (let e of n) {
if (!De(e.name)) continue;
let n = !t.find((t) => t.name === e.name);
e.hidden !== n && (e.hidden = n, i.push(e));
}
i.length && Ee(...i);
}, { fireImmediately: !0 }, [r]);
let c = F(() => L.layersLoaded), l = F(() => !!U.buildRoute);
rt({
enabled: c && l,
scene: r
});
let u = (e = K.busRoutes) != null && e;
return st({
permission: c && u,
scene: r,
dataJsonUrl: `https://${Zi}/v1/routes?expo=${q.EXPO}`,
websocketUrl: `wss://${Zi}/locations?expo=${q.EXPO}`
}), F(() => r ? /* @__PURE__ */ (0, Q.jsxs)(Oe, {
debug: h,
style: {
width: "100%",
height: "100%"
},
ref: t,
className: (0, X.default)({ map: !0 }),
scene: r,
maxZoom: $i(r),
maxPitch: U.maxPitch,
bounds: L.bounds,
controls: {
roll: U.rollEnabled,
pitch: U.pitchEnabled,
zoom: { dblclick: T }
},
smoothTime: ea(),
visibleRect: U.canvasVisibleRectPx,
onPointerMissed: ve,
children: [
/* @__PURE__ */ (0, Q.jsx)(Ki, {}),
/* @__PURE__ */ (0, Q.jsx)(tt, {}),
h && /* @__PURE__ */ (0, Q.jsx)(ot, { canvas: t })
]
}) : null);
}
//#endregion
//#region src/components/MapControlsContainer.tsx
function na(e) {
var t, n;
(t = (n = window).__resett) == null || t.call(n), e();
}
var ra = I(() => {
let e = P(() => ({
get className() {
return (0, X.default)({
controls: !0,
container: !0,
"-ready": !0,
[U.responsiveClass]: !0
});
},
get style() {
return {
[U.rtl ? "left" : "right"]: U.overlayPosition === "left" ? U.overlayCollapsed ? pe(.9) : (U.kiosk ? 10 : 0) + pe(.7) + "px" : "10px",
bottom: U.kiosk ? pe(4) : pe(9.6)
};
},
get layers() {
return L.layers.filter((e) => e.mode !== Pe.AlwaysHidden && e.mode !== Pe.AlwaysVisible).map((e) => ({
id: e.name,
name: e.description
})).concat([]).reverse();
},
get visible() {
return L.layers.filter((e) => e.visible).map((e) => e.name);
}
}));
return /* @__PURE__ */ (0, Q.jsx)(Vt, {
className: e.className,
style: e.style,
title: s("Map controls"),
findLocationLabel: s("Find your location"),
zoomInLabel: s("Zoom In"),
zoomOutLabel: s("Zoom Out"),
viewModeLabel: s("View switch"),
fitToScreenLabel: s("Fit to screen"),
layersLabel: s("Layers"),
onFindLocation: () => R.routeStore.findLocation(),
onZoomIn: () => na(() => U.zoomIn()),
onZoomOut: () => na(() => U.zoomOut()),
onFitToScreen: () => na(() => U.fitBounds()),
onViewModeSwitch: () => R.maplibreStore.activateMaplibre(),
showModeSwitch: R.maplibreStore.maplibreEnabled && !R.maplibreStore.hideModeSwitchButton,
isMap3d: R.maplibreStore.isMap3d,
showFindLocation: R.routeStore.canFindLocation && !U.setKioskModeEnabled,
layersActiveItems: e.visible,
layersList: L.mode === Me.CheckBox ? e.layers : void 0,
onChangeLayers: (e) => {
let t = L.layers.find((t) => t.name === e);
t && L.updateVisibility(e, !t.visible);
}
});
});
//#endregion
//#region src/components/MobileToggleButtonContainer.tsx
function ia() {
let e = (0, Z.useCallback)(() => {
U.isOverlayOpen && U.overlaySize === "full" ? U.desiredOverlaySize = "small" : H.openOverlayWithoutInputFocus();
}, []);
return F(() => {
if (!U.shouldShowMobileToggle) return null;
let t = U.mobileToggleIsListMode;
return /* @__PURE__ */ (0, Q.jsx)(Ht, {
mode: t ? "list" : "map",
label: s(t ? "List" : "Map"),
ariaLabel: s(t ? "Show list" : "Show map"),
onClick: e
});
});
}
//#endregion
//#region src/store/types.ts
var aa = "sessions", oa = Z.lazy(() => import(
/* webpackChunkName: "viewer-menu-panel" */
"./ViewerMenuPanel-C3B3OmlN.js"
));
window.setTimeout(function() {
let e = new Image();
e.onload = () => {
m.log("Logo image loaded");
}, e.crossOrigin = "anonymous", e.src = K.logo;
}, 1500);
function sa({ consent: e, isGDPR: t }) {
let n = P(() => ({
logoVisibility: "visible",
shown: !1,
shownTimeout: void 0,
modalOpen: !1,
selectedCategoryIds: (U.selectedCategoryFilters || []).map((e) => Number(e.id)),
pendingSelectedIds: (U.selectedCategoryFilters || []).map((e) => Number(e.id))
}));
ne(() => {
U.menu ? (n.shownTimeout = window.setTimeout(() => n.shown = !0, 1), U.list.type === "sessions" && R.searchStore.selectSearch()) : (n.shown = !1, n.shownTimeout && window.clearTimeout(n.shownTimeout));
});
function r(e) {
if (U.kiosk) return e.preventDefault();
}
function i(e) {
e.preventDefault(), u(), R.searchStore.selectSearch();
}
function o(e) {
var t, n;
e.preventDefault(), (t = R.fp) == null || (n = t.onLeaveEvent) == null || n.call(t);
}
function l(e) {
e.preventDefault(), R.clickLanguage();
}
return F(() => {
var u, d, f;
if (!U.menu) return null;
let p = R.boothStore.booths.filter((e) => e.bookmarked).map((e) => e.name), m = (u = fe().__fpSettings) != null && u.fpVer ? `https://d2.expofp.com/export/v2/${q.EXPO}/pdf` : `https://api.expofp.com/service/convert/${q.EXPO}/pdf`, h = U.viewerMode && typeof ((d = R.fp) == null ? void 0 : d.onLeaveEvent) == "function";
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: `menu ${n.shown ? "shown" : ""}`,
children: [lr ? /* @__PURE__ */ (0, Q.jsx)("div", { className: "menu__cover -empty" }) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "menu__cover",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
href: K.homeUrl,
target: "_blank",
rel: "noopener noreferrer",
onClick: r,
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: K.logo,
onError: () => n.logoVisibility = "hidden",
style: { visibility: n.logoVisibility },
alt: "",
crossOrigin: "anonymous"
})
})
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "menu__content",
children: [
U.viewerMode && /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(oa, {})
}),
!U.viewerMode && /* @__PURE__ */ (0, Q.jsx)("a", {
href: "/#",
onClick: i,
className: "menu__item",
children: s("Search")
}),
!K.hideEventHomeLink && !U.kiosk && !lr && !!K.homeUrl && /* @__PURE__ */ (0, Q.jsxs)("a", {
href: K.homeUrl,
target: "_blank",
className: "menu__item",
rel: "noopener noreferrer",
children: [s("Event Home").replace(/ /g, "\xA0"), /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-link-external" })]
}),
!K.hideRegisterToAttendLink && !U.kiosk && !lr && !!K.registerUrl && /* @__PURE__ */ (0, Q.jsxs)("a", {
href: K.registerUrl,
target: "_blank",
className: "menu__item",
rel: "noopener noreferrer",
children: [s("Register to Attend").replace(/ /g, "\xA0"), /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-link-external" })]
}),
!U.hideLanguage && !K.hideLanguage && !K.hideLanguageLink && /* @__PURE__ */ (0, Q.jsxs)("a", {
href: "?language",
onClick: l,
className: "menu__item -language",
children: [/* @__PURE__ */ (0, Q.jsxs)("span", { children: [s("Language"), " "] }), /* @__PURE__ */ (0, Q.jsxs)("span", {
className: "menu__icons",
children: [/* @__PURE__ */ (0, Q.jsx)(Tt, {
variant: "gray",
size: "md",
noMargins: !0,
rounded: !0,
children: (f = a().find((e) => e.id === c())) == null ? void 0 : f.name
}), /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-chevron-right" })]
})]
}),
!K.hideDownloadPdfLink && !U.kiosk && /* @__PURE__ */ (0, Q.jsx)("a", {
className: "menu__item -pdf",
target: "_blank",
rel: "noopener noreferrer",
href: `${m}/?exhibitors=true&bookmarks=${p.join(",")}&layers=${(R.layerStore.layers.length >= R.layerStore.visible.length ? R.layerStore.visible.map((e) => e.name).join(",") : "").replace(/&/g, "%26")}`,
children: s("Download PDF")
}),
e === "ask" && t && /* @__PURE__ */ (0, Q.jsx)("a", {
href: "/#",
className: "menu__item -cookie-consent",
onClick: (e) => {
e.preventDefault(), U.hideCookieConsent = !1;
},
children: s("Review Cookie Consent")
}),
h && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "menu__item-leave",
children: /* @__PURE__ */ (0, Q.jsx)("a", {
href: "/#",
className: "menu__item -leave-event menu__leave-link",
onClick: o,
children: s("Select another event")
})
})
]
})]
});
});
function u() {
U.menu = !1;
}
}
var ca = ({ isGDPR: e, consent: t }) => F(() => /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: U.menu ? /* @__PURE__ */ (0, Q.jsx)(sa, {
isGDPR: e,
consent: t
}) : null }));
//#endregion
//#region src/components/OverlayParticles.tsx
function la() {
let [t, n] = (0, Z.useState)(!1), [r, a] = (0, Z.useState)(), [o, s] = (0, Z.useState)(!1), c = (0, Z.useRef)();
return ne(() => {
var e;
return s(U.overlayPosition === "left" && ((e = i.getEngine()) == null ? void 0 : e.name) !== "EdgeHTML");
}), (0, Z.useEffect)(() => {
o && !r && import(
/* webpackChunkName: "particlesjs" */
"./particles.min-BPS1Hdpf.js"
).then((t) => /* @__PURE__ */ e(t.default, 1)).then((e) => {
a(e.default);
});
}, [o, r]), (0, Z.useEffect)(() => {
if (r && o) {
let e = r.init({
selector: c.current,
maxParticles: 50,
speed: .4,
sizeVariations: 4,
color: "#0C5AB8",
connectParticles: !0
});
return n(!0), () => {
e.destroy();
};
}
}, [r, o]), o ? /* @__PURE__ */ (0, Q.jsx)("div", { children: /* @__PURE__ */ (0, Q.jsx)("canvas", {
className: `overlay-particles__canvas ${t ? "-visible" : ""}`,
ref: c
}) }) : null;
}
var ua = I(la), da = ({ floors: e, floorSelectionLabel: t, ...n }) => {
let r = e.map((e) => {
var t, n;
return {
...e,
ariaLabel: (t = (n = e.ariaLabel) == null ? e.description : n) == null ? s("Floor {{name}}", { name: e.name }) : t
};
});
return /* @__PURE__ */ (0, Q.jsx)(In, {
...n,
floors: r,
floorSelectionLabel: t == null ? s("Floor selection") : t
});
}, fa = I(() => {
let e = R.routePlannerStore, { from: t, stops: n, distance: r, travelTime: i } = e.subtitleParts;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-planner__header",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__title",
children: e.title
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-planner__details",
children: [
t && /* @__PURE__ */ (0, Q.jsx)("span", { children: t }),
/* @__PURE__ */ (0, Q.jsx)("span", { children: n }),
r && /* @__PURE__ */ (0, Q.jsx)("span", { children: r }),
i && /* @__PURE__ */ (0, Q.jsx)("span", { children: i })
]
}),
e.excludedVisitedCount > 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__alert",
children: /* @__PURE__ */ (0, Q.jsx)(Ln, {
variant: "warning",
inline: !0,
showIcon: !1,
size: "sm",
children: s("{{count}} visited bookmarks excluded", { count: e.excludedVisitedCount })
})
})
]
});
}), pa = () => /* @__PURE__ */ (0, Q.jsxs)("svg", {
width: "22",
height: "22",
viewBox: "0 0 22 22",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Q.jsx)("rect", {
width: "22",
height: "22",
rx: "11",
fill: "#2382F4"
}), /* @__PURE__ */ (0, Q.jsx)("path", {
d: "M16 11C16 13.7614 13.7614 16 11 16C8.23858 16 6 13.7614 6 11C6 8.23858 8.23858 6 11 6C13.7614 6 16 8.23858 16 11Z",
fill: "white"
})]
}), ma = I(({ startPoint: e, onSelectStartPoint: t }) => {
let n = R.routePlannerStore, r = n.startPointBoothOptions, i = n.startPointAutocompleteOptions, a = (e) => {
t(r.find((t) => t.id.toString() === (e == null ? void 0 : e.value)) || null);
}, o = e ? i.find((t) => t.value === e.id.toString()) : void 0;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-planner__stop is-start",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__stop-timeline",
children: /* @__PURE__ */ (0, Q.jsx)(pa, {})
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__stop-content",
children: /* @__PURE__ */ (0, Q.jsx)(Rn, {
placeholder: s("Select starting point"),
options: i,
value: o,
onChange: a
})
})]
});
}), ha = {
exhibitor: "icon-exhibitor-solid",
event: "icon-event-solid",
booth: "icon-booth-solid"
}, ga = (e) => /^\d+$/.test(e), _a = ({ item: e, isLast: t }) => {
var n, r, i;
let { type: a, entity: o, booth: s } = e, c = ha[a] || "icon-booth-solid", l = (n = o.name) == null ? "" : n, u = (a === "exhibitor" || a === "event") && s ? s.name : null, d = (r = s == null || (i = s.layer) == null ? void 0 : i.shortName) == null ? null : r, f = u || d, p = [
l,
u,
d ? ga(d) ? `Level ${d}` : d : null
].filter(Boolean).join(", "), m = () => {
a === "exhibitor" ? R.selectExhibitor(o) : s && R.selectBooth(s), R.showMap();
};
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-planner__stop", { "is-last": t }),
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__stop-timeline",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__stop-icon",
style: { "--dot-color": `var(--color-${a})` },
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: c })
})
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-planner__stop-content",
role: "button",
tabIndex: 0,
"aria-label": p,
onClick: m,
onKeyDown: (e) => {
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), m());
},
children: [/* @__PURE__ */ (0, Q.jsx)("strong", { children: l }), f && /* @__PURE__ */ (0, Q.jsxs)(Tt, {
variant: "location",
size: "xs",
inline: !0,
noMargins: !0,
children: [u && /* @__PURE__ */ (0, Q.jsx)("span", { children: u }), d && /* @__PURE__ */ (0, Q.jsxs)("span", { children: [ga(d) && /* @__PURE__ */ (0, Q.jsx)(Q.Fragment, { children: "Level\xA0" }), d] })]
})]
})]
});
};
//#endregion
//#region src/components/RoutePlanner/RoutePlanner.tsx
function va() {
return F(() => {
let e = R.routePlannerStore, t = e.items;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-planner",
children: [
t.length > 0 && /* @__PURE__ */ (0, Q.jsx)(fa, {}),
t.length > 0 && e.routeFloors.length > 1 && e.currentRouteFloor && /* @__PURE__ */ (0, Q.jsx)(da, {
floors: e.routeFloors,
value: e.currentRouteFloor,
onSelect: (t) => e.setRouteFloor(t)
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-planner__stops",
children: [t.length > 0 && /* @__PURE__ */ (0, Q.jsx)(ma, {
startPoint: e.startPoint,
onSelectStartPoint: (t) => e.setStartPoint(t)
}), t.map((e, n) => /* @__PURE__ */ (0, Q.jsx)(_a, {
item: e,
isLast: n === t.length - 1
}, `${e.type}-${e.entity.id}-${n}`))]
}),
t.length === 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-planner__empty",
children: s("Add stops to build a route")
})
]
});
});
}
function ya() {
return F(() => {
let e = U.details && !(U.details instanceof Ye);
return U.list.type === "route-planner" && !U.menu && !e ? /* @__PURE__ */ (0, Q.jsx)(va, {}) : null;
});
}
//#endregion
//#region src/components/ScrollableRowContainer.tsx
var ba = I((e) => /* @__PURE__ */ (0, Q.jsx)(Dn, {
...e,
isRtl: U.rtl,
leftAriaLabel: s("Scroll left"),
rightAriaLabel: s("Scroll right")
})), xa = (0, Z.memo)(({ id: e, label: t, icon: n, enabled: r, active: i, tooltip: a, badge: o, variant: c = "default", showResetButton: l = !1, interfaceId: u }) => {
let d = (0, Z.useCallback)(() => {
r && R.shortcutRegistry.handleShortcutClick(u, e);
}, [
r,
u,
e
]), f = (0, Z.useCallback)((t) => {
t.stopPropagation(), r && i && R.shortcutRegistry.handleShortcutReset(u, e);
}, [
r,
i,
u,
e
]);
return /* @__PURE__ */ (0, Q.jsxs)("button", {
className: (0, X.default)("shortcut-button", `shortcut-button--${c}`, {
"is-active": i,
"is-disabled": !r
}),
onClick: d,
disabled: !r,
title: a || t,
type: "button",
"aria-label": a || t,
children: [
l && i && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "shortcut-reset-button",
onClick: f,
title: s("Reset filter"),
"aria-label": s("Reset filter"),
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-close-solid" })
}),
n && /* @__PURE__ */ (0, Q.jsx)("i", { className: n }),
t && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "shortcut-button__label",
children: t
}),
o && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "shortcut-button__badge",
children: o
})
]
});
});
xa.displayName = "ShortcutButton";
//#endregion
//#region src/components/Shortcuts/ShortcutsFiltersButton.tsx
var Sa = (0, Z.memo)(I(({ interfaceId: e, className: t }) => {
let { shortcutRegistry: n } = R, r = n.getShortcuts(e).filter((e) => e.active).length, i = 0;
e === "sessions" ? i = R.sessionsFilterStore.activeFiltersCount : e === "speakers" && (i = R.speakerFilterStore.activeFiltersCount);
let a = Math.max(r, i);
return /* @__PURE__ */ (0, Q.jsx)("button", {
className: (0, X.default)("shortcuts-filters-button", t, { "is-active": a > 0 }),
onClick: () => {
e === "sessions" ? R.sessionsFilterStore.openFilterWithSections([
"tracks",
"venues",
"date",
"time",
"sort",
"settings"
]) : e === "speakers" && R.speakerFilterStore.openFilterWithSections(["companies", "jobTitles"]);
},
type: "button",
"aria-label": s("Open filters"),
title: s("Open filters"),
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-filter-horizontal-solid" })
});
}));
Sa.displayName = "ShortcutsFiltersButton";
//#endregion
//#region src/components/Shortcuts/ShortcutsToolbar.tsx
var Ca = (0, Z.memo)(I(({ interfaceId: e, showFiltersButton: t = !0, className: n }) => {
let { shortcutRegistry: r } = R, i = r.getShortcuts(e);
return !r.shouldShowShortcuts(e) || i.length === 0 ? null : /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("shortcuts-toolbar", n),
children: /* @__PURE__ */ (0, Q.jsxs)(ba, {
ariaLabel: s("Shortcuts"),
className: "shortcuts-toolbar__scrollable",
scrollAmount: 150,
showArrowsOnMobile: !1,
arrowPosition: "inside",
children: [t && /* @__PURE__ */ (0, Q.jsx)(Sa, { interfaceId: e }), i.map((t) => /* @__PURE__ */ (0, Q.jsx)(xa, {
...t,
interfaceId: e
}, t.id))]
})
});
}));
Ca.displayName = "ShortcutsToolbar";
//#endregion
//#region src/components/Search.tsx
function wa() {
let e = (0, Z.useRef)(), t = P(() => ({
updateOverlayContent: null,
get text() {
return U.list.type === "search" || U.list.type === "exhibitors" ? U.list.text : "";
},
get showClose() {
return !!this.text;
},
get backMode() {
return this.text ? "back" : "menu";
}
}));
(0, Z.useEffect)(() => {
R.fuzzySearchEngineStore.loadEngine();
}, []);
let n = (0, Z.useCallback)(() => {
t.updateOverlayContent && t.updateOverlayContent();
}, [t.updateOverlayContent]);
return F(() => /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [/* @__PURE__ */ (0, Q.jsx)(Ca, {
interfaceId: "search",
showFiltersButton: !1
}), /* @__PURE__ */ (0, Q.jsx)(br, {
updateScroll: n,
updatedScrollableRef: e
})] }));
}
var Ta = () => F(() => /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [!U.details && !U.menu && U.list.type === "exhibitors" ? /* @__PURE__ */ (0, Q.jsx)(wa, {}) : null, !U.details && !U.menu && U.list.type === "search" && (R.fp.alwaysShowSidebar || U.heatmap || U.searchFocused || U.list.text.length > 0 || U.searchClearMode) ? /* @__PURE__ */ (0, Q.jsx)(wa, {}) : null] })), Ea = () => import("./dist-DrhAFaXl.js").then((e) => ({ default: e.GroupedVirtuoso })).catch(() => new Promise((e) => setTimeout(() => e(Ea()), 3e3))), Da = (0, Z.lazy)(Ea);
function Oa(e) {
return new Date(e.endDate || e.startDate);
}
function ka(e) {
let t = /* @__PURE__ */ new Date(), n = e.filter((e) => Oa(e) > t), r = e.filter((e) => Oa(e) <= t), i = {
groups: [],
groupCounts: [],
rows: []
}, a = (e) => {
let t = /* @__PURE__ */ new Map();
for (let n of e) {
let [e] = n.startDate.split("T"), r = t.get(e);
r ? r.push(n) : t.set(e, [n]);
}
for (let [e, n] of t) i.groups.push({
kind: "day",
date: e
}), i.groupCounts.push(n.length), n.forEach((e, t) => i.rows.push({
kind: "event",
event: e,
first: t === 0,
last: t === n.length - 1,
only: n.length === 1
}));
};
return a(n), r.length > 0 && (i.groups.push({ kind: "past-title" }), i.groupCounts.push(1), i.rows.push({ kind: "past-title" }), a(r)), i;
}
function Aa(e) {
let [t, n, r] = e.split("-"), i = new Date(parseInt(t, 10), parseInt(n, 10) - 1, parseInt(r, 10));
return {
day: r,
month: (0, $.default)(i, "mmm"),
weekday: (0, $.default)(i, "ddd"),
full: (0, $.default)(i, "dddd, mmmm d")
};
}
function ja(e) {
let t = R.sessionsFilterStore.state.filters.use24hFormat.value;
return (0, $.default)(new Date(e), t ? "HH:MM" : "h:MMtt");
}
function Ma({ group: e, index: t, dateRef: n }) {
if (e.kind !== "day") return /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-list__group",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
ref: n,
"data-group-index": t
})
});
let r = Aa(e.date);
return /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-list__group",
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
ref: n,
className: (0, X.default)("efp-schedule__date-sticky", "efp-sessions-list__date", { "efp-sessions-list__date--first": t === 0 }),
"data-group-index": t,
children: [
/* @__PURE__ */ (0, Q.jsx)("div", { children: r.day }),
/* @__PURE__ */ (0, Q.jsx)("div", { children: r.month }),
/* @__PURE__ */ (0, Q.jsx)("div", { children: r.weekday })
]
})
});
}
var Na = I(({ row: e, groupIndex: t, selected: n, onClick: r }) => {
let { event: i } = e, a = i.boothId ? te.boothById.get(Number(i.boothId)) : null;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-sessions-list__row", {
"efp-sessions-list__row--first": e.first && t > 0,
"efp-sessions-list__row--last": e.last,
"efp-sessions-list__row--only": e.only
}),
"data-event-id": i.id,
children: [e.first && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-sessions-list__date-label",
children: Aa(i.startDate.split("T")[0]).full
}), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-schedule__event", {
ended: i.isEnded || Oa(i) < /* @__PURE__ */ new Date(),
selected: n
}),
role: "button",
tabIndex: 0,
"aria-current": n || void 0,
onClick: () => r(i),
onKeyDown: (e) => {
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), r(i));
},
children: [
/* @__PURE__ */ (0, Q.jsxs)("span", { children: [ja(i.startDate), i.endDate ? ` - ${ja(i.endDate)}` : null] }),
/* @__PURE__ */ (0, Q.jsxs)("strong", { children: [i.name, /* @__PURE__ */ (0, Q.jsx)(Fr, { event: i })] }),
a && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__event-booth-and-tracks",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__event-booth",
children: /* @__PURE__ */ (0, Q.jsx)("div", { children: a.name })
})
}),
i.logoFile && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-schedule__event-logo",
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: i.logoFile,
alt: i.name,
crossOrigin: "anonymous"
})
})
]
})]
});
});
function Pa({ context: e, ...t }) {
return /* @__PURE__ */ (0, Q.jsx)("div", {
...t,
role: "list"
});
}
function Fa({ item: e, context: t, ...n }) {
return /* @__PURE__ */ (0, Q.jsx)("div", {
...n,
role: "listitem"
});
}
function Ia({ context: e, ...t }) {
return /* @__PURE__ */ (0, Q.jsx)("div", {
...t,
"aria-hidden": "true"
});
}
function La(e) {
let [t] = (0, Z.useState)(() => /* @__PURE__ */ new Set()), n = (0, Z.useRef)(() => void 0);
(0, Z.useEffect)(() => {
if (!e) return;
let r = 0, i = () => {
r = 0;
let n = e.getBoundingClientRect().top, i = [...t].map((e) => ({
date: e,
index: Number(e.dataset.groupIndex),
top: e.parentElement.getBoundingClientRect().top - n
})), a = -1, o;
for (let e of i) e.top <= 1 && (a = Math.max(a, e.index));
for (let e of i) e.index > a && e.top > 1 && (!o || e.top < o.top) && (o = e);
for (let e of i) {
let t = e.index === a && o ? Math.min(0, o.top - e.top - e.date.offsetTop - e.date.offsetHeight) : 0;
e.date.style.transform = t ? `translateY(${t}px)` : "";
}
}, a = () => {
r || (r = requestAnimationFrame(i));
};
return n.current = a, e.addEventListener("scroll", a, { passive: !0 }), a(), () => {
e.removeEventListener("scroll", a), cancelAnimationFrame(r), n.current = () => void 0;
};
}, [e, t]);
let [r] = (0, Z.useState)(() => (e) => {
if (e) return t.add(e), () => {
t.delete(e);
};
});
return {
dateRef: r,
update: () => n.current()
};
}
var Ra = I(({ events: e, onEventClick: t }) => {
let n = (0, Z.use)(gt), r = (0, Z.useMemo)(() => ka(e), [e]), i = La(n), { listScrollItemId: a } = U, o = a === U.getListScrollItemId("sessions") ? a : null, [c] = (0, Z.useState)(() => {
let e = U.getListScrollItemId(aa);
if (e == null) return;
let t = r.rows.findIndex((t) => t.kind === "event" && String(t.event.id) === String(e));
return t === -1 ? void 0 : t;
});
return (0, Z.useLayoutEffect)(() => {
c === void 0 && (n == null || n.scrollTo({ top: 0 }));
}, [n, c]), n ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-list",
children: /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: /* @__PURE__ */ (0, Q.jsx)(Pn, {
active: !0,
isCenter: !0
}),
children: /* @__PURE__ */ (0, Q.jsx)(Da, {
customScrollParent: n,
...c !== void 0 && { initialTopMostItemIndex: {
index: c,
align: "center"
} },
groupCounts: r.groupCounts,
groupContent: (e) => /* @__PURE__ */ (0, Q.jsx)(Ma, {
group: r.groups[e],
index: e,
dateRef: i.dateRef
}),
itemContent: (e, n) => {
let i = r.rows[e];
return i.kind === "past-title" ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-list__past-title",
children: s("Past Sessions")
}) : /* @__PURE__ */ (0, Q.jsx)(Na, {
row: i,
groupIndex: n,
selected: String(i.event.id) === String(o),
onClick: t
});
},
components: {
List: Pa,
Item: Fa,
Group: Ia
},
increaseViewportBy: 400,
itemsRendered: i.update
})
})
}) : null;
}), za = I(({ showFilters: e = !0 }) => {
let t = (0, Z.use)(mn), n = R.eventStore.eventItems, { filters: { date: { value: r }, timeOfDay: { value: i }, sortOrder: { value: a }, showBookmarksOnly: { value: o }, showLiveOnly: { value: c }, selectedTracks: { value: l }, selectedVenues: { value: u } } } = R.sessionsFilterStore.state, { searchText: d } = H, { selectedTrack: f } = U, p = o ? R.eventStore.bookmarked : null, m = (0, Z.useMemo)(() => {
let e = /* @__PURE__ */ new Date();
e.setHours(0, 0, 0, 0);
let t = new Date(e);
t.setDate(e.getDate() + 1);
let a = n;
if (r !== "all" && (a = a.filter((n) => {
let i = new Date(n.startDate);
if (i.setHours(0, 0, 0, 0), r === "today") return i.getTime() === e.getTime();
if (r === "tomorrow") return i.getTime() === t.getTime();
if (r === "past") {
let e = /* @__PURE__ */ new Date();
return new Date(n.endDate) < e;
}
return !0;
})), i !== "all" && r === "today" && (a = a.filter((e) => {
let t = new Date(e.startDate).getHours();
switch (i) {
case "morning": return t >= 6 && t < 12;
case "midday": return t >= 12 && t < 18;
case "afternoon": return t >= 18 && t <= 23;
default: return !0;
}
})), f && (a = a.filter((e) => e.tracks.some((e) => e.id === f.id))), p) {
let e = new Set(p);
a = a.filter((t) => e.has(t));
}
if (c) {
let e = /* @__PURE__ */ new Date();
a = a.filter((t) => {
let n = new Date(t.startDate), r = new Date(t.endDate);
return n <= e && e <= r;
});
}
return l.length > 0 && (a = a.filter((e) => e.tracks.some((e) => l.includes(e.id)))), u.length > 0 && (a = a.filter((e) => e.boothId && u.includes(e.boothId))), d && (a = new y(a, {
keys: ["name"],
threshold: .3,
ignoreLocation: !0,
includeScore: !0
}).search(d).map((e) => e.item)), a;
}, [
n,
d,
r,
i,
f,
p,
c,
l,
u
]), h = (0, Z.useMemo)(() => [...m].sort((e, t) => {
let n = new Date(e.startDate).getTime(), r = new Date(t.startDate).getTime();
return a === "asc" ? r - n : n - r;
}), [m, a]);
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-content",
children: [e && (t ? (0, ft.createPortal)(/* @__PURE__ */ (0, Q.jsx)(Ca, { interfaceId: "sessions" }), t) : /* @__PURE__ */ (0, Q.jsx)(Ca, { interfaceId: "sessions" })), h.length > 0 ? /* @__PURE__ */ (0, Q.jsx)(Ra, {
events: h,
onEventClick: (e) => {
U.setListScrollItemId(aa, e.id), R.selectEventItem(e, !0);
}
}) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-empty",
children: R.sessionsFilterStore.activeFiltersCount > 0 || d || f ? s(o ? "No bookmarked events found. Try adjusting your filters." : "No events found. Try adjusting your filters.") : s("No events found")
})]
});
}), Ba = I((e) => U.list.type !== "sessions" || U.details ? null : /* @__PURE__ */ (0, Q.jsx)(za, { ...e })), Va = I(() => {
(0, Z.useRef)(null);
let e = (0, Z.useRef)(null), [t, n] = (0, Z.useState)(!1), r = R.speakerStore.selectedSpeaker;
if (!r) return /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker-empty",
children: s("Speaker not found")
});
let i = R.speakerStore.getEventsBySpeaker(r.id), a = (0, Z.useMemo)(() => [...i].sort((e, t) => new Date(e.startDate).getTime() - new Date(t.startDate).getTime()), [i]);
(0, Z.useEffect)(() => {
(() => {
if (e.current) {
let t = e.current.offsetHeight;
n(t > 300);
}
})();
}, []);
let o = (e) => {
R.selectEventItem(e, !0);
}, c = () => {
r.bookmarked = !r.bookmarked, J(Y.ClickBookmark, r.name), r.bookmarked && Xe("bookmark", r.name, "speaker");
}, l = () => {
J(Y.ClickCustomButton, r.name), R.toggleModal("share");
}, u = () => {
J(Y.ClickCustomButton, r.name);
}, d = (0, X.default)({
"efp-speaker": !0,
[U.responsiveClass]: !0
});
return F(() => /* @__PURE__ */ (0, Q.jsxs)("div", {
className: d,
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-speaker__header",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-speaker-solid" })
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-speaker__content",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker__name",
children: r.name
}),
r.company && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker__company",
children: r.company
}),
r.jobTitle && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker__job-title",
children: r.jobTitle
})
]
}),
r.photoFile && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker__photo",
children: /* @__PURE__ */ (0, Q.jsx)("img", {
src: r.photoFile,
alt: r.name
})
})
]
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speaker__buttons",
children: !U.isGuidedToursActive && /* @__PURE__ */ (0, Q.jsx)(Un, {
showBookmark: !U.disableBookmarked && !K.hideBookmarks && !U.kiosk,
showDirections: !1,
inBookmark: r.bookmarked || !1,
showShare: !0,
showVisited: !1,
visited: !1,
onClickBookmark: c,
onClickShare: l,
onClickVisited: u
})
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("efp-speaker__details", { "details-hidden": U.kiosk && t }),
ref: e,
children: a.length > 0 && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-speaker-events",
children: [/* @__PURE__ */ (0, Q.jsx)("h3", {
className: "efp-speaker-events__title",
children: s("Sessions")
}), /* @__PURE__ */ (0, Q.jsx)(ar, {
events: a,
showBooths: !0,
isSessions: !1,
onEventClick: o
})]
})
})
]
}));
}), Ha = I(() => {
var e;
let t = R.uiState.details;
return !t || (t == null || (e = t.entity) == null ? void 0 : e.type) !== "speaker" ? null : /* @__PURE__ */ (0, Q.jsx)(Va, {});
}), Ua = I(({ showFilters: e = !0 }) => {
let t = (0, Z.useRef)(), n = R.speakerStore.speakers, { filters: { selectedCompanies: { value: r }, selectedJobTitles: { value: i } } } = R.speakerFilterStore.state, a = (0, Z.useMemo)(() => {
let e = n;
r.length > 0 && (e = e.filter((e) => r.includes(e.company))), i.length > 0 && (e = e.filter((e) => i.includes(e.jobTitle)));
let t = R.searchStore.searchText;
return t && (e = new y(e, {
keys: [
"name",
"company",
"jobTitle"
],
threshold: .3,
ignoreLocation: !0,
includeScore: !0
}).search(t).map((e) => e.item)), e;
}, [
n,
R.searchStore.searchText,
r,
i,
R.speakerFilterStore.state
]);
return F(() => /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-speakers-content",
children: [e && /* @__PURE__ */ (0, Q.jsx)(Ca, { interfaceId: "speakers" }), a.length > 0 ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speakers-list",
ref: t,
children: a.map((e) => {
let t = R.speakerStore.getEventsBySpeaker(e.id), n = [];
return e.jobTitle && n.push({
type: "text",
text: e.jobTitle
}), /* @__PURE__ */ (0, Q.jsx)($n, {
id: e.id.toString(),
kind: "speaker",
title: e.name,
subtitle: e.company,
image: e.photoFile,
itemsCount: t.length,
additionalInfo: n,
bookmarked: e.bookmarked,
onClick: () => R.selectSpeaker(e, !0)
}, e.id);
})
}) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "list-empty",
children: R.speakerFilterStore.activeFiltersCount > 0 || R.searchStore.searchText ? s("No speakers found. Try adjusting your filters.") : s("No speakers found")
})]
}));
}), Wa = I((e) => U.list.type !== "speakers" || U.details ? null : /* @__PURE__ */ (0, Q.jsx)(Ua, { ...e })), Ga = () => {
let e = (0, Z.useRef)(null);
return F(() => {
let t = R.toursStore.currentTour;
if (!t) return null;
let n = t.points && t.points.length > 0;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-tour-points", { hidden: U.kiosk }),
children: [U.tourDescription && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfinding-description",
children: U.tourDescription
}), n && /* @__PURE__ */ (0, Q.jsx)(br, { updatedScrollableRef: e })]
});
});
}, Ka = () => F(() => !U.menu && !U.details && R.toursStore.currentTour && /* @__PURE__ */ (0, Q.jsx)(Ga, {})), qa = I(() => {
let e = R.toursStore.tourItems, t = R.toursStore.hasTours, n = R.toursStore.currentExpo, r = R.toursStore.toursLoadError, i = (0, Z.useMemo)(() => {
let t = e, n = R.searchStore.searchText;
return n && (t = new y(t, {
keys: ["name"],
threshold: .3,
ignoreLocation: !0,
includeScore: !0
}).search(n).map((e) => e.item)), t;
}, [e, R.searchStore.searchText]), a = (e, t, n) => {
R.toursStore.launchTour(e, t, n);
};
return F(() => r ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Q.jsxs)("p", { children: [
s("Error loading Guided Tours"),
": ",
r
] })
})
}) : t ? i.length === 0 ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Q.jsx)("p", { children: s("No Guided Tours found matching your search") })
})
}) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Q.jsx)(Oo, {
tours: i,
onTourClick: a
})
}) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Q.jsxs)("p", { children: [
s("No Guided Tours available for"),
" ",
n
] })
})
}));
}), Ja = I((e) => U.list.type !== "tours" || U.details ? null : /* @__PURE__ */ (0, Q.jsx)(qa, { ...e }));
//#endregion
//#region src/components/Visited.tsx
function Ya() {
let e = (0, Z.useRef)();
return F(() => /* @__PURE__ */ (0, Q.jsx)(br, { updatedScrollableRef: e }));
}
var Xa = () => F(() => !U.details && U.list.type === "visited" && /* @__PURE__ */ (0, Q.jsx)(Ya, {})), Za = I(({ url: e }) => /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "route-qr",
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "route-qr__body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "route-qr__code",
role: "img",
"aria-label": s("QR code to open the route on your phone"),
children: /* @__PURE__ */ (0, Q.jsx)(Li, {
value: e,
size: 80
})
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "route-qr__label",
children: s("Scan to see route on your phone")
})]
})
})
})), Qa = ({ items: e, accessible: t, onClick: n }) => e != null && e.length ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayInformation",
onClick: n,
role: "button",
tabIndex: 0,
"aria-label": s("Show detailed route steps"),
children: e.map((e, n) => /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-wayInformation__item", { "is-accessible": t && n === 0 }),
children: [/* @__PURE__ */ (0, Q.jsx)("span", { children: e.title }), /* @__PURE__ */ (0, Q.jsx)("strong", { children: e.text })]
}, n))
}) : null, $a = ({ options: e = [], fromValue: t, toValue: n, showForm: r = !0, showAccessible: i = !1, showInfo: a = !1, routeFound: o = !1, infoItems: c = [], infoAccessible: l, floors: u = [], currentFloor: d, routeUrl: f, isKiosk: p, onChangeFrom: m, onChangeTo: h, getOptionKey: g, onSwitch: _, onClickInfo: v, onClickFloor: y, onAccessibleCheck: b, showDetailsIcon: x, onDetailsIconClick: S }) => /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-wayfinding", { isCollapsed: !r }),
children: [
r && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-wayfinding__top",
children: [/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-wayfindingForm",
children: [
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-wayfindingForm__icons",
children: [
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfindingForm__from",
children: /* @__PURE__ */ (0, Q.jsxs)("svg", {
width: "18",
height: "18",
viewBox: "0 0 18 18",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Q.jsx)("path", {
d: "M18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9C0 4.02944 4.02944 0 9 0C13.9706 0 18 4.02944 18 9Z",
fill: "white"
}), /* @__PURE__ */ (0, Q.jsx)("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M9 13.375C11.4162 13.375 13.375 11.4162 13.375 9C13.375 6.58375 11.4162 4.625 9 4.625C6.58375 4.625 4.625 6.58375 4.625 9C4.625 11.4162 6.58375 13.375 9 13.375ZM9 16C12.866 16 16 12.866 16 9C16 5.13401 12.866 2 9 2C5.13401 2 2 5.13401 2 9C2 12.866 5.13401 16 9 16Z",
fill: "#30AFEB"
})]
})
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfindingForm__to",
children: /* @__PURE__ */ (0, Q.jsxs)("svg", {
width: "18",
height: "25",
viewBox: "0 0 18 25",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Q.jsx)("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M9 24.1571L10.5475 22.267C11.0023 21.7114 11.4571 21.1656 11.9041 20.6291C13.2939 18.9611 14.6088 17.3829 15.6182 15.8814C16.988 13.8436 18 11.668 18 9.125C18 4.09562 14.0267 0 9 0C3.97332 0 0 4.09562 0 9.125C0 11.668 1.01202 13.8436 2.38182 15.8814C3.39116 17.3829 4.70613 18.9611 6.09588 20.6291C6.54291 21.1656 6.99767 21.7114 7.45249 22.267L9 24.1571Z",
fill: "white"
}), /* @__PURE__ */ (0, Q.jsx)("path", {
d: "M9 2C5.11111 2 2 5.16667 2 9.125C2 13.0833 5.11111 16.25 9 21C12.8889 16.25 16 13.0833 16 9.125C16 5.16667 12.8889 2 9 2ZM9 6.75C10.2911 6.75 11.3333 7.81083 11.3333 9.125C11.3333 10.4392 10.2911 11.5 9 11.5C7.70889 11.5 6.66667 10.4392 6.66667 9.125C6.66667 7.81083 7.70889 6.75 9 6.75Z",
fill: "#FF9E2C"
})]
})
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfindingForm__dots",
children: /* @__PURE__ */ (0, Q.jsxs)("svg", {
width: "4",
height: "18",
viewBox: "0 0 4 18",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Q.jsx)("circle", {
cx: "2",
cy: "2",
r: "2",
fill: "#DCDFE9"
}), /* @__PURE__ */ (0, Q.jsx)("circle", {
cx: "2",
cy: "16",
r: "2",
fill: "#DCDFE9"
})]
})
})
]
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-wayfindingForm__controls",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
style: { marginBottom: 10 },
children: /* @__PURE__ */ (0, Q.jsx)(Rn, {
placeholder: s("Choose starting point"),
options: e,
value: t,
onChange: m,
getOptionKey: g
})
}), /* @__PURE__ */ (0, Q.jsx)("div", { children: /* @__PURE__ */ (0, Q.jsx)(Rn, {
placeholder: s("Choose destination point"),
options: e,
value: n,
onChange: h,
getOptionKey: g
}) })]
}),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-wayfindingForm__actions",
children: [/* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-wayfindingForm__switch",
onClick: _
}), x && /* @__PURE__ */ (0, Q.jsx)("button", {
type: "button",
className: "efp-wayfindingForm__details",
onClick: S
})]
})
]
}), i && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfindingForm__accessible",
children: /* @__PURE__ */ (0, Q.jsx)(Fn, {
name: "onlyAccessible",
label: s("Accessible"),
value: l,
onChange: (e) => b(e)
})
})]
}),
u.length > 1 && /* @__PURE__ */ (0, Q.jsx)(da, {
floors: u,
value: d,
onSelect: y
}),
a && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfindingInfo",
children: o ? /* @__PURE__ */ (0, Q.jsxs)(Q.Fragment, { children: [/* @__PURE__ */ (0, Q.jsx)(Qa, {
items: c,
accessible: l,
onClick: v
}), p && /* @__PURE__ */ (0, Q.jsx)(Za, { url: f })] }) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfindingError",
children: s("Route not found")
})
})
]
});
//#endregion
//#region src/components/Wayfinding.tsx
function eo() {
var e;
let t = (0, Z.useRef)(null), n = (0, Z.useMemo)(() => {
let e = R.routeStore.pathLayers;
return e.map((t, n) => {
var r, i, a, o, s, c;
let l = e[n + 1], u = (r = (i = t.layer) == null ? void 0 : i.basePriority) == null ? 0 : r, d = (a = l == null || (o = l.layer) == null ? void 0 : o.basePriority) == null ? 0 : a, f = l ? d < u ? "up" : "down" : void 0;
return {
id: t.id,
name: (s = t.layer) == null ? void 0 : s.shortName,
description: (c = t.layer) == null ? void 0 : c.description,
directionToNext: f
};
});
}, [R.routeStore.pathLayers]), [r, i] = (0, Z.useState)(), [a, o] = (0, Z.useState)({}), c = (e) => {
e && o((t) => ({
...t,
[e.value]: e
}));
};
(0, Z.useEffect)(() => {
r || i(n[0]);
}, [R.routeStore.pathLayers, n]), (0, Z.useEffect)(() => {
let e = n.find((e) => {
var t, n;
return ((t = e.description) == null ? void 0 : t.toLowerCase()) === ((n = R.routeStore.currentRouteLayer) == null || (n = n.description) == null ? void 0 : n.toLowerCase());
});
e && i(e);
}, [R.routeStore.currentRouteLayer, n]), (0, Z.useEffect)(() => {
var e;
let t = U.selectedRoute;
if (!t) {
U.setIsMultiPointRoute(!1);
return;
}
let n = (((e = t.waypoints) == null ? void 0 : e.length) || 0) > 0;
U.setIsMultiPointRoute(n);
}, [U.selectedRoute]);
let l = () => {
let { from: e, to: t } = U.selectedRoute;
return !!(e && t);
}, u = () => U.overlaySize === "full", d = () => !!(l() && !u()), f = () => {
var e;
let t = U.selectedRoute;
return t ? (((e = t.waypoints) == null ? void 0 : e.length) || 0) > 0 ? "multi" : "simple" : "none";
};
(0, Z.useEffect)(() => {
f() === "multi" && U.selectedRoute;
}, [U.selectedRoute]);
let p = (0, Z.useMemo)(() => {
let e = /* @__PURE__ */ new Set(), t = te.booths, n = t.filter((e) => e instanceof Ae), r = t.filter((e) => !(e instanceof Ae)), i = [];
return z.exhibitors.forEach((t) => {
for (let n of t.booths) e.add(n.id);
i.push(...t.booths.map((e) => ({
value: e.id.toString(),
label: t.name + " - " + e.fullName,
exhibitorId: t.id
})));
}), r.filter((t) => !e.has(t.id)).forEach((e) => {
i.push({
value: e.id.toString(),
label: e.fullName
});
}), i = i.sort((e, t) => e.label.localeCompare(t.label, void 0, { sensitivity: "base" })), n.filter((t) => !e.has(t.id)).forEach((e) => {
i.push({
value: e.id.toString(),
label: e.fullName
});
}), i;
}, [z.exhibitors.length, te.booths.length]);
return (0, Z.useEffect)(() => {
var e;
let t = (e = U.selectedRoute) == null || (e = e.to) == null || (e = e.id) == null ? void 0 : e.toString(), n = R.routeStore.currentRouteExhibitor;
if (!n) return;
let r = p.find((e) => e.value === t && e.exhibitorId === n.id);
R.routeStore.currentRouteExhibitor = null, c(r);
}, [
R.routeStore.currentRouteExhibitor,
(e = U.selectedRoute) == null || (e = e.to) == null ? void 0 : e.id,
p
]), F(() => {
var e, i, o, l, u, m, h, g;
if (f() === "multi") {
var _, v;
return /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("main-wayfinding", { hidden: U.kiosk && ((_ = U.selectedRoute) == null ? void 0 : _.from) && ((v = U.selectedRoute) == null ? void 0 : v.to) }),
children: [U.routeDescription && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-wayfinding-description",
children: U.routeDescription
}), /* @__PURE__ */ (0, Q.jsx)(br, { updatedScrollableRef: t })]
});
}
let y = (e = U.selectedRoute) != null && e.from && !(U.selectedRoute.from instanceof Se) ? U.selectedRoute.from : null, b = (i = U.selectedRoute) != null && i.to && !(U.selectedRoute.to instanceof Se) ? U.selectedRoute.to : null, x = [];
y && x.push({
value: y.id,
label: y.name
}), b && b.id !== (y == null ? void 0 : y.id) && x.push({
value: b.id,
label: b.name
}), x.push(...p);
let S = (e, t = !0) => {
var n;
let r = e == null ? void 0 : e.value;
if (r === "current-position" || r === "kiosk-anchor") return;
let i = (n = te.booths.find((e) => e.id.toString() === r)) == null ? null : n, { from: a, to: o } = U.selectedRoute;
c(e), t ? R.routeStore.selectRoute(new Ye(i, o)) : R.routeStore.selectRoute(new Ye(a, i));
}, C = (e) => {
let t = [], n = le().getAttribute("units") || "ft", r = Ue(e, Je(n)), i = /* @__PURE__ */ new Date();
i.setMinutes(i.getMinutes() + r / 60);
let a = i.toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit"
});
return t.push({
title: s("Travel time"),
text: r < 60 ? "< 1 min" : `~ ${Math.round(r / 60)} min`
}, {
title: s("Distance"),
text: Math.round(e) + ` ${n}`
}, {
title: s("Est arrival"),
text: a
}), t;
}, w = () => {
let { from: e, to: t } = U.selectedRoute;
(e == null ? void 0 : e.id) !== "current-position" && R.routeStore.selectRoute(new Ye(t, e));
}, T = ((o = U.selectedRoute) == null ? void 0 : o.from) && ((l = U.selectedRoute) == null ? void 0 : l.to) && !R.routeStore.routeLines.length;
function E() {
var e;
let t = (e = U.selectedRoute) == null || (e = e.from) == null || (e = e.id) == null ? void 0 : e.toString(), n = t ? a[t] : void 0;
return x.find((e) => n ? e.value === n.value && e.label === n.label : e.value === t);
}
function D() {
var e;
let t = (e = U.selectedRoute) == null || (e = e.to) == null || (e = e.id) == null ? void 0 : e.toString(), n = t ? a[t] : void 0;
return x.find((e) => n ? e.value === n.value && e.label === n.label : e.value === t);
}
let O = !!(!K.hideWayInformation && q.EXPO !== "bloomberg" && (u = U.selectedRoute) != null && u.from && (m = U.selectedRoute) != null && m.to);
return /* @__PURE__ */ (0, Q.jsx)("div", {
className: (0, X.default)("main-wayfinding", { hidden: U.kiosk && ((h = U.selectedRoute) == null ? void 0 : h.from) && ((g = U.selectedRoute) == null ? void 0 : g.to) }),
children: /* @__PURE__ */ (0, Q.jsx)($a, {
showForm: !d(),
showInfo: O,
floors: n,
currentFloor: r,
onClickFloor: (e) => {
let t = R.routeStore.pathLayers.find((t) => t.id === e.id);
t != null && t.layer && R.layerStore.updateVisibility(t.layer, !0);
},
routeFound: !T,
options: x,
getOptionKey: (e) => {
var t;
return `${e.value}-${(t = e.exhibitorId) == null ? "" : t}`;
},
fromValue: E(),
toValue: D(),
onChangeFrom: (e) => S(e, !0),
onChangeTo: (e) => S(e, !1),
onSwitch: w,
infoItems: C(R.routeStore.routeDistance),
infoAccessible: R.routeStore.onlyAccessible,
showAccessible: R.routeStore.showAccessible,
onAccessibleCheck: (e) => R.routeStore.setOnlyAccessible(e),
onClickInfo: () => R.showOverlay(),
routeUrl: U.routeQRCodeUrl,
isKiosk: U.kiosk,
showDetailsIcon: U.showRouteInstantly,
onDetailsIconClick: () => {
var e;
let { from: t, to: n } = U.selectedRoute || {}, r = (e = n instanceof Se ? n : null) == null ? t instanceof Se ? t : null : e;
if (r) {
var i;
let e = r.id.toString(), t = (i = a[e]) == null ? x.find((t) => t.value === e) : i;
U.details = ((t == null ? void 0 : t.exhibitorId) == null ? r.exhibitors.find((e) => t == null ? void 0 : t.label.includes(e.name)) : r.exhibitors.find((e) => e.id === t.exhibitorId)) || r;
}
}
})
});
});
}
function to() {
return F(() => q.wayfinding && !U.menu && U.selectedRoute && U.list.type !== "route-planner" && /* @__PURE__ */ (0, Q.jsx)(eo, {}));
}
//#endregion
//#region src/components/OverlayContainer.tsx
var no = I(({ isGDPR: e, consent: t }) => {
let n = (0, Z.useCallback)((e) => {
U.desiredOverlaySize = e;
}, []), r = (0, Z.useCallback)((e) => {
U.setOverlayScrolled(e);
}, []), i = U.overlaySize, [a, o] = (0, Z.useState)({}), [c, l] = (0, Z.useState)({
type: U.list.type,
details: U.details
});
(c.type !== U.list.type || c.details !== U.details) && (l({
type: U.list.type,
details: U.details
}), !U.details && U.list.type === "sessions" && U.getListScrollItemId("sessions") != null || o({}));
let u = (0, Z.useMemo)(() => {
let e = (0, X.default)({
"-backdrop": U.canvasStarted && U.shouldUseBackdrop && !U.dimmed && !U.galleryActive,
"-no-transition": U.dimmed,
"-gallery-active": U.galleryActive,
collapsed: U.overlayCollapsed,
kiosk: U.kiosk,
start: U.overlayPosition === "left",
bottom: U.overlayPosition !== "left",
...U.overlaySize && { [U.overlaySize]: !0 }
}), t = U.overlayInterfaceClasses.join(" ");
return t ? `${e} ${t}` : e;
}, [
U.canvasStarted,
U.shouldUseBackdrop,
U.dimmed,
U.galleryActive,
U.overlayCollapsed,
U.kiosk,
U.inIdle,
U.setKioskModeEnabled,
U.overlayPosition,
U.overlaySize,
U.overlayInterfaceClasses
]);
return /* @__PURE__ */ (0, Q.jsxs)(bn, {
open: U.isOverlayOpen,
size: i,
particles: U.isFeaturedExhibitorActive ? /* @__PURE__ */ (0, Q.jsx)(ua, {}) : null,
className: u,
mediumSizeMultiplier: B.mediumSizeMultiplier,
fullSizeOffset: B.fullSizeOffset,
disableDrag: U.viewerMode && U.menu,
forceFull: U.viewerMode && U.menu,
scrollResetKey: a,
noContentLabel: s("No content"),
withFloatingButton: U.shouldShowMobileToggle,
onChangeSize: n,
onScrollStateChange: r,
onScrollActivity: () => {
var e, t;
return (e = (t = window).__resett) == null ? void 0 : e.call(t);
},
children: [
/* @__PURE__ */ (0, Q.jsx)(ca, {
isGDPR: e,
consent: t
}),
/* @__PURE__ */ (0, Q.jsx)(Ta, {}),
/* @__PURE__ */ (0, Q.jsx)(oi, {}),
/* @__PURE__ */ (0, Q.jsx)(fr, {}),
/* @__PURE__ */ (0, Q.jsx)(Kn, {}),
/* @__PURE__ */ (0, Q.jsx)(Xa, {}),
/* @__PURE__ */ (0, Q.jsx)(Ai, {}),
/* @__PURE__ */ (0, Q.jsx)(Sr, {}),
/* @__PURE__ */ (0, Q.jsx)(to, {}),
/* @__PURE__ */ (0, Q.jsx)(ci, {}),
/* @__PURE__ */ (0, Q.jsx)(Ba, { showFilters: !0 }),
/* @__PURE__ */ (0, Q.jsx)(Wa, { showFilters: !0 }),
/* @__PURE__ */ (0, Q.jsx)(Ja, {}),
/* @__PURE__ */ (0, Q.jsx)(Ka, {}),
/* @__PURE__ */ (0, Q.jsx)(ya, {}),
/* @__PURE__ */ (0, Q.jsx)(Vr, {}),
/* @__PURE__ */ (0, Q.jsx)(Ha, {})
]
});
});
//#endregion
//#region src/tools/debounce.ts
function ro(e, t) {
let n;
return (...r) => {
clearTimeout(n), n = setTimeout(() => {
e(...r);
}, t);
};
}
//#endregion
//#region src/tools/handleDebugMode.ts
function io() {
try {
let e = new URL(window.location.href), t = null, n = null;
for (let [r, i] of e.searchParams) if (r === "debug") {
t = i, n = r;
break;
} else if (r.startsWith("debug%3D") || r.startsWith("debug=")) {
t = r.split("=")[1], n = r;
break;
}
if (t === "1") localStorage.setItem(u, "true");
else if (t === "0") localStorage.setItem(u, "false");
else return;
n && (e.searchParams.delete(n), Ze(e.search) && window.location.reload());
} catch (e) {
console.error("Error in handleDebugMode:", e);
}
}
//#endregion
//#region src/utils/customCommands.ts
function ao(e) {
if (e = e.trim(), e.toLowerCase() === "__addcache") navigator.serviceWorker.getRegistrations().then((e) => {
if (!e.length) return alert("No registered service workers.");
let t = [];
R.exhibitorStore.exhibitors.forEach((e) => {
var n;
(n = e.logo) != null && n.url && t.push(e.logo.url), t.push(...e.gallery || []);
}), Promise.all(t.map((e) => fetch(e))).then((e) => alert(`${e.length} images loaded.`)).catch((e) => alert(e));
});
else if (Re()) return !0;
else e.startsWith("debug") ? io() : e === (K.customSetKiosk || "setkiosk") && U.enableSetKioskMode(!0);
return !1;
}
//#endregion
//#region src/components/SearchBox.tsx
var oo = 1e3;
function so(e) {
return e.getRootNode().activeElement === e;
}
function co({ className: e }) {
let t = (0, Z.useRef)(null), n = (0, Z.useRef)(null);
function r(e) {
let t = 0;
switch (e.key) {
case "Down":
case "ArrowDown":
t = 1;
break;
case "Up":
case "ArrowUp":
t = -1;
break;
case "Enter": {
e.preventDefault(), R.openActiveListItem();
let t = n.current;
t && ao(t.value);
return;
}
case "Escape":
e.preventDefault(), H.closeSearch();
return;
}
t && (e.preventDefault(), R.changeActiveListIndex(t));
}
let [i, a] = (0, Z.useState)(""), [o, c] = (0, Z.useState)(!1);
ne(() => {
c(U.kiosk && U.inIdle);
}), (0, Z.useEffect)(() => {
if (!o) return;
let e = [
s("Find Companies..."),
s("Find Categories..."),
s("Find Sessions..."),
s("Search...")
], t = 0, n = 0, r = !1, i, c = () => {
let o = e[t];
r ? (a(o.substring(0, n - 1)), n--) : (a(o.substring(0, n + 1)), n++);
let s = r ? 50 : 100;
!r && n === o.length ? (r = !0, s = 2e3) : r && n === 0 && (r = !1, t = (t + 1) % e.length, s = 500), i = setTimeout(c, s);
};
return i = setTimeout(c, 0), () => clearTimeout(i);
}, [o]), ne(() => {
let e = n.current;
e && !H.isFocused && so(e) && e.blur();
}), ne(() => {
U.menu && U.kiosk && H.setFocused(!1);
}), ne(() => {
let e = n.current;
e && H.isFocused && !H.skipInputFocus && !so(e) && e.focus();
}), (0, Z.useEffect)(() => {
R.fuzzySearchEngineStore.loadEngine();
}, []);
let l = (0, Z.useMemo)(() => ro(() => {
var e, t;
H.searchText && J(Y.Search, H.searchText), (e = (t = window).__resett) == null || e.call(t);
}, oo), []);
function u() {
var e;
H.setSearchText(((e = n.current) == null ? void 0 : e.value) || ""), l();
}
function d() {
var e, t;
H.setFocused(!0), (e = (t = window).__resett) == null || e.call(t);
}
function f() {
H.isFocused || (H.handleSearchAction(), setTimeout(() => {
var e;
(e = n.current) == null || e.focus();
}, 100));
}
function p() {
H.handleBackAction();
}
function m() {
H.closeSearch();
}
return F(() => /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("search-box", e, H.searchBoxClass, { "efp-semi-transparent": U.setKioskModeEnabled }),
"data-interface": U.activeInterfaceId,
ref: t,
children: [
/* @__PURE__ */ (0, Q.jsx)("button", {
className: (0, X.default)("search-box__button", "search-box__button--back", {
"is-mobile-details": H.isMobileDetailsMode,
"search-box__button--home": H.backMode !== "back" && U.viewerMode
}),
onClick: p,
type: "button",
"aria-label": H.backMode === "back" ? s("Go back") : s("Main menu"),
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: H.backMode === "back" ? "icon-chevron-left" : U.viewerMode ? "icon-home-solid" : "icon-menu" })
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "search-box__input-wrapper",
children: H.shouldShowSearchInput ? /* @__PURE__ */ (0, Q.jsx)("input", {
ref: n,
type: "search",
className: "search-box__input",
placeholder: o ? i : H.placeholder,
"aria-label": "Search",
value: H.searchText,
onChange: u,
onKeyDown: r,
onFocus: d,
autoComplete: "off",
autoCorrect: "off",
autoCapitalize: "off",
spellCheck: !1,
disabled: U.setKioskModeEnabled
}) : /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "search-box__title",
children: [
H.searchBoxIcon && /* @__PURE__ */ (0, Q.jsx)("i", { className: (0, X.default)("search-box__title-icon", H.searchBoxIcon) }),
/* @__PURE__ */ (0, Q.jsxs)("div", {
className: "search-box__title-content",
children: [/* @__PURE__ */ (0, Q.jsx)("strong", {
className: "search-box__title-text",
children: H.searchBoxTitle
}), H.searchBoxSubtitle && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "search-box__title-subtitle",
children: H.searchBoxSubtitle
})]
}),
H.searchBoxBadge ? /* @__PURE__ */ (0, Q.jsx)(Tt, {
variant: "lightgray",
size: "md",
rounded: !0,
noMargins: !0,
children: H.searchBoxBadge
}) : null
]
})
}),
!H.shouldShowSearchInput && H.searchBoxActions.map((e) => /* @__PURE__ */ (0, Q.jsx)("button", {
className: "search-box__button search-box__button--ui-action",
onClick: e.handler,
type: "button",
"aria-label": e.label,
title: e.label,
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: e.icon })
}, e.id)),
/* @__PURE__ */ (0, Q.jsx)("button", {
className: "search-box__button search-box__button--action",
onClick: H.shouldShowSearchInput ? H.shouldShowCloseButton ? m : f : m,
type: "button",
"aria-label": H.ariaLabel,
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: H.actionButtonIcon })
})
]
}));
}
//#endregion
//#region src/components/SearchButtons/SearchButton.tsx
var lo = I(({ id: e, label: t, icon: n, text: r, active: i, count: a, variant: o = "toggle", expanded: s = !1, isDimmed: c = !1, isDisabled: l = !1, showZeroCount: u = !1, backgroundColor: d, textColor: f, onClick: p }) => {
let m = a !== void 0 && (a > 0 || u), h = !!d;
return /* @__PURE__ */ (0, Q.jsxs)("button", {
type: "button",
style: h ? {
"--btn-bg-color": d,
"--btn-text-color": f || "#1a1a1a"
} : void 0,
className: (0, X.default)("efp-search-button", `efp-search-button--${o}`, {
"is-active": i,
"is-dimmed": c,
"is-disabled": l,
"has-custom-color": h
}),
onClick: () => {
var e, t;
p == null || p(), (e = (t = window).__resett) == null || e.call(t);
},
disabled: l,
"aria-label": t,
title: r ? void 0 : t,
"aria-haspopup": o === "action" ? "dialog" : void 0,
"aria-expanded": o === "action" ? s : void 0,
children: [
n && /* @__PURE__ */ (0, Q.jsx)("i", { className: (0, X.default)(n, "efp-search-button__icon") }),
r && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-search-button__text",
children: r
}),
o === "action" && /* @__PURE__ */ (0, Q.jsx)("i", {
className: "icon-chevron-down efp-search-button__chevron",
"aria-hidden": "true"
}),
m && /* @__PURE__ */ (0, Q.jsx)("span", {
className: (0, X.default)("efp-search-button__count", { "is-zero": a === 0 }),
children: a
})
]
});
}), uo = (0, Z.memo)(I(({ id: e, label: t, icon: n, text: r, active: i, count: a, onClick: o }) => /* @__PURE__ */ (0, Q.jsxs)("button", {
type: "button",
className: (0, X.default)("efp-search-sub-button", { "is-active": i }),
onClick: o,
"aria-label": t,
title: t,
children: [n ? /* @__PURE__ */ (0, Q.jsx)("i", { className: n }) : r ? /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-search-sub-button__text",
children: r
}) : null, a !== void 0 && a > 0 && /* @__PURE__ */ (0, Q.jsx)("span", {
className: "efp-search-sub-button__count",
children: a
})]
})));
uo.displayName = "SearchSubButton";
//#endregion
//#region src/components/SearchButtons/SearchSubButtons.tsx
var fo = (0, Z.memo)(I(() => {
let { searchButtonsStore: e } = R, t = (0, Z.useRef)(null);
(0, Z.useEffect)(() => {
let t = (t) => {
t.key === "Escape" && e.shouldShowSubButtons && e.hideSubButtons();
};
if (e.shouldShowSubButtons) return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
}, [e.shouldShowSubButtons]);
let n = (0, Z.useMemo)(() => e.activeSubButtons, [e.activeSubButtons]);
return e.shouldShowSubButtons ? /* @__PURE__ */ (0, Q.jsx)("div", {
ref: t,
className: (0, X.default)("efp-search-sub-buttons", { "is-visible": e.shouldShowSubButtons }),
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-search-sub-buttons__container",
children: n.map((e) => /* @__PURE__ */ (0, Q.jsx)(uo, { ...e }, e.id))
})
}) : null;
}));
fo.displayName = "SearchSubButtons";
//#endregion
//#region src/components/SearchButtons/SearchButtons.tsx
var po = I(() => {
let { searchButtonsStore: e } = R, t = (0, Z.useMemo)(() => e.searchButtons.filter((e) => e.enabled), [e.searchButtons]);
return e.shouldShow ? /* @__PURE__ */ (0, Q.jsxs)("div", {
className: (0, X.default)("efp-search-buttons", {
"is-overlay-full": R.uiState.isOverlayOpen && R.uiState.overlaySize === "full",
"is-long-levels": !K.shortLevelName,
"is-standalone": R.uiState.overlayOnDemand && !R.uiState.isOverlayOpen,
"efp-semi-transparent": R.uiState.setKioskModeEnabled
}),
children: [/* @__PURE__ */ (0, Q.jsx)(ba, {
ariaLabel: s("Search filters"),
scrollAmount: 150,
showArrowsOnMobile: !1,
arrowPosition: "inside",
children: t.map((e) => /* @__PURE__ */ (0, Q.jsx)(lo, {
...e,
isDisabled: R.uiState.setKioskModeEnabled
}, e.id))
}), e.subButtonsEnabled && /* @__PURE__ */ (0, Q.jsx)(fo, {})]
}) : null;
}), mo = I(({ store: e, visibleSections: t, open: n, onClose: r }) => {
let i = e.state.filters;
i.date.pending !== "all" || i.sortOrder.pending !== "desc" || i.use24hFormat.pending !== !1 || i.showBookmarksOnly.pending !== !1 || i.selectedTracks.pending.length > 0 || i.selectedVenues.pending.length;
let a = (0, Z.useMemo)(() => e.rootStore.eventStore.futureEvents.length, [e.rootStore.eventStore.futureEvents]), o = (0, Z.useMemo)(() => {
let t = e.rootStore.eventStore.tracks;
return t.length ? [{
groupName: "Tracks",
items: t.map((t) => ({
id: t.id,
name: t.name,
countProvider: () => e.rootStore.eventStore.getEventsByTrack(t.id).length
})),
showGroupActions: !0,
fullWidth: !0
}] : [];
}, [e.rootStore.eventStore.tracks]), c = (0, Z.useMemo)(() => {
let t = e.rootStore.eventStore.venues;
return t.length ? [{
groupName: "Venues",
items: t.map((t) => ({
id: t.id,
name: t.name,
countProvider: () => e.rootStore.eventStore.getEventsByVenue(t.id).length
})),
showGroupActions: !0,
fullWidth: !0
}] : [];
}, [e.rootStore.eventStore.venues]), l = (t) => {
let n = t.map((e) => Number(e));
e.setPending("selectedTracks", n);
}, u = (t) => {
let n = t.map((e) => Number(e));
e.setPending("selectedVenues", n);
}, d = n === void 0 ? e.state.isOpen : n, f = r || (() => e.closeFilter()), p = t || e.state.visibleSections;
return /* @__PURE__ */ (0, Q.jsx)(N, {
open: d,
title: s("Sessions Filters"),
maxWidth: 800,
footerLeft: [{
label: s("Clear all"),
variant: "gray",
disabled: i.selectedTracks.pending.length === 0 && i.selectedVenues.pending.length === 0,
onClick: () => {
e.resetFilters(), r && r();
}
}],
footerRight: [{
label: s("Apply"),
variant: "primary",
onClick: () => {
e.applyFilters(), r && r();
}
}],
onClose: f,
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-filters-modal",
children: [
p.includes("tracks") && o.length > 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-filters-modal__section",
children: /* @__PURE__ */ (0, Q.jsx)(Bn, {
groups: o,
selectedIds: i.selectedTracks.pending,
onChange: l,
showItemCounts: !0
})
}),
p.includes("venues") && c.length > 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-filters-modal__section",
children: /* @__PURE__ */ (0, Q.jsx)(Bn, {
groups: c,
selectedIds: i.selectedVenues.pending,
onChange: u,
showItemCounts: !0
})
}),
p.includes("date") && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [/* @__PURE__ */ (0, Q.jsx)("h3", { children: s("Date") }), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-filters-modal__buttons",
children: [
"all",
"today",
"tomorrow"
].map((t) => /* @__PURE__ */ (0, Q.jsx)("button", {
className: (0, X.default)("efp-sessions-filters-modal__btn", { "is-active": i.date.pending === t }),
onClick: () => e.setPending("date", t),
children: s(t === "all" ? "All dates" : t.charAt(0).toUpperCase() + t.slice(1))
}, t))
})]
}),
p.includes("time") && a >= 30 && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [/* @__PURE__ */ (0, Q.jsx)("h3", { children: s("Session time") }), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-filters-modal__buttons",
children: [
"all",
"morning",
"midday",
"afternoon"
].map((t) => /* @__PURE__ */ (0, Q.jsx)("button", {
className: (0, X.default)("efp-sessions-filters-modal__btn", { "is-active": i.timeOfDay.pending === t }),
onClick: () => e.setPending("timeOfDay", t),
children: s(t === "all" ? "All times" : t.charAt(0).toUpperCase() + t.slice(1))
}, t))
})]
}),
p.includes("sort") && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [/* @__PURE__ */ (0, Q.jsx)("h3", { children: s("Sort order") }), /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-filters-modal__buttons",
children: [/* @__PURE__ */ (0, Q.jsx)("button", {
className: (0, X.default)("efp-sessions-filters-modal__btn", { "is-active": i.sortOrder.pending === "desc" }),
onClick: () => e.setPending("sortOrder", "desc"),
children: s("Earliest first")
}), /* @__PURE__ */ (0, Q.jsx)("button", {
className: (0, X.default)("efp-sessions-filters-modal__btn", { "is-active": i.sortOrder.pending === "asc" }),
onClick: () => e.setPending("sortOrder", "asc"),
children: s("Latest first")
})]
})]
}),
p.includes("settings") && /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [
/* @__PURE__ */ (0, Q.jsx)("h3", { children: s("Additional settings") }),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-filters-modal__toggle",
children: /* @__PURE__ */ (0, Q.jsx)(Fn, {
name: "showBookmarksOnly",
label: s("Show bookmarks only"),
value: i.showBookmarksOnly.pending,
onChange: (t) => e.setPending("showBookmarksOnly", t)
})
}),
/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-sessions-filters-modal__toggle",
children: /* @__PURE__ */ (0, Q.jsx)(Fn, {
name: "use24hFormat",
label: s("Show time in 24h format"),
value: i.use24hFormat.pending,
onChange: (t) => e.setPending("use24hFormat", t)
})
})
]
})
]
})
});
}), ho = I(({ title: e, url: t }) => {
let n = encodeURIComponent(t), r = [
{
network: "facebook",
name: "Facebook",
url: `https://www.facebook.com/sharer/sharer.php?u=${n}`,
ariaLabel: s("Share {{title}} on Facebook", { title: e })
},
{
network: "xcom",
name: "X.COM",
url: `https://x.com/share?url=${n}`,
ariaLabel: s("Share {{title}} on X.com", { title: e })
},
{
network: "linkedin",
name: "LinkedIn",
url: `https://linkedin.com/shareArticle?url=${n}`,
ariaLabel: s("Share {{title}} on LinkedIn", { title: e })
}
];
return /* @__PURE__ */ (0, Q.jsx)(jn, {
title: e,
url: t,
shareHeading: s("Share"),
socials: r,
copyLinkSectionLabel: s("or copy link"),
directLinkAriaLabel: s("Direct link to {{title}}", { title: e }),
copyButtonAriaLabel: s("Copy link to clipboard"),
copyLabel: s("Copy"),
copiedLabel: s("Copied")
});
}), go = I(({ store: e, visibleSections: t, open: n, onClose: r }) => {
let i = e.state.filters, a = (0, Z.useMemo)(() => {
let t = e.rootStore.speakerStore.companies;
return t.length ? [{
groupName: "Companies",
items: t.map((t) => ({
id: t,
name: t,
countProvider: () => e.rootStore.speakerStore.getSpeakersByCompany(t).length
})),
showGroupActions: !0,
fullWidth: !0
}] : [];
}, [e.rootStore.speakerStore.companies]), o = (0, Z.useMemo)(() => {
let t = e.rootStore.speakerStore.jobTitles;
return t.length ? [{
groupName: "Job Titles",
items: t.map((t) => ({
id: t,
name: t,
countProvider: () => e.rootStore.speakerStore.getSpeakersByJobTitle(t).length
})),
showGroupActions: !0,
fullWidth: !0
}] : [];
}, [e.rootStore.speakerStore.jobTitles]), c = (t) => {
let n = t;
e.setPending("selectedCompanies", n);
}, l = (t) => {
let n = t;
e.setPending("selectedJobTitles", n);
}, u = n === void 0 ? e.state.isOpen : n, d = r || (() => e.closeFilter()), f = t || e.state.visibleSections;
return /* @__PURE__ */ (0, Q.jsx)(N, {
open: u,
title: s("Speaker Filters"),
maxWidth: 800,
footerLeft: [{
label: s("Clear all"),
variant: "gray",
disabled: i.selectedCompanies.pending.length === 0 && i.selectedJobTitles.pending.length === 0,
onClick: () => {
e.resetFilters();
}
}],
footerRight: [{
label: s("Apply"),
variant: "primary",
onClick: () => {
e.applyFilters();
}
}],
onClose: d,
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-speakers-filters-modal",
children: [f.includes("companies") && a.length > 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speakers-filters-modal__section",
children: /* @__PURE__ */ (0, Q.jsx)(Bn, {
groups: a,
selectedIds: i.selectedCompanies.pending,
onChange: c,
showItemCounts: !0
})
}), f.includes("jobTitles") && o.length > 0 && /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-speakers-filters-modal__section",
children: /* @__PURE__ */ (0, Q.jsx)(Bn, {
groups: o,
selectedIds: i.selectedJobTitles.pending,
onChange: l,
showItemCounts: !0
})
})]
})
});
}), _o = Z.lazy(() => import(
/* webpackChunkName: "demo" */
"./Demo-AI-22qbf.js"
).then((e) => e.t)), vo = Z.lazy(() => import(
/* webpackChunkName: "free" */
"./Free-BmItczwV.js"
)), yo = Z.lazy(() => import(
/* webpackChunkName: "debug" */
"./Debug-CSY6FmRs.js"
)), bo = Z.lazy(() => import(
/* webpackChunkName: "maplibre" */
"./MaplibreAdapter-D838jbrB.js"
)), xo = Z.lazy(() => import("./ModalContainer-DAh3OT88.js").then((e) => e.n)), So = Z.lazy(() => import(
/* webpackChunkName: "cc-script" */
"./CookieConsent-Dne5UXwi.js"
).then((e) => e.t)), Co = Z.lazy(() => import(
/* webpackChunkName: "cc-script" */
"./GpsLoader-D6boL0AQ.js"
)), wo = Z.lazy(() => import(
/* webpackChunkName: "set-kiosk-mode" */
"./SetKioskMode-DcQFm_UG.js"
)), To = Z.lazy(() => import(
/* webpackChunkName: "show-kiosk" */
"./ShowKiosk-BnuT9vM-.js"
)), Eo = I(function({ offHistory: e, consent: t }) {
var n, r, i, a, o, c;
let [l, u] = (0, Z.useState)(!1), [d, f] = (0, Z.useState)(!1), p = R.maplibreStore.showMaplibre, m = !L.layersLoaded && !R.fp.element.querySelector(".efp-runtime-loader-spinner"), g = U.searchButtonsOverride !== !1 && (!U.noOverlay || U.overlayOnDemand), _ = !U.noOverlay || U.overlayOnDemand && (d || U.isOverlayOpen), v = null;
U.bannerType === "demo" ? v = /* @__PURE__ */ (0, Q.jsx)(_o, {}) : U.bannerType === "free" && (v = /* @__PURE__ */ (0, Q.jsx)(vo, {}));
let y = () => {
Ke(!0), qe(), R.uiState.hideCookieConsent = !0;
}, b = () => {
Ke(!1), qe(), R.uiState.hideCookieConsent = !0;
};
(0, Z.useEffect)(() => {
async function e() {
let e = await We();
u(!!(e || e === null));
}
Ge(t) ? u(!0) : e();
}, [t]), W(() => U.isOverlayOpen, (e) => e && f(!0)), W(() => U.selectedExhibitor, (e) => {
let t = R.heatmapStore.forceTrack;
if (R.heatmapStore.forceTrack = null, t && t.exhibitor === e) {
J(t.action, t.label);
return;
}
e && (Xe("exview", e.id), J(Y.ViewExhibitor, e.name));
}), W(() => U.selectedBooth, (e) => (e == null ? void 0 : e.name) && J(Y.ViewBooth, e.name)), W(() => U.selectedCategory, (e) => (e == null ? void 0 : e.name) && J(Y.ViewCategory, e == null ? void 0 : e.name)), W(() => U.selectedEventItem, (e) => {
e != null && e.name && (Xe("sesview", e.name), J(Y.ViewExhibitor, e.name));
}), W(() => U.selectedSpeaker, (e) => {
e != null && e.name && Xe("spkview", e.name);
});
let x = !U.hideCookieConsent && !U.kiosk && l && t === "ask";
return /* @__PURE__ */ (0, Q.jsx)("div", {
id: "efp-layout",
className: (0, X.default)("layout", {
"efp-kiosk": U.kiosk,
"efp-kiosk-route-active": U.kiosk && ((n = U.selectedRoute) == null ? void 0 : n.from) && ((r = U.selectedRoute) == null ? void 0 : r.to),
"efp-layers-mode": R.layerStore.mode,
"efp-ws-mode": U.wsShown,
"efp-no-overlay": U.overlayHiddenNow,
"efp-overlay-on-demand": U.overlayOnDemand,
"efp-top-banner": U.bannerType === "free" && !U.freeBannerDismissed,
"efp-viewer-mode": U.viewerMode
}),
dir: U.rtl ? "rtl" : "ltr",
style: {
"--ui-scale": U.uiScale.toString(),
"--ws-height": U.wsHeightCss
},
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: `layout__fixed expo-${q.EXPO} overlay-${R.uiState.overlayPosition}`,
children: [
(L.mode === Me.Radio || L.mode === Me.CheckBox) && !U.floorsControlHidden && R.initialized && /* @__PURE__ */ (0, Q.jsx)(Fi, {}),
_ && R.initialized && /* @__PURE__ */ (0, Q.jsx)(no, {
isGDPR: l,
consent: t
}),
R.initialized && /* @__PURE__ */ (0, Q.jsx)(Hi, {}),
(!U.noOverlay || U.overlayOnDemand && U.isOverlayOpen) && R.initialized && !(U.viewerMode && U.menu) && /* @__PURE__ */ (0, Q.jsx)(co, {}),
g && R.initialized && /* @__PURE__ */ (0, Q.jsx)(po, {}),
!U.noOverlay && R.initialized && /* @__PURE__ */ (0, Q.jsx)(ia, {}),
!U.mapControlsHidden && R.initialized && /* @__PURE__ */ (0, Q.jsx)(ra, {}),
/* @__PURE__ */ (0, Q.jsx)(Mi, {}),
U.wsShown && R.initialized && /* @__PURE__ */ (0, Q.jsx)(Ci, {}),
R.routeStore.gpsEnabled && /* @__PURE__ */ (0, Q.jsx)(Co, { requestCompassAllowed: !x }),
ue && !p && /* @__PURE__ */ (0, Q.jsx)(ta, {}),
p && /* @__PURE__ */ (0, Q.jsx)(Er, { children: /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: /* @__PURE__ */ (0, Q.jsx)("div", {}),
children: /* @__PURE__ */ (0, Q.jsx)(bo, { viewMode: R.maplibreStore.mapViewMode })
}) }),
v && !U.hideFreeOrDemo && !U.heatmap ? /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: v
}) : null,
x && /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(So, {
link: "https://expofp.com/pages/viewer-cookie-consent",
onAccept: y,
onReject: b
})
}),
h ? /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(yo, {})
}) : null,
U.modalActive.share ? /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(xo, {
variant: "share",
ariaLabel: s("Share"),
open: U.modalActive.share,
onClose: () => R.toggleModal("share"),
children: /* @__PURE__ */ (0, Q.jsx)(ho, {
title: ((i = U.selectedExhibitor) == null ? void 0 : i.name) || ((a = U.selectedEventItem) == null ? void 0 : a.name) || "",
url: e ? `${window.location.origin}?${encodeURI(String(((o = U.selectedExhibitor) == null ? void 0 : o.slug) || ((c = U.selectedEventItem) == null ? void 0 : c.slug)))}` : window.location.href
})
})
}) : null,
U.heatmap || U.heatmapYah ? /* @__PURE__ */ (0, Q.jsx)(Ti, {
style: { left: `calc(50% + ${R.uiState.mapVisibleStart / 2}px)` },
className: U.responsiveClass
}) : null,
/* @__PURE__ */ (0, Q.jsx)(Pn, { active: m }),
/* @__PURE__ */ (0, Q.jsx)("div", { id: "fps" }),
R.initialized && /* @__PURE__ */ (0, Q.jsx)(wr, {}),
R.initialized && /* @__PURE__ */ (0, Q.jsx)(mo, { store: R.sessionsFilterStore }),
R.initialized && /* @__PURE__ */ (0, Q.jsx)(go, { store: R.speakerFilterStore }),
/* @__PURE__ */ (0, Q.jsx)(ji, {}),
R.initialized && U.setKioskModeEnabled && /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(wo, {})
}),
R.initialized && !U.setKioskModeEnabled && /* @__PURE__ */ (0, Q.jsx)(Z.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Q.jsx)(To, {})
})
]
})
});
}), Do = I((e) => /* @__PURE__ */ (0, Q.jsx)(Ft, {
...e,
levelLabel: s("Level")
}));
I(() => {
let e = U.overlaySize === "full";
return /* @__PURE__ */ (0, Q.jsx)(xn, {
isFull: e,
onToggle: () => U.toggleMapOverlay(),
ariaLabel: s(e ? "Collapse overlay" : "Expand overlay")
});
});
//#endregion
//#region src/components/ToursList.tsx
var Oo = I(({ tours: e, onTourClick: t }) => {
let n = (e, n, r) => {
t && t(e, n, r);
};
return e.length === 0 ? /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Q.jsx)("p", { children: s("No Guided Tours found") })
}) : /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tours-list",
children: e.map((e) => /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tour-item",
onClick: () => n(e, e.name, e.description),
role: "button",
tabIndex: 0,
onKeyDown: (t) => {
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), n(e, e.name, e.description));
},
children: /* @__PURE__ */ (0, Q.jsxs)("div", {
className: "efp-tour-item__body",
children: [/* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tour-item__left",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tour-item__icon",
children: /* @__PURE__ */ (0, Q.jsx)("i", { className: "icon-route-solid" })
})
}), /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tour-item__right",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tour-item__content",
children: /* @__PURE__ */ (0, Q.jsx)("div", {
className: "efp-tour-item__title",
children: /* @__PURE__ */ (0, Q.jsx)(pr, { text: e.name })
})
})
})]
})
}, e.id))
});
});
//#endregion
export { Wi as i, ao as n, Ui as r, Eo as t };
;/* vite-per-chunk-css */
__vite_inject_css__(".efp-alert{border-radius:var(--border-radius-lg);align-items:center;display:flex}.efp-alert--inline{display:inline-flex}.efp-alert__icon{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));margin-right:calc(.875rem * var(--ui-scale));border-radius:var(--border-radius-full);color:var(--color-white);justify-content:center;align-items:center;display:flex}.efp-alert__icon>i{font-size:var(--icon-size-lg)}.efp-alert__content{font-size:var(--font-size-lg);color:var(--color-black);flex:1}.efp-alert__content a{color:var(--color-primary);transition:color var(--transition-duration) ease, border var(--transition-duration) ease;text-decoration:underline}.efp-alert__content a:hover{color:var(--color-black)}.efp-alert__title{font-weight:var(--font-weight-bold)}.efp-alert__close{right:calc(-.25rem * var(--ui-scale));width:calc(1.625rem * var(--ui-scale));height:calc(1.625rem * var(--ui-scale));margin-left:calc(.5rem * var(--ui-scale));border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-duration) ease;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.efp-alert__close:before{font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-md);color:var(--color-black);font-family:efp-symbols,sans-serif!important}.efp-alert__close:hover{background:#33333314}.efp-alert--top-right,.efp-alert--bottom-right{box-shadow:var(--shadow-md);position:fixed}.efp-alert--top-right{top:calc(.625rem * var(--ui-scale));right:calc(.625rem * var(--ui-scale))}.efp-alert--bottom-right{right:calc(.625rem * var(--ui-scale));bottom:calc(.625rem * var(--ui-scale))}.efp-alert--info{background:var(--color-primary-ultra-light)}.efp-alert--info a{color:var(--color-primary-dark)}.efp-alert--info .efp-alert__icon{background:var(--color-primary)}.efp-alert--success{background:var(--color-green-ultra-light)}.efp-alert--success a{color:var(--color-green-dark)}.efp-alert--success .efp-alert__icon{background:var(--color-green)}.efp-alert--warning{background:var(--color-orange-ultra-light)}.efp-alert--warning a{color:var(--color-orange-ultra-dark)}.efp-alert--warning .efp-alert__icon{background:var(--color-orange-dark)}.efp-alert--error{background:var(--color-red-ultra-light)}.efp-alert--error a{color:var(--color-red-dark)}.efp-alert--error .efp-alert__icon{background:var(--color-red)}.efp-alert--blank{background:var(--color-white)}.efp-alert--blank a{color:var(--color-primary-dark)}.efp-alert--blank .efp-alert__icon{background:var(--color-primary)}.efp-alert--sm{padding:calc(.375rem * var(--ui-scale)) calc(.625rem * var(--ui-scale));border-radius:var(--border-radius-md)}.efp-alert--sm .efp-alert__content{font-size:var(--font-size-md)}.efp-alert--md{padding:calc(.75rem * var(--ui-scale)) calc(.875rem * var(--ui-scale))}.efp-autocomplete{width:100%;height:calc(3rem * var(--ui-scale));position:relative}.efp-autocomplete:before{font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";top:0;z-index:10;height:inherit;font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-sm);color:var(--color-gray-700);pointer-events:none;align-items:center;display:flex;position:absolute;font-family:efp-symbols,sans-serif!important}.efp-autocomplete:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{right:calc(.625rem * var(--ui-scale))}.efp-autocomplete:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{right:calc(.625rem * var(--ui-scale))}.efp-autocomplete:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{left:calc(.625rem * var(--ui-scale))}.efp-autocomplete:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{left:calc(.625rem * var(--ui-scale))}.efp-autocomplete__input{width:100%;height:calc(3rem * var(--ui-scale));padding-inline:calc(.875rem * var(--ui-scale)) calc(1.875rem * var(--ui-scale));background:var(--color-gray-100);border:1px solid var(--color-gray-100);border-radius:var(--border-radius-md);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);outline:none;-webkit-appearance:none!important;appearance:none!important}.efp-autocomplete__input::-webkit-search-decoration{display:none}.efp-autocomplete__input::-webkit-search-cancel-button{display:none}.efp-autocomplete__input::-webkit-search-results-button{display:none}.efp-autocomplete__input::-webkit-search-results-decoration{display:none}.efp-autocomplete__clear{-webkit-appearance:none;appearance:none;font:inherit;top:0;z-index:10;height:inherit;color:var(--color-gray-700);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute}.efp-autocomplete__clear:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:calc(2rem * var(--ui-scale))}.efp-autocomplete__clear:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:calc(2rem * var(--ui-scale))}.efp-autocomplete__clear:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:calc(2rem * var(--ui-scale))}.efp-autocomplete__clear:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:calc(2rem * var(--ui-scale))}.efp-autocomplete__clear:before{font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-sm);font-family:efp-symbols,sans-serif!important}.efp-autocomplete__clear:hover{color:var(--color-black)}.efp-autocomplete.is-open{z-index:15}.efp-autocomplete.with-clear .efp-autocomplete__input:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(3.125rem * var(--ui-scale))}.efp-autocomplete.with-clear .efp-autocomplete__input:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(3.125rem * var(--ui-scale))}.efp-autocomplete.with-clear .efp-autocomplete__input:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(3.125rem * var(--ui-scale))}.efp-autocomplete.with-clear .efp-autocomplete__input:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(3.125rem * var(--ui-scale))}.efp-autocomplete__inner{width:100%;height:100%;position:relative}.efp-autocomplete__empty{padding:calc(.625rem * var(--ui-scale)) calc(.9375rem * var(--ui-scale));color:var(--color-gray-700)}.efp-autocomplete-options{z-index:100;background:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-md);width:100%;box-shadow:var(--shadow-lg);position:absolute;overflow:hidden}.efp-autocomplete-options--inline{margin-top:calc(.25rem * var(--ui-scale));max-height:calc(16.25rem * var(--ui-scale));top:100%}.efp-autocomplete-options__scroll{max-height:inherit;overflow-y:auto}.efp-autocomplete-options__scroll::-webkit-scrollbar{background-color:var(--color-gray-100);width:6px}.efp-autocomplete-options__scroll::-webkit-scrollbar-track{background-color:var(--color-gray-100)}.efp-autocomplete-options__scroll::-webkit-scrollbar-thumb{background-color:var(--color-gray-400);border:0;border-radius:14px}.efp-autocomplete-options__scroll::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-500)}.efp-autocomplete-options__scroll::-webkit-scrollbar-button{display:none}.efp-autocomplete-options__scroll ul{margin:0;padding:0;list-style:none}.efp-autocomplete-options__scroll ul li{padding:calc(.5rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));font-size:var(--font-size-xl);color:var(--color-gray-800);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.efp-autocomplete-options__scroll ul li.is-active{background:var(--color-gray-300);color:var(--color-black)}.efp-autocomplete-options__scroll ul li.is-focus,.efp-autocomplete-options__scroll ul li:hover{background:var(--color-gray-200)}.efp-autocomplete-options__scroll ul li:active{background:var(--color-gray-300)}.efp-badge{margin-bottom:calc(.625rem * var(--ui-scale));font-weight:var(--font-weight-medium);justify-content:center;align-items:center;display:flex}.efp-badge--primary{background:var(--color-primary);color:var(--color-white)}.efp-badge--primary-light{background:var(--color-primary-ultra-light);color:var(--color-primary)}.efp-badge--ghost{color:var(--color-black)}.efp-badge--lightgray{background:var(--color-gray-100);color:var(--color-gray-800)}.efp-badge--gray{background:var(--color-gray-200);color:var(--color-gray-900)}.efp-viewer-mode .efp-badge--gray{background:#ebeef3}.efp-badge--orange{background:var(--color-orange);color:var(--color-black)}.efp-badge--location{background:var(--color-gray-300);color:var(--color-gray-700)}.efp-badge--xs{gap:calc(.5rem * var(--ui-scale));min-width:0;max-width:100%;padding:calc(.1875rem * var(--ui-scale)) calc(.4375rem * var(--ui-scale));border-radius:var(--border-radius-full);font-size:var(--font-size-sm);line-height:var(--font-size-md);overflow:hidden}.efp-badge--xs>:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.efp-badge--lg{gap:calc(.5rem * var(--ui-scale));padding:calc(.625rem * var(--ui-scale));border-radius:var(--border-radius-md);font-size:var(--font-size-xl)}.efp-badge--lg.is-rounded{min-width:calc(1.75rem * var(--ui-scale));height:calc(1.75rem * var(--ui-scale))}.efp-badge--md{gap:calc(.375rem * var(--ui-scale));padding:calc(.375rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));border-radius:var(--border-radius-md);font-size:var(--font-size-md)}.efp-badge--md.is-rounded{min-width:calc(1.5rem * var(--ui-scale));height:calc(1.5rem * var(--ui-scale))}.efp-viewer-mode .efp-badge--md{padding:0 calc(.625rem * var(--ui-scale));min-height:calc(1.75rem * var(--ui-scale))}.efp-badge.is-no-margin{margin:0}.efp-badge.is-inline{display:inline-flex}.efp-badge.is-rounded{border-radius:var(--border-radius-full)}.efp-checkbox-button{gap:calc(.5rem * var(--ui-scale));max-width:calc(25rem * var(--ui-scale));min-height:calc(2.625rem * var(--ui-scale));padding:0 calc(.875rem * var(--ui-scale)) 0 calc(.625rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-full);font-family:var(--app-font-family);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-gray-600);cursor:pointer;justify-content:center;align-items:center;text-decoration:none;transition:background .1s ease-in-out;display:flex}.efp-checkbox-button:hover{background:var(--color-gray-100)}.efp-checkbox-button__inner{width:calc(1.25rem * var(--ui-scale));height:calc(1.25rem * var(--ui-scale));border:1px solid var(--color-gray-500);border-radius:var(--border-radius-full);justify-content:center;align-items:center;transition:background .1s ease-in-out;display:flex}.efp-checkbox-button--checked{background:var(--color-visited);border-color:var(--color-visited);color:var(--color-white)}.efp-checkbox-button--checked .efp-checkbox-button__inner{border-color:var(--color-visited)}.efp-checkbox-button--checked .efp-checkbox-button__inner:after{font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-md);color:var(--color-white);font-family:efp-symbols,sans-serif!important}.efp-checkbox-button__inner--animate:after{animation:.3s ease-in-out scale-icon}@keyframes scale-icon{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.8)}to{transform:scale(1)}}.efp-download-list{max-width:100%}.efp-download-list__title{padding-bottom:calc(.75rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-gray-500)}.efp-download-list__list{row-gap:calc(.5rem * var(--ui-scale));flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.efp-download-list__item{align-items:center;gap:calc(.5rem * var(--ui-scale));width:100%;max-width:100%;padding:calc(.5rem * var(--ui-scale)) calc(.625rem * var(--ui-scale));background:var(--color-gray-100);border-radius:var(--border-radius-lg);color:var(--color-primary);cursor:pointer;text-decoration:none;display:flex;position:relative}.efp-download-list__item-icon{width:calc(1.5rem * var(--ui-scale));height:calc(1.5rem * var(--ui-scale));background-color:var(--color-primary);border-radius:var(--border-radius-full);justify-content:center;align-items:center;display:flex}.efp-download-list__item-icon>i{font-size:var(--icon-size-xs);color:var(--color-white)}.efp-download-list__item-name{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);flex:1;overflow:hidden}.efp-download-list__item-download>i{font-size:var(--icon-size-md)}.efp-download-list__item:visited{color:var(--color-primary)}.efp-download-list__item:hover{background:var(--color-gray-200);color:var(--color-primary-dark)}.efp-download-list__item:hover .efp-download-list__item-icon{background-color:var(--color-primary-dark)}.efp-download-list__item:hover .efp-download-list__item-download{color:var(--color-primary-dark)}.efp-entity-item{min-height:calc(4.5rem * var(--ui-scale));background:var(--color-white);border-bottom:1px solid var(--color-gray-200);cursor:pointer;align-items:center;display:flex;position:relative}.efp-entity-item__body{z-index:10;gap:calc(.875rem * var(--ui-scale));width:100%;padding:calc(1rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));align-items:flex-start;display:flex;position:relative}.efp-entity-item__left{gap:calc(.375rem * var(--ui-scale));flex-flow:column wrap;align-items:center;display:flex}.efp-entity-item__right{gap:calc(.625rem * var(--ui-scale));flex:1;min-width:0;display:flex}.efp-entity-item__content{flex-direction:column;flex:1;max-width:100%;display:flex}.efp-entity-item__content.with-image{max-width:calc(100% - calc(4.875rem * var(--ui-scale)))}.efp-entity-item__icon{width:calc(1.375rem * var(--ui-scale));height:calc(1.375rem * var(--ui-scale));margin-top:calc(-.125rem * var(--ui-scale));background:var(--item-type-color);border-radius:var(--border-radius-full);justify-content:center;align-items:center;display:flex}.efp-entity-item__icon>i{font-size:var(--icon-size-xxxs);color:var(--color-white)}.efp-entity-item__icon>img{width:calc(.75rem * var(--ui-scale));height:calc(.75rem * var(--ui-scale));filter:brightness(100)contrast(100)}.efp-entity-item__visited{width:calc(1.375rem * var(--ui-scale));height:calc(1.375rem * var(--ui-scale));margin-top:calc(.0625rem * var(--ui-scale));padding-top:calc(.0625rem * var(--ui-scale));background:var(--color-visited);border-radius:var(--border-radius-full);justify-content:center;align-items:center;display:flex}.efp-entity-item__visited>i{font-size:var(--icon-size-xxs);color:var(--color-white)}.efp-entity-item__bookmarked{color:var(--color-bookmarked);font-size:var(--icon-size-lg)!important}.efp-entity-item__datetime{font-size:var(--font-size-md);color:var(--item-type-color)}.efp-entity-item__datetime>span{margin-left:calc(.375rem * var(--ui-scale))}.efp-entity-item__header{flex-flow:column wrap;align-items:flex-start;display:flex}.efp-entity-item__title{width:100%;font-size:var(--font-size-xxl);font-weight:var(--font-weight-medium);color:var(--color-black);letter-spacing:.01em;align-items:center}.efp-entity-item__title>span{margin-left:calc(.375rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);color:var(--color-gray-600)}.efp-entity-item__title>i{top:calc(.0625rem * var(--ui-scale));margin-left:calc(.375rem * var(--ui-scale));font-size:var(--icon-size-xs);color:var(--color-primary);position:relative}.efp-entity-item__description{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;padding:.4rem 0;font-weight:400;display:block;overflow:hidden}.efp-entity-item__subtitle{margin-top:calc(.125rem * var(--ui-scale));font-size:var(--font-size-md);color:var(--color-gray-600);letter-spacing:.01em}.efp-entity-item__details{row-gap:calc(.25rem * var(--ui-scale));margin:calc(.5rem * var(--ui-scale)) 0 0;flex-flow:column wrap;align-items:flex-start;padding:0;list-style:none;display:flex}.efp-entity-item__details.compact-details{gap:calc(.25rem * var(--ui-scale));flex-flow:wrap;align-items:flex-start}.efp-entity-item__details-item{gap:calc(.4375rem * var(--ui-scale));min-width:0;max-width:100%;padding:calc(.125rem * var(--ui-scale)) calc(.4375rem * var(--ui-scale));background:var(--color-primary-ultra-light);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);line-height:var(--font-size-md);color:var(--color-primary-ultra-dark);letter-spacing:.01em;align-items:center;display:inline-flex;overflow:hidden}.efp-entity-item__details-item>div{min-height:100%;padding:calc(.125rem * var(--ui-scale)) 0;align-items:center;display:block;position:relative}.efp-entity-item__details-item>div:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.efp-entity-item__image{width:calc(4.25rem * var(--ui-scale));height:calc(3.5rem * var(--ui-scale));margin-top:calc(-.0625rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.efp-entity-item__image>img{width:auto;max-width:100%;height:auto;max-height:100%;display:block}.efp-entity-item__featured{min-height:calc(1.25rem * var(--ui-scale));margin:calc(.375rem * var(--ui-scale)) 0 calc(-.0625rem * var(--ui-scale));padding:calc(.1875rem * var(--ui-scale)) calc(.375rem * var(--ui-scale));background:var(--color-featured-badge-bg);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-featured-badge-text);text-align:center;letter-spacing:.03em;align-items:center;display:inline-flex}.efp-entity-item:hover,.efp-entity-item.is-current{background:var(--color-gray-100)}.efp-entity-item:hover .efp-entity-item__details-item,.efp-entity-item.is-current .efp-entity-item__details-item{background:var(--color-primary-very-light)}.efp-entity-item.is-featured{background:var(--color-featured);border-bottom:1px solid var(--color-featured-border)}.efp-entity-item.is-featured .efp-entity-item__details-item{background:var(--color-primary-very-light)}.efp-entity-item.is-featured:hover,.efp-entity-item.is-featured.is-current{background:var(--color-featured-hover)}.efp-entity-item.is-featured:hover .efp-entity-item__details-item,.efp-entity-item.is-featured.is-current .efp-entity-item__details-item{background:var(--color-primary-mid-light)}.efp-entity-item.has-heatmap:after{content:\"\";width:calc(.5rem * var(--ui-scale));background-color:var(--heatmap-color);pointer-events:none;position:absolute;top:0;bottom:0;right:0}.efp-entity-item.has-accent{border-left:calc(.3125rem * var(--ui-scale)) solid var(--accent-border-color)}.efp-entity-item.is-person .efp-entity-item__content.with-image{max-width:calc(100% - calc(3.5rem * var(--ui-scale)))}.efp-entity-item.is-person .efp-entity-item__details{margin-top:0}.efp-entity-item.is-person .efp-entity-item__subtitle{margin-top:calc(.3125rem * var(--ui-scale));font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-gray-900)}.efp-entity-item.is-person .efp-entity-item__details-item{padding:calc(.125rem * var(--ui-scale)) 0;font-size:var(--font-size-md);line-height:var(--font-size-md);color:var(--color-gray-500);background:0 0;border-radius:0;margin-top:0}.efp-entity-item.is-person .efp-entity-item__image{width:calc(3.5rem * var(--ui-scale));height:calc(3.5rem * var(--ui-scale))}.efp-entity-item.is-person .efp-entity-item__image>img{object-fit:cover;object-position:center;width:100%;height:100%}.efp-event-badge{align-items:center;gap:calc(.5rem * var(--ui-scale));max-height:calc(1.125rem * var(--ui-scale));margin-left:calc(.25rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.25rem * var(--ui-scale));border-radius:var(--border-radius-xs);font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);text-transform:uppercase;color:var(--color-white);white-space:nowrap;top:calc(-.125rem * var(--ui-scale));display:inline-flex;position:relative}.efp-event-badge--live{background:#f44;animation:2s infinite pulse}.efp-event-badge--upcoming,.efp-event-badge--starting-soon{background:#f80}.efp-event-badge--past{background:#6b7280}.efp-event-badge--full{background:#b83e4a}.efp-event-badge.is-urgent{animation:2s infinite pulse}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.efp-heatmap-legend{bottom:calc(1.25rem * var(--ui-scale));width:calc(25rem * var(--ui-scale));position:absolute;left:50%;transform:translate(-50%)}.efp-heatmap-legend__colors{height:calc(1.25rem * var(--ui-scale));margin-bottom:calc(.125rem * var(--ui-scale))}.efp-heatmap-legend__values{font-weight:var(--font-weight-bold);color:var(--color-black);text-shadow:1px 1px #fff,-1px 1px #fff,1px -1px #fff,-1px -1px #fff;justify-content:space-between;display:flex}@media (max-width:480px){.efp-heatmap-legend__values{font-size:.85em}}@media (max-width:768px){.efp-heatmap-legend{top:calc(calc(1.875rem * var(--ui-scale)) + var(--search-box-height) + var(--search-buttons-height) + var(--ws-height));bottom:unset;width:calc(13.75rem * var(--ui-scale));touch-action:none;-webkit-user-select:none;user-select:none}}@media (max-width:480px){.efp-heatmap-legend{width:calc(11.25rem * var(--ui-scale))}}.efp-level-badge{min-width:0;max-width:100%;margin-bottom:calc(.875rem * var(--ui-scale));padding:calc(.125rem * var(--ui-scale)) calc(.4375rem * var(--ui-scale));background:var(--color-primary-ultra-light);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);line-height:var(--font-size-md);color:var(--color-primary-ultra-dark);letter-spacing:.01em;display:inline-flex;overflow:hidden}.efp-level-badge>span{padding:calc(.125rem * var(--ui-scale)) 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.efp-level-selector{top:var(--levels-top);right:var(--app-gap);z-index:30;position:absolute}.layout[dir=rtl] .efp-level-selector{right:unset;left:var(--app-gap)}.efp-level-selector--compact-list{gap:calc(.1875rem * var(--ui-scale));padding:calc(.1875rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-2xl);box-shadow:var(--shadow-md);flex-direction:column;display:flex}.efp-level-selector--dropdown{flex-direction:column;display:flex}.efp-level-selector__item{min-width:calc(2.125rem * var(--ui-scale));height:calc(2.125rem * var(--ui-scale));padding:0 calc(.375rem * var(--ui-scale));border-radius:var(--border-radius-full);font-family:inherit;font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-gray-700);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;outline:none;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex;position:relative}.efp-level-selector__item>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.efp-level-selector__item:hover:not(.efp-level-selector__item--disabled):not(.efp-level-selector__item--active){background:var(--color-gray-200);color:var(--color-black)}.efp-level-selector__item:focus-visible{outline:calc(.125rem * var(--ui-scale)) solid var(--color-primary);outline-offset:calc(.125rem * var(--ui-scale))}.efp-level-selector__item--active{background:var(--color-primary);color:var(--color-white)}.efp-level-selector__item--disabled{background:var(--color-gray-200);color:var(--color-gray-400);pointer-events:none;cursor:default}.efp-level-selector__trigger{justify-content:space-between;align-items:center;gap:calc(.375rem * var(--ui-scale));width:var(--level-dropdown-trigger-width);height:calc(2.5rem * var(--ui-scale));padding:0 calc(.5rem * var(--ui-scale)) 0 calc(.75rem * var(--ui-scale));background:var(--color-primary);border:calc(.1875rem * var(--ui-scale)) solid var(--color-white);border-radius:var(--border-radius-full);color:var(--color-white);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;box-shadow:var(--shadow-md);transition:background-color .15s;display:flex}.efp-level-selector__trigger:hover{background:var(--color-primary-dark)}.efp-level-selector__trigger:focus-visible{outline:calc(.125rem * var(--ui-scale)) solid var(--color-primary-dark);outline-offset:calc(.125rem * var(--ui-scale))}.efp-level-selector__trigger--open{background:var(--color-primary-dark)}.efp-level-selector__trigger-text{align-items:center;gap:calc(.5rem * var(--ui-scale));max-width:calc(100% - calc(1.5rem * var(--ui-scale)));display:flex}.efp-level-selector__trigger-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.efp-level-selector__trigger-text>i{margin-top:calc(-.0625rem * var(--ui-scale));font-size:var(--icon-size-xs)}.efp-level-selector__trigger-chevron{align-items:center;display:flex}.efp-level-selector__trigger-chevron>i{font-size:var(--icon-size-xss);transition:transform .15s}.efp-level-selector__trigger--open .efp-level-selector__trigger-chevron>i{transform:rotate(180deg)}.efp-level-selector__dropdown{z-index:100;min-width:calc(5rem * var(--ui-scale));max-width:calc(13.75rem * var(--ui-scale));max-height:calc(18.75rem * var(--ui-scale));gap:calc(.1875rem * var(--ui-scale));padding:calc(.1875rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-2xl);box-shadow:var(--shadow-lg);flex-direction:column;animation:.15s ease-out levelSelectorFadeIn;display:flex;position:absolute;right:0;overflow-y:auto}.efp-level-selector__dropdown--opens-down{margin-top:calc(.25rem * var(--ui-scale));top:100%}.efp-level-selector__dropdown--opens-up{margin-bottom:calc(.25rem * var(--ui-scale));animation-name:levelSelectorFadeInUp;bottom:100%}.efp-level-selector__dropdown--full{min-width:calc(11.25rem * var(--ui-scale));max-width:calc(20rem * var(--ui-scale))}.layout[dir=rtl] .efp-level-selector__dropdown{right:unset;left:0}.efp-level-selector__dropdown-item{align-items:center;gap:calc(.5rem * var(--ui-scale));min-height:calc(2.125rem * var(--ui-scale));padding:0 calc(.875rem * var(--ui-scale)) 0 calc(.5rem * var(--ui-scale));border-radius:var(--border-radius-2xl);color:var(--color-gray-800);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;transition:background-color .15s;display:flex}.efp-level-selector__dropdown-item:hover:not(.efp-level-selector__dropdown-item--disabled):not(.efp-level-selector__dropdown-item--active){background:var(--color-gray-200)}.efp-level-selector__dropdown-item:focus-visible{background:var(--color-gray-100);outline:none}.efp-level-selector__dropdown-item--active{background:var(--color-primary);color:var(--color-white)}.efp-level-selector__dropdown-item--disabled{color:var(--color-gray-400);pointer-events:none;cursor:default}.efp-level-selector__dropdown-item-icon{width:var(--icon-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.efp-level-selector__dropdown-item-icon>i{font-size:var(--icon-size-sm)}.efp-level-selector__dropdown-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes levelSelectorFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes levelSelectorFadeInUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.efp-logo-strip{box-sizing:border-box;padding:0 calc(.25rem * var(--ui-scale));background:var(--color-white);box-shadow:var(--shadow-md);justify-content:center;align-items:center;display:flex;overflow:hidden}.efp-logo-strip__item{flex:none;justify-content:center;align-self:stretch;align-items:center;animation:.5s efp-logo-strip-fade-in;display:flex}.efp-logo-strip__item>img{object-fit:contain;display:block}@keyframes efp-logo-strip-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.efp-logo-strip__item{animation:none}}.efp-map-controls{z-index:20;gap:calc(.5rem * var(--ui-scale));width:calc(2.375rem * var(--ui-scale));opacity:0;flex-direction:column;transition:opacity .3s;display:flex;position:absolute}.efp-map-controls.-ready{opacity:1}.layout[dir=rtl] .efp-map-controls{right:unset;left:var(--app-gap)}.efp-map-control{width:calc(2.375rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;transition:background-color .2s,color .2s;display:flex}.efp-map-control>i{font-size:var(--icon-size-md);color:var(--color-gray-800);transition:color .2s}.efp-map-control:hover{background:var(--color-gray-100)}.efp-map-control:hover>i{color:var(--color-black)}.efp-map-control--active>i{opacity:1;color:var(--color-primary)}.efp-map-control-group{background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow:hidden}.efp-map-control-group .efp-map-control{box-shadow:none;height:calc(2.25rem * var(--ui-scale));background:0 0;border-radius:0}.efp-map-control-group .efp-map-control:hover{background:var(--color-gray-100)}.efp-map-control-group .efp-map-control-divider{height:1px;width:calc(1.5rem * var(--ui-scale));background:var(--color-gray-200);margin:0 auto}.efp-checked-panel{margin-right:calc(.375rem * var(--ui-scale));max-width:calc(16.25rem * var(--ui-scale));min-width:calc(9.375rem * var(--ui-scale));max-height:calc(18.75rem * var(--ui-scale));background:var(--color-white);-webkit-backdrop-filter:var(--backdrop-blur-ex);backdrop-filter:var(--backdrop-blur-ex);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-md);z-index:30;transform-origin:100%;animation:.2s ease-out fadeIn;position:absolute;left:auto;right:100%;overflow-y:auto}.efp-checked-panel--opens-down{top:0;bottom:auto}.efp-checked-panel--opens-down:before{top:calc(1.1875rem * var(--ui-scale))}.efp-checked-panel--opens-up{top:auto;bottom:0}.efp-checked-panel--opens-up:before{bottom:calc(1.1875rem * var(--ui-scale));top:auto}.efp-checked-panel__list{padding:calc(.375rem * var(--ui-scale)) 0;margin:0;list-style:none}.efp-checked-panel__checkbox{white-space:nowrap;clip:rect(0, 0, 0, 0);clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.efp-checked-panel__label{width:100%;padding:calc(.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) calc(.5rem * var(--ui-scale)) calc(2.5rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-gray-600);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:flex;position:relative}.efp-checked-panel__label:before{content:\"\";left:calc(.875rem * var(--ui-scale));font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-sm);color:var(--color-gray-400);position:absolute;font-family:efp-symbols,sans-serif!important}.efp-checked-panel__label:hover{background:var(--color-gray-100)}.efp-checked-panel__checkbox:focus-visible~.efp-checked-panel__label:before{outline:2px solid var(--color-primary);outline-offset:2px}.efp-checked-panel__checkbox:checked~.efp-checked-panel__label{color:var(--color-black)}.efp-checked-panel__checkbox:checked~.efp-checked-panel__label:before{content:\"\";color:var(--color-primary)}.efp-checked-panel__item-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.efp-layers-button{display:inline-flex;position:relative}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.efp-mobile-toggle-button{bottom:calc(1.25rem * var(--ui-scale));z-index:50;justify-content:center;align-items:center;gap:calc(.5rem * var(--ui-scale));white-space:nowrap;min-width:calc(2.375rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);color:var(--color-gray-900);cursor:pointer;border:1px solid #0000;flex-shrink:0;transition:all .2s;display:flex;position:fixed;left:50%;transform:translate(-50%)}.efp-mobile-toggle-button i{font-size:var(--icon-size-sm)}.efp-mobile-toggle-button__text{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;max-width:calc(10rem * var(--ui-scale));overflow:hidden}.efp-mobile-toggle-button--map{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.efp-multi-select-groups__list{column-gap:calc(1.875rem * var(--ui-scale));row-gap:calc(1.625rem * var(--ui-scale));grid-template-columns:1fr 1fr;display:grid}@media (max-width:768px){.efp-multi-select-groups__list{grid-template-columns:1fr}}.efp-multi-select-groups__group--full-width{margin-bottom:calc(.25rem * var(--ui-scale));grid-column:1/-1}.efp-multi-select-groups__group-header{gap:calc(1.125rem * var(--ui-scale));margin-bottom:calc(.625rem * var(--ui-scale));align-items:center;display:flex}.efp-multi-select-groups__group-title{font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--color-gray-900)}.efp-multi-select-groups__group-items{gap:calc(.375rem * var(--ui-scale));flex-wrap:wrap;display:flex}.efp-multi-select-groups__show-more{margin-top:calc(.375rem * var(--ui-scale))}.efp-multi-select-groups__item-count{font-size:var(--font-size-md);opacity:.7}.efp-multi-select-groups__item{align-items:center;gap:calc(.5rem * var(--ui-scale));min-height:calc(2.125rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));background:var(--color-gray-200);border-radius:var(--border-radius-full);font-size:var(--font-size-lg);color:var(--color-gray-900);cursor:pointer;border:0;outline:none;transition:all .1s;display:flex}.efp-multi-select-groups__item>div{flex:1}.efp-multi-select-groups__item:hover:not(.efp-multi-select-groups__item--disabled):not(.efp-multi-select-groups__item--selected){background:var(--color-gray-300);color:var(--color-black)}.efp-multi-select-groups__item--disabled{opacity:.5;cursor:not-allowed}.efp-multi-select-groups__item--disabled:hover{border-color:var(--color-gray-300);color:var(--color-gray-900)}.efp-multi-select-groups__item--selected{background:var(--color-primary-light);color:var(--color-primary-ultra-dark);animation:none}.efp-multi-select-groups__item--selected:hover:not(.efp-multi-select-groups__item--disabled){color:var(--color-primary-ultra-dark)}.efp-multi-select-groups__item--categories.efp-multi-select-groups__item--selected{background:var(--color-category-light);border-color:var(--color-category-light);color:var(--color-category-ultra-dark);animation:none}.efp-multi-select-groups__item--categories.efp-multi-select-groups__item--selected:hover:not(.efp-multi-select-groups__item--disabled){border-color:var(--color-category-light);color:var(--color-category-ultra-dark)}.efp-multi-select-groups__group-actions{gap:calc(.75rem * var(--ui-scale));align-items:center;display:flex}.efp-multi-select-groups__action-btn{font-size:var(--font-size-md);color:var(--color-gray-700);cursor:pointer;border-radius:var(--border-radius-sm);background:0 0;border:none;padding:0}.efp-multi-select-groups__action-btn:hover{color:var(--color-black)}.efp-multi-select-groups__show-more-badge{margin-left:calc(.125rem * var(--ui-scale));margin-right:calc(-.125rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));background:var(--color-category-light);color:var(--color-category-ultra-dark);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.efp-show-more-button{align-items:center;gap:calc(.25rem * var(--ui-scale));padding:calc(.125rem * var(--ui-scale)) 0;color:var(--color-primary);font-family:var(--app-font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;border:0;line-height:1.3;transition:color .15s;display:inline-flex}.efp-show-more-button>i{font-size:var(--icon-size-xs);transition:transform .18s;display:inline-flex;transform:rotate(0)}.efp-show-more-button:hover,.efp-show-more-button:focus{color:var(--color-primary-dark)}.efp-show-more-button:hover .efp-show-more-button__label,.efp-show-more-button:focus .efp-show-more-button__label{text-decoration:underline}.efp-show-more-button--expanded>i{transform:rotate(180deg)}.efp-overlay{z-index:35;background:var(--color-white);border-top-right-radius:var(--border-radius-xl);border-top-left-radius:var(--border-radius-xl);touch-action:none;overscroll-behavior:none;will-change:height;flex-direction:column;display:flex;position:fixed}.efp-overlay__draghandle{padding-top:calc(1.125rem * var(--ui-scale));cursor:ns-resize;justify-content:center;align-items:center;transition:height .3s,padding-top .3s;display:flex}.efp-overlay__draghandle:before{content:\"\";border-radius:var(--border-radius-md);background:var(--color-gray-400);opacity:1;width:44px;height:3px;transition:opacity .3s;position:absolute;top:7px}.efp-overlay__header{flex-shrink:0}.efp-overlay__scroll{overscroll-behavior:contain;flex-grow:1;flex-shrink:1;position:relative;overflow-x:hidden;overflow-y:auto}.efp-overlay__scroll::-webkit-scrollbar{background-color:var(--color-gray-100);width:6px}.efp-overlay__scroll::-webkit-scrollbar-track{background-color:var(--color-gray-100)}.efp-overlay__scroll::-webkit-scrollbar-thumb{background-color:var(--color-gray-400);border:0;border-radius:14px}.efp-overlay__scroll::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-500)}.efp-overlay__scroll::-webkit-scrollbar-button{display:none}.efp-overlay__scroll:before{content:\"\";opacity:0;pointer-events:none;z-index:990;background:linear-gradient(#0000001a 0%,#0000 100%);height:14px;margin-bottom:-14px;transition:opacity .1s;display:block;position:sticky;top:0;left:0;right:0}@media (max-width:768px){.efp-overlay__scroll::-webkit-scrollbar{width:0}}.efp-overlay__content{flex-direction:column;display:flex;position:relative}.efp-overlay__content>*{flex:1;min-height:0}.efp-overlay--scrolled .efp-overlay__scroll:before{opacity:1}.efp-overlay--desktop{top:calc(calc(.625rem * var(--ui-scale)) + var(--ws-height) + var(--banner-height));left:calc(.625rem * var(--ui-scale));width:var(--search-box-width);max-height:calc(100vh - calc(1.25rem * var(--ui-scale)) - var(--ws-height) - var(--banner-height));padding-top:var(--search-box-height);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);height:auto;transition:opacity .3s,top .3s;overflow:hidden}.efp-overlay--desktop .efp-overlay__draghandle{display:none}.efp-overlay--desktop .efp-overlay__scroll{height:100%}.efp-overlay--desktop.efp-overlay--hidden{display:none}.layout[dir=rtl] .efp-overlay--desktop{left:unset;right:calc(.625rem * var(--ui-scale))}.efp-overlay--mobile{box-shadow:var(--shadow-md);-webkit-user-select:none;user-select:none;transition:height .3s,padding-top .2s;bottom:0;left:0;right:0}.efp-overlay--mobile .efp-overlay__header{border:0!important}.efp-overlay--mobile .efp-overlay__scroll{max-height:calc(100vh - calc(1.25rem * var(--ui-scale)) - var(--ws-height) - var(--search-box-height) - var(--banner-height));-webkit-user-select:none;user-select:none;border:0!important}.efp-overlay--mobile.efp-overlay--draggable,.efp-overlay--mobile.efp-overlay--keyboard{transition:unset}.efp-overlay--mobile.efp-overlay--keyboard .efp-overlay__scroll{max-height:none}.efp-overlay--mobile.efp-overlay--full .efp-overlay__scroll{border:0}.efp-overlay--mobile.overlay-has-details{z-index:40}.efp-overlay--mobile.overlay-has-details .efp-overlay__content{border:0;overflow:visible}.efp-overlay.overlay-exhibitor-featured{background:var(--color-primary-ultra-dark)}.efp-overlay.efp-overlay-search .efp-overlay__scroll,.efp-overlay.efp-overlay-sessions .efp-overlay__scroll,.efp-overlay.efp-overlay-speakers .efp-overlay__scroll,.efp-overlay.efp-overlay-bookmarks .efp-overlay__scroll,.efp-overlay.efp-overlay-visited .efp-overlay__scroll,.efp-overlay.efp-overlay-language .efp-overlay__scroll,.efp-overlay.efp-overlay-category .efp-overlay__scroll,.efp-overlay.efp-overlay-tours .efp-overlay__scroll,.efp-overlay.efp-overlay-filter .efp-overlay__scroll,.efp-overlay.efp-overlay-exhibitors .efp-overlay__scroll,.efp-overlay.efp-overlay-multi-point:not(.is-details) .efp-overlay__scroll,.efp-overlay.efp-overlay-search .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-sessions .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-speakers .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-bookmarks .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-visited .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-language .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-category .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-tours .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-filter .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-exhibitors .efp-overlay__header:not(:empty),.efp-overlay.efp-overlay-multi-point:not(.is-details) .efp-overlay__header:not(:empty){border-top:1px solid var(--color-gray-300)}.efp-overlay.efp-overlay-search .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-sessions .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-speakers .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-bookmarks .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-visited .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-language .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-category .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-tours .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-filter .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-exhibitors .efp-overlay__header:not(:empty)+.efp-overlay__scroll,.efp-overlay.efp-overlay-multi-point:not(.is-details) .efp-overlay__header:not(:empty)+.efp-overlay__scroll{border-top:0}.efp-overlay--button-inset .efp-overlay__content{padding-bottom:calc(4.625rem * var(--ui-scale))}.efp-overlay--forced-full{z-index:999;border-top-left-radius:0;border-top-right-radius:0}.efp-overlay--forced-full .efp-overlay__scroll{max-height:100%}.efp-overlay--forced-full .efp-overlay__content{min-height:100%}@media print{.efp-overlay{display:none}}@media (min-width:550px){.efp-kiosk-route-active .efp-overlay{-webkit-backdrop-filter:blur(10px);background:#fffc}}.efp-overlay-grip{z-index:2;width:calc(3rem * var(--ui-scale));height:calc(1rem * var(--ui-scale));cursor:pointer;background:0 0;border:0;margin:0 auto;padding:0;display:block;position:absolute;left:0;right:0}.efp-overlay-grip>svg{width:calc(3rem * var(--ui-scale));height:calc(1rem * var(--ui-scale));display:block}.efp-overlay-grip>svg>path{fill:none;stroke:var(--color-gray-500);stroke-linecap:round;stroke-width:70px}.efp-overlay-grip>svg>path:first-child{display:none}.efp-overlay-grip--full>svg>path:first-child{display:inherit}.efp-overlay-grip--full>svg>path:last-child{display:none}.efp-radio{gap:calc(.75rem * var(--ui-scale));cursor:pointer;grid-auto-flow:column;place-content:center start;display:inline-grid;position:relative}.efp-radio:hover{background:var(--color-gray-100)}.efp-radio__input{white-space:nowrap;clip:rect(0, 0, 0, 0);clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.efp-radio__input:focus-visible+.efp-radio__control{outline:2px solid var(--color-primary);outline-offset:2px}.efp-radio__control{width:calc(1.125rem * var(--ui-scale));height:calc(1.125rem * var(--ui-scale));border:1px solid var(--color-gray-500);border-radius:var(--border-radius-full);display:inline-grid}.efp-radio__label{font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);color:var(--color-gray-800);letter-spacing:.02em;line-height:1}.efp-radio--checked{background:var(--color-gray-100)}.efp-radio--checked .efp-radio__control{border:calc(.25rem * var(--ui-scale)) solid var(--color-primary)}.efp-radio--checked .efp-radio__label{color:var(--color-black)}.efp-radio--disabled{opacity:.5;cursor:not-allowed}.efp-radio--disabled:hover{background:0 0}.rebooking-notes{padding:0 calc(1rem * var(--ui-scale));flex-flow:wrap;justify-content:center;display:flex}.rebooking-notes__edit{width:100%;padding-bottom:calc(1rem * var(--ui-scale));flex-flow:wrap;justify-content:right;display:flex}.rebooking-notes__val{width:100%;padding:0 0 calc(.875rem * var(--ui-scale))}.rebooking-notes__val>textarea{width:100%;max-width:100%;min-height:140px;padding:calc(.625rem * var(--ui-scale));border:1px solid var(--color-gray-400);border-radius:var(--border-radius-md);box-shadow:none;font-family:var(--app-font-family);font-size:var(--font-size-xl);outline:none;overflow:auto}.rebooking-notes__val>textarea:focus{border-color:var(--color-gray)}.rebooking-notes__view-header{width:100%;padding-bottom:calc(.875rem * var(--ui-scale));justify-content:space-between;align-items:center;display:flex}.rebooking-notes__buttons{gap:calc(.625rem * var(--ui-scale));display:flex}.rebooking-radio-group{padding:calc(1rem * var(--ui-scale))}.rebooking-radio-group__title{padding-bottom:calc(.625rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.rebooking-radio-group__options{gap:calc(.625rem * var(--ui-scale));flex-flow:column wrap;display:flex}.rebooking-radio__icon{width:calc(1.5rem * var(--ui-scale));height:calc(1.5rem * var(--ui-scale));background:var(--rebooking-color-primary);border-radius:var(--border-radius-full);color:var(--color-white);justify-content:center;align-items:center;display:flex}.rebooking-radio__icon>i{font-size:18px;line-height:0}.rebooking-radio__label{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium)}.rebooking-radio>input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rebooking-radio>input~label{padding:calc(.75rem * var(--ui-scale)) calc(.875rem * var(--ui-scale)) calc(.75rem * var(--ui-scale)) calc(3rem * var(--ui-scale));background:var(--color-gray-200);border-radius:var(--border-radius-md);color:var(--color-black);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;line-height:1;display:flex;position:relative}.rebooking-radio>input~label:before{content:\"\";top:50%;left:calc(.875rem * var(--ui-scale));width:calc(1.25rem * var(--ui-scale));height:calc(1.25rem * var(--ui-scale));margin-top:calc(-.625rem * var(--ui-scale));border:2px solid #98a2b3;border-radius:50%;position:absolute}.rebooking-radio>input~label:hover{background:#eaecf0}.rebooking-radio>input:checked~label{background:var(--rebooking-color-primary);color:var(--color-white)}.rebooking-radio>input:checked~label:before{border:5px solid var(--color-white)}.rebooking-radio>input:checked~label>.rebooking-radio__icon{background:var(--color-white);color:var(--rebooking-color-primary)}.rebooking-radio>input:disabled~label{background:var(--color-gray-200);color:var(--color-gray);cursor:default}.rebooking-radio>input:disabled~label:before{border-color:var(--color-gray-400)}.rebooking-radio>input:disabled~label>.rebooking-radio__icon{color:var(--color-gray)}.efp-scrollable-row__container{padding:0 calc(1rem * var(--ui-scale));align-items:center;display:flex;position:relative}.efp-scrollable-row__container--outside{padding:0 calc(2rem * var(--ui-scale))}@media (max-width:768px){.efp-scrollable-row__container{padding:0}}.efp-scrollable-row__scroll-wrapper{scrollbar-width:none;border-radius:var(--border-radius-md);-webkit-user-select:none;user-select:none;scroll-behavior:smooth;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden}.efp-scrollable-row__scroll-wrapper--dragging{scroll-behavior:auto}.efp-scrollable-row__scroll-wrapper--dragging *{pointer-events:none;-webkit-user-select:none!important;user-select:none!important}.efp-scrollable-row__scroll-wrapper--dragging button,.efp-scrollable-row__scroll-wrapper--dragging a,.efp-scrollable-row__scroll-wrapper--dragging input,.efp-scrollable-row__scroll-wrapper--dragging select,.efp-scrollable-row__scroll-wrapper--dragging textarea{pointer-events:auto}.efp-scrollable-row__scroll-wrapper::-webkit-scrollbar{display:none}@media (max-width:768px){.efp-scrollable-row__scroll-wrapper{border-radius:0}}.efp-scrollable-row__content{gap:calc(.375rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) 0;white-space:nowrap;flex-shrink:0;align-items:center;display:flex}.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content{pointer-events:none}.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content button,.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content a,.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content input,.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content select,.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content textarea,.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content [role=button],.efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content [tabindex]{pointer-events:auto}@media (max-width:768px){.efp-scrollable-row__content{padding:calc(.125rem * var(--ui-scale)) calc(.875rem * var(--ui-scale))}}.efp-scrollable-row__arrow{z-index:10;width:calc(2rem * var(--ui-scale));height:calc(2rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);color:var(--color-gray-600);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.efp-scrollable-row__arrow--left{left:calc(.625rem * var(--ui-scale))}.efp-scrollable-row__arrow--right{right:calc(.625rem * var(--ui-scale))}.efp-scrollable-row__arrow--rtl i{transform:scaleX(-1)}.efp-scrollable-row__arrow i{font-size:var(--icon-size-sm)}.efp-scrollable-row__arrow:hover{background:var(--color-gray-100);color:var(--color-black)}.layout[dir=rtl] .efp-scrollable-row__arrow--left{right:calc(.625rem * var(--ui-scale));left:unset}.layout[dir=rtl] .efp-scrollable-row__arrow--right{right:unset;left:calc(.625rem * var(--ui-scale))}.share>h3{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-black);text-align:center;margin:0}.share__socials{margin:calc(1.875rem * var(--ui-scale)) 0 calc(1.75rem * var(--ui-scale));justify-content:center;display:flex}.share__copy>span{margin-bottom:calc(.375rem * var(--ui-scale));font-size:var(--font-size-md);color:var(--color-gray-600);display:block}.share__copy-input{height:calc(2.5rem * var(--ui-scale));border:1px solid var(--color-gray-400);border-radius:var(--border-radius-sm);align-items:center;display:flex;overflow:hidden}.share__copy-input>input{height:calc(2.375rem * var(--ui-scale));font-size:var(--font-size-lg);color:var(--color-gray-600);border:0;outline:none;flex:1}.share__copy-input>input:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(.875rem * var(--ui-scale))}.share__copy-input>input:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(.875rem * var(--ui-scale))}.share__copy-input>input:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(.875rem * var(--ui-scale))}.share__copy-input>input:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(.875rem * var(--ui-scale))}.share__copy-input>button{min-width:calc(4.25rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));padding:0 calc(.5rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-primary);text-align:center;cursor:pointer;background:0 0;border:0}.share__copy-input>button.isCopied,.share__copy-input>button.isCopied:hover{color:var(--color-gray-500)}.share__copy-input>button:hover{color:var(--color-primary)}.share-social{margin:0 calc(.9375rem * var(--ui-scale));flex-flow:column wrap;align-items:center;text-decoration:none;display:flex}.share-social__icon{width:calc(2.875rem * var(--ui-scale));height:calc(2.875rem * var(--ui-scale));color:var(--color-black);justify-content:center;align-items:center;display:flex;position:relative}.share-social__icon:before{content:\"\";width:inherit;height:inherit;border-radius:50%;transition:all .2s ease-in-out;position:absolute;transform:scale(1)}.share-social__icon>i{z-index:1;position:relative}.share-social__title{margin-top:calc(.25rem * var(--ui-scale));font-size:var(--font-size-lg);color:var(--color-black);transition:color .1s ease-in-out}.share-social.facebook .share-social__icon{color:#1877f2}.share-social.facebook .share-social__icon:before{background:#d9eaff}.share-social.xcom .share-social__icon{color:#000}.share-social.xcom .share-social__icon:before{background:#e2e2e2}.share-social.linkedin .share-social__icon{color:#0a66c2}.share-social.linkedin .share-social__icon:before{background:#e4edff}.share-social:hover .share-social__icon:before{transform:scale(.9)}.share-social:hover .share-social__title{color:var(--color-primary)}.efp-sidebar-actions{gap:calc(.5rem * var(--ui-scale));width:100%;margin-bottom:calc(1.125rem * var(--ui-scale));flex-flow:wrap;align-items:center;display:flex}.efp-sidebar-actions--bookmarks{padding:calc(.625rem * var(--ui-scale)) calc(1rem * var(--ui-scale));margin-bottom:0}.efp-action-button{gap:calc(.375rem * var(--ui-scale));height:calc(2.5rem * var(--ui-scale));padding:0 calc(.75rem * var(--ui-scale)) 0 calc(.5rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-primary);border-radius:var(--border-radius-full);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;transition:background .1s,color .1s,box-shadow .1s;display:flex;overflow:hidden}.efp-action-button:not(.efp-action-button--active):not(.efp-action-button--directions):not(.efp-action-button--route-planner):hover{background:var(--color-primary-ultra-light)}.efp-action-button:active{box-shadow:0 0 0 2px #3d91f74d}.efp-action-button [class^=icon-]{font-size:var(--icon-size-sm)}.efp-action-button--directions,.efp-action-button--route-planner{background:var(--color-primary);color:var(--color-white);flex-grow:4;flex-shrink:.5}.efp-action-button--directions:hover,.efp-action-button--route-planner:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.efp-action-button--bookmark{width:calc(2.5rem * var(--ui-scale));background:var(--color-white);border-color:var(--color-primary);color:var(--color-primary);padding:0}.efp-action-button--bookmark.efp-action-button--active{border-color:var(--color-bookmarked)}.efp-action-button--bookmark.efp-action-button--active [class^=icon-]{color:var(--color-bookmarked)}.efp-action-button--bookmark:not(.efp-action-button--active) [class^=icon-]{animation:unset!important}.efp-action-button--bookmark.efp-action-button--animate [class^=icon-]{animation:.3s ease-in-out scale-bookmark-icon}.efp-action-button--share{width:calc(2.5rem * var(--ui-scale));padding:0}.efp-visited-btn{flex-grow:1;flex-shrink:0}.layout[dir=rtl] .efp-action-button--directions .icon{transform:scaleX(-1)}@keyframes scale-bookmark-icon{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.4)}to{transform:scale(1)}}.efp-simple-row{min-height:calc(3.5rem * var(--ui-scale));padding:calc(.375rem * var(--ui-scale)) 0;border-top:1px solid var(--color-gray-300);font-size:var(--font-size-xl);color:var(--color-black);justify-content:space-between;align-items:center;display:flex}@media (hover:hover){.efp-simple-row--active{background:#00000012}.efp-simple-row:hover,.efp-simple-row--active:hover{background-color:#0000000d}}.efp-simple-row__col{padding:0 calc(1rem * var(--ui-scale)) 0}.efp-simple-row__main{height:calc(1.25rem * var(--ui-scale));font-weight:var(--font-weight-medium);text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.efp-simple-row__sub{height:calc(.75rem * var(--ui-scale));margin:calc(-.125rem * var(--ui-scale)) 0;font-size:var(--font-size-sm);color:var(--color-gray-600);text-align:left}.efp-simple-row__end{min-width:calc(4rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-gray-600);text-align:end;overflow-wrap:break-word}.efp-simple-row__end:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(1rem * var(--ui-scale))}.efp-simple-row__end:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(1rem * var(--ui-scale))}.efp-simple-row__end:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(1rem * var(--ui-scale))}.efp-simple-row__end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(1rem * var(--ui-scale))}.layout[dir=rtl] .efp-simple-row__main,.layout[dir=rtl] .efp-simple-row__sub{text-align:right}.efp-spinner{z-index:5;pointer-events:none;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute;bottom:60px;right:20px}.efp-spinner.is-hidden{opacity:0;visibility:hidden}.efp-spinner>svg{transform-origin:50%;width:60px;animation:2s linear infinite rotate}.efp-spinner>svg>circle{fill:none;stroke:var(--color-primary);stroke-dasharray:1 200;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2px;animation:1.5s ease-in-out infinite dash}@media (max-width:768px){.efp-spinner>svg{width:40px}.efp-spinner{bottom:190px}}[dir=rtl] .efp-spinner{right:unset;left:20px}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:90 200;stroke-dashoffset:-35px}to{stroke-dashoffset:-125px}}.efp-toggle-switch{min-height:20px}.efp-toggle-switch input[type=checkbox]{white-space:nowrap;clip:rect(0, 0, 0, 0);clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.efp-toggle-switch input[type=checkbox]:focus-visible+label:before{outline:2px solid var(--color-primary);outline-offset:2px}.efp-toggle-switch input[type=checkbox]+label{box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:50%;min-height:20px;display:inline-block;position:relative}.efp-toggle-switch input[type=checkbox]+label:before{content:\"\";background:var(--color-gray-300);cursor:pointer;border-radius:30px;width:36px;height:20px;transition:background .3s ease-in-out;position:absolute;top:0;left:0}.efp-toggle-switch input[type=checkbox]+label:after{content:\"\";background:var(--color-white);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:left .3s cubic-bezier(.5,1.5,.5,1),right .3s cubic-bezier(.5,1.5,.5,1);position:absolute;top:3px;left:3px}.efp-toggle-switch input[type=checkbox]+label span{min-height:inherit;font-size:var(--font-size-lg);color:var(--color-black);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:flex}.efp-toggle-switch input[type=checkbox]+label span:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:45px}.efp-toggle-switch input[type=checkbox]+label span:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:45px}.efp-toggle-switch input[type=checkbox]+label span:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:45px}.efp-toggle-switch input[type=checkbox]+label span:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:45px}.efp-toggle-switch input[type=checkbox]:checked+label:before{background:var(--color-primary)}.efp-toggle-switch input[type=checkbox]:checked+label:after{left:18px}.efp-toggle-switch.xs input[type=checkbox]+label:before,.efp-toggle-switch.sm input[type=checkbox]+label:before{width:40px;height:24px;top:0}.efp-toggle-switch.xs input[type=checkbox]+label:after,.efp-toggle-switch.sm input[type=checkbox]+label:after{width:18px;height:18px;top:3px}.efp-toggle-switch.xs input[type=checkbox]+label span,.efp-toggle-switch.sm input[type=checkbox]+label span{padding-left:50px}.efp-toggle-switch.xs input[type=checkbox]:checked+label:after,.efp-toggle-switch.sm input[type=checkbox]:checked+label:after{left:18px}[dir=rtl] .efp-toggle-switch input[type=checkbox]+label:before{right:0;left:unset}[dir=rtl] .efp-toggle-switch input[type=checkbox]+label:after{right:3px;left:unset}[dir=rtl] .efp-toggle-switch input[type=checkbox]:checked+label:after{right:18px}.efp-wayfinding-floor{width:100%;padding:calc(.3125rem * var(--ui-scale)) calc(.9375rem * var(--ui-scale)) calc(.625rem * var(--ui-scale)) calc(.9375rem * var(--ui-scale));align-items:center;display:flex;position:relative}.efp-wayfinding-floor__body,.efp-wayfinding-floor__list{width:100%;position:relative}.efp-wayfinding-floor__title{padding-right:calc(.75rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-gray)}.efp-wayfinding-floor__list{--gap:3px;gap:var(--gap);flex-flow:wrap;align-items:center;display:flex}.efp-wayfinding-floor__item{min-width:0;position:relative}.efp-wayfinding-floor__item button{z-index:3;min-width:calc(2.375rem * var(--ui-scale));max-width:calc(6.25rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));padding:0 calc(.375rem * var(--ui-scale));background:var(--color-white);border:2px solid var(--color-gray-300);border-radius:var(--border-radius-full);font-weight:var(--font-weight-bold);color:var(--color-gray-800);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;outline:none;margin-left:-1px;position:relative;overflow:hidden}.efp-wayfinding-floor__item button:hover{background:var(--color-gray-300)}.efp-wayfinding-floor__item.is-passed button{background:var(--color-gray-200);border-color:var(--color-gray-200);color:var(--color-gray-600)}.efp-wayfinding-floor__item.is-passed button:hover{background:var(--color-gray-300);border-color:var(--color-gray-300);color:var(--color-black)}.efp-wayfinding-floor__item.is-current button{z-index:2;background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.efp-wayfinding-floor__arrow{width:calc(1.375rem * var(--ui-scale));height:calc(1.375rem * var(--ui-scale));color:var(--color-gray-400);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.efp-wayfinding-floor__arrow svg{width:100%;height:100%}.efp-wayfinding-floor__arrow--up{transform:rotate(45deg)}.efp-wayfinding-floor__arrow--down{transform:rotate(-45deg)}.efp-wayfinding-floor__arrow--passed{color:var(--color-gray-300)}.efp-wayfinding-floor__arrow--blink{animation:1.5s ease-in-out infinite blink-blue-arrow}@keyframes blink-blue-arrow{0%,to{color:var(--color-gray-300)}50%{color:var(--color-primary)}}.efp-filter-modal__search{top:calc(-1.5rem * var(--ui-scale));z-index:1;align-items:center;gap:calc(.5rem * var(--ui-scale));margin:calc(-1.5rem * var(--ui-scale)) calc(-1.25rem * var(--ui-scale)) calc(1rem * var(--ui-scale));padding:calc(1.5rem * var(--ui-scale)) calc(1.25rem * var(--ui-scale)) calc(.75rem * var(--ui-scale));background:var(--color-white);display:flex;position:sticky}.efp-filter-modal__search-icon{font-size:var(--icon-size-xs);color:var(--color-gray-500);flex-shrink:0}.efp-filter-modal__search-input{min-width:0;height:calc(2.375rem * var(--ui-scale));padding:0 calc(.625rem * var(--ui-scale));background:var(--color-gray-100);border:1px solid var(--color-gray-200);border-radius:var(--border-radius-md);font-size:var(--font-size-xxl);color:var(--color-gray-800);flex:1}.efp-filter-modal__search-input:focus{border-color:var(--color-primary);outline:none}.efp-filter-modal__search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.efp-filter-modal__search-clear{width:calc(1.75rem * var(--ui-scale));height:calc(1.75rem * var(--ui-scale));border-radius:var(--border-radius-md);opacity:.6;color:var(--color-gray-700);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.efp-filter-modal__search-clear:hover{background:var(--color-gray-100);opacity:1}.efp-filter-modal__empty{margin:calc(1.5rem * var(--ui-scale)) 0;text-align:center;font-size:var(--font-size-lg);color:var(--color-gray-500)}.layout[dir=rtl] .efp-filter-modal__search-input{text-align:right}.booth__header{align-items:center;gap:calc(.625rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));color:var(--color-black);display:flex}.booth__header-name{align-items:center;gap:calc(.625rem * var(--ui-scale));font-size:var(--font-size-3xl);font-weight:var(--font-weight-medium);letter-spacing:.01em;flex:1;display:flex}.booth__header-icon{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-booth);color:var(--color-white);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;display:flex}.booth__header-icon>i{font-size:var(--icon-size-xxs)}.booth__header-close{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));background:var(--color-gray-100);border-radius:var(--border-radius-full);cursor:pointer;border:0;justify-content:center;align-items:center;display:none}.booth__header-close>i{font-size:var(--icon-size-sm);color:var(--color-gray-800)}.booth__title{font-weight:var(--font-weight-medium)}.booth__content{margin:0 calc(1rem * var(--ui-scale))}.booth__content .efp-entity-item{width:calc(100% + calc(2rem * var(--ui-scale)));margin-left:calc(-1rem * var(--ui-scale));cursor:pointer}.booth__content .efp-entity-item:last-child{border:0}.booth__info{gap:calc(.75rem * var(--ui-scale));margin-bottom:calc(.625rem * var(--ui-scale));padding:calc(.75rem * var(--ui-scale));background:var(--color-gray-100);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-lg);align-items:center;display:flex}.booth__info-icon{width:calc(2.875rem * var(--ui-scale));height:calc(2.875rem * var(--ui-scale));background:var(--color-primary-ultra-light);border-radius:var(--border-radius-full);color:var(--color-primary);justify-content:center;align-items:center;display:flex}.booth__info-icon>i{font-size:var(--icon-size-md)}.booth__info-body{flex:1}.booth__info-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-600)}.booth__info-val{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-gray-black)}.booth__info.is-onhold .booth__info-icon{background:var(--color-gray-300);color:var(--color-gray-600)}.booth__info.is-onhold .booth__info-title{color:var(--color-gray-600)}.booth__info.is-onhold .booth__info-val{color:var(--color-gray-700)}.booth__buy{gap:calc(.625rem * var(--ui-scale));margin:calc(1.875rem * var(--ui-scale)) 0;justify-content:center;display:flex}.booth__directions{margin:calc(.5rem * var(--ui-scale)) 0}.booth__directions>button{cursor:pointer}.booth__reserve-instructions{line-height:1.4em;font-size:var(--font-size-lg);color:var(--color-black)}.booth__reserve-instructions a{color:var(--color-primary)}.booth__desc p,.booth__desc span{font-size:var(--font-size-lg);overflow-wrap:break-word;background:0 0!important}@media (max-width:768px){.booth__header{z-index:10;background:var(--color-white);position:sticky;top:0;left:0}.booth__header-close{display:flex}}.efp-schedule{padding:calc(1rem * var(--ui-scale));font-size:var(--font-size-xl)}.efp-schedule__item{grid-template-columns:calc(2.75rem * var(--ui-scale)) minmax(0, 1fr);border-top:1px solid var(--color-gray-300);display:grid;position:relative}.efp-schedule__item:before{content:\"\";top:calc(-.0625rem * var(--ui-scale));width:calc(2.375rem * var(--ui-scale));height:calc(.0625rem * var(--ui-scale));background:var(--color-gray-400);position:absolute;left:0}.efp-schedule__date{height:100%}.efp-schedule__date-sticky{gap:calc(.0625rem * var(--ui-scale));width:calc(2.375rem * var(--ui-scale));padding:calc(.875rem * var(--ui-scale)) 0 calc(1.125rem * var(--ui-scale));flex-flow:column wrap;align-items:center;display:flex;position:sticky;top:0}.efp-schedule__date-sticky>div:first-child{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium)}.efp-schedule__date-sticky>div:nth-child(2){font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-gray-600)}.efp-schedule__date-sticky>div:nth-child(3){font-size:var(--font-size-sm);color:var(--color-gray-600)}.efp-schedule__events{padding:calc(.625rem * var(--ui-scale)) 0 calc(.625rem * var(--ui-scale)) calc(.625rem * var(--ui-scale))}.efp-schedule__event-booth-and-tracks{gap:calc(.25rem * var(--ui-scale));margin:calc(.625rem * var(--ui-scale)) 0;flex-wrap:wrap;display:flex}.efp-schedule__event{padding:calc(.625rem * var(--ui-scale)) calc(.75rem * var(--ui-scale));border-radius:var(--border-radius-sm);transition:background var(--transition-duration) ease;cursor:pointer;text-decoration:none;display:block}.efp-schedule__event.ended{opacity:.6;color:var(--color-gray-900)}.efp-schedule__event.current{background:var(--color-gray-300)}.efp-schedule__event>span{font-size:var(--font-size-md);color:var(--color-gray-700);display:block}.efp-schedule__event>strong{padding-top:calc(.25rem * var(--ui-scale));font-size:var(--font-size-xxl);font-weight:var(--font-weight-medium);display:block}.efp-schedule__event-booth{min-width:0;max-width:100%;padding:calc(.125rem * var(--ui-scale)) calc(.4375rem * var(--ui-scale));gap:calc(.4375rem * var(--ui-scale));background:var(--color-primary-ultra-light);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);line-height:var(--font-size-md);color:var(--color-primary-ultra-dark);letter-spacing:.01em;align-items:center;display:inline-flex;overflow:hidden}.efp-schedule__event-booth>div{min-height:100%;padding:calc(.125rem * var(--ui-scale)) 0;align-items:center;display:block;position:relative}.efp-schedule__event-booth>div:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.efp-schedule__event-tracks{gap:calc(.25rem * var(--ui-scale));margin:calc(.375rem * var(--ui-scale)) 0;flex-wrap:wrap;display:flex}.efp-schedule__event-track{padding:calc(.125rem * var(--ui-scale)) calc(.375rem * var(--ui-scale));background:var(--color-event-ultra-light);color:var(--color-event);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);letter-spacing:.01em;align-items:center;display:inline-flex}.efp-schedule__event-logo{margin:calc(.375rem * var(--ui-scale)) 0;width:100%;max-height:calc(8.75rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-sm);justify-content:flex-start;align-items:center;display:flex;overflow:hidden}.efp-schedule__event-logo>img{object-fit:contain;max-width:100%;max-height:100%}.efp-schedule__event-speakers{align-items:center;gap:calc(.25rem * var(--ui-scale));margin:calc(.375rem * var(--ui-scale)) 0;font-size:var(--font-size-md);color:var(--color-gray-900);display:flex}.efp-schedule__event-speakers-label{align-items:center;gap:calc(.25rem * var(--ui-scale));margin-bottom:calc(.125rem * var(--ui-scale));font-weight:var(--font-weight-medium);display:flex}.efp-schedule__event-speakers-label>i{font-size:var(--icon-size-xs);color:var(--color-gray-600)}.efp-schedule__event-speakers-list{gap:calc(.125rem * var(--ui-scale));flex-wrap:wrap;display:flex}.efp-schedule__event-live-badge{top:calc(-.0625rem * var(--ui-scale));margin-left:calc(.375rem * var(--ui-scale));padding:calc(.125rem * var(--ui-scale)) calc(.25rem * var(--ui-scale));border-radius:var(--border-radius-xs);font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);text-transform:uppercase;color:var(--color-white);background:#f44;animation:2s infinite pulse;display:inline-block;position:relative}.efp-schedule__event-upcoming-badge{top:calc(-.0625rem * var(--ui-scale));margin-left:calc(.375rem * var(--ui-scale));padding:calc(.125rem * var(--ui-scale)) calc(.25rem * var(--ui-scale));border-radius:var(--border-radius-xs);font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);text-transform:uppercase;color:var(--color-white);background:#f3b210;display:inline-block;position:relative}.efp-schedule__event:hover{background:var(--color-gray-100)}.efp-schedule__event[href]>strong{color:var(--color-primary)}.efp-schedule__event[href]:hover>strong{color:var(--color-primary-dark)}.efp-schedule__event-desc{margin:calc(.375rem * var(--ui-scale)) 0;font-size:var(--font-size-md);color:var(--color-gray-900)}.efp-schedule__event-desc>p{margin:calc(.375rem * var(--ui-scale)) 0}.efp-schedule.is-sessions{padding-top:calc(.625rem * var(--ui-scale))}.efp-schedule.is-sessions .efp-schedule__item:first-child{border-top:none}.efp-schedule.is-sessions .efp-schedule__item:first-child:before{display:none}.efp-schedule.is-sessions .efp-schedule__item:first-child .efp-schedule__events{padding-top:0}.efp-schedule.is-sessions .efp-schedule__item:first-child .efp-schedule__date-sticky{padding-top:calc(.625rem * var(--ui-scale))}.efp-schedule.is-sessions .efp-schedule__date-sticky{top:calc(3.75rem * var(--ui-scale))}.efp-schedule__past-events-header{margin:calc(1.25rem * var(--ui-scale)) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-gray-500)}.-exhibitor-featured .efp-schedule__event>span,.-exhibitor-featured .efp-schedule__event-desc,.-exhibitor-featured .efp-schedule__date>div{color:#ffffffb3}.-exhibitor-featured .efp-schedule__event:hover{background:#ffffff1a}.efp-note{margin-top:calc(-.125rem * var(--ui-scale));font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-gray-600);display:block}.list-empty{padding:calc(1.5rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));font-size:var(--font-size-xl);color:var(--color-gray-600);text-align:center;cursor:default}.efp-event__header{justify-content:space-between;align-items:center;gap:calc(.625rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));color:var(--color-black);display:flex}.efp-event__header-name{align-items:center;gap:calc(.625rem * var(--ui-scale));font-size:var(--font-size-3xl);font-weight:var(--font-weight-medium);letter-spacing:.01em;display:flex}.efp-event__header-name>span>span{max-width:calc(16rem * var(--ui-scale));text-align:left;text-overflow:ellipsis;overflow:hidden}.efp-event__header-icon{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-event);color:var(--color-white);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;display:flex}.efp-event__header-icon>i{font-size:var(--icon-size-xxs)}.efp-event__header-close{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));background:var(--color-gray-100);border-radius:var(--border-radius-full);cursor:pointer;border:0;justify-content:center;align-self:flex-start;align-items:center;display:none}.efp-event__header-close>i{font-size:var(--icon-size-sm);color:var(--color-gray-800)}.efp-event__buttons{margin:0 calc(1rem * var(--ui-scale)) 0 calc(1rem * var(--ui-scale))}.efp-event__details{padding:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale))}.efp-event__details.details-hidden{max-height:300px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#f7f7f7 40%,#0000 100%);mask-image:linear-gradient(#f7f7f7 40%,#0000 100%)}.efp-event__show-more{margin:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale))}.efp-event__show-more.is-sticky{z-index:2;width:100%;padding:calc(.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) calc(.75rem * var(--ui-scale));background:var(--color-white);justify-content:flex-start;margin:0;position:sticky;bottom:0;box-shadow:0 -13px 16px #ffffffc7}@media (max-width:768px){.efp-event__header{z-index:10;background:var(--color-white);position:sticky;top:0;left:0}.efp-event__header-close{display:flex}}.efp-event-description{font-size:var(--font-size-lg);line-height:var(--line-height-lg);color:var(--color-gray-900);text-align:left;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.efp-event-description>:first-child{margin-top:0;padding-top:0}.efp-event-description>:last-child{margin-bottom:0;padding-bottom:0}.efp-event-description a{color:var(--color-primary)}.efp-event-description a:hover{color:var(--color-primary-dark);text-decoration:underline}.efp-event-description ol,.efp-event-description ul{display:grid}.efp-event-description ol:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.efp-event-description ol:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.efp-event-description ul:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.efp-event-description ul:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.efp-event-description ol:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.efp-event-description ol:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.efp-event-description ul:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.efp-event-description ul:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.efp-event-description__logo{margin:calc(.375rem * var(--ui-scale)) 0;width:100%;max-height:calc(12.5rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-xl);justify-content:flex-start;align-items:center;display:flex;overflow:hidden}.efp-event-description__logo>img{object-fit:contain;max-width:100%;max-height:100%}.efp-event-description.collapsed .event-description__content{opacity:.8;text-overflow:ellipsis;cursor:pointer;height:8em;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.efp-event-description.collapsed .event-description__content:hover{opacity:1}.efp-event-datetime{margin:calc(.125rem * var(--ui-scale)) 0 calc(1.125rem * var(--ui-scale));padding:calc(.75rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));background:var(--color-gray-200);border-radius:var(--border-radius-lg);flex-flow:column wrap;display:flex}.efp-event-datetime__row{align-items:center;gap:calc(.75rem * var(--ui-scale));display:flex}.efp-event-datetime__info{gap:calc(.25rem * var(--ui-scale));flex-flow:column wrap;flex:1;display:flex}.efp-event-datetime__date{color:var(--color-black);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.efp-event-datetime__time{font-size:var(--font-size-lg);color:var(--color-gray-900);align-items:center;gap:calc(.5rem * var(--ui-scale));display:flex}.efp-event-datetime__time-until{margin-left:calc(.5rem * var(--ui-scale))}.efp-event-booths{gap:calc(.25rem * var(--ui-scale));font-size:var(--font-size-lg);margin-bottom:calc(.875rem * var(--ui-scale));flex-flow:wrap;display:flex}.efp-event-booths__booth{gap:calc(.3125rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-primary-ultra-light);min-height:calc(1.625rem * var(--ui-scale));font-size:var(--font-size-md);line-height:var(--font-size-md);color:var(--color-primary-ultra-dark);letter-spacing:.01em;align-items:center;display:inline-flex;overflow:hidden}.efp-event-booths__booth>div{align-items:center;display:inline-flex;position:relative}.efp-event-booths__booth:visited{color:var(--color-primary-ultra-dark)}.efp-event-booths__booth:hover,.efp-event-booths__booth:visited:hover{background:var(--color-primary-mid-light);color:var(--color-black)}.efp-event-booths__track{padding:calc(.25rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));background:var(--color-event-ultra-light);color:var(--color-event);border-radius:var(--border-radius-full);font-size:var(--font-size-md);min-height:calc(1.625rem * var(--ui-scale));line-height:var(--font-size-sm);letter-spacing:.01em;align-items:center;display:inline-flex}.efp-event-booths.is-links-disabled{pointer-events:none}.efp-event-list{gap:calc(1.125rem * var(--ui-scale));margin:calc(1.25rem * var(--ui-scale)) 0;flex-direction:column;display:flex}.efp-event-list__block{gap:calc(.75rem * var(--ui-scale));display:flex}.efp-event-list__block-icon{width:calc(2rem * var(--ui-scale));height:calc(2rem * var(--ui-scale));background:var(--color-gray-200);border-radius:var(--border-radius-full);color:var(--color-gray-800);justify-content:center;align-items:center;display:flex}.efp-event-list__block-icon>i{font-size:var(--icon-size-xs)}.efp-event-list__block-content{justify-content:center;gap:calc(.75rem * var(--ui-scale));min-height:calc(2rem * var(--ui-scale));flex-direction:column;flex:1;display:flex}.efp-event-list__block-item{gap:calc(.625rem * var(--ui-scale));display:flex}.efp-event-list__block-info{flex:1}.efp-event-list__block-description{font-size:var(--font-size-md);color:var(--color-gray-900)}.efp-event-list__block-description>strong{margin-top:calc(.125rem * var(--ui-scale));font-weight:var(--font-weight-medium);display:block}.efp-event-list__block-description>span{color:var(--color-gray-600)}.efp-event-list__block-item--clickable{color:inherit;text-decoration:none}.efp-event-list__block-avatar{width:calc(2.125rem * var(--ui-scale));height:calc(2.125rem * var(--ui-scale));border-radius:var(--border-radius-sm);background:var(--color-gray-100);margin-bottom:calc(.25rem * var(--ui-scale));flex-shrink:0;overflow:hidden}.efp-event-list__block-avatar>img{object-fit:cover;width:100%;height:100%}.efp-event-speakers{margin:calc(1.125rem * var(--ui-scale)) 0}.efp-event-speakers__title{padding-bottom:calc(.75rem * var(--ui-scale));font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);margin:0}.efp-event-speakers__list{gap:calc(.75rem * var(--ui-scale));flex-direction:column;display:flex}.efp-event-speakers__speaker{align-items:center;gap:calc(.75rem * var(--ui-scale));border-radius:var(--border-radius-md);color:inherit;text-decoration:none;transition:background-color .2s;display:flex}.efp-event-speakers__speaker-photo{width:calc(2.5rem * var(--ui-scale));height:calc(2.5rem * var(--ui-scale));border-radius:var(--border-radius-sm);background:var(--color-gray-100);flex-shrink:0;overflow:hidden}.efp-event-speakers__speaker-photo>img{object-fit:cover;width:100%;height:100%}.efp-event-speakers__speaker-info{gap:calc(.125rem * var(--ui-scale));flex-direction:column;flex:1;display:flex}.efp-event-speakers__speaker-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-black)}.efp-event-speakers__speaker-title{font-size:var(--font-size-md);color:var(--color-gray-700)}.exhibitor{color:var(--color-black)}.exhibitor__header{align-items:center;gap:calc(.625rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));display:flex}.exhibitor__header-name{align-items:center;gap:calc(.625rem * var(--ui-scale));font-size:var(--font-size-3xl);font-weight:var(--font-weight-medium);letter-spacing:.01em;flex:1;display:flex}.exhibitor__header-icon{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-exhibitor);color:var(--color-white);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;display:flex}.exhibitor__header-icon>i{font-size:var(--icon-size-xxs)}.exhibitor__header-close{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));background:var(--color-gray-100);border-radius:var(--border-radius-full);cursor:pointer;border:0;justify-content:center;align-items:center;display:none}.exhibitor__header-close>i{font-size:var(--icon-size-sm);color:var(--color-gray-800)}.exhibitor__buttons{margin:0 calc(1rem * var(--ui-scale)) 0 calc(1rem * var(--ui-scale))}.exhibitor__leading-image-container{margin:0 0 calc(1rem * var(--ui-scale)) 0}.exhibitor__leading-image-container a{display:block}.exhibitor__leading-image{background:var(--color-white);width:100%;display:block}.exhibitor__details{gap:calc(1rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale));flex-direction:column;display:flex}.exhibitor__show-more{margin:0 calc(1rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale))}.exhibitor__show-more.is-sticky{z-index:2;width:100%;padding:calc(.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) calc(.75rem * var(--ui-scale));background:var(--color-white);justify-content:flex-start;margin:0;position:sticky;bottom:0;box-shadow:0 -13px 16px #ffffffc7}.exhibitor.is-featured{color:var(--color-white)}.exhibitor.is-featured .exhibitor__header-close{background:var(--color-primary-dark)}.exhibitor.is-featured .exhibitor__header-close>i,.exhibitor.is-featured .exhibitor-description,.exhibitor.is-featured .exhibitor-meta__content{color:var(--color-white)}.exhibitor.is-featured .exhibitor-meta__link{color:var(--color-primary-ultra-light)}.exhibitor.is-featured .exhibitor__show-more.is-sticky{background:var(--color-primary-ultra-dark);color:var(--color-primary-ultra-light);box-shadow:0 calc(-.75rem * var(--ui-scale)) calc(1.125rem * var(--ui-scale)) #0003, 0 calc(-.0625rem * var(--ui-scale)) 0 var(--color-primary-dark)}@media (max-width:768px){.exhibitor__header{z-index:10;background:var(--color-white);position:sticky;top:0;left:0}.exhibitor__header-close{display:flex}.exhibitor.is-featured .exhibitor__header{background:var(--color-primary-ultra-dark)}}.exhibitor-categories{gap:calc(.25rem * var(--ui-scale));font-size:var(--font-size-lg);flex-flow:wrap;display:flex}.exhibitor-categories__cat,.exhibitor-categories__sponsorship{gap:calc(.125rem * var(--ui-scale));min-height:calc(1.625rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));border-radius:var(--border-radius-full);font-size:var(--font-size-md);word-break:break-all;align-items:center;display:inline-flex}.exhibitor-categories__booth{gap:calc(.3125rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-primary-ultra-light);min-height:calc(1.625rem * var(--ui-scale));font-size:var(--font-size-md);line-height:var(--font-size-md);color:var(--color-primary-ultra-dark);letter-spacing:.01em;align-items:center;display:inline-flex;overflow:hidden}.exhibitor-categories__booth>div{align-items:center;display:inline-flex;position:relative}.exhibitor-categories__booth:visited{color:var(--color-primary-ultra-dark)}.exhibitor-categories__booth:hover,.exhibitor-categories__booth:visited:hover{background:var(--color-primary-mid-light);color:var(--color-black)}.exhibitor-categories__cat{background:var(--color-category-ultra-light);color:var(--color-category-ultra-dark)}.exhibitor-categories__cat:visited{color:var(--color-category-dark)}.exhibitor-categories__cat:hover,.exhibitor-categories__cat:visited:hover{background:var(--color-category-light)}.exhibitor-categories__sponsorship{background:var(--color-sponsorship-ultra-light);color:var(--color-sponsorship-ultra-dark)}.exhibitor-categories__sponsorship:visited{color:var(--color-sponsorship-ultra-dark)}.exhibitor-categories__sponsorship:hover,.exhibitor-categories__sponsorship:visited:hover{background:var(--color-sponsorship-light)}.layout[dir=rtl] .exhibitor-categories{margin:0 var(--k-spacing-lg) var(--k-spacing-md)}.exhibitor-categories.is-links-disabled{pointer-events:none}.exhibitor-featured{padding:calc(.25rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));min-height:calc(1.625rem * var(--ui-scale));background:var(--color-featured-badge-bg);border-radius:var(--border-radius-full);font-size:var(--font-size-md);line-height:var(--font-size-md);font-weight:var(--font-weight-normal);color:var(--color-featured-badge-text);letter-spacing:.01em;align-items:center;gap:1px;margin-left:-1px;display:inline-flex;overflow:hidden}.exhibitor-description{font-size:var(--font-size-lg);color:var(--color-gray-900);position:relative}.exhibitor-description:after{content:\"\";clear:both;display:table}.exhibitor-description__logo{z-index:2;float:right;width:calc(5.625rem * var(--ui-scale));height:calc(4.375rem * var(--ui-scale));margin-bottom:calc(.375rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-gray-400);border-radius:var(--border-radius-sm);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.exhibitor-description__logo:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:calc(.75rem * var(--ui-scale))}.exhibitor-description__logo:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:calc(.75rem * var(--ui-scale))}.exhibitor-description__logo:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:calc(.75rem * var(--ui-scale))}.exhibitor-description__logo:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:calc(.75rem * var(--ui-scale))}.exhibitor-description__logo>img{max-width:100%;max-height:100%}.exhibitor-description__logo--left{float:left}.exhibitor-description__logo--left:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:0}.exhibitor-description__logo--left:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:0}.exhibitor-description__logo--left:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:0}.exhibitor-description__logo--left:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:0}.exhibitor-description__content{font-size:var(--font-size-lg);line-height:var(--line-height-lg);text-align:left;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.exhibitor-description__content>:first-child{margin-top:0;padding-top:0}.exhibitor-description__content>:last-child{margin-bottom:0;padding-bottom:0}.exhibitor-description__content a{color:var(--color-primary)}.exhibitor-description__content a:hover{color:var(--color-primary-dark);text-decoration:underline}.exhibitor-description__content ol,.exhibitor-description__content ul{display:grid}.exhibitor-description__content ol:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ol:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ul:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ul:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ol:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ol:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ul:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.exhibitor-description__content ul:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(1.25rem * var(--ui-scale))}.exhibitor-description.collapsed .exhibitor-description__content{opacity:.8;text-overflow:ellipsis;cursor:pointer;height:6.5em;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(#000 35%,#0000 90%);mask-image:linear-gradient(#000 35%,#0000 90%)}.exhibitor-description.collapsed .exhibitor-description__content:hover{opacity:1}.layout[dir=rtl] .exhibitor-description__logo{margin:0}.layout[dir=rtl] .exhibitor-description__logo:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:calc(.625rem * var(--ui-scale))}.layout[dir=rtl] .exhibitor-description__logo:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:calc(.625rem * var(--ui-scale))}.layout[dir=rtl] .exhibitor-description__logo:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:calc(.625rem * var(--ui-scale))}.layout[dir=rtl] .exhibitor-description__logo:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:calc(.625rem * var(--ui-scale))}.exhibitor-video{height:0;padding-bottom:51.5%;position:relative}.exhibitor-video>iframe{border:0;width:100%;height:100%;position:absolute;top:0;left:0}.exhibitor-slider{font-size:var(--font-size-lg);position:relative}.exhibitor-slider:after{content:\"\";clear:both;display:table}.exhibitor-sep{border-top:solid 1px var(--color-gray-300)}.exhibitor-edit{padding:calc(.25rem * var(--ui-scale)) 0 calc(.5rem * var(--ui-scale))}.exhibitor-meta{width:100%;margin-top:calc(.625rem * var(--ui-scale))}.exhibitor-meta__item{gap:calc(.625rem * var(--ui-scale));padding:calc(.375rem * var(--ui-scale)) 0;align-items:center;display:flex}.exhibitor-meta__icon{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));background:var(--color-primary-ultra-light);border-radius:var(--border-radius-full);justify-content:center;align-self:flex-start;align-items:center;display:flex}.exhibitor-meta__icon>i{font-size:var(--icon-size-xs);color:var(--color-primary)}.exhibitor-meta__content{font-size:var(--font-size-md);color:var(--color-gray-900);text-overflow:ellipsis;flex:1;overflow:hidden}.exhibitor-meta__link{color:var(--color-primary);text-overflow:ellipsis;overflow:hidden}.exhibitor-meta__link:hover{color:var(--color-primary-dark);text-decoration:underline}.exhibitor-meta__socials{gap:calc(.625rem * var(--ui-scale));padding:calc(.75rem * var(--ui-scale)) 0;justify-content:center;display:flex}.exhibitor-meta__social{width:calc(2.375rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-primary);border-radius:var(--border-radius-full);color:var(--color-primary);justify-content:center;align-items:center;display:none}.exhibitor-meta__social[href]{display:flex}.exhibitor-meta__social:hover{border-color:var(--color-primary-dark);color:var(--color-primary-dark)}.exhibitor-meta__social>i{font-size:var(--icon-size-md)}.exhibitor-custom-buttons{gap:calc(.875rem * var(--ui-scale));margin-top:calc(.625rem * var(--ui-scale));flex-flow:wrap;justify-content:center;display:flex}.details-hidden{max-height:200px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 40%,#0000 100%);mask-image:linear-gradient(#000 40%,#0000 100%)}.efp-header-logos{z-index:102;height:var(--ws-height);transition:opacity .5s;position:absolute;left:0;right:0}.efp-header-logos--top{top:0}.efp-header-logos--bottom{bottom:0}@media print{.efp-header-logos{display:none}}.list-virtual>[data-viewport-type=element]{position:relative!important}.language-row{padding:calc(1.1875rem * var(--ui-scale)) calc(.9375rem * var(--ui-scale));border-bottom:1px solid var(--color-gray-200);align-items:center;display:grid}[class^=icon-],[class*=\\ icon-]{font-size:var(--icon-size-xl);font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;font-family:efp-symbols!important}.icon-home-solid:before{content:\"\"}.icon-store-solid:before{content:\"\"}.icon-file-solid:before{content:\"\"}.icon-church:before{content:\"\"}.icon-bookmark-solid:before{content:\"\"}.icon-booths:before{content:\"\"}.icon-booth-solid:before{content:\"\"}.icon-box-3d:before{content:\"\"}.icon-bus-solid:before{content:\"\"}.icon-cafe-solid:before{content:\"\"}.icon-castle:before{content:\"\"}.icon-castle-solid:before{content:\"\"}.icon-categories:before{content:\"\"}.icon-category-solid:before{content:\"\"}.icon-checkmark:before{content:\"\"}.icon-checkmark-solid:before{content:\"\"}.icon-chevron-down:before{content:\"\"}.icon-chevron-down-narrow:before{content:\"\"}.icon-chevron-left:before{content:\"\"}.icon-chevron-right:before{content:\"\"}.icon-chevron-up:before{content:\"\"}.icon-chevron-up-narrow:before{content:\"\"}.icon-church-solid:before{content:\"\"}.icon-circle-arrow-left-solid:before{content:\"\"}.icon-circle-arrow-right-solid:before{content:\"\"}.icon-circle-double-arrow-left-solid:before{content:\"\"}.icon-circle-double-arrow-right-solid:before{content:\"\"}.icon-circle-solid:before{content:\"\"}.icon-clock:before{content:\"\"}.icon-close:before{content:\"\"}.icon-close-solid:before{content:\"\"}.icon-cologne-tower:before{content:\"\"}.icon-cologne-tower-solid:before{content:\"\"}.icon-copy:before{content:\"\"}.icon-crown:before{content:\"\"}.icon-delete:before{content:\"\"}.icon-diamond:before{content:\"\"}.icon-directions:before{content:\"\"}.icon-download:before{content:\"\"}.icon-event-solid:before{content:\"\"}.icon-exhibitors:before{content:\"\"}.icon-exhibitor-solid:before{content:\"\"}.icon-eye:before{content:\"\"}.icon-eye-off:before{content:\"\"}.icon-eye-off-1:before{content:\"\"}.icon-eye-off-solid:before{content:\"\"}.icon-eye-solid:before{content:\"\"}.icon-facebook:before{content:\"\"}.icon-file:before{content:\"\"}.icon-filled-arrow-left-solid:before{content:\"\"}.icon-filled-arrow-right-solid:before{content:\"\"}.icon-filter-horizontal:before{content:\"\"}.icon-filter-horizontal-solid:before{content:\"\"}.icon-globe:before{content:\"\"}.icon-globe-solid:before{content:\"\"}.icon-hall:before{content:\"\"}.icon-hall-solid:before{content:\"\"}.icon-hand-pointing:before{content:\"\"}.icon-hand-solid:before{content:\"\"}.icon-home:before{content:\"\"}.icon-hotel-solid:before{content:\"\"}.icon-image:before{content:\"\"}.icon-info-solid:before{content:\"\"}.icon-instagram:before{content:\"\"}.icon-language:before{content:\"\"}.icon-layers:before{content:\"\"}.icon-link:before{content:\"\"}.icon-linkedin:before{content:\"\"}.icon-link-external:before{content:\"\"}.icon-link-external-solid:before{content:\"\"}.icon-list:before{content:\"\"}.icon-lounge-solid:before{content:\"\"}.icon-mail:before{content:\"\"}.icon-mail-at-solid:before{content:\"\"}.icon-man-walking-solid:before{content:\"\"}.icon-map:before{content:\"\"}.icon-mark:before{content:\"\"}.icon-marker-pin:before{content:\"\"}.icon-marker-pin-solid:before{content:\"\"}.icon-maximize:before{content:\"\"}.icon-menu:before{content:\"\"}.icon-microphone:before{content:\"\"}.icon-minus:before{content:\"\"}.icon-moon:before{content:\"\"}.icon-museum:before{content:\"\"}.icon-museum-solid:before{content:\"\"}.icon-music-sport:before{content:\"\"}.icon-music-sport-solid:before{content:\"\"}.icon-navigation:before{content:\"\"}.icon-phone:before{content:\"\"}.icon-phone-solid:before{content:\"\"}.icon-pins-solid:before{content:\"\"}.icon-plus:before{content:\"\"}.icon-question-mark:before{content:\"\"}.icon-question-solid:before{content:\"\"}.icon-refresh:before{content:\"\"}.icon-restaurant-solid:before{content:\"\"}.icon-roman-helmet:before{content:\"\"}.icon-roman-helmet-solid:before{content:\"\"}.icon-route-solid:before{content:\"\"}.icon-schedule:before{content:\"\"}.icon-search:before{content:\"\"}.icon-share:before{content:\"\"}.icon-share-second:before{content:\"\"}.icon-shopping-bag:before{content:\"\"}.icon-size:before{content:\"\"}.icon-speaker-solid:before{content:\"\"}.icon-stage-solid:before{content:\"\"}.icon-stars:before{content:\"\"}.icon-switch-horizontal:before{content:\"\"}.icon-switch-vertical:before{content:\"\"}.icon-tag:before{content:\"\"}.icon-three-dim:before{content:\"\"}.icon-twitter-x:before{content:\"\"}.icon-two-dim:before{content:\"\"}.icon-user:before{content:\"\"}.icon-verified-check:before{content:\"\"}.icon-warning-solid:before{content:\"\"}.icon-xing:before{content:\"\"}.icon-youtube:before{content:\"\"}.icon-zoom-in:before{content:\"\"}.icon-zoom-out:before{content:\"\"}.icon-activity-solid:before{content:\"\"}.icon-add-circle:before{content:\"\"}.icon-arrow-narrow-left:before{content:\"\"}.icon-artwork:before{content:\"\"}.icon-bookmark:before{content:\"\"}.layout{--font-family:\"Inter\", -apple-system, system-ui, sans-serif;--app-font-family:var(--expofp-font-face,var(--font-family));--ui-scale:1;--app-gap:calc(.625rem * var(--ui-scale));--font-size-xxs:calc(.625rem * var(--ui-scale));--font-size-xs:calc(.6875rem * var(--ui-scale));--font-size-sm:calc(.75rem * var(--ui-scale));--font-size-md:calc(.8125rem * var(--ui-scale));--font-size-lg:calc(.875rem * var(--ui-scale));--font-size-xl:calc(.9375rem * var(--ui-scale));--font-size-xxl:calc(1rem * var(--ui-scale));--font-size-3xl:calc(1.0625rem * var(--ui-scale));--font-size-4xl:calc(1.25rem * var(--ui-scale));--font-size-5xl:calc(1.5rem * var(--ui-scale));--line-height-lg:1.3;--font-weight-normal:400;--font-weight-medium:500;--font-weight-bold:600;--color-white:#fff;--color-black:#111;--color-gray-50:#fafafa;--color-gray-100:#f4f4f5;--color-gray-200:#e4e4e7;--color-gray-300:#d4d4d8;--color-gray-400:#a4a4ac;--color-gray-500:#71717a;--color-gray-600:#52525b;--color-gray-700:#3f3f46;--color-gray-800:#27272a;--color-gray-900:#18181b;--color-primary-ultra-light:#e1eeff;--color-primary-very-light:#d5e5fb;--color-primary-mid-light:#c5dbfe;--color-primary-light:#a6cefe;--color-primary:#2382f4;--color-primary-dark:#165eb6;--color-primary-ultra-dark:#00316c;--color-secondary-ultra-light:#ffe2e8;--color-secondary-light:#ff9cb7;--color-secondary:#f41767;--color-secondary-dark:#cd0351;--color-secondary-ultra-dark:#920947;--color-green-ultra-light:#affbd2;--color-green-light:#58e499;--color-green:#1fd171;--color-green-dark:#1c8f51;--color-green-ultra-dark:#14673c;--color-orange-ultra-light:#fcefc9;--color-orange-light:#f8dd8f;--color-orange:#f9cb5d;--color-orange-dark:#ea9016;--color-orange-ultra-dark:#d56b0a;--color-red-ultra-light:#ffcdc8;--color-red-light:#f97165;--color-red:#e1463c;--color-red-dark:#a51c12;--color-red-ultra-dark:#912a23;--color-exhibitor:#2ca6ff;--color-booth:#3758ff;--color-event:#9044f6;--color-event-ultra-light:#efe8ff;--color-speaker:#f28a0f;--color-route:#e9602a;--color-other:#16b095;--color-bookmarked:#ffac37;--color-bookmarked-bg:#fcfaf3;--color-featured:#eaf5ff;--color-featured-hover:#dcecfc;--color-featured-border:#cfe3ef;--color-featured-badge-bg:#dbd4ff;--color-featured-badge-text:#461491;--color-visited:#15af6f;--color-visited-gray:#f9f9f9;--color-category-ultra-light:#ffe7c5;--color-category-light:#f6ce94;--color-category:#c87f17;--color-category-dark:#554024;--color-category-ultra-dark:#1a1207;--color-sponsorship-ultra-light:#ffe087;--color-sponsorship-light:#ffd767;--color-sponsorship:#fbc42d;--color-sponsorship-dark:#443c00;--color-sponsorship-ultra-dark:#443c00;--shadow-xs:0px 1px 3px 0px #1018284d;--shadow-sm:0px 2px 6px -2px #10182866;--shadow-md:0px 3px 8px -2px #10182866, 0px 0px 1px 0px #10182899;--shadow-lg:0px 0px 1px 0px #10182824, 0px 10px 28px -2px #10182866;--shadow-inverted-xs:0px -1px 3px 0px #10182829;--shadow-inverted-sm:0px -2px 8px -2px #10182833;--shadow-inverted-md:0px 0px 1px 0px #10182824, 0px -6px 16px -2px #1018282e;--shadow-inverted-lg:0px 0px 1px 0px #10182824, 0px -10px 28px -2px #10182833;--border-radius-xs:calc(.25rem * var(--ui-scale));--border-radius-sm:calc(.375rem * var(--ui-scale));--border-radius-md:calc(.5rem * var(--ui-scale));--border-radius-lg:calc(.75rem * var(--ui-scale));--border-radius-xl:calc(1rem * var(--ui-scale));--border-radius-2xl:calc(1.25rem * var(--ui-scale));--border-radius-full:calc(3.125rem * var(--ui-scale));--backdrop-blur-ex:blur(8px);--backdrop-blur-sm:blur(10px);--backdrop-blur-md:blur(12px);--backdrop-blur-lg:blur(14px);--transition-duration:.1s;--icon-size-xxxs:calc(.75rem * var(--ui-scale));--icon-size-xxs:calc(.875rem * var(--ui-scale));--icon-size-xs:calc(1rem * var(--ui-scale));--icon-size-sm:calc(1.125rem * var(--ui-scale));--icon-size-md:calc(1.25rem * var(--ui-scale));--icon-size-lg:calc(1.375rem * var(--ui-scale));--icon-size-xl:calc(1.5rem * var(--ui-scale));--icon-size-xxl:calc(1.625rem * var(--ui-scale));--ws-height:0px;--banner-height:0px;--search-box-width:calc(24.375rem * var(--ui-scale));--search-box-height:calc(3.375rem * var(--ui-scale));--search-box-top:calc(calc(.625rem * var(--ui-scale)) + var(--ws-height) + var(--banner-height));--levels-top:calc(calc(1.125rem * var(--ui-scale)) + var(--ws-height) + var(--banner-height));--search-buttons-height:calc(3.375rem * var(--ui-scale));--level-dropdown-trigger-width:calc(10.625rem * var(--ui-scale))}.layout.efp-top-banner{--banner-height:calc(2.5rem * var(--ui-scale))}@media (min-width:768px){.layout.efp-top-banner{--banner-height:calc(3.25rem * var(--ui-scale))}}@media (max-width:768px){.layout{--levels-top:calc(calc(1.25rem * var(--ui-scale)) + var(--search-box-height) + var(--search-buttons-height) + var(--ws-height) + var(--banner-height))}.layout.efp-no-overlay{--levels-top:calc(calc(.625rem * var(--ui-scale)) + var(--ws-height) + var(--banner-height))}.layout.efp-no-overlay.efp-overlay-on-demand{--levels-top:calc(calc(1.25rem * var(--ui-scale)) + var(--search-buttons-height) + var(--ws-height) + var(--banner-height))}}.layout.efp-kiosk{--search-box-width:clamp(calc(calc(16.25rem * var(--ui-scale)) * var(--ui-scale)), calc(25vw * var(--ui-scale)), calc(calc(21.25rem * var(--ui-scale)) * var(--ui-scale)))}*,:before,:after{box-sizing:border-box}.ps__rail-y{z-index:10}.debug-fps{-webkit-user-select:none;user-select:none;z-index:9999;touch-action:none;direction:ltr;position:fixed;top:1rem;right:1rem}.global-error-message{z-index:99999;grid-template-rows:1fr;gap:.2rem;padding:.2rem;display:grid;position:fixed;top:0;left:0;right:0}.efp-semi-transparent{opacity:.25!important;pointer-events:none!important}.efp-no-select{-webkit-user-select:none!important;user-select:none!important}*{font-family:var(--app-font-family);-webkit-tap-highlight-color:transparent}.layout{box-sizing:border-box;width:100%;height:100%;position:relative}.layout__fixed{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}a{text-decoration:none}#fps{z-index:999;font-size:10px;position:fixed;top:10px;right:10px}.efp-intercom-launcher{right:calc(.625rem * var(--ui-scale));bottom:calc(3.125rem * var(--ui-scale));z-index:20;width:calc(3rem * var(--ui-scale));height:calc(3rem * var(--ui-scale));color:var(--color-white);cursor:pointer;background:#890edb;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;box-shadow:0 1px 6px #0000000f,0 2px 32px #00000029}@media (max-width:768px){.efp-intercom-launcher{bottom:calc(5rem * var(--ui-scale))}}.efp-intercom-launcher:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a,0 4px 40px #0003}.efp-intercom-launcher:focus-visible{outline-offset:2px;outline:2px solid #890edb}.efp-intercom-launcher__badge{top:calc(-.125rem * var(--ui-scale));right:calc(-.125rem * var(--ui-scale));min-width:calc(1.25rem * var(--ui-scale));height:calc(1.25rem * var(--ui-scale));padding:0 calc(.375rem * var(--ui-scale));background:var(--color-red);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-white);justify-content:center;align-items:center;line-height:1;display:flex;position:absolute}.logo-overlay{z-index:20;right:var(--app-gap);bottom:var(--app-gap);transition:opacity .5s;display:block;position:absolute}.logo-overlay>img{width:100%;display:block}.logo-overlay.invert{filter:invert()}@media (min-width:550px){.efp-kiosk .logo-overlay{pointer-events:none}}.layout[dir=rtl] .logo-overlay{right:unset;left:var(--app-gap)}.efp-qr{z-index:20;left:var(--app-gap);bottom:var(--app-gap);padding:calc(.625rem * var(--ui-scale));background:var(--color-white);border-radius:calc(.75rem * var(--ui-scale));box-shadow:var(--shadow-md);text-align:center;position:absolute}.efp-qr.is-right{right:var(--k-app-gap);left:unset}.efp-qr>div{top:calc(-.1875rem * var(--ui-scale));padding:calc(.125rem * var(--ui-scale)) 0 calc(.5rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);text-align:center;position:relative}.efp-qr>svg{width:calc(8.125rem * var(--ui-scale));height:calc(8.125rem * var(--ui-scale))}.layout[dir=rtl] .efp-qr{left:unset;right:var(--app-gap)}.menu__cover{border-radius:var(--border-radius-sm);text-align:center;width:100%;display:block}.menu__cover img{max-width:100%;max-height:calc(7.5rem * var(--ui-scale));opacity:0;transition:opacity .5s}.efp-viewer-mode .menu__cover{max-width:calc(10.625rem * var(--ui-scale));max-height:calc(7.5rem * var(--ui-scale));margin-top:calc(.75rem * var(--ui-scale));align-self:center}.menu__item{align-items:center;gap:calc(.625rem * var(--ui-scale));min-height:calc(2.75rem * var(--ui-scale));padding:calc(.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-gray-900);display:flex}.menu__item:hover{color:var(--color-black);text-decoration:none}.menu__item>i{min-width:calc(1.75rem * var(--ui-scale));font-size:var(--icon-size-xxxs);color:var(--color-gray-600);text-align:center}.menu__item>i:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(.625rem * var(--ui-scale))}.menu__item>i:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(.625rem * var(--ui-scale))}.menu__item>i:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(.625rem * var(--ui-scale))}.menu__item>i:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(.625rem * var(--ui-scale))}.efp-viewer-mode .menu__item>i{font-size:var(--icon-size-xs)}.menu__item.-bookmarks{grid-auto-flow:column;place-content:center space-between;display:grid}.menu__item.-bookmarks button{cursor:pointer;border:none;align-self:stretch;margin-right:-.4rem;padding:0 .4rem}.menu__item.-bookmarks button:hover{color:var(--color-black)}.menu__item.-language,.menu__item.-categories,.menu__item.-sessions{grid-auto-flow:column;place-content:center space-between;display:grid}.overlay-bottom .menu__item.-print{display:none}.efp-viewer-mode .menu__item{font-size:var(--font-size-xxl);font-weight:var(--font-weight-medium);color:var(--color-gray-600)}.menu__icons{gap:calc(.625rem * var(--ui-scale));justify-content:space-between;align-items:center;display:flex}.menu__icons i{font-size:var(--icon-size-md);color:var(--color-gray-600)}.menu__icons>button>i{font-size:var(--icon-size-sm)}.menu__icons>button:hover>i{color:var(--color-black)}.menu__content{flex-grow:1}.menu__content a:hover{background:var(--color-gray-100)}.efp-viewer-mode .menu__content{flex-direction:column;flex-grow:1;display:flex}.menu__cat{gap:calc(.75rem * var(--ui-scale));min-height:calc(2.5rem * var(--ui-scale));padding:calc(.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale));color:var(--color-gray-900);justify-content:space-between;display:flex}.menu__cat:hover{color:var(--color-black);text-decoration:none}.menu__cat:visited{color:var(--color-gray-800)}.menu__cat-bullet{width:calc(.375rem * var(--ui-scale));color:var(--color-gray-500)}.menu__cat-title{font-size:var(--font-size-xl);text-align:left;flex-grow:1}.menu__cat-count{font-size:var(--font-size-md);color:var(--color-gray-700)}.menu__bar.-empty{height:calc(3.5rem * var(--ui-scale));margin-right:calc(-3rem * var(--ui-scale));background:var(--color-white)}.menu.shown .menu__cover img{opacity:1}.menu .overlay-bar__slot{max-width:100%}.menu__item-leave{justify-content:center;margin-top:auto;display:flex}.efp-viewer-mode .menu{flex-direction:column;display:flex}div.menu__item{border-top:solid 1px var(--color-gray-400);padding-bottom:0}.menu__leave-link{margin-top:calc(.75rem * var(--ui-scale));font-weight:var(--font-weight-bold);color:var(--color-primary)!important}.menu__leave-link:hover{background:0 0;color:var(--color-primary-dark)!important}.layout[dir=rtl] .menu__cat-title{text-align:right}.expo-jtrade19 .menu__title{background:#2b2a29}.expo-awslondon19 .menu__title,.expo-awsamsterdam19 .menu__title,.expo-awsstockholm19 .menu__title{padding-top:calc(1.5rem * var(--ui-scale));padding-bottom:calc(1.5rem * var(--ui-scale));background:linear-gradient(207deg,#2f077a 0%,#af3c77 47%,#eb613c 100%)}.expo-atxcws20 .menu__title{padding:calc(1rem * var(--ui-scale)) 0}.expo-atxcws20 .menu__title>img{max-height:calc(9.375rem * var(--ui-scale))}.expo-expo .menu__title>img{padding-right:calc(2rem * var(--ui-scale))}.expo-vaughanribfest19 .menu__title>img{width:auto}.expo-sydneybuildexpo .menu.shown .overlay-bar__close{color:#555!important}.expo-sydneybuildexpo .menu__title{padding-top:0;padding-bottom:calc(.5rem * var(--ui-scale))}.expo-sydneybuildexpo .menu__title>img{width:auto;max-height:calc(9.375rem * var(--ui-scale))}.expo-sync2020 .menu__title{padding-top:0;padding-bottom:0}.expo-sync2020 .menu__title>img{width:auto;max-height:calc(9.375rem * var(--ui-scale))}.overlay-particles__canvas{opacity:0;transition:opacity 1s;position:absolute;top:0;bottom:0;left:0;right:0}.overlay-particles__canvas.-visible{opacity:1}.efp-planner{padding:0 0 calc(1rem * var(--ui-scale));flex-direction:column;display:flex}.efp-planner__header{gap:calc(.1875rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale)) calc(1rem * var(--ui-scale));flex-direction:column;display:flex}.efp-planner__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-medium);color:var(--color-black)}.efp-planner__details{gap:calc(.5rem * var(--ui-scale));font-size:var(--font-size-lg);color:var(--color-gray-600);display:flex}.efp-planner__details span{align-items:center;gap:calc(.5rem * var(--ui-scale));max-width:50%;display:flex}.efp-planner__details span:not(:last-child):after{content:\"\";width:calc(.25rem * var(--ui-scale));height:calc(.25rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-gray-300);display:block}.efp-planner__alert{padding-top:calc(.25rem * var(--ui-scale))}.efp-planner__stops{flex-direction:column;display:flex}.efp-planner__stop{align-items:center;gap:calc(.625rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale));display:flex;position:relative}.efp-planner__stop:before{content:\"\";bottom:calc(-.625rem * var(--ui-scale));left:calc(1.625rem * var(--ui-scale));width:calc(.125rem * var(--ui-scale));height:calc(1.25rem * var(--ui-scale));background:var(--color-gray-300);border-radius:var(--border-radius-full);position:absolute}.efp-planner__stop.is-start .efp-planner__stop-content{padding:0 calc(.125rem * var(--ui-scale));border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md);cursor:default}.efp-planner__stop.is-last:before{display:none}.efp-planner__stop.is-last .efp-planner__stop-content{border-bottom-left-radius:var(--border-radius-md);border-bottom-right-radius:var(--border-radius-md);border-bottom:none}.efp-planner__stop:not(.is-start) .efp-planner__stop-content:hover{background:var(--color-gray-200)}.efp-planner__stop-timeline{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.efp-planner__stop-icon{width:calc(1.375rem * var(--ui-scale));height:calc(1.375rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--dot-color,var(--color-primary));color:var(--color-white);flex-shrink:0;justify-content:center;align-items:center;display:flex}.efp-planner__stop-icon i{font-size:calc(.75rem * var(--ui-scale))}.efp-planner__stop-content{align-items:center;gap:calc(.125rem * var(--ui-scale));min-width:0;min-height:calc(3.625rem * var(--ui-scale));padding:calc(.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale));background:var(--color-gray-100);border-bottom:1px solid var(--color-gray-200);cursor:pointer;flex-flow:wrap;flex-grow:1;display:flex}.efp-planner__stop-content>strong{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);color:var(--color-black);display:block;overflow:hidden}.efp-planner__stop-content>span{font-size:var(--font-size-md);color:var(--color-gray-700)}.efp-planner__empty{padding:calc(1.5rem * var(--ui-scale)) calc(1rem * var(--ui-scale));text-align:center;color:var(--color-gray-500);font-size:var(--font-size-base)}.efp-search-bar{align-items:center;gap:8px;display:flex;position:relative}.efp-search-bar>input{width:100%;height:calc(3.5rem * var(--ui-scale));padding:calc(.0625rem * var(--ui-scale)) 0 0;font-size:var(--font-size-xl);-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;text-overflow:ellipsis;border:none;outline:none;overflow:hidden}.efp-search-bar>input::placeholder{color:var(--color-gray-600);text-overflow:ellipsis;white-space:nowrap}.efp-search-bar>input.fixed{opacity:0;pointer-events:none;position:fixed;top:-100px}.efp-search-bar .category-filter-button{width:calc(2.5rem * var(--ui-scale));height:calc(2.5rem * var(--ui-scale));margin-right:calc(.25rem * var(--ui-scale));color:var(--color-gray-700);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.efp-search-bar .category-filter-button:hover{color:var(--color-black)}.efp-search-bar .category-filter-button i{font-size:var(--icon-size-sm)}.shortcuts-toolbar{z-index:15;padding:calc(.625rem * var(--ui-scale)) 0;background:var(--color-white);border-bottom:1px solid var(--color-gray-200);position:sticky;top:0}.shortcuts-toolbar__scrollable{min-width:0}.shortcuts-toolbar__scrollable .efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content button,.shortcuts-toolbar__scrollable .efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content [role=button]{pointer-events:auto}.shortcut-button-container{align-items:center;gap:calc(.25rem * var(--ui-scale));display:flex;position:relative}.shortcut-button{align-items:center;gap:calc(.5rem * var(--ui-scale));height:calc(2rem * var(--ui-scale));padding:0 calc(.75rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-gray-200);cursor:pointer;white-space:nowrap;font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-gray-900);border:0;flex-shrink:0;transition:all .1s;display:flex;position:relative}.shortcut-button i{font-size:var(--icon-size-xs);flex-shrink:0}.shortcut-button__label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.shortcut-button__badge{top:calc(-.125rem * var(--ui-scale));right:calc(-.125rem * var(--ui-scale));min-width:calc(1rem * var(--ui-scale));height:calc(1rem * var(--ui-scale));padding:0 calc(.25rem * var(--ui-scale));background:var(--color-primary-dark);color:var(--color-white);border-radius:var(--border-radius-full);font-size:var(--font-size-xxs);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;line-height:1;display:flex;position:absolute}.shortcut-button:hover{background:var(--color-gray-300);color:var(--color-black)}.shortcut-button.is-active{background:var(--color-primary);color:var(--color-white)}.shortcut-button.is-active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.shortcut-button.is-disabled{opacity:.5;cursor:not-allowed}.shortcut-button.is-disabled:hover{border-color:var(--color-gray-300);color:var(--color-gray-700)}.shortcut-button--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.shortcut-button--primary:hover,.shortcut-button--primary.is-active{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.shortcut-button--secondary{background:var(--color-gray-100);border-color:var(--color-gray-200);color:var(--color-gray-600)}.shortcut-button--secondary:hover{background:var(--color-gray-200);border-color:var(--color-gray-300);color:var(--color-gray-700)}.shortcut-button--secondary.is-active{background:var(--color-gray-300);border-color:var(--color-gray-400);color:var(--color-gray-800)}.shortcut-reset-button{width:calc(1.125rem * var(--ui-scale));height:calc(1.125rem * var(--ui-scale));margin-left:calc(-.375rem * var(--ui-scale));border-radius:var(--border-radius-full);color:var(--color-primary-light);cursor:pointer;border:0;justify-content:center;align-items:center;transition:all .1s;display:flex;position:relative}.shortcut-reset-button>i{font-size:var(--icon-size-sm)}.shortcut-reset-button:hover{color:var(--color-primary-ultra-light)}.shortcuts-filters-button{width:calc(2.75rem * var(--ui-scale));height:calc(2rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-primary-ultra-light);color:var(--color-primary);cursor:pointer;border:0;flex-shrink:0;justify-content:center;align-items:center;transition:all .1s;display:flex;position:relative}.shortcuts-filters-button:hover{background:var(--color-primary-light);color:var(--color-primary-ultra-dark)}.shortcuts-filters-button.is-active{background:var(--color-primary);color:var(--color-white)}.shortcuts-filters-button.is-active:hover{background:var(--color-primary-dark)}.shortcuts-filters-button i{font-size:var(--icon-size-sm)}.shortcuts-filters-button__count{top:calc(-.1875rem * var(--ui-scale));right:calc(-.1875rem * var(--ui-scale));min-width:calc(1rem * var(--ui-scale));height:calc(1rem * var(--ui-scale));padding:0 calc(.25rem * var(--ui-scale));background:var(--color-primary-dark);color:var(--color-white);border-radius:var(--border-radius-full);font-size:var(--font-size-xxs);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;line-height:1;display:flex;position:absolute}.efp-sessions-overlay .overlay-bar.scrolled{box-shadow:unset!important}.efp-sessions-header{gap:calc(.5rem * var(--ui-scale));display:flex}.efp-sessions-header>span{margin-top:calc(.1875rem * var(--ui-scale))}.efp-sessions-filters{z-index:10;height:calc(3.125rem * var(--ui-scale));align-items:center;gap:calc(.5rem * var(--ui-scale));padding:calc(.25rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));background:var(--color-white);display:flex;position:sticky;top:0}.efp-sessions-filters__search{flex:1;position:relative}.efp-sessions-filters__search input{width:100%;height:calc(2.375rem * var(--ui-scale));padding:0 calc(.875rem * var(--ui-scale)) 0 calc(2.25rem * var(--ui-scale));background:var(--color-gray-200);border-radius:var(--border-radius-full);font-size:var(--font-size-lg);border:1px solid #0000}.efp-sessions-filters__search input:focus{border-color:var(--color-primary);outline:none}.efp-sessions-filters__search>i{top:50%;left:calc(.75rem * var(--ui-scale));font-size:var(--icon-size-xs);color:var(--color-gray-500);position:absolute;transform:translateY(-54%)}.efp-sessions-filters__button{width:calc(2.375rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-primary);color:var(--color-white);cursor:pointer;border:0;justify-content:center;align-items:center;transition:background .1s ease-in-out;display:flex;position:relative}.efp-sessions-filters__button>i{font-size:var(--icon-size-sm)}.efp-sessions-filters__button>span{top:calc(-.25rem * var(--ui-scale));right:calc(-.25rem * var(--ui-scale));width:calc(1.125rem * var(--ui-scale));height:calc(1.125rem * var(--ui-scale));background:var(--color-secondary);border:2px solid var(--color-white);border-radius:var(--border-radius-full);color:var(--color-white);font-size:var(--font-size-xs);-webkit-user-select:none;user-select:none;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.efp-sessions-filters__button:hover{background:var(--color-primary-dark)}.efp-sessions-track-filter{padding:calc(.75rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));margin-bottom:calc(.5rem * var(--ui-scale));background:var(--color-primary-ultra-light);border:1px solid var(--color-primary-light);border-radius:var(--border-radius-md);justify-content:space-between;align-items:center;display:flex}.efp-sessions-track-filter__info{align-items:center;gap:calc(.5rem * var(--ui-scale));display:flex}.efp-sessions-track-filter__label{font-size:var(--font-size-sm);color:var(--color-gray-600)}.efp-sessions-track-filter__track{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary)}.efp-sessions-track-filter__clear{width:calc(1.5rem * var(--ui-scale));height:calc(1.5rem * var(--ui-scale));border-radius:var(--border-radius-sm);color:var(--color-gray-500);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.efp-sessions-track-filter__clear i{font-size:var(--icon-size-xs)}.efp-sessions-track-filter__clear:hover{background:var(--color-gray-200);color:var(--color-gray-700)}.efp-sessions-empty{padding:calc(1.875rem * var(--ui-scale)) calc(.875rem * var(--ui-scale)) calc(1.875rem * var(--ui-scale));font-size:var(--font-size-xl);color:var(--color-gray-700);text-align:center;cursor:default}.efp-sessions-list{padding:calc(.625rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) calc(1rem * var(--ui-scale));font-size:var(--font-size-xl)}.efp-sessions-list__group{height:1px;position:relative}.efp-sessions-list .efp-sessions-list__date{background:var(--color-white);position:absolute;top:calc(100% + 1px);left:0}.efp-sessions-list .efp-sessions-list__date--first{padding-top:calc(.625rem * var(--ui-scale))}.efp-sessions-list__date-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.efp-sessions-list__row{padding-left:calc(3.375rem * var(--ui-scale));position:relative}.efp-sessions-list__row--first{z-index:2;padding-top:calc(.625rem * var(--ui-scale));border-top:1px solid var(--color-gray-300)}.efp-sessions-list__row--first:before{content:\"\";width:calc(2.375rem * var(--ui-scale));background:var(--color-gray-400);height:1px;position:absolute;top:-1px;left:0}.efp-sessions-list__row--last{padding-bottom:calc(.625rem * var(--ui-scale))}.efp-sessions-list__row--only{min-height:calc(6.25rem * var(--ui-scale))}.efp-sessions-list__past-title{z-index:2;padding:calc(1.25rem * var(--ui-scale)) 0;background:var(--color-white);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-gray-500);position:relative}.efp-sessions-list .efp-schedule__event.selected{background:var(--color-gray-200)}.efp-speaker__header{justify-content:space-between;align-items:center;gap:calc(.75rem * var(--ui-scale));padding:0 calc(1rem * var(--ui-scale)) calc(.625rem * var(--ui-scale)) calc(1rem * var(--ui-scale));background:var(--color-white);display:flex}@media (max-width:768px){.efp-speaker__header{padding-top:calc(.625rem * var(--ui-scale))}}.efp-speaker__icon{width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));border-radius:var(--border-radius-full);background:var(--color-speaker);color:var(--color-white);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;display:flex}.efp-speaker__icon>i{font-size:var(--icon-size-xxs)}.efp-speaker__content{text-align:left;align-self:flex-start;gap:calc(.125rem * var(--ui-scale));flex-direction:column;flex:1;display:flex}.efp-speaker__name{margin-bottom:calc(.1875rem * var(--ui-scale));font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}.efp-speaker__job-title{font-size:var(--font-size-md);color:var(--color-gray-700)}.efp-speaker__company{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-gray-900)}.efp-speaker__photo{width:calc(4.375rem * var(--ui-scale));height:calc(4.375rem * var(--ui-scale));border-radius:var(--border-radius-md);background:var(--color-gray-100);flex-shrink:0;overflow:hidden}.efp-speaker__photo img{object-fit:cover;object-position:center;width:100%;height:100%}.efp-speaker__buttons{margin:0 calc(1rem * var(--ui-scale)) 0 calc(1rem * var(--ui-scale))}.efp-speaker-events__title{padding:0 calc(1rem * var(--ui-scale));font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin:0}.efp-speaker-empty,.efp-speakers-empty{height:calc(12.5rem * var(--ui-scale));text-align:center;color:var(--color-gray-500);font-size:calc(1rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-md);margin-top:calc(1.25rem * var(--ui-scale));padding:calc(2.5rem * var(--ui-scale));justify-content:center;align-items:center;display:flex}@media (max-width:768px){.efp-speakers-empty{height:calc(9.375rem * var(--ui-scale));font-size:calc(.875rem * var(--ui-scale));padding:calc(1.25rem * var(--ui-scale));margin-top:calc(1rem * var(--ui-scale))}}.efp-tours-empty{text-align:center;height:100%;color:var(--color-gray-500);font-size:var(--font-size-lg);justify-content:center;align-items:center;display:flex}.efp-wayfinding-description{padding:calc(1rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));white-space:pre-line;font-size:var(--font-size-xl);color:var(--color-gray-900)}.efp-wayfinding{gap:calc(.875rem * var(--ui-scale));padding-bottom:calc(1rem * var(--ui-scale));flex-flow:column wrap;display:flex}.efp-wayfinding.isCollapsed{gap:0}.efp-wayfindingForm{align-items:center;display:flex}.efp-wayfindingForm:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm__icons{width:calc(2.8125rem * var(--ui-scale));height:calc(6.875rem * var(--ui-scale));flex-flow:column wrap;justify-content:space-between;display:flex;position:relative}.efp-wayfindingForm__icons:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(.9375rem * var(--ui-scale))}.efp-wayfindingForm__icons:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:calc(.9375rem * var(--ui-scale))}.efp-wayfindingForm__icons:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(.9375rem * var(--ui-scale))}.efp-wayfindingForm__icons:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(.9375rem * var(--ui-scale))}.efp-wayfindingForm__from,.efp-wayfindingForm__to,.efp-wayfindingForm__dots{height:calc(3.125rem * var(--ui-scale));align-items:center;display:flex}.efp-wayfindingForm__from>svg{width:calc(1.3125rem * var(--ui-scale));height:calc(1.3125rem * var(--ui-scale))}.efp-wayfindingForm__to>svg{width:calc(1.25rem * var(--ui-scale));height:calc(1.5625rem * var(--ui-scale))}.efp-wayfindingForm__dots{width:calc(.25rem * var(--ui-scale));height:calc(1.125rem * var(--ui-scale));position:absolute;top:50%;left:50%;transform:translateY(-50%)}.efp-wayfindingForm__dots:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:1px}.efp-wayfindingForm__dots:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:1px}.efp-wayfindingForm__dots:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:1px}.efp-wayfindingForm__dots:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:1px}.efp-wayfindingForm__controls{flex:1}.efp-wayfindingForm__controls:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm__controls:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm__controls:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm__controls:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(.625rem * var(--ui-scale))}.efp-wayfindingForm__actions{gap:.2rem;display:grid}.efp-wayfindingForm__switch{width:calc(1.875rem * var(--ui-scale));height:calc(2.125rem * var(--ui-scale));border-radius:var(--border-radius-md);color:var(--color-gray-700);cursor:pointer;transition:all var(--transition-duration) ease;background:0 0;border:0;padding:0}.efp-wayfindingForm__switch:before{font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-md);font-family:efp-symbols,sans-serif!important}.efp-wayfindingForm__switch:hover{background:var(--color-gray-200);color:var(--color-black)}.efp-wayfindingForm__details{width:calc(1.875rem * var(--ui-scale));height:calc(2.125rem * var(--ui-scale));border-radius:var(--border-radius-md);color:var(--color-gray-700);cursor:pointer;transition:all var(--transition-duration) ease;background:0 0;border:0;padding:0}.efp-wayfindingForm__details:before{font-variant:normal;text-transform:none;speak:never;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";font-size:24px;font-style:normal;font-weight:400;line-height:1;font-size:var(--icon-size-md);font-family:efp-symbols,sans-serif!important}.efp-wayfindingForm__details:hover{background:var(--color-gray-200);color:var(--color-black)}.efp-wayfindingForm__accessible{margin-top:calc(.75rem * var(--ui-scale))}.efp-wayfindingForm__accessible:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:calc(2.75rem * var(--ui-scale))}.efp-wayfindingForm__accessible:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:calc(2.75rem * var(--ui-scale))}.efp-wayfindingForm__accessible:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:calc(2.75rem * var(--ui-scale))}.efp-wayfindingForm__accessible:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:calc(2.75rem * var(--ui-scale))}.efp-wayfindingError{padding:calc(1.25rem * var(--ui-scale)) calc(.9375rem * var(--ui-scale));border-top:1px solid var(--color-gray-300);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-gray-700);text-align:center}.layout[dir=rtl] .efp-wayfindingForm__icons:after{right:50%}.route-qr{padding:0 calc(1rem * var(--ui-scale))}.route-qr__body{gap:calc(1rem * var(--ui-scale));padding-top:calc(1rem * var(--ui-scale));flex-flow:wrap;align-items:center;display:flex}.route-qr__code{width:calc(5.625rem * var(--ui-scale));padding:calc(.375rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-sm);display:inline-flex}.route-qr__code>svg{width:100%;height:auto}.route-qr__label{font-size:var(--font-size-xxl);font-weight:var(--font-weight-medium);color:var(--color-black);flex:1}.efp-wayInformation{max-width:calc(50rem * var(--ui-scale));padding:calc(1rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) 0;border-top:1px solid var(--color-gray-300);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.efp-wayInformation__item{padding:0 calc(.625rem * var(--ui-scale))}.efp-wayInformation__item span{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-gray-700);display:flex}.efp-wayInformation__item strong{font-size:var(--font-size-xxl);font-weight:var(--font-weight-medium);color:var(--color-black);display:block}.efp-wayInformation__item.is-accessible strong{color:var(--color-primary);display:flex;position:relative}.efp-wayfinding.isCollapsed .efp-wayInformation{padding-top:calc(.25rem * var(--ui-scale));border-top:0}.efp-wayfinding.isCollapsed .efp-wayInformation__item strong{margin-top:calc(-.125rem * var(--ui-scale))}.search-box{top:var(--search-box-top);left:var(--app-gap);right:var(--app-gap);width:var(--search-box-width);height:var(--search-box-height);z-index:40;background:var(--color-white);border-radius:calc(1.75rem * var(--ui-scale));padding:0 calc(.625rem * var(--ui-scale));align-items:center;gap:calc(.25rem * var(--ui-scale));cursor:text;border:1px solid #0000;display:flex;position:fixed}.efp-viewer-mode .search-box{gap:calc(.5rem * var(--ui-scale))}.search-box__title{align-items:center;gap:calc(.5rem * var(--ui-scale));padding:0 calc(.375rem * var(--ui-scale));text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;color:var(--color-gray-900);display:flex;overflow:hidden}.search-box__title strong{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.search-box__title span{font-size:var(--font-size-sm)}.search-box__input-wrapper{flex:1;min-width:0}.search-box__input{width:100%;height:var(--search-box-height);font-size:var(--font-size-xl);color:var(--color-gray-900);-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;padding:0}.search-box__input::placeholder{color:var(--color-gray-500)}.search-box__input:focus{outline:none}.efp-viewer-mode .search-box__input{font-size:var(--font-size-3xl)}.search-box__button{width:calc(2.25rem * var(--ui-scale));height:calc(2.25rem * var(--ui-scale));border-radius:var(--border-radius-full);cursor:pointer;color:var(--color-gray-800);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.search-box__button i{font-size:var(--icon-size-md)}.search-box__button:hover{background:var(--color-gray-100);color:var(--color-black)}.search-box__button--back:hover{color:var(--color-primary-600)}.search-box__button--back.is-mobile-details i{transition:transform .2s ease-in-out;transform:rotate(-90deg)}.search-box__button--home{background:var(--color-primary-ultra-light);color:var(--color-primary)}.search-box__button--home:hover{background:var(--color-primary-ultra-light);color:var(--color-primary-dark)}.search-box__button--search{cursor:text}.search-box__button--search:hover{color:var(--color-gray-800);background:0 0}.search-box__button--close{background:var(--color-gray-200);color:var(--color-gray-800)}.search-box__button--close:hover{background:var(--color-gray-300)}.search-box__button--sessions-filters{position:relative}.search-box__button--sessions-filters.is-active{background:var(--color-primary-ultra-light);color:var(--color-primary)}.search-box__button--sessions-filters.is-active:hover{background:var(--color-primary-ultra-light);color:var(--color-primary-dark)}.search-box__button--ui-action>i{font-size:var(--icon-size-sm)}.search-box__sessions-filters-count{top:calc(-.25rem * var(--ui-scale));right:calc(-.25rem * var(--ui-scale));min-width:calc(1rem * var(--ui-scale));height:calc(1rem * var(--ui-scale));padding:0 calc(.25rem * var(--ui-scale));background:var(--color-primary);color:var(--color-white);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;line-height:1;display:flex;position:absolute}.search-box__title-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-600);margin-top:calc(.125rem * var(--ui-scale));text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.search-box.has-shadow{box-shadow:var(--shadow-md)}.search-box.is-details{cursor:default;background:0 0;border-color:#0000}.search-box.is-details:not(.is-route) .search-box__title{opacity:0}.search-box.is-details:not(.is-route) strong{font-size:var(--font-size-xl)}.search-box.is-featured-exhibitor .search-box__title,.search-box.is-featured-exhibitor .search-box__button{color:var(--color-white)}.search-box.is-featured-exhibitor .search-box__button:hover{background:var(--color-primary-dark)}.search-box.is-overlay-scrolled:not(.is-route) .search-box__title{opacity:1}@media (max-width:768px){.search-box{width:calc(100% - var(--app-gap) * 2);box-shadow:var(--shadow-md);transition:box-shadow .2s,border .2s,opacity .2s,visibility .2s}.search-box.is-details{background:var(--color-white)}.search-box.is-details.is-overlay-full{opacity:0;visibility:hidden;z-index:39}.search-box.is-details:not(.is-route) .search-box__title{opacity:1}.search-box.is-featured-exhibitor{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}}.layout[dir=rtl] .search-box{left:unset;right:var(--app-gap)}@media (min-width:550px){.efp-kiosk .search-box.overlay-pulse:after{content:\"\";pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:100px;width:100%;height:100%;animation:4s infinite pulse-shadow;position:absolute;top:0;left:0;box-shadow:0 0 #007bffb3}.efp-kiosk-route-active .search-box{background:0 0}}@keyframes pulse-shadow{0%{box-shadow:0 0 #2382f4e6}30%{box-shadow:0 0 0 20px #2382f400}50%{box-shadow:0 0 #2382f400}to{box-shadow:0 0 #2382f400}}.efp-search-buttons{top:calc(calc(.625rem * var(--ui-scale)) + var(--ws-height) + var(--banner-height));left:calc(var(--search-box-width) + calc(1.875rem * var(--ui-scale)));z-index:25;max-width:calc(100vw - var(--search-box-width) - calc(6.875rem * var(--ui-scale)));position:fixed}.efp-search-buttons.is-long-levels{max-width:calc(100vw - var(--search-box-width) - var(--level-dropdown-trigger-width) - calc(4.375rem * var(--ui-scale)))}.efp-search-buttons[style*=\"left: 10px\"][style*=\"right: 10px\"]{max-width:calc(100vw - 20px)}.efp-search-buttons.is-standalone{left:calc(.625rem * var(--ui-scale));max-width:calc(100vw - calc(6.875rem * var(--ui-scale)))}.efp-search-buttons.is-standalone.is-long-levels{max-width:calc(100vw - var(--level-dropdown-trigger-width) - calc(4.375rem * var(--ui-scale)))}@media (max-width:768px){.efp-search-buttons.is-standalone{top:calc(calc(.625rem * var(--ui-scale)) + var(--ws-height) + var(--banner-height));max-width:100%;left:0;right:0}.efp-search-buttons.is-standalone.is-long-levels{max-width:100%}}.layout[dir=rtl] .efp-search-buttons.is-standalone{right:calc(.625rem * var(--ui-scale));left:unset}@media (max-width:768px){.layout[dir=rtl] .efp-search-buttons.is-standalone{left:0;right:0}.efp-search-buttons{top:calc(calc(.875rem * var(--ui-scale)) + var(--search-box-height) + var(--ws-height) + var(--banner-height));max-width:100%;left:0;right:0}.efp-search-buttons.is-long-levels{max-width:100%}}.layout[dir=rtl] .efp-search-buttons{right:calc(var(--search-box-width) + calc(1.875rem * var(--ui-scale)));left:unset}@media (max-width:768px){.layout[dir=rtl] .efp-search-buttons{left:0;right:0}}@media (max-width:768px){.efp-search-buttons .efp-scrollable-row__container{padding:0}}@media (max-width:768px){.efp-search-buttons .efp-scrollable-row__scroll-wrapper{padding:0}}@media (max-width:768px){.efp-search-buttons .efp-scrollable-row__content{width:fit-content;padding:calc(.5rem * var(--ui-scale)) calc(.625rem * var(--ui-scale))}}.layout[dir=rtl] .efp-search-buttons .efp-scrollable-row__arrow--left{right:calc(-.5rem * var(--ui-scale));left:unset}.efp-search-buttons .efp-scrollable-row__container{padding:0 calc(.375rem * var(--ui-scale))}@media (max-width:768px){.efp-search-buttons .efp-scrollable-row__container{padding:0}}.efp-search-buttons .efp-scrollable-row__scroll-wrapper{padding:0 calc(.3125rem * var(--ui-scale))}@media (max-width:768px){.efp-search-buttons .efp-scrollable-row__scroll-wrapper{padding:0}}.efp-search-buttons .efp-scrollable-row__scroll-wrapper--dragging .efp-scrollable-row__content button{pointer-events:auto}.efp-search-buttons .efp-scrollable-row__content{gap:calc(.5rem * var(--ui-scale));padding:calc(.5rem * var(--ui-scale)) 0}@media (max-width:768px){.efp-search-buttons .efp-scrollable-row__content{width:fit-content;padding:calc(.5rem * var(--ui-scale)) calc(.625rem * var(--ui-scale))}}.efp-search-buttons .efp-scrollable-row__arrow{z-index:2;min-width:calc(2.375rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);color:var(--color-gray-900);border:1px solid #0000;padding:0}.efp-search-buttons .efp-scrollable-row__arrow i{font-size:var(--icon-size-md);color:var(--color-gray-600)}.efp-search-buttons .efp-scrollable-row__arrow:hover{background:var(--color-gray-100);color:var(--color-black)}.efp-search-buttons .efp-scrollable-row__arrow--left{left:calc(-.5rem * var(--ui-scale))}.efp-search-buttons .efp-scrollable-row__arrow--right{right:calc(-.5rem * var(--ui-scale))}.layout[dir=rtl] .efp-search-buttons .efp-scrollable-row__arrow--left{left:unset;right:calc(-.5rem * var(--ui-scale))}.layout[dir=rtl] .efp-search-buttons .efp-scrollable-row__arrow--right{right:unset;left:calc(-.5rem * var(--ui-scale))}.efp-search-button{justify-content:center;align-items:center;gap:calc(.3125rem * var(--ui-scale));white-space:nowrap;min-width:calc(2.375rem * var(--ui-scale));height:calc(2.375rem * var(--ui-scale));padding:0 calc(.875rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);color:var(--color-gray-800);cursor:pointer;border:1px solid #0000;flex-shrink:0;transition:all .2s;display:flex;position:relative}.efp-search-button__icon{margin-left:calc(-.25rem * var(--ui-scale));font-size:var(--icon-size-sm)}.efp-search-button__text{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;max-width:calc(10rem * var(--ui-scale));overflow:hidden}.efp-search-button__count{top:calc(-.3125rem * var(--ui-scale));right:calc(-.3125rem * var(--ui-scale));min-width:calc(1.25rem * var(--ui-scale));height:calc(1.25rem * var(--ui-scale));padding:0 calc(.25rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-gray-400);border-radius:var(--border-radius-full);box-shadow:var(--shadow-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-gray-700);justify-content:center;align-items:center;line-height:0;transition:all .2s;display:flex;position:absolute}.efp-search-button__count.is-zero{background:var(--color-gray-200);border-color:var(--color-gray-300);color:var(--color-gray-500)}.efp-search-button--action .efp-search-button__chevron{margin-left:calc(-.125rem * var(--ui-scale));margin-right:calc(-.25rem * var(--ui-scale));font-size:var(--icon-size-xxs);opacity:.55}.efp-search-button--action.is-active .efp-search-button__chevron{opacity:.85}.efp-search-button:active:not(.is-active):not(.has-custom-color){background:var(--color-white)}.efp-search-button:hover:not(.is-active):not(.has-custom-color){background:var(--color-gray-100);color:var(--color-black)}.efp-search-button.has-custom-color:not(.is-active){background:var(--btn-bg-color);color:var(--btn-text-color)}.efp-search-button.has-custom-color:not(.is-active) .efp-search-button__count{background:var(--btn-bg-color);color:var(--btn-text-color);filter:brightness(1.2);border-color:#0f0f0f4d}.efp-search-button.has-custom-color:not(.is-active):hover{filter:brightness(.9)}.efp-search-button.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.efp-search-button.is-active .efp-search-button__count{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-white)}.efp-search-button.is-dimmed:not(.is-active) .efp-search-button__count.is-zero{background:var(--color-gray-200);border-color:var(--color-gray-300);color:var(--color-gray-500)}.layout[dir=rtl] .efp-search-button__icon{margin-left:0;margin-right:calc(-.25rem * var(--ui-scale))}.layout[dir=rtl] .efp-search-button__chevron{margin-left:calc(-.25rem * var(--ui-scale));margin-right:calc(-.125rem * var(--ui-scale))}.layout[dir=rtl] .efp-search-button__count{right:unset;left:calc(-.3125rem * var(--ui-scale))}.efp-search-sub-buttons{z-index:30;padding:calc(.25rem * var(--ui-scale)) calc(.625rem * var(--ui-scale)) calc(.625rem * var(--ui-scale));max-height:calc(7.5rem * var(--ui-scale));opacity:0;transform:translateY(-rem(8px));pointer-events:none;transition:all .2s ease-out;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.efp-search-sub-buttons.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.efp-search-sub-buttons__container{gap:calc(.375rem * var(--ui-scale));flex-wrap:wrap;align-items:center;display:flex}.efp-search-sub-buttons::-webkit-scrollbar{width:calc(.25rem * var(--ui-scale))}.efp-search-sub-buttons::-webkit-scrollbar-track{background:var(--color-gray-100);border-radius:var(--border-radius-sm)}.efp-search-sub-buttons::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:var(--border-radius-sm)}.efp-search-sub-buttons::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}.layout[dir=rtl] .efp-search-sub-buttons{left:unset;right:0}.efp-search-sub-button{white-space:nowrap;min-width:calc(1.875rem * var(--ui-scale));height:calc(1.875rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-full);box-shadow:var(--shadow-md);color:var(--color-gray-900);cursor:pointer;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:relative}.efp-search-sub-button i{font-size:var(--icon-size-sm)}.efp-search-sub-button__text{padding:0 calc(.75rem * var(--ui-scale));font-size:var(--font-size-md);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;max-width:calc(10rem * var(--ui-scale));overflow:hidden}.efp-search-sub-button__count{top:calc(-.3125rem * var(--ui-scale));right:calc(-.3125rem * var(--ui-scale));min-width:calc(1.125rem * var(--ui-scale));height:calc(1.125rem * var(--ui-scale));padding:0 calc(.25rem * var(--ui-scale));background:var(--color-white);border:1px solid var(--color-gray-400);border-radius:var(--border-radius-full);box-shadow:var(--shadow-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-gray-700);justify-content:center;align-items:center;line-height:0;transition:all .2s;display:flex;position:absolute}.efp-search-sub-button__count.is-zero{background:var(--color-gray-200);border-color:var(--color-gray-300);color:var(--color-gray-500)}.efp-search-sub-button:hover:not(.is-active){background:var(--color-gray-100);border-color:var(--color-gray-400)}.efp-search-sub-button.is-active{background:var(--color-primary-ultra-light);border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 2px 4px #0000001a}.efp-search-sub-button.is-active .efp-search-sub-button__count{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.efp-sessions-filters-modal{gap:calc(1.875rem * var(--ui-scale));flex-direction:column;display:flex}.efp-sessions-filters-modal__section h3{margin:0 0 calc(.375rem * var(--ui-scale));font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--color-gray-900)}.efp-sessions-filters-modal__buttons{gap:calc(.125rem * var(--ui-scale));background:var(--color-gray-200);border-radius:var(--border-radius-full);-webkit-user-select:none;user-select:none;display:flex}.efp-sessions-filters-modal__btn{padding:calc(.375rem * var(--ui-scale)) calc(.5rem * var(--ui-scale));border:4px solid var(--color-gray-200);border-radius:var(--border-radius-full);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-gray-900);background:0 0;flex:1}.efp-sessions-filters-modal__btn:hover{color:var(--color-black)}.efp-sessions-filters-modal__btn.is-active{background:var(--color-white);color:var(--color-black)}.efp-sessions-filters-modal__toggle{padding:calc(.5rem * var(--ui-scale)) 0;justify-content:space-between;align-items:center;display:flex}.efp-speakers-filters-modal{gap:calc(1.875rem * var(--ui-scale));flex-direction:column;display:flex}.efp-speakers-filters-modal__section h3{margin:0 0 calc(.375rem * var(--ui-scale));font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--color-gray-900)}.efp-tours-list{flex-direction:column;display:flex}.efp-tour-item{min-height:calc(4.5rem * var(--ui-scale));background:var(--color-white);border-bottom:1px solid var(--color-gray-200);cursor:pointer;align-items:center;display:flex;position:relative}.efp-tour-item__body{gap:calc(.875rem * var(--ui-scale));width:100%;padding:calc(1rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));align-items:flex-start;display:flex}.efp-tour-item__left{gap:calc(.375rem * var(--ui-scale));flex-flow:column wrap;align-items:center;display:flex}.efp-tour-item__right{gap:calc(.625rem * var(--ui-scale));flex:1;min-width:0;display:flex}.efp-tour-item__content{flex-direction:column;flex:1;max-width:100%;display:flex}.efp-tour-item__title{font-size:var(--font-size-xxl);font-weight:var(--font-weight-medium);color:var(--color-black);letter-spacing:.01em;align-items:center}.efp-tour-item__description{margin-top:calc(.25rem * var(--ui-scale));font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-gray-600);line-height:1.4}.efp-tour-item__icon{width:calc(1.5rem * var(--ui-scale));height:calc(1.5rem * var(--ui-scale));margin-top:calc(-.125rem * var(--ui-scale));background:var(--color-route);border-radius:var(--border-radius-full);justify-content:center;align-items:center;display:flex}.efp-tour-item__icon>i{font-size:var(--icon-size-xxs);color:var(--color-white)}.efp-tour-item:hover{background:var(--color-gray-200)}.efp-tours-empty{padding:calc(3.75rem * var(--ui-scale)) calc(1.25rem * var(--ui-scale));text-align:center;justify-content:center;align-items:center;display:flex}.efp-tours-empty p{color:var(--color-gray-500);font-size:var(--font-size-lg);margin:0}\n/*$vite$:1*/", "components.css", false);