@expofp/floorplan
Version:
Interactive floor plan library for expos and events
6,767 lines • 405 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.39.1" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "7eb497c4-d86e-4e8b-b125-df866bed2c86", e._sentryDebugIdIdentifier = "sentry-dbid-7eb497c4-d86e-4e8b-b125-df866bed2c86");
} catch {}
})();
import { r as e, t } from "./rolldown-runtime-BOCG9HEF.js";
import { A as n, E as r, F as i, T as a, _ as o, f as s, j as c, n as l, o as u, s as d, t as f, v as p } from "./i18n-BVE2kS7w.js";
import { t as m } from "./react-CM7l092i.js";
import { t as h } from "./jsx-runtime-BGutO_I9.js";
import { n as g, r as _ } from "./loadImage-B-6VhOfG.js";
import { n as v } from "./exports-gWa75nmY.js";
import { t as y } from "./fuse-Didw830W.js";
import { t as b } from "./react-dom-DV2t60Bu.js";
import { t as x } from "./classnames-4Iik8FC_.js";
import { An as S, B as C, Bt as w, C as T, D as E, Dn as D, Dt as O, En as k, Et as A, Ht as j, I as ee, J as M, Jt as N, K as te, L as ne, Ln as re, Lt as ie, M as P, Mt as F, Nt as ae, Q as I, R as oe, Rn as se, Sn as ce, St as le, Tn as ue, Tt as de, U as L, Ut as fe, V as pe, Vt as me, W as he, X as ge, Y as _e, _ as ve, _n as ye, a as R, b as be, bn as xe, c as z, cn as Se, dn as Ce, fn as we, g as Te, gn as Ee, i as De, l as B, ln as Oe, mn as ke, n as Ae, nn as je, o as Me, ot as Ne, pn as Pe, q as V, r as Fe, rn as Ie, s as H, sn as Le, st as Re, t as ze, tn as Be, un as Ve, v as He, vn as U, vt as Ue, wn as W, yn as We, yt as Ge, zt as Ke } from "./store-CARxK2Ft.js";
import { t as qe } from "./Button-DDJ9HcfI.js";
import { n as Je } from "./GalleryContainer-CIasK5mL.js";
import { t as Ye } from "./useRenderTarget-Z7iVu1Bc.js";
import { t as Xe } from "./ModalContainer-BuH30fJN.js";
import { n as G, r as K, t as q } from "./index.module-CVo9wrU4.js";
import "./CookieConsent-CJSQYYJ0.js";
import "./Demo-ClW-lszE.js";
import { i as J, n as Ze, r as Qe, t as $e } from "./mobx-B9XSgx3-.js";
import { t as et } from "./camera-events-CQZgwih3.js";
import { t as tt } from "./viewport-CN0fRYhD.js";
import { a as nt, c as rt, i as it, l as at, n as ot, o as st, r as ct, s as lt } from "./dimming-3R7UOgr9.js";
//#region ../ui/src/components/Alert/Alert.tsx
var Y = /* @__PURE__ */ e(x(), 1), X = /* @__PURE__ */ e(m(), 1), Z = h(), ut = ({ 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, Z.jsxs)("div", {
className: (0, Y.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, Z.jsx)("div", {
className: "efp-alert__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: (0, Y.default)(u()),
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-alert__content",
children: [s && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-alert__title",
children: s
}), e]
}),
o && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-alert__close",
onClick: l,
"aria-label": c,
title: c
})
]
});
}, dt = /* @__PURE__ */ e(b(), 1), ft = se();
function pt(e, t, n = !0) {
let r = (0, X.useRef)(e), i = (0, X.useRef)(t);
(0, X.useEffect)(() => {
r.current = e, i.current = t;
}), (0, X.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/OverlayScrollContext.ts
var mt = (0, X.createContext)(null), ht = 4, gt = 96, _t = .45, vt = ({ 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, X.useContext)(mt), p = (0, X.useRef)(null), m = (0, X.useRef)(null), h = (0, X.useRef)(null), g = (0, X.useRef)(null), [_, v] = (0, X.useState)(null), y = (0, X.useRef)(null), b = (0, X.useId)(), x = (e) => `${b}-option-${e}`, S = (e) => e.label, C = (e, t) => u(e) === u(t), w = (e) => t.findIndex((t) => C(t, e)), T = (e) => t.find((t) => C(t, e)), [E, D] = (0, X.useState)(null), [O, k] = (0, X.useState)(null), [A, j] = (0, X.useState)(!1), [ee, M] = (0, X.useState)(null), [N, te] = (0, X.useState)({
top: 0,
left: 0,
width: 0,
maxHeight: 0
}), ne = n ? T(n) : void 0, re = ne ? w(ne) : null, ie = E == null ? ne ? S(ne) : "" : E, P = (0, X.useMemo)(() => {
if (!E) return [];
let e = E.toLowerCase();
return t.filter((t) => S(t).toLowerCase().includes(e));
}, [E, t]), F = () => {
var e, t, n;
if (o || !p.current || !A) return;
let r = p.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 - ht, l = r.top - a - ht, u = (s - a) * _t, f = c < u && l > c, m = Math.min(u, Math.max(f ? l : c, gt)), h = d == null ? void 0 : d.getBoundingClientRect(), g = (e = h == null ? void 0 : h.top) == null ? 0 : e;
te({
...f ? { bottom: ((t = h == null ? void 0 : h.bottom) == null ? window.innerHeight : t) - r.top + ht } : { top: r.bottom - g + ht },
left: r.left - ((n = h == null ? void 0 : h.left) == null ? 0 : n),
width: r.width,
maxHeight: m
});
};
(0, X.useEffect)(() => {
if (o || !A) return;
F(), window.addEventListener("scroll", F, !0), window.addEventListener("resize", F);
let e = window.visualViewport === void 0 ? null : window.visualViewport;
return e == null || e.addEventListener("resize", F), e == null || e.addEventListener("scroll", F), () => {
window.removeEventListener("scroll", F, !0), window.removeEventListener("resize", F), e == null || e.removeEventListener("resize", F), e == null || e.removeEventListener("scroll", F);
};
}, [A, o]), (0, X.useEffect)(() => {
if (!o || !A || !f) {
M(null);
return;
}
let e = () => {
let e = p.current;
if (!e) return;
let t = f.getBoundingClientRect().bottom - e.getBoundingClientRect().bottom - ht;
M(Math.max(t, gt));
};
e();
let t = new ft.ResizeObserver(e);
return t.observe(f), () => t.disconnect();
}, [
o,
A,
f
]), (0, X.useEffect)(() => {
var e;
O !== null && ((e = g.current) == null || e.scrollIntoView({ index: O }));
}, [O]), pt([p, h], () => j(!1), A), (0, X.useEffect)(() => () => {
y.current && clearTimeout(y.current);
}, []);
let ae = (e) => {
D(null), i == null || i(e);
}, I = (e) => {
var t;
ae(e), k(null), j(!1), (t = m.current) == null || t.blur();
}, oe = (e = !1) => {
var t;
ae(void 0), k(null), e && ((t = m.current) == null || t.focus());
}, se = () => {
j(!0);
}, ce = () => {
y.current && clearTimeout(y.current), y.current = setTimeout(() => {
D(null);
}, 200);
}, le = () => {
var e;
if (!ie && O === null || E && O === null) return;
let n = P.length > 0 ? P : t;
if (O !== null && n[O]) {
let e = n[O];
ae(e);
}
k(null), j(!1), (e = m.current) == null || e.blur();
}, ue = () => {
!A || O === 0 || O === null || k(O - 1);
}, de = () => {
if (!A) {
k(re == null ? 0 : re), j(!0);
return;
}
let e = P.length > 0 ? P : t, n = O === null ? 0 : O + 1;
n < e.length && k(n);
}, L = (e) => {
switch (e.key) {
case "Enter":
le();
break;
case "ArrowUp":
ue();
break;
case "ArrowDown":
de();
break;
case "Delete":
oe(!0);
break;
case "Escape":
if (E) D(null), k(re);
else {
var t;
e.preventDefault(), j(!1), (t = m.current) == null || t.blur();
}
break;
}
}, fe = (e) => {
D(e.target.value), j(!0), k(null);
}, pe = () => {
let e = P.length > 0 ? P : t;
if (E && P.length === 0) return /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-autocomplete__empty",
children: s
});
if (!_) return null;
let n = {
listboxId: b,
focusIndex: O,
activeIndex: P.length === 0 ? re : null,
onSelect: (t) => I(e[t])
};
return /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(St, {
ref: g,
customScrollParent: _,
data: e,
context: n,
computeItemKey: (e, t) => u(t),
itemContent: (e, t) => S(t),
components: {
List: yt,
Item: bt
},
increaseViewportBy: 200
})
});
};
return /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
ref: p,
"data-no-drag": !0,
className: (0, Y.default)("efp-autocomplete", {
"is-open": A,
"with-clear": A && r
}),
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-autocomplete__inner",
children: [/* @__PURE__ */ (0, Z.jsx)("input", {
type: "search",
className: "efp-autocomplete__input",
role: "combobox",
"aria-label": c,
"aria-autocomplete": "list",
"aria-expanded": A,
"aria-controls": A ? b : void 0,
"aria-activedescendant": A && O !== null ? x(O) : void 0,
onChange: fe,
onFocus: se,
onBlur: ce,
onKeyDown: L,
value: ie,
placeholder: e,
ref: m
}), r && A && ie && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-autocomplete__clear",
"aria-label": l,
onMouseDown: (e) => {
e.preventDefault(), oe(!0);
}
})]
}), A && o && /* @__PURE__ */ (0, Z.jsx)("div", {
ref: h,
"data-no-drag": !0,
className: "efp-autocomplete-options efp-autocomplete-options--inline",
style: ee === null ? void 0 : { maxHeight: `${ee}px` },
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-autocomplete-options__scroll",
ref: v,
children: pe()
})
})]
}), A && !o && d && (0, dt.createPortal)(/* @__PURE__ */ (0, Z.jsx)("div", {
ref: h,
className: "efp-autocomplete-options",
style: {
...N.top === void 0 ? {} : { top: `${N.top}px` },
...N.bottom === void 0 ? {} : { bottom: `${N.bottom}px` },
left: `${N.left}px`,
width: `${N.width}px`,
maxHeight: `${N.maxHeight}px`
},
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-autocomplete-options__scroll",
ref: v,
children: pe()
})
}), d)] });
};
function yt({ context: e, ref: t, ...n }) {
return /* @__PURE__ */ (0, Z.jsx)("ul", {
...n,
ref: t,
role: "listbox",
id: e.listboxId
});
}
function bt({ context: e, item: t, ...n }) {
let r = n["data-index"], i = r === e.focusIndex, a = !i && r === e.activeIndex;
return /* @__PURE__ */ (0, Z.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 xt() {
return import("./dist--cp6ZHYH.js").then((e) => ({ default: e.Virtuoso })).catch(() => new Promise((e) => {
setTimeout(() => e(xt()), 3e3);
}));
}
var St = (0, X.lazy)(xt), Ct = ({ children: e, variant: t = "ghost", size: n = "lg", noMargins: r, rounded: i, inline: a }) => /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)({
"efp-badge": !0,
[`efp-badge--${t}`]: !0,
[`efp-badge--${n}`]: !0,
"is-no-margin": r,
"is-rounded": i,
"is-inline": a
}),
children: e
}), wt = ({ checked: e, label: t, ariaLabel: n, className: r, onClick: i }) => {
let [a, o] = (0, X.useState)(!1);
return /* @__PURE__ */ (0, Z.jsxs)("button", {
type: "button",
role: "checkbox",
"aria-checked": e,
"aria-label": n == null ? t ? void 0 : "Toggle" : n,
className: (0, Y.default)("efp-checkbox-button", r, { "efp-checkbox-button--checked": e }),
onClick: () => {
o(!0), i(), setTimeout(() => {
o(!1);
}, 320);
},
children: [/* @__PURE__ */ (0, Z.jsx)("div", { className: (0, Y.default)("efp-checkbox-button__inner", { "efp-checkbox-button__inner--animate": a }) }), t && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-checkbox-button__label",
children: t
})]
});
};
//#endregion
//#region ../ui/src/components/DownloadList/DownloadList.tsx
function Tt({ fileName: e, path: t, downloadLabel: n }) {
return /* @__PURE__ */ (0, Z.jsxs)("a", {
className: "efp-download-list__item",
href: t,
download: !0,
target: "_blank",
rel: "noopener noreferrer",
"aria-label": n(e),
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-download-list__item-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-file-solid",
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-download-list__item-name",
children: /* @__PURE__ */ (0, Z.jsx)("span", { children: e })
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-download-list__item-download",
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-download",
"aria-hidden": "true"
})
})
]
});
}
function Et({ list: e, title: t, downloadLabel: n }) {
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-download-list",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-download-list__title font-medium",
children: t
}), /* @__PURE__ */ (0, Z.jsx)("ul", {
className: "efp-download-list__list",
children: e.map((e) => /* @__PURE__ */ (0, Z.jsx)("li", { children: /* @__PURE__ */ (0, Z.jsx)(Tt, {
fileName: e.fileName,
path: e.path,
downloadLabel: n
}) }, e.path))
})]
});
}
//#endregion
//#region ../ui/src/components/HighlightText/HighlightText.tsx
var Dt = "#FFFF99", Ot = ({ text: e, highlight: t }) => {
if (!t || !e) return /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: e });
let n = e.toLowerCase().indexOf(t.toLowerCase());
if (n === -1) return /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: e });
let r = n + t.length;
return /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
e.slice(0, n),
/* @__PURE__ */ (0, Z.jsx)("mark", {
style: { background: `linear-gradient(to top, ${Dt}, transparent)` },
children: e.slice(n, r)
}),
e.slice(r)
] });
}, kt = ({ 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, Z.jsx)("div", {
role: "button",
className: (0, Y.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, Z.jsxs)("div", {
className: "efp-entity-item__body",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-entity-item__left",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-entity-item__icon",
children: i ? /* @__PURE__ */ (0, Z.jsx)("img", {
src: i,
alt: t
}) : o ? /* @__PURE__ */ (0, Z.jsx)("i", {
className: o,
"aria-hidden": "true"
}) : null
}), !v && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [m && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-entity-item__visited",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-checkmark" })
}), f && /* @__PURE__ */ (0, Z.jsx)("i", { className: (0, Y.default)("efp-entity-item__bookmarked", "icon-bookmark-solid") })] })]
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-entity-item__right",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-entity-item__content", { "with-image": r }),
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-entity-item__header",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-entity-item__title",
children: [
/* @__PURE__ */ (0, Z.jsx)(Ot, {
text: t,
highlight: x
}),
b && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-entity-item__description",
children: /* @__PURE__ */ (0, Z.jsx)(Ot, {
text: b,
highlight: x
})
}),
c !== void 0 && /* @__PURE__ */ (0, Z.jsx)("span", { children: c })
]
}), p && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-entity-item__featured",
children: S
})]
}),
D && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-entity-item__subtitle",
children: [
E && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-entity-item__datetime",
children: [(l == null ? void 0 : l.date) && /* @__PURE__ */ (0, Z.jsx)("strong", { children: l.date }), (l == null ? void 0 : l.time) && /* @__PURE__ */ (0, Z.jsx)("span", { children: l.time })]
}),
u && /* @__PURE__ */ (0, Z.jsx)("span", { children: u }),
n && /* @__PURE__ */ (0, Z.jsx)("div", { children: n })
]
}),
!!d.length && /* @__PURE__ */ (0, Z.jsx)("ul", {
className: (0, Y.default)("efp-entity-item__details", { "compact-details": y }),
children: d.map((e, t) => /* @__PURE__ */ (0, Z.jsxs)("li", {
className: "efp-entity-item__details-item",
children: [e.type === "location" && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
e.locationName && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-entity-item__details-item-booth",
children: /* @__PURE__ */ (0, Z.jsx)(Ot, {
text: e.locationName,
highlight: x
})
}),
e.hall && /* @__PURE__ */ (0, Z.jsxs)("div", { children: [
C,
"\xA0",
/* @__PURE__ */ (0, Z.jsx)("span", { children: e.hall })
] }),
e.level && /* @__PURE__ */ (0, Z.jsxs)("div", { children: [e.showLevelLabel && /* @__PURE__ */ (0, Z.jsxs)("span", { children: [w, "\xA0"] }), /* @__PURE__ */ (0, Z.jsx)("span", { children: e.level })] })
] }), e.type === "text" && /* @__PURE__ */ (0, Z.jsx)("span", { children: e.text })]
}, t))
})
]
}), r && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-entity-item__image",
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: r,
alt: t
})
})]
})]
})
});
}, At = ({ status: e, statusLabel: t, showFullBadge: n = !1, fullLabel: r, isUrgent: i = !1, className: a = "" }) => {
let o = e === "none" ? null : /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-event-badge", `efp-event-badge--${e}`, { "is-urgent": i }, a),
children: t
});
return !o && !n ? null : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [o, n && /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-event-badge", "efp-event-badge--full", a),
children: r
})] });
}, jt = ({ 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, Z.jsxs)("div", {
className: (0, Y.default)("efp-heatmap-legend", n),
style: r,
role: "img",
"aria-label": t,
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-heatmap-legend__colors",
style: { background: a },
"aria-hidden": "true"
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-heatmap-legend__values",
children: e.map(({ value: e }, t) => /* @__PURE__ */ (0, Z.jsx)("span", {
"aria-hidden": "true",
children: e
}, t))
})]
});
}, Mt = (e) => /^\d+$/.test(e), Nt = ({ level: e, levelLabel: t }) => e ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-level-badge",
children: /* @__PURE__ */ (0, Z.jsx)("span", { children: Mt(e) ? `${t} ${e}` : e })
}) : null;
//#endregion
//#region ../ui/src/components/LevelSelector/LevelSelector.tsx
function Pt({ floors: e, layout: t, onSelect: n, floorSelectionLabel: r, currentFloorLabel: i, floorLabel: a }) {
var o, s;
let c = (0, X.useRef)(null), l = (0, X.useRef)(null), u = (0, X.useRef)(/* @__PURE__ */ new Map()), [d, f] = (0, X.useState)(!1), [p, m] = (0, X.useState)("down"), h = (0, X.useCallback)(() => {
var e;
f(!1), (e = l.current) == null || e.focus();
}, []);
pt([c, l], () => f(!1), d), Je(h, d), (0, X.useLayoutEffect)(() => {
if (d && l.current) {
let e = l.current.getBoundingClientRect(), t = window.innerHeight - e.bottom;
m(t < 200 ? "up" : "down");
}
}, [d]);
let g = (0, X.useCallback)((e) => {
var t;
e.disabled || (n(e.id), f(!1), (t = l.current) == null || t.focus());
}, [n]), _ = (0, X.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, X.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, Z.jsx)("div", {
className: (0, Y.default)("efp-level-selector", "efp-level-selector--compact-list"),
role: "radiogroup",
"aria-label": r,
children: e.map((e) => /* @__PURE__ */ (0, Z.jsx)("button", {
ref: (t) => {
t ? u.current.set(e.id, t) : u.current.delete(e.id);
},
type: "button",
className: (0, Y.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, Z.jsx)("span", {
dir: "auto",
children: e.label
})
}, e.id))
});
}
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-level-selector", "efp-level-selector--dropdown"),
children: [/* @__PURE__ */ (0, Z.jsxs)("button", {
ref: l,
type: "button",
className: (0, Y.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, Z.jsxs)("div", {
className: "efp-level-selector__trigger-text",
children: [/* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-layers",
"aria-hidden": "true"
}), /* @__PURE__ */ (0, Z.jsx)("span", {
dir: "auto",
children: (s = y == null ? void 0 : y.label) == null ? "" : s
})]
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-level-selector__trigger-chevron",
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-chevron-down",
"aria-hidden": "true"
})
})]
}), d && /* @__PURE__ */ (0, Z.jsx)("div", {
ref: c,
className: (0, Y.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, Z.jsxs)("div", {
ref: (t) => {
t ? u.current.set(e.id, t) : u.current.delete(e.id);
},
className: (0, Y.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, Z.jsx)("span", {
className: "efp-level-selector__dropdown-item-icon",
children: e.active && /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-checkmark-solid",
"aria-hidden": "true"
})
}), /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-level-selector__dropdown-item-name",
dir: "auto",
children: e.label
})]
}, e.id))
})]
});
}
//#endregion
//#region ../ui/src/components/MapControls/MapControls.tsx
var Ft = ({ 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, X.useRef)(null), C = (0, X.useRef)(null), w = (0, X.useId)(), [T, E] = (0, X.useState)(f), [D, O] = (0, X.useState)("down");
pt(S, () => E(!1), T), Je(() => {
var e;
E(!1), (e = C.current) == null || e.focus();
}, T), (0, X.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, Z.jsxs)("div", {
className: (0, Y.default)("efp-map-controls", e),
style: t,
role: "toolbar",
"aria-label": n,
children: [
d && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": r,
title: r,
onClick: _,
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-navigation",
"aria-hidden": "true"
})
}),
p && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-layers-button",
ref: S,
children: [/* @__PURE__ */ (0, Z.jsx)("button", {
ref: C,
type: "button",
className: (0, Y.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, Z.jsx)("i", {
className: "icon-layers",
"aria-hidden": "true"
})
}), T && /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-checked-panel", {
"efp-checked-panel--opens-up": D === "up",
"efp-checked-panel--opens-down": D === "down"
}),
style: { minWidth: h },
children: /* @__PURE__ */ (0, Z.jsx)("ul", {
className: "efp-checked-panel__list",
children: p.map((e) => /* @__PURE__ */ (0, Z.jsxs)("li", { children: [/* @__PURE__ */ (0, Z.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, Z.jsx)("label", {
className: "efp-checked-panel__label",
htmlFor: `${w}-${e.id}`,
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-checked-panel__item-name",
children: e.name
})
})] }, e.id))
})
})]
}),
u && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": o,
title: o,
onClick: g,
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: l ? "icon-two-dim" : "icon-three-dim",
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-map-control-group",
children: [
/* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": i,
title: i,
onClick: v,
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-plus",
"aria-hidden": "true"
})
}),
/* @__PURE__ */ (0, Z.jsx)("div", { className: "efp-map-control-divider" }),
/* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": a,
title: a,
onClick: y,
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-minus",
"aria-hidden": "true"
})
})
]
}),
/* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-map-control",
"aria-label": s,
title: s,
onClick: b,
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-maximize",
"aria-hidden": "true"
})
})
]
});
};
//#endregion
//#region ../ui/src/components/MobileToggleButton/MobileToggleButton.tsx
function It({ mode: e, label: t, ariaLabel: n, withBanner: r, onClick: i }) {
let a = e === "list";
return /* @__PURE__ */ (0, Z.jsxs)("button", {
className: (0, Y.default)("efp-mobile-toggle-button", { "efp-mobile-toggle-button--with-banner": r }, a ? "efp-mobile-toggle-button--list" : "efp-mobile-toggle-button--map"),
onClick: i,
type: "button",
"aria-label": n,
children: [/* @__PURE__ */ (0, Z.jsx)("i", {
className: a ? "icon-list" : "icon-map",
"aria-hidden": "true"
}), /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-mobile-toggle-button__text",
children: t
})]
});
}
//#endregion
//#region ../ui/src/components/ShowMoreButton/ShowMoreButton.tsx
function Lt({ expanded: e, showMoreLabel: t, showLessLabel: n, className: r, suffix: i, ...a }) {
return /* @__PURE__ */ (0, Z.jsxs)("button", {
...a,
type: "button",
className: (0, Y.default)("efp-show-more-button", { "efp-show-more-button--expanded": e }, r),
"aria-expanded": e,
children: [
/* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-chevron-down",
"aria-hidden": "true"
}),
/* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-show-more-button__label",
children: e ? n : t
}),
i
]
});
}
//#endregion
//#region ../ui/src/components/MultiSelectGroups/MultiSelectGroups.tsx
var Rt = X.memo(({ item: e, isSelected: t, variant: n, showCount: r, count: i, onClick: a, customRenderer: o }) => o ? /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: o(e, t) }) : /* @__PURE__ */ (0, Z.jsxs)("button", {
type: "button",
className: (0, Y.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, Z.jsx)("div", {
className: "efp-multi-select-groups__item-name",
children: e.name
}), r && i > 0 && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-multi-select-groups__item-count",
children: i
})]
}));
function zt({ 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, X.useState)(() => /* @__PURE__ */ new Set()), g = (0, X.useCallback)((e) => {
p(t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
}, [t, p]), _ = (0, X.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, X.useCallback)((e) => {
let n = new Set(e.items.map((e) => e.id));
p(t.filter((e) => !n.has(e)));
}, [t, p]), y = (0, X.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, X.useMemo)(() => new Set(t), [t]);
return !Array.isArray(e) || !e.length ? null : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-multi-select-groups",
children: /* @__PURE__ */ (0, Z.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, Z.jsxs)("div", {
className: (0, Y.default)("efp-multi-select-groups__group", { "efp-multi-select-groups__group--full-width": e.fullWidth }, e.customGroupClass),
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-multi-select-groups__group-header",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-multi-select-groups__group-title",
children: e.groupName
}), r && e.showGroupActions !== !1 && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-multi-select-groups__group-actions",
children: [!p && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-multi-select-groups__action-btn",
onClick: () => _(e),
children: o
}), (h || p) && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-multi-select-groups__action-btn",
onClick: () => v(e),
children: s
})]
})]
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-multi-select-groups__group-items",
children: C.map((e) => /* @__PURE__ */ (0, Z.jsx)(Rt, {
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, Z.jsx)(Lt, {
className: "efp-multi-select-groups__show-more",
expanded: S,
showMoreLabel: l,
showLessLabel: u,
onClick: () => y(e.groupName),
suffix: !S && w > 0 && /* @__PURE__ */ (0, Z.jsxs)("span", {
className: "efp-multi-select-groups__show-more-badge",
children: [
w,
" ",
c
]
})
})
]
}, e.groupName);
})
})
});
}
//#endregion
//#region ../ui/src/shared/debounce.ts
function Bt(e, t) {
let n;
return (...r) => {
clearTimeout(n), n = setTimeout(() => {
e(...r);
}, t);
};
}
//#endregion
//#region ../ui/src/shared/hooks/useKeyboardInset.ts
var Vt = 100, Ht = 2, Ut = .6, Wt = .01, Gt = (e) => {
let [t, n] = (0, X.useState)(0), r = (0, X.useRef)(0), i = (0, X.useRef)(null);
return (0, X.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) >= Wt || e <= Vt ? 0 : Math.round(Math.min(e, window.innerHeight * Ut));
}, o = () => document.documentElement.scrollHeight <= window.innerHeight + Ht, s = (e) => {
Math.abs(e - r.current) <= Ht || (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) > Ht && 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;
}, Kt = 2, qt = .4, Jt = .4, Yt = 100, Xt = 500, Zt = 2, Qt = 550, $t = "transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)", en = (e) => Math.max(8 * (Math.log(e + 1) - 2), 0), tn = (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;
}
};
function nn({ enabled: e, panelRef: t, scrollRef: n, snapPoints: r, current: i, openedAtRef: a, onDragStart: o, onSnap: s, onSettle: c, onHandleTap: l }) {
let u = (0, X.useRef)(null), d = (0, X.useRef)(0), f = (0, X.useRef)(null), p = (0, X.useRef)(null), m = (0, X.useRef)({
enabled: e,
snapPoints: r,
current: i
});
(0, X.useLayoutEffect)(() => {
m.current = {
enabled: e,
snapPoints: r,
current: i
};
}, [
e,
r,
i
]);
let h = (0, X.useRef)({
onDragStart: o,
onSnap: s,
onSettle: c,
onHandleTap: l
});
(0, X.useLayoutEffect)(() => {
h.current = {
onDragStart: o,
onSnap: s,
onSettle: c,
onHandleTap: l
};
}, [
o,
s,
c,
l
]);
let g = (0, X.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, X.useCallback)((e, n) => {
let r = t.current;
r && (r.style.transition = n, r.style.transform = `translate3d(0, ${e}px, 0)`);
}, [t]), v = (0, X.useCallback)((e, n) => {
var r;
let i = performance.now(), o = a.current;
if (o !== void 0 && i - o < Xt || i - d.current < Yt || (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, X.useCallback)((e, t, n) => {
let { snapPoints: r, current: i } = m.current, a = t > 0;
if (n > Kt) return a ? r[r.length - 1].name : r[0].name;
if (n > qt && Math.abs(t) < window.innerHeight * Jt) {
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, X.useCallback)(() => {
var e;
(e = f.current) == null || e.flush();
}, []), x = (0, X.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, Qt);
e == null || e.addEventListener("transitionend", i), f.current = {
flush: r,
cancel: n
};
}, [t]);
return (0, X.useEffect)(() => () => {
var e, t;
(e = f.current) == null || e.cancel(), (t = p.current) == null || t.call(p);
}, []), { onPointerDown: (0, X.useCallback)((e) => {
if (!m.current.enabled || u.current || e.pointerType === "mouse" && e.button !== 0) return;
let r = f.current ? tn(t.current) : null;
b();
let i = r == null ? g(m.current.current) : r, a = {
pointerId: e.pointerId,
startY: e.clientY,
startTime: performance.now(),
startOffset: i,
offset: i,
committed: !1
};
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;
o();
let r = n.current;
if (r && r.style.removeProperty("overflow"), !a.committed) {
let t = e.target;
t instanceof Element && t.closest("[data-sheet-handle]") && h.current.onHandleTap();
return;
}
let i = a.startY - t.clientY, s = Math.max(performance.now() - a.startTime, 1), c = Math.abs(i) / s, l = y(a.offset, i, c);
_(g(l), $t), x(), h.current.onSnap(l);
}, c = (r) => {
if (r.pointerId !== a.pointerId) return;
let i = r.clientY - a.startY;
if (!a.committed) {
if (Math.abs(i) < Zt) return;
if (!v(e.target, i > 0)) {
o();
return;
}
a.committed = !0;
try {
var s;
(s = t.current) == null || s.setPointerCapture(a.pointerId);
} catch {}
let r = n.current;
r && (r.style.overflow = "hidden"), h.current.onDragStart();
}
let c = g(m.current.snapPoints[0].name), l = a.startOffset + i, u = l < 0 ? -en(-l) : l > c ? c + en(l - c) : l;
a.offset = u, _(u, "none");
};
window.addEventListener("pointermove", c), window.addEventListener("pointerup", s), window.addEventListener("pointercancel", s), p.current = o;
}, [
b,
g,
t,
y,
x,
n,
v,
_
]) };
}
//#endregion
//#region ../ui/src/shared/hooks/useWindowSize.ts
var rn = 200, an = () => window === window.top ? {
width: window.innerWidth,
height: window.innerHeight
} : {
width: document.documentElement.clientWidth || window.innerWidth,
height: document.documentElement.clientHeight || window.innerHeight
}, on = () => {
let [e, t] = (0, X.useState)(an);
return (0, X.useEffect)(() => {
let e, n = () => {
clearTimeout(e), e = setTimeout(() => t(an()), rn);
};
return window.addEventListener("resize", n), window.addEventListener("orientationchange", n), () => {
clearTimeout(e), window.removeEventListener("resize", n), window.removeEventListener("orientationchange", n);
};
}, []), e;
}, sn = "0.3s", cn = 10, ln = 768, un = () => window === window.top ? window.innerHeight : document.documentElement.clientHeight || document.body.clientHeight || window.innerHeight, dn = (e = un(), t, n, r) => ({
small: e / t,
medium: e / n,
full: e - r
}), fn = ({ 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 = cn, disableDrag: f = !1, forceFull: p = !1, scrollResetKey: m, mobileBreakpoint: h = ln, noContentLabel: g }) => {
let { width: _, height: v } = on(), y = _ <= h, b = (0, X.useMemo)(() => dn(v, c, l, u), [
v,
c,
l,
u
]), x = Gt(y), S = (0, X.useMemo)(() => {
if (x <= 0) return b;
let e = Math.max(b.full - x, b.small);
return {
small: Math.min(b.small, e),
medium: Math.min(b.medium, e),
full: e
};
}, [b, x]), [C, w] = (0, X.useState)(!1), [T, E] = (0, X.useState)(!t), [D, O] = (0, X.useState)(!1), [k, A] = (0, X.useState)(t), [j, ee] = (0, X.useState)(!1), M = (0, X.useRef)(null), N = (0, X.useRef)(null), te = (0, X.useRef)(void 0), [ne, re] = (0, X.useState)(null), ie = (0, X.useCallback)((e) => {
N.current = e, re(e);
}, []), [P, F] = (0, X.useState)(n), ae = (0, X.useRef)(P), I = (0, X.useRef)(n), oe = (0, X.useRef)(a);
(0, X.useLayoutEffect)(() => {
ae.current = P, I.current = n, oe.current = a;
});
let se = (0, X.useCallback)((e) => {
var t;
F(e), E(!1), (t = oe.current) == null || t.call(oe, e);
}, []), ce = (0, X.useMemo)(() => {
if (y) {
let e = x > 0 ? { bottom: x } : {}, n = (e) => Math.min(e, S.full);
return p && t ? {
...e,
height: n(un())
} : C ? {
...e,
height: S.full
} : {
...e,
height: (t || D) && !T ? S[P] : 0
};
}
return { height: t ? "auto" : void 0 };
}, [
y,
t,
T,
P,
D,
p,
C,
S,
x
]), le = (0, X.useMemo)(() => [
{
name: "small",
height: S.small
},
{
name: "medium",
height: S.medium
},
{
name: "full",
height: S.full
}
], [S]), ue = (0, X.useCallback)(() => w(!0), []), de = (0, X.useCallback)(() => w(!1), []), L = (0, X.useCallback)(() => {
let e = ae.current;
se(e === "small" ? "medium" : e === "medium" ? "full" : "small");
}, [se]), { onPointerDown: fe } = nn({
enabled: y && !f && !p,
panelRef: M,
scrollRef: N,
snapPoints: le,
current: P,
openedAtRef: te,
onDragStart: ue,
onSnap: se,
onSettle: de,
onHandleTap: L
});
(0, X.useLayoutEffect)(() => {
if (C) return;
let e = M.current;
if (!e) return;
e.style.transition = "none", e.style.removeProperty("transform");
let t = requestAnimationFrame(() => e.style.removeProperty("transition"));
return () => cancelAnimationFrame(t);
}, [C]);
let pe = (0, X.useCallback)(() => {
let e = N.current;
if (!e) return;
let t = e.scrollTop >= d;
j !== t && (ee(t), o == null || o(t));
}, [
d,
j,
o
]), me = (0, X.useMemo)(() => Bt(() => {
s == null || s();
}, 250), [s]);
return (0, X.useEffect)(() => {
if (t) {
A(!0), O(!0), te.current = performance.now();
return;
}
O(!0), te.current = void 0, y && E(!0);
let e = setTimeout(() => {
A(!1), O(!1), ee(!1);
}, parseFloat(sn) * 1e3);
return () => clearTimeout(e);
}, [t, y]), (0, X.useEffect)(() => {
if (!t || !k) return;
let e = setTimeout(() => {
se(I.current), O(!1);
}, 10);
return () => clearTimeout(e);
}, [
t,
k,
se
]), (0, X.useEffect)(() => {
F(n);
}, [n]), (0, X.useEffect)(() => {
if (t && !D) {
var e;
(e = N.current) == null || e.scrollTo({ top: 0 }), ee(!1), o == null || o(!1);
}
}, [
t,
D,
o,
m
]), k ? /* @__PURE__ */ (0, Z.jsx)(mt, {
value: ne,
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-overlay", {
"efp-overlay--draggable": C,
"efp-overlay--keyboard": y && x > 0,
"efp-overlay--full": P === "full",
"efp-overlay--mobile": y,
"efp-overlay--desktop": !y,
"efp-overlay--hidden": !y && !t,
"efp-overlay--scrolled": j,
"efp-overlay--forced-full": p && y
}, i),
style: ce,
ref: M,
onPointerDown: fe,
children: [!f && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-overlay__draghandle",
"data-sheet-handle": !0
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-overlay__scroll",
ref: ie,
onScroll: () => {
pe(), me();
},
children: [r, /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-overlay__content",
children: e || g
})]
})]
})
}) : null;
}, pn = ({ isFull: e, onToggle: t, ariaLabel: n, className: r }) => /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: (0, Y.default)("efp-overlay-grip", { "efp-overlay-grip--full": e }, r),
onClick: t,
"aria-label": n,
"aria-expanded": e,
children: /* @__PURE__ */ (0, Z.jsxs)("svg", {
viewBox: "0 0 1200 200",
preserveAspectRatio: "xMidYMid meet",
xmlns: "http://www.w3.org/2000/svg",
"aria-hidden": "true",
children: [/* @__PURE__ */ (0, Z.jsx)("path", { d: "M100,100 l 500 100 L 1100 100" }), /* @__PURE__ */ (0, Z.jsx)("path", { d: "M100,150 l 500 0 L 1100 150" })]
})
}), mn = ({ name: e, label: t, value: n, checked: r, disabled: i, className: a, ariaLabel: o, onChange: s }) => {
let c = (0, X.useId)();
return /* @__PURE__ */ (0, Z.jsxs)("label", {
htmlFor: c,
className: (0, Y.default)("efp-radio", a, {
"efp-radio--checked": r,
"efp-radio--disabled": i
}),
children: [
/* @__PURE__ */ (0, Z.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, Z.jsx)("span", {
className: "efp-radio__control",
"aria-hidden": "true"
}),
/* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-radio__label",
children: t
})
]
});
}, hn = ({ value: e, noteLabel: t, saveButtonLabel: n, saveButtonAriaLabel: r, onSave: i }) => {
let a = (0, X.useId)(), o = `${a}-label`, s = `${a}-textarea`, [c, l] = (0, X.useState)(e == null ? "" : e);
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "rebooking-notes",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-notes__view-header",
children: /* @__PURE__ */ (0, Z.jsx)("strong", {
id: o,
children: t
})
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "rebooking-notes__edit",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-notes__val",
children: /* @__PURE__ */ (0, Z.jsx)("textarea", {
id: s,
value: c,
onChange: (e) => l(e.target.value),
"aria-labelledby": o
})
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-notes__buttons",
children: /* @__PURE__ */ (0, Z.jsx)(qe, {
inline: !0,
onClick: () => {
i(c);
},
disabled: (e == null ? "" : e) === c,
"aria-label": r,
children: n
})
})]
})]
});
}, gn = ({ options: e, value: t, title: n, onChange: r }) => {
let i = (0, X.useId)();
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "rebooking-radio-group",
children: [n && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-radio-group__title",
children: n
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-radio-group__options",
children: e.map((e) => {
let n = `${i}-${e.value}`;
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "rebooking-radio",
style: { "--rebooking-color-primary": e.color },
children: [/* @__PURE__ */ (0, Z.jsx)("input", {
type: "radio",
name: i,
value: e.value,
id: n,
checked: e.value === t,
disabled: e.disabled,
onChange: () => r(e.value)
}), /* @__PURE__ */ (0, Z.jsxs)("label", {
htmlFor: n,
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-radio__label",
children: e.label
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "rebooking-radio__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: e.iconName,
"aria-hidden": "true"
})
})]
})]
}, e.value);
})
})]
});
}, _n = 5, vn = 768, yn = ({ children: e, ariaLabel: t, leftAriaLabel: n, rightAriaLabel: r, className: i, scrollAmount: a = 150, mobileBreakpoint: o = vn, showArrowsOnMobile: s = !1, arrowPosition: c = "inside", scrollBehavior: l = "smooth", isRtl: u = !1, enableDragScroll: d = !0, dragScrollSensitivity: f = 1, onScroll: p }) => {
let m = (0, X.useRef)(null), h = (0, X.useRef)(null), g = (0, X.useRef)(null), [_, v] = (0, X.useState)(!1), [y, b] = (0, X.useState)(!1), [x, S] = (0, X.useState)(!1), [C, w] = (0, X.useState)(0), [T, E] = (0, X.useState)(0), D = (0, X.useCallback)(() => window.innerWidth > o && !("ontouchstart" in window || navigator.maxTouchPoints > 0), [o]), O = (0, X.useCallback)((e, t, n) => {
let r = t - n;
return e < 0 ? Math.abs(e) : e > r / 2 ? r - e : e;
}, []), k = (0, X.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 > _n), b(i < e - _n);
} else v(t > _n), b(t < n - r - _n);
}, [
o,
s,
O,
u
]), A = (0, X.useCallback)(() => {
k(), p && h.current && p(h.current.scrollLeft);
}, [k, p]), j = (0, X.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
]), ee = (0, X.useCallback)((e) => {
!d || !D() || !h.current || re(e.target) || (S(!0), w(e.pageX - h.current.offsetLeft), E(h.current.scrollLeft), e.preventDefault());
}, [d, D]), M = (0, X.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
]), N = (0, X.useCallback)(() => {
S(!1);
}, []);
(0, X.useEffect)(() => {
if (x) return document.addEventListener("mousemove", M), document.addEventListener("mouseup", N), document.addEventListener("mouseleave", N), () => {
document.removeEventListener("mousemove", M), document.removeEventListener("mouseup", N), document.removeEventListener("mouseleave", N);
};
}, [
x,
M,
N
]), (0, X.useEffect)(() => {
k();
let e = () => k();
return window.addEventListener("resize", e), m.current && !g.current && (g.current = new ft.ResizeObserver(k), g.current.observe(m.current)), () => {
window.removeEventListener("resize", e), g.current && (g.current.disconnect(), g.current = null);
};
}, [k]);
let te = d && D() ? x ? "grabbing" : "grab" : void 0;
return /* @__PURE__ */ (0, Z.jsx)("div", {
ref: m,
className: (0, Y.default)("efp-scrollable-row", i),
role: "group",
"aria-label": t,
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-scrollable-row__container", { [`efp-scrollable-row__container--${c}`]: c }),
children: [
_ && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: (0, Y.default)("efp-scrollable-row__arrow", "efp-scrollable-row__arrow--left", { "efp-scrollable-row__arrow--rtl": u }),
onClick: () => j("left"),
"aria-label": n,
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-chevron-left" })
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
ref: h,
className: (0, Y.default)("efp-scrollable-row__scroll-wrapper", { "efp-scrollable-row__scroll-wrapper--dragging": x }),
onScroll: A,
onMouseDown: ee,
style: {
cursor: te,
userSelect: x ? "none" : void 0
},
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-scrollable-row__content",
children: e
})
}),
y && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: (0, Y.default)("efp-scrollable-row__arrow", "efp-scrollable-row__arrow--right", { "efp-scrollable-row__arrow--rtl": u }),
onClick: () => j("right"),
"aria-label": r,
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-chevron-right" })
})
]
})
});
}, bn = /* @__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();
};
};
})), xn = /* @__PURE__ */ e((/* @__PURE__ */ t(((e, t) => {
var n = bn(), 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), Sn = {
facebook: "icon-facebook",
xcom: "icon-twitter-x",
linkedin: "icon-linkedin"
}, Cn = ({ title: e, url: t, shareHeading: n, socials: r, copyLinkSectionLabel: i, directLinkAriaLabel: a, copyButtonAriaLabel: o, copyLabel: s, copiedLabel: c }) => {
let [l, u] = (0, X.useState)(!1), d = (0, X.useRef)(void 0);
return (0, X.useEffect)(() => () => clearTimeout(d.current), []), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "share",
children: [
/* @__PURE__ */ (0, Z.jsxs)("h3", { children: [
n,
" ",
e
] }),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "share__socials",
children: r.map((e) => /* @__PURE__ */ (0, Z.jsxs)("a", {
href: e.url,
rel: "noopener noreferrer",
target: "_blank",
className: (0, Y.default)("share-social", e.network),
"aria-label": e.ariaLabel,
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "share-social__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: Sn[e.network],
"aria-hidden": "true"
})
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "share-social__title",
children: e.name
})]
}, e.network))
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "share__copy",
children: [/* @__PURE__ */ (0, Z.jsx)("span", { children: i }), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "share__copy-input",
children: [/* @__PURE__ */ (0, Z.jsx)("input", {
type: "text",
defaultValue: t,
readOnly: !0,
"aria-label": a
}), /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: (0, Y.default)({ isCopied: l }),
onClick: () => {
(0, xn.default)(t) && (u(!0), clearTimeout(d.current), d.current = setTimeout(() => u(!1), 2e3));
},
"aria-label": o,
children: l ? /* @__PURE__ */ (0, Z.jsx)("span", {
"aria-live": "polite",
children: c
}) : s
})]
})]
})
]
});
}, wn = ({ 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, X.useState)(!1), S = (0, X.useRef)(void 0);
return (0, X.useEffect)(() => () => {
S.current !== void 0 && clearTimeout(S.current);
}, []), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-sidebar-actions", e),
children: [
a && /* @__PURE__ */ (0, Z.jsxs)("button", {
type: "button",
className: "efp-action-button efp-action-button--directions",
onClick: _,
title: c,
"aria-label": c,
children: [/* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-directions",
"aria-hidden": "true"
}), c]
}),
r && /* @__PURE__ */ (0, Z.jsx)(wt, {
className: "efp-visited-btn",
ariaLabel: n ? l : u,
checked: n,
label: l,
onClick: g == null ? (() => {}) : g
}),
i && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: (0, Y.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, Z.jsx)("i", {
className: t ? "icon-bookmark-solid" : "icon-bookmark",
"aria-hidden": "true"
})
}),
o && /* @__PURE__ */ (0, Z.jsxs)("button", {
type: "button",
className: "efp-action-button efp-action-button--route-planner",
title: p,
"aria-label": p,
onClick: v,
children: [/* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-route-solid",
"aria-hidden": "true"
}), p]
}),
s && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-action-button efp-action-button--share",
title: m,
"aria-label": m,
onClick: y,
children: /* @__PURE__ */ (0, Z.jsx)("i", {
className: "icon-share",
"aria-hidden": "true"
})
})
]
});
}, Tn = ({ title: e, subtitle: t, trailing: n, slug: r, style: i, className: a, active: o = !1, onClick: s }) => /* @__PURE__ */ (0, Z.jsxs)("a", {
href: "?" + encodeURIComponent(r),
onClick: (e) => {
e.preventDefault(), s();
},
className: (0, Y.default)("efp-simple-row", { "efp-simple-row--active": o }, a),
style: i,
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-simple-row__col",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-simple-row__main",
dir: "auto",
children: e
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-simple-row__sub",
dir: "auto",
children: t
})]
}), n && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-simple-row__end",
children: n
})]
}), En = ({ active: e, isCenter: t = !1 }) => /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-spinner", { "is-hidden": !e }),
style: t ? {
top: 0,
bottom: 0,
left: 0,
right: 0,
margin: "auto"
} : void 0,
children: /* @__PURE__ */ (0, Z.jsx)("svg", {
viewBox: "25 25 50 50",
children: /* @__PURE__ */ (0, Z.jsx)("circle", {
r: "20",
cy: "50",
cx: "50"
})
})
}), Dn = ({ name: e, value: t, label: n, className: r, onChange: i }) => {
let a = (0, X.useId)();
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-toggle-switch", r),
children: [/* @__PURE__ */ (0, Z.jsx)("input", {
type: "checkbox",
role: "switch",
"aria-checked": t,
id: a,
name: e,
checked: t,
onChange: () => i(!t)
}), /* @__PURE__ */ (0, Z.jsx)("label", {
htmlFor: a,
children: /* @__PURE__ */ (0, Z.jsx)("span", { children: n })
})]
});
}, On = ({ 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, Z.jsx)("div", {
className: "efp-wayfinding-floor",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfinding-floor__body",
children: /* @__PURE__ */ (0, Z.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, Z.jsxs)(X.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-wayfinding-floor__item", {
"is-current": u,
"is-passed": d
}),
children: /* @__PURE__ */ (0, Z.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, Z.jsx)("span", { children: n.name })
})
}), !f && p && /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.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, Z.jsx)("svg", {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: /* @__PURE__ */ (0, Z.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, Z.jsx)("svg", {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: /* @__PURE__ */ (0, Z.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);
})
})
})
});
}, kn = q((e) => /* @__PURE__ */ (0, Z.jsx)(ut, {
...e,
closeLabel: d("Close alert")
})), An = q((e) => {
let t = Ye();
return /* @__PURE__ */ (0, Z.jsx)(vt, {
...e,
renderTarget: t,
inline: z.uiState.overlayBottom,
noOptionsLabel: d("No options"),
ariaLabel: d("Search options"),
clearLabel: d("Clear")
});
}), jn = q((e) => /* @__PURE__ */ (0, Z.jsx)(zt, {
...e,
selectAllLabel: d("Select all"),
clearAllLabel: d("Clear all"),
selectedLabel: d("selected"),
showMoreLabel: d("Show more"),
showLessLabel: d("Show less")
})), Mn = q(({ store: e, rootStore: t, title: n, groups: r }) => {
let i = G(() => ({
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;
},
get allCategories() {
return r.flatMap((e) => e.items);
},
get isAllSelected() {
return this.allCategories.every((e) => this.pendingSelectedIds.includes(e.id));
},
get isPartiallySelected() {
let e = this.allCategories.filter((e) => this.pendingSelectedIds.includes(e.id)).length;
return e > 0 && e < this.allCategories.length;
},
get totalCategoriesCount() {
return this.allCategories.length;
}
}));
return /* @__PURE__ */ (0, Z.jsx)(Xe, {
open: e.state.isOpen,
title: n,
onClose: () => {
e.closeFilter();
},
footerLeft: [{
label: d("Clear all"),
onClick: () => {
e.clearPendingItems();
},
variant: "gray",
disabled: i.pendingSelectedIds.length === 0
}],
footerRight: [{
label: i.pendingSelectedIds.length > 0 ? d("Show #{{count}}# Matching Exhibitors", { count: i.totalItemsCount }) : d("Show All Exhibitors"),
onClick: () => {
e.applyFilter();
},
variant: "primary",
withBadge: !0,
disabled: !e.state.isOpen
}],
children: /* @__PURE__ */ (0, Z.jsx)(jn, {
groups: r,
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;
}
})
});
}), Nn = q((e) => /* @__PURE__ */ (0, Z.jsx)(wn, {
...e,
directionsLabel: d("Directions"),
visitedLabel: d("Visited"),
notVisitedLabel: d("Not visited"),
saveBookmarkLabel: d("Save to Bookmarks"),
removeBookmarkLabel: d("Remove from Bookmarks"),
routePlannerLabel: d("Route planner"),
shareLabel: d("Share")
}));
//#endregion
//#region src/components/Bookmarks.tsx
function Pn() {
return K(() => !W.wayfinding || !z.bookmarksStore.hasRoutableBookmarks ? null : /* @__PURE__ */ (0, Z.jsx)(Nn, {
className: "efp-sidebar-actions--bookmarks",
showDirections: !1,
showBookmark: !1,
showRoutePlanner: !0,
showShare: !1,
onClickRoutePlanner: () => z.routePlannerStore.launchFromBookmarks()
}));
}
function Fn() {
let e = (0, X.useRef)(null);
return K(() => /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(Pn, {}), /* @__PURE__ */ (0, Z.jsx)(ur, { updatedScrollableRef: e })] }));
}
var In = () => K(() => !k.hideBookmarks && !B.details && B.list.type === "bookmarks" && /* @__PURE__ */ (0, Z.jsx)(Fn, {})), Ln = (e) => {
let t = (0, X.useMemo)(() => e ? z.heatmapStore.getClicksByItem(e) : 0, [e]);
return {
clicks: t,
background: (0, X.useMemo)(() => z.heatmapStore.getColorByClicks(t), [t])
};
}, Rn = (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
};
}, zn = (e) => {
let { clicks: t, background: n } = Ln(e);
return { heatmapBar: (0, X.useMemo)(() => {
if (!B.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 = Rn(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, Z.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, Z.jsx)("i", {
className: "icon-eye",
style: {
fontSize: "var(--icon-size-xs)",
textShadow: `0 0 2px ${s}`
}
}), t]
});
}, [n, t]) };
}, Bn = (e) => !!e && /^\d+$/.test(e), Vn = {
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
}
}, Hn = (e) => e.type === "location" ? {
...e,
showLevelLabel: Bn(e.level)
} : e, Un = q(({ kind: e, itemsCount: t, date: n, time: r, additionalInfo: i, ...a }) => {
var o;
let s = Vn[e], c = s.hasDatetime && (n || r) ? {
date: n,
time: r
} : void 0, l = B.list.type === "search" ? B.list.text : void 0;
return /* @__PURE__ */ (0, Z.jsx)(kt, {
...a,
additionalInfo: i == null ? void 0 : i.map(Hn),
typeColor: s.typeColor,
iconClassName: `icon-${e}-solid`,
variant: (o = s.variant) == null ? "default" : o,
titleBadge: s.hasTitleBadge ? t : void 0,
datetime: c,
subtitleLabel: s.hasSubtitleLabel ? d("Category") : void 0,
highlight: l,
featuredLabel: d("Featured"),
hallLabel: d("Hall"),
levelLabel: d("Level")
});
}), Wn = /* @__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);
})), Gn = (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;
}, Kn = q((e) => /* @__PURE__ */ (0, Z.jsx)(Lt, {
...e,
showMoreLabel: d("Show more"),
showLessLabel: d("Show less")
})), Q = /* @__PURE__ */ e(Wn(), 1);
function qn(e, t) {
let n = /* @__PURE__ */ new Date();
return e <= n && n <= t;
}
function Jn(e) {
let t = /* @__PURE__ */ new Date();
return new Date(e) < t;
}
var Yn = q(({ events: e = [], descriptionMaxLength: t = 200, showBooths: n = !1, isSessions: r = !1, onEventClick: i }) => {
let [a, o] = (0, X.useState)({}), s = /* @__PURE__ */ new Date(), c = e.filter((e) => (e.endDate ? new Date(e.endDate) : new Date(e.startDate)) > s), l = e.filter((e) => (e.endDate ? new Date(e.endDate) : new Date(e.startDate)) <= s), u = c.reduce((e, t) => {
let [n] = t.startDate.split("T");
return e[n] ? e[n].push(t) : e[n] = [t], e;
}, {}), f = l.reduce((e, t) => {
let [n] = t.startDate.split("T");
return e[n] ? e[n].push(t) : e[n] = [t], e;
}, {});
(0, X.useEffect)(() => {
let e = {};
for (let t in u) e[t] = u[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 = z.sessionsFilterStore.state.filters.use24hFormat.value;
return (0, Q.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, Q.default)(i, "mmm"),
weekday: (0, Q.default)(i, "ddd"),
full: (0, Q.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, Z.jsx)("a", {
href: t,
className: (0, Y.default)("efp-schedule__event", n, r),
target: "_blank",
rel: "noopener noreferrer",
onClick: o,
children: e
}) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.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, Z.jsxs)("div", {
className: "efp-schedule__item",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-schedule__date",
"aria-label": `Date: ${s.full}`,
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-schedule__date-sticky",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", { children: s.day }),
/* @__PURE__ */ (0, Z.jsx)("div", { children: s.month }),
/* @__PURE__ */ (0, Z.jsx)("div", { children: s.weekday })
]
})
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-schedule__events",
role: "list",
children: o.map((o, s) => {
var c, l;
let u = o.boothId ? z.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, Z.jsx)("div", {
role: "listitem",
"data-event-id": o.id,
onClick: () => i == null ? void 0 : i(o),
style: { cursor: i ? "pointer" : "default" },
children: /* @__PURE__ */ (0, Z.jsxs)(_, {
link: "",
ended: o.isEnded || Jn(o.endDate || o.startDate),
current: qn(o.startDate, o.endDate),
event: o,
children: [
/* @__PURE__ */ (0, Z.jsxs)("span", { children: [h(o.startDate), o.endDate ? ` - ${h(o.endDate)}` : null] }),
/* @__PURE__ */ (0, Z.jsxs)("strong", { children: [o.name, /* @__PURE__ */ (0, Z.jsx)(Tr, { event: o })] }),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-schedule__event-booth-and-tracks",
children: u && n && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-schedule__event-booth",
children: /* @__PURE__ */ (0, Z.jsx)("div", { children: u.name })
})
}),
o.logoFile && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-schedule__event-logo",
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: o.logoFile,
alt: o.name,
crossOrigin: "anonymous"
})
}),
o.description && !r && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-schedule__event-desc",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
id: `event-desc-${e}-${s}`,
dangerouslySetInnerHTML: { __html: Gn(m(o.description, d)) }
}), o.description.length > t && /* @__PURE__ */ (0, Z.jsx)(Kn, {
expanded: d,
onClick: (t) => p(t, e, s),
"aria-controls": `event-desc-${e}-${s}`
})]
})
]
})
}, o.id);
})
})]
}, e);
});
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-schedule", { "is-sessions": r }),
children: [v(u), Object.keys(f).length > 0 && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-schedule__past-events-header",
children: d("Past Sessions")
}), v(f, !0)] })]
});
}), Xn = q(({ booth: e, level: t }) => /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__content -reg",
children: [
/* @__PURE__ */ (0, Z.jsx)(so, { level: t }),
/* @__PURE__ */ (0, Z.jsxs)(Ct, {
variant: "orange",
children: [/* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-hand-solid" }), d("On Hold")]
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__infos",
children: [
e.type && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info is-onhold",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-box-3d" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("{{boothTerm}} Type", { boothTerm: k.boothTerm })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: e.type
})]
})]
}),
e.size && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info is-onhold",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-size" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("Size")
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: e.size
})]
})]
}),
e.price && e.price !== "0" && !B.previewMode && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info is-onhold",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-tag" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("Price")
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: e.price
})]
})]
})
]
})
]
})), Zn = q(() => /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__content -reg",
children: /* @__PURE__ */ (0, Z.jsx)("div", { children: d("Reserved") })
}));
//#endregion
//#region src/utils/is-iframe.ts
function Qn() {
try {
return window.self !== window.top;
} catch {
return !0;
}
}
var $n = Qn();
_.log("Running in iframe: ", $n);
//#endregion
//#region src/components/Booth/BoothWithoutExhibitor.tsx
var er = q(({ 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 && !B.previewMode && n.searchParams.append("price", e.price), n;
} else return null;
}, s = o(e.buyUrl), c = o(e.reserveUrl);
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__content -reg",
children: [
/* @__PURE__ */ (0, Z.jsx)(so, { level: a }),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__infos",
children: [
e.type && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-box-3d" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("{{boothTerm}} Type", { boothTerm: k.boothTerm })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: e.type
})]
})]
}),
e.size && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-size" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("Size")
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: e.size
})]
})]
}),
!i && e.price && e.price !== "0" && !B.previewMode && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-tag" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("Price")
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: e.price
})]
})]
})
]
}),
!i && t && /* @__PURE__ */ (0, Z.jsx)("span", {
dangerouslySetInnerHTML: { __html: t },
className: "booth__reserve-instructions"
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__buy",
children: [!i && n && /* @__PURE__ */ (0, Z.jsx)(qe, {
link: s == null ? void 0 : s.href,
target: $n ? "_blank" : "_self",
children: d("Buy")
}), !i && r && /* @__PURE__ */ (0, Z.jsx)(qe, {
link: (c == null ? void 0 : c.href) || (s == null ? void 0 : s.href),
target: $n ? "_blank" : "_self",
children: d("Reserve")
})]
})
]
});
}), tr = q(() => {
var e, t;
let n = (0, X.useRef)(), r = G(() => ({
get booth() {
return B.selectedBooth;
},
get regular() {
return this.booth instanceof Pe ? this.booth : null;
},
get special() {
return this.booth instanceof ke ? this.booth : null;
},
get showReserve() {
return !B.kiosk && this.regular && (this.regular.price === "0" && !!this.regular.buyUrl || !!this.regular.reserveUrl);
},
get showBuy() {
return !B.kiosk && this.regular && this.regular.buyUrl && this.regular.price && this.regular.price !== "0";
},
get title() {
return this.booth.fullName;
},
get reserveTitle() {
return k.reserveButtonTerm || d("Reserve");
},
get descriptionCombined() {
return this.booth.description || k.reserveInstructions || "";
}
}));
(0, X.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);
z.clickExhibitor(z.exhibitorStore.exhibitors.find((e) => e.id === t));
}
function a(e) {
z.selectEventItem(e, !0);
}
function o() {
r.booth.exhibitors.length === 0 && (r.booth.bookmarkedDirectly = !r.booth.bookmarkedDirectly, r.booth.bookmarkedDirectly && I("bookmark", r.booth.name, "booth"));
}
r.title;
let s = null, c = (e = r.booth.layer) == null ? void 0 : e.description, { heatmapBar: l } = zn(r.booth), u = r.booth.exhibitors.sort((e, t) => Number(!!t.featured) - Number(!!e.featured)).map((e) => {
var t;
return /* @__PURE__ */ (0, Z.jsx)(Un, {
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: c || ((t = e.layer) == null ? void 0 : t.name)
};
})
}, e.id.toString());
});
if (k.isRebooking) s = /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: u });
else if (r.regular) {
let e = r.regular;
s = e.onHold ? /* @__PURE__ */ (0, Z.jsx)(Xn, {
booth: e,
description: "",
showBuy: !1,
showReserve: !1,
isRebooking: !1,
level: c
}) : e.reserved ? /* @__PURE__ */ (0, Z.jsx)(Zn, {}) : e.exhibitors.length === 0 ? /* @__PURE__ */ (0, Z.jsx)(er, {
booth: e,
description: r.descriptionCombined,
showBuy: !B.previewMode && r.showBuy,
showReserve: !B.previewMode && r.showReserve,
isRebooking: !1,
level: c
}) : /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: u });
} else s = /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__content -spec",
children: [
/* @__PURE__ */ (0, Z.jsx)(so, { level: c }),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__desc",
dangerouslySetInnerHTML: { __html: r.special.description }
}),
/* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: u })
]
});
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth",
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__header",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__header-name",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__header-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-booth-solid" })
}),
/* @__PURE__ */ (0, Z.jsx)("span", {
dir: "auto",
children: r.title
}),
l
]
}), /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
onClick: () => z.searchStore.handleBackAction(),
className: "booth__header-close",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-close" })
})]
}),
!k.isRebooking && W.wayfinding && !B.isGuidedToursActive && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor__directions",
style: {
paddingLeft: 15,
paddingRight: 15
},
children: /* @__PURE__ */ (0, Z.jsx)(Nn, {
showBookmark: !B.disableBookmarked && !k.hideBookmarks && !B.kiosk && r.booth.exhibitors.length === 0,
showShare: !1,
inBookmark: r.booth.exhibitors.length === 0 && r.booth.bookmarkedDirectly,
onClickBookmark: o,
onClickDirections: () => {
z.routeStore.clickRoute(null, r.booth);
}
})
}),
s,
k.isRebooking && r.regular && r.regular.exhibitors.length === 0 && /* @__PURE__ */ (0, Z.jsx)(er, {
showBuy: !1,
description: r.descriptionCombined,
showReserve: !1,
booth: r.regular,
isRebooking: k.isRebooking,
level: c
}),
!!((t = r.booth.schedule) != null && t.length) && /* @__PURE__ */ (0, Z.jsx)(Yn, {
isSessions: !0,
showBooths: !0,
events: [...r.booth.schedule].sort((e, t) => new Date(e.startDate).getTime() - new Date(t.startDate).getTime()),
onEventClick: a
})
]
});
}), nr = q(() => !B.menu && B.selectedBooth ? /* @__PURE__ */ (0, Z.jsx)(tr, {}) : null), rr = q(({ text: e }) => /* @__PURE__ */ (0, Z.jsx)(Ot, {
text: e,
highlight: B.list.type === "search" ? B.list.text : void 0
})), ir = ({ title: e, highlight: t = !0, style: n, ...r }) => /* @__PURE__ */ (0, Z.jsx)(Tn, {
...r,
title: t ? /* @__PURE__ */ (0, Z.jsx)(rr, { text: e }) : e,
style: {
marginLeft: k.isRebooking ? "5px" : void 0,
...n
}
}), ar = ({ yah: e, active: t }) => {
let { clicks: n, background: r } = Ln(e);
return K(() => /* @__PURE__ */ (0, Z.jsx)(ir, {
style: { background: B.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 = R.findLayer(e.z);
t && R.updateVisibility(t, !0), z.routeStore.selectMarker(e.id.toString(), !0);
}
}, or = q(({ item: e, index: t, current: n, compactDetails: r, onClick: i }) => {
let a = {
background: void 0,
clicks: void 0
};
B.heatmap && (e instanceof Le || e instanceof we || e instanceof je) && (a = Ln(e));
let o = B.foundInDescriptionStruct[e.id];
if (e instanceof Le) {
var s, c;
let t = "exhibitor";
return /* @__PURE__ */ (0, Z.jsx)(Un, {
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 = de[e.rebookingState]) == null ? void 0 : c.color.primary : void 0,
hideUserState: B.kiosk,
secondaryText: o
});
}
if ("rect" in e) return /* @__PURE__ */ (0, Z.jsx)(Un, {
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 Ce) return /* @__PURE__ */ (0, Z.jsx)(Un, {
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 be) {
let t = [];
return e.jobTitle && t.push({
type: "text",
text: e.jobTitle
}), /* @__PURE__ */ (0, Z.jsx)(Un, {
id: e.id.toString(),
kind: "speaker",
title: e.name,
subtitle: e.company,
image: e.photoFile,
additionalInfo: t,
bookmarked: e.bookmarked,
onClick: () => z.selectSpeaker(e, !0),
secondaryText: o
}, e.id);
}
if (e instanceof Ve) {
var l, u;
let t = e.boothId ? ze.booths.find((t) => t.id === e.boothId) : null;
return /* @__PURE__ */ (0, Z.jsx)(Un, {
id: e.id.toString(),
onClick: (e) => i("event", e),
kind: "event",
title: e.name,
date: (0, Q.default)(e.startDate, "dd mmm ddd"),
time: `${(0, Q.default)(e.startDate, "h:MM")} - ${(0, Q.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: B.kiosk,
secondaryText: o
});
}
return e instanceof je ? /* @__PURE__ */ (0, Z.jsx)(ar, {
yah: e,
active: t === B.activeListIndex
}) : null;
}), sr = () => import(
/* webpackChunkName: "react-virtuoso-entity-list" */
"./dist--cp6ZHYH.js"
).then((e) => ({ default: e.Virtuoso })).catch(() => new Promise((e) => setTimeout(() => e(sr()), 3e3))), cr = (0, X.lazy)(sr), lr = ["ipia2025"], ur = q(({ updatedScrollableRef: e, updateScroll: t }) => {
let n = (0, X.useContext)(mt), r = (0, X.useRef)(null), i = B.getListScrollItemId(B.list.type), a = lr.includes(W.EXPO);
(0, X.useEffect)(() => {
let e = B.getListScrollTop(B.list.type), t = B.getListScrollItemId(B.list.type);
(e > 0 || t) && setTimeout(() => {
if (r.current) {
if (t) {
let e = B.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);
}, [B.list.type]);
let o = B.showRouteInstantly, s = (0, X.useCallback)((t, n) => {
var i;
let a = parseInt(n, 10);
if (B.setListScrollItemId((i = B.list) == null ? void 0 : i.type, a), r.current) r.current.getState((e) => {
var t;
let n = (e == null ? void 0 : e.scrollTop) || 0;
B.setListScrollTop((t = B.list) == null ? void 0 : t.type, n);
});
else if (e.current) {
var s;
B.setListScrollTop((s = B.list) == null ? void 0 : s.type, e.current.scrollTop || 0);
}
switch (t) {
case "exhibitor":
let e = z.exhibitorStore.exhibitors.find((e) => e.id === a);
o ? z.routeStore.clickRoute(null, z.routeStore.tempToBooth || e.booths[0]) : z.clickExhibitor(e);
break;
case "booth":
let t = z.boothStore.booths.find((e) => e.id === a);
o ? z.routeStore.clickRoute(null, t) : z.clickBoothInList2(t);
break;
case "category":
z.clickCategory(z.categoryStore.categories.find((e) => e.id === a));
break;
case "event":
let n = z.eventStore.eventItems.find((e) => e.id === a);
if (n) {
let e = z.boothStore.booths.find((e) => e.id === n.boothId);
o && e ? z.routeStore.clickRoute(null, e) : z.selectEventItem(n, !0);
}
break;
case "speaker": {
let e = z.speakerStore.speakers.find((e) => e.id === a);
e && z.selectSpeaker(e, !0);
break;
}
}
}, [o, e]);
return n === null || B.setKioskModeEnabled ? null : B.listItems.length ? /* @__PURE__ */ (0, Z.jsx)("div", {
style: {
height: "100%",
cursor: "pointer",
resize: "both",
minHeight: 100
},
children: /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: /* @__PURE__ */ (0, Z.jsx)(En, {
active: !0,
isCenter: !0
}),
children: /* @__PURE__ */ (0, Z.jsx)(cr, {
ref: r,
className: "list-virtual",
style: { minHeight: B.listItems.length ? "1px" : 0 },
data: B.listItems,
itemContent: (e, t) => {
var n;
let r = t;
return r ? /* @__PURE__ */ (0, Z.jsx)(or, {
item: r,
index: e,
current: (i == null ? void 0 : i.toString()) === ((n = r.id) == null ? void 0 : n.toString()),
compactDetails: a,
onClick: s
}, r.id) : null;
},
itemsRendered: () => t && setTimeout(t),
totalListHeightChanged: () => t && t(),
customScrollParent: n,
totalCount: B.listItems.length,
overscan: 20,
increaseViewportBy: 200,
initialItemCount: Math.min(B.listScrollIndex + 30, B.listItems.length)
})
})
}) : /* @__PURE__ */ (0, Z.jsx)(() => /* @__PURE__ */ (0, Z.jsx)("div", {
className: "list-empty",
children: B.list.type === "search" ? d("Oops, nothing found") : d("No items to show")
}), {});
});
//#endregion
//#region src/components/Category.tsx
function dr() {
let e = (0, X.useRef)(), t = G(() => ({ updateOverlayContent: null })), n = (0, X.useCallback)(() => {
t.updateOverlayContent && t.updateOverlayContent();
}, [t.updateOverlayContent]);
return K(() => /* @__PURE__ */ (0, Z.jsx)(ur, {
updateScroll: n,
updatedScrollableRef: e
}));
}
var fr = () => K(() => !B.menu && B.list.type === "category" && B.details instanceof Ce && /* @__PURE__ */ (0, Z.jsx)(dr, {})), pr = () => {
let { urlFilterManager: e, uiState: t } = z, n = K(() => ({
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, X.useCallback)((t) => {
e.isInitialized && e.setCategories(t);
}, [e]), i = (0, X.useCallback)((t) => {
e.isInitialized && e.setPoiType(t);
}, [e]), a = (0, X.useCallback)(() => {
e.isInitialized && e.clearAllFilters();
}, [e]), o = (0, X.useCallback)((t) => e.validateFilters(t), [e]);
return (0, X.useEffect)(() => {
e.isInitialized || e.initialize();
}, [e]), {
currentFilters: n,
setCategories: r,
setPoiType: i,
clearAllFilters: a,
validateFilters: o,
isInitialized: e.isInitialized
};
}, mr = q(() => {
let { currentFilters: e } = pr(), t = (0, X.useMemo)(() => {
let e = z.categoryStore.categories || [], t = {}, n = [], r = [];
e.forEach((e) => {
if (!e || !e.exhibitors || e.exhibitors.length === 0) return;
let i = (e.name || "").split("/").map((e) => e.trim());
if (i.length > 1) {
let n = i[0], a = i.slice(1).join(" / ");
t[n] || (t[n] = {
groupName: n,
items: []
}, r.push(n)), t[n].items.push({
id: e.id,
name: a
});
} else n.push({
id: e.id,
name: e.name
});
});
let i = [];
return n.length > 0 && i.push({
groupName: "General",
items: n,
fullWidth: !0
}), r.forEach((e) => {
let n = t[e];
n && n.items && n.items.length > 0 && i.push(n);
}), i;
}, [z.categoryStore.categories]);
return (0, X.useEffect)(() => {
if (z.categoryFilterStore.state.isOpen && e.categories.length > 0) {
let t = e.categories.map((e) => {
let t = z.categoryStore.categories.find((t) => t.name.toLowerCase() === e.toLowerCase());
return t ? {
id: t.id,
name: t.name
} : null;
}).filter((e) => e !== null);
t.length > 0 && z.categoryFilterStore.setPendingItems(t);
}
}, [z.categoryFilterStore.state.isOpen, e.categories]), /* @__PURE__ */ (0, Z.jsx)(Mn, {
store: z.categoryFilterStore,
rootStore: z,
title: d("Categories"),
groups: t
});
}), hr = q((e) => /* @__PURE__ */ (0, Z.jsx)(Et, {
...e,
title: d("Read More"),
downloadLabel: (e) => d("Download {{fileName}}", { fileName: e })
})), gr = class extends X.Component {
constructor(...e) {
super(...e), this.state = { hasError: !1 };
}
static getDerivedStateFromError() {
return { hasError: !0 };
}
componentDidCatch(e, t) {
v(e, { contexts: { react: { componentStack: t.componentStack } } });
}
render() {
return this.state.hasError ? /* @__PURE__ */ (0, Z.jsx)("h4", {
style: { textAlign: "center" },
children: "Not available offline."
}) : this.props.children;
}
}, _r = [9148, 9151];
function vr(e) {
let t = W.EXPO === "demo", n = _r.includes(e.id) || _r.includes(e.externalId);
return t && n;
}
//#endregion
//#region src/utils/eventTime.ts
function yr(e) {
if (!e) return null;
let t = Date.parse(e);
return isNaN(t) ? null : t;
}
function br(e, t) {
let n = yr(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 xr(e, t, n) {
var r;
let i = yr(e.startDate), a = (r = yr(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 Sr(e) {
return e.isLessThan10Minutes ? `${String(e.minutes).padStart(2, "0")}:${String(e.seconds).padStart(2, "0")}` : `${e.minutes}`;
}
function Cr(e, t) {
switch (e) {
case "live": return d("LIVE");
case "upcoming": return d("UPCOMING");
case "starting-soon": return t.totalSeconds <= 0 ? d("Started") : t.isLessThan10Minutes ? d("Starts in {{time}}", { time: Sr(t) }) : d("Starts in {{count}} min", { count: t.minutes });
case "past": return d("PAST");
default: return "";
}
}
//#endregion
//#region src/components/EventBadgeContainer.tsx
function wr(e) {
let [t, n] = (0, X.useState)(() => Date.now()), r = br(e.startDate, t), i = xr(e, t, r), a = i !== "past" && i !== "none";
return (0, X.useEffect)(() => {
if (!a) return;
let e = setInterval(() => n(Date.now()), 1e3);
return () => clearInterval(e);
}, [a]), {
status: i,
statusLabel: Cr(i, r),
isUrgent: i === "starting-soon" && r.isLessThan10Minutes
};
}
var Tr = q(({ event: e, ...t }) => {
let { status: n, statusLabel: r, isUrgent: i } = wr(e);
return /* @__PURE__ */ (0, Z.jsx)(At, {
status: n,
statusLabel: r,
showFullBadge: vr(e),
fullLabel: d("EVENT IS FULL"),
isUrgent: i,
...t
});
});
//#endregion
//#region src/components/utils/getDescription.ts
function Er(e) {
if (typeof e != "string" || e.length === 0) return "";
let t = e.split(RegExp("(?=!\\*\\/\\/\\|\\|\\^\\^[a-z]{2}\\^\\^\\/\\/\\|\\|\\*!)")), n = `!*//||^^${f()}^^//||*!`, 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 Dr() {
let e = (0, X.useRef)(null), t = G(() => ({
collapsed: !0,
updateOverlayContent: null,
get event() {
return B.selectedEventItem;
},
get booth() {
var e;
return (e = this.event) != null && e.boothId ? z.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, X.useState)(!1), [i, a] = (0, X.useState)(!1), o = (0, X.useRef)(null);
(0, X.useEffect)(() => {
(() => {
if (o.current) {
let e = o.current.offsetHeight;
r(e > 300);
}
})();
}, []), J(() => t.event, () => {
e.current && e.current.parentElement && (e.current.parentElement.scrollTop = 0), t.collapsed = !0, a(!1);
});
let s = (e) => {
let t = z.sessionsFilterStore.state.filters.use24hFormat.value;
return (0, Q.default)(new Date(e), t ? "HH:MM" : "h:MMtt");
}, c = (e) => (0, Q.default)(new Date(e), "dddd, mmmm d, yyyy");
return K(() => {
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, Z.jsxs)("div", {
className: (0, Y.default)({
"efp-event": !0,
[B.responsiveClass]: !0
}),
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event__header",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event__header-name",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event__header-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-event-solid" })
}), /* @__PURE__ */ (0, Z.jsxs)("span", {
dir: "auto",
children: [l.name, /* @__PURE__ */ (0, Z.jsx)(Tr, { event: l })]
})]
}), /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
onClick: () => z.searchStore.handleBackAction(),
className: "efp-event__header-close",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-close" })
})]
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event__buttons",
children: !B.isGuidedToursActive && /* @__PURE__ */ (0, Z.jsx)(Nn, {
showBookmark: !B.disableBookmarked && !k.hideBookmarks && !B.kiosk,
showDirections: t.booth && W.wayfinding,
inBookmark: ((e = t.event) == null ? void 0 : e.bookmarked) || !1,
showShare: !0,
showVisited: !B.kiosk,
visited: ((r = t.event) == null ? void 0 : r.visited) || !1,
onClickBookmark: kr,
onClickShare: Or,
onClickDirections: () => {
t.booth && z.routeStore.clickRoute(null, t.booth);
},
onClickVisited: Ar
})
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-event__details", { "details-hidden": B.kiosk && n && !i }),
ref: o,
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-event-booths", { "is-links-disabled": B.isGuidedToursActive }),
children: [t.booth && /* @__PURE__ */ (0, Z.jsxs)("a", {
href: `?${t.booth.slug}`,
onClick: (e) => {
e.preventDefault(), z.toggleMapOverlay(), z.selectBooth(t.booth);
},
className: "efp-event-booths__booth",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-booths__booth-name",
children: t.booth.name
}), t.booth.layer && /* @__PURE__ */ (0, Z.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, Z.jsx)("div", {
className: "efp-event-booths__track",
children: e.name
}, e.id))]
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list__block",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-event-solid" })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-content",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-item",
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list__block-info",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-title",
children: c(l.startDate)
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list__block-description",
children: [
s(l.startDate),
" to",
" ",
l.endDate ? s(l.endDate) : "-"
]
})]
})
})
})]
}), l.hasSpeakers && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list__block",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-speaker-solid" })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-content",
children: l.speakers.map((e) => /* @__PURE__ */ (0, Z.jsxs)("a", {
href: `?${e.slug}`,
onClick: (t) => {
t.preventDefault(), z.selectSpeaker(e, !0);
},
className: "efp-event-list__block-item efp-event-list__block-item--clickable",
children: [e.photoFile && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-avatar",
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: e.photoFile,
alt: e.name
})
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list__block-info",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-event-list__block-title",
children: e.name
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-event-list__block-description",
children: [e.company && /* @__PURE__ */ (0, Z.jsx)("strong", { children: e.company }), e.jobTitle && /* @__PURE__ */ (0, Z.jsx)("span", { children: e.jobTitle })]
})]
})]
}, e.id))
})]
})]
}),
(l.description || l.logoFile) && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-event-description", { collapsed: t.collapsed && !t.disableCollapse && !B.kiosk }),
children: [l.logoFile && /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-event-description__logo", { "efp-event-description__logo--left": !l.description }),
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: l.logoFile,
alt: l.name,
crossOrigin: "anonymous"
})
}), l.description && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "event-description__content",
dir: "auto",
dangerouslySetInnerHTML: { __html: Gn(Er(l.description)) },
onClick: u
})]
})
]
}),
B.kiosk && n && /* @__PURE__ */ (0, Z.jsx)(Kn, {
className: (0, Y.default)("efp-event__show-more", { "is-sticky": i }),
expanded: i,
onClick: () => a((e) => !e)
})
]
});
});
}
function Or() {
let e = B.selectedEventItem;
e && (V(L.ClickCustomButton, e.name), z.toggleModal("share"));
}
function kr() {
let e = B.selectedEventItem;
e && (e.bookmarked = !e.bookmarked, B.onBookmarkClick && B.onBookmarkClick({
name: e.name,
bookmarked: e.bookmarked,
externalId: e.externalId
}), V(L.ClickBookmark, e.name), e.bookmarked && I("bookmark", e.name, "session"));
}
function Ar() {
let e = B.selectedEventItem;
e && (e.visited = !e.visited, B.onVisitedClick && B.onVisitedClick({
name: e.name,
visited: e.visited,
externalId: e.externalId
}), V(L.ClickCustomButton, e.name));
}
var jr = q(() => B.selectedEventItem ? /* @__PURE__ */ (0, Z.jsx)(Dr, {}) : null);
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
function Mr(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 Nr(e, t) {
e.prototype = Object.create(t.prototype), e.prototype.constructor = e, a(e, t);
}
//#endregion
//#region ../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/hasClass.js
function Pr(e, t) {
return e.classList ? !!t && e.classList.contains(t) : (" " + (e.className.baseVal || e.className) + " ").indexOf(" " + t + " ") !== -1;
}
//#endregion
//#region ../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/addClass.js
function Fr(e, t) {
e.classList ? e.classList.add(t) : Pr(e, t) || (typeof e.className == "string" ? e.className = e.className + " " + t : e.setAttribute("class", (e.className && e.className.baseVal || "") + " " + t));
}
//#endregion
//#region ../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/removeClass.js
function Ir(e, t) {
return e.replace(RegExp("(^|\\s)" + t + "(?:\\s|$)", "g"), "$1").replace(/\s+/g, " ").replace(/^\s*|\s*$/g, "");
}
function Lr(e, t) {
e.classList ? e.classList.remove(t) : typeof e.className == "string" ? e.className = Ir(e.className, t) : e.setAttribute("class", Ir(e.className && e.className.baseVal || "", 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 Rr = { disabled: !1 }, zr = X.createContext(null), Br = function(e) {
return e.scrollTop;
}, Vr = "unmounted", Hr = "exited", Ur = "entering", Wr = "entered", Gr = "exiting", $ = /*#__PURE__*/ function(e) {
Nr(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 = Hr, r.appearStatus = Ur) : o = Wr : o = t.unmountOnExit || t.mountOnEnter ? Vr : Hr, r.state = { status: o }, r.nextCallback = null, r;
}
t.getDerivedStateFromProps = function(e, t) {
return e.in && t.status === "unmounted" ? { status: Hr } : 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 = Ur) : (n === "entering" || n === "entered") && (t = Gr);
}
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 : dt.default.findDOMNode(this);
n && Br(n);
}
this.performEnter(e);
} else this.performExit();
else this.props.unmountOnExit && this.state.status === "exited" && this.setState({ status: Vr });
}, n.performEnter = function(e) {
var t = this, n = this.props.enter, r = this.context ? this.context.isMounting : e, i = this.props.nodeRef ? [r] : [dt.default.findDOMNode(this), r], a = i[0], o = i[1], s = this.getTimeouts(), c = r ? s.appear : s.enter;
if (!e && !n || Rr.disabled) {
this.safeSetState({ status: Wr }, function() {
t.props.onEntered(a);
});
return;
}
this.props.onEnter(a, o), this.safeSetState({ status: Ur }, function() {
t.props.onEntering(a, o), t.onTransitionEnd(c, function() {
t.safeSetState({ status: Wr }, 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 : dt.default.findDOMNode(this);
if (!t || Rr.disabled) {
this.safeSetState({ status: Hr }, function() {
e.props.onExited(r);
});
return;
}
this.props.onExit(r), this.safeSetState({ status: Gr }, function() {
e.props.onExiting(r), e.onTransitionEnd(n.exit, function() {
e.safeSetState({ status: Hr }, 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 : dt.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 = Mr(t, [
"children",
"in",
"mountOnEnter",
"unmountOnExit",
"appear",
"enter",
"exit",
"timeout",
"addEndListener",
"onEnter",
"onEntering",
"onEntered",
"onExit",
"onExiting",
"onExited",
"nodeRef"
]);
return /*#__PURE__*/ X.createElement(zr.Provider, { value: null }, typeof n == "function" ? n(e, r) : X.cloneElement(X.Children.only(n), r));
}, t;
}(X.Component);
$.contextType = zr, $.propTypes = {};
function Kr() {}
$.defaultProps = {
in: !1,
mountOnEnter: !1,
unmountOnExit: !1,
appear: !1,
enter: !0,
exit: !0,
onEnter: Kr,
onEntering: Kr,
onEntered: Kr,
onExit: Kr,
onExiting: Kr,
onExited: Kr
}, $.UNMOUNTED = Vr, $.EXITED = Hr, $.ENTERING = Ur, $.ENTERED = Wr, $.EXITING = Gr;
//#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/CSSTransition.js
var qr = function(e, t) {
return e && t && t.split(" ").forEach(function(t) {
return Fr(e, t);
});
}, Jr = function(e, t) {
return e && t && t.split(" ").forEach(function(t) {
return Lr(e, t);
});
}, Yr = /*#__PURE__*/ function(e) {
Nr(t, e);
function t() {
var t, n = [...arguments];
return t = e.call.apply(e, [this].concat(n)) || this, t.appliedClasses = {
appear: {},
enter: {},
exit: {}
}, t.onEnter = function(e, n) {
var r = t.resolveArguments(e, n), i = r[0], a = r[1];
t.removeClasses(i, "exit"), t.addClass(i, a ? "appear" : "enter", "base"), t.props.onEnter && t.props.onEnter(e, n);
}, t.onEntering = function(e, n) {
var r = t.resolveArguments(e, n), i = r[0], a = r[1] ? "appear" : "enter";
t.addClass(i, a, "active"), t.props.onEntering && t.props.onEntering(e, n);
}, t.onEntered = function(e, n) {
var r = t.resolveArguments(e, n), i = r[0], a = r[1] ? "appear" : "enter";
t.removeClasses(i, a), t.addClass(i, a, "done"), t.props.onEntered && t.props.onEntered(e, n);
}, t.onExit = function(e) {
var n = t.resolveArguments(e)[0];
t.removeClasses(n, "appear"), t.removeClasses(n, "enter"), t.addClass(n, "exit", "base"), t.props.onExit && t.props.onExit(e);
}, t.onExiting = function(e) {
var n = t.resolveArguments(e)[0];
t.addClass(n, "exit", "active"), t.props.onExiting && t.props.onExiting(e);
}, t.onExited = function(e) {
var n = t.resolveArguments(e)[0];
t.removeClasses(n, "exit"), t.addClass(n, "exit", "done"), t.props.onExited && t.props.onExited(e);
}, t.resolveArguments = function(e, n) {
return t.props.nodeRef ? [t.props.nodeRef.current, e] : [e, n];
}, t.getClassNames = function(e) {
var n = t.props.classNames, r = typeof n == "string", i = r && n ? n + "-" : "", a = r ? "" + i + e : n[e];
return {
baseClassName: a,
activeClassName: r ? a + "-active" : n[e + "Active"],
doneClassName: r ? a + "-done" : n[e + "Done"]
};
}, t;
}
var n = t.prototype;
return n.addClass = function(e, t, n) {
var r = this.getClassNames(t)[n + "ClassName"], i = this.getClassNames("enter").doneClassName;
t === "appear" && n === "done" && i && (r += " " + i), n === "active" && e && Br(e), r && (this.appliedClasses[t][n] = r, qr(e, r));
}, n.removeClasses = function(e, t) {
var n = this.appliedClasses[t], r = n.base, i = n.active, a = n.done;
this.appliedClasses[t] = {}, r && Jr(e, r), i && Jr(e, i), a && Jr(e, a);
}, n.render = function() {
var e = this.props;
e.classNames;
var t = Mr(e, ["classNames"]);
return /*#__PURE__*/ X.createElement($, Re({}, t, {
onEnter: this.onEnter,
onEntered: this.onEntered,
onEntering: this.onEntering,
onExit: this.onExit,
onExiting: this.onExiting,
onExited: this.onExited
}));
}, t;
}(X.Component);
Yr.defaultProps = { classNames: "" }, Yr.propTypes = {};
//#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/utils/ChildMapping.js
function Xr(e, t) {
var n = function(e) {
return t && (0, X.isValidElement)(e) ? t(e) : e;
}, r = Object.create(null);
return e && X.Children.map(e, function(e) {
return e;
}).forEach(function(e) {
r[e.key] = n(e);
}), r;
}
function Zr(e, t) {
e = e || {}, t = t || {};
function n(n) {
return n in t ? t[n] : e[n];
}
var r = Object.create(null), i = [];
for (var a in e) a in t ? i.length && (r[a] = i, i = []) : i.push(a);
var o, s = {};
for (var c in t) {
if (r[c]) for (o = 0; o < r[c].length; o++) {
var l = r[c][o];
s[r[c][o]] = n(l);
}
s[c] = n(c);
}
for (o = 0; o < i.length; o++) s[i[o]] = n(i[o]);
return s;
}
function Qr(e, t, n) {
return n[t] == null ? e.props[t] : n[t];
}
function $r(e, t) {
return Xr(e.children, function(n) {
return (0, X.cloneElement)(n, {
onExited: t.bind(null, n),
in: !0,
appear: Qr(n, "appear", e),
enter: Qr(n, "enter", e),
exit: Qr(n, "exit", e)
});
});
}
function ei(e, t, n) {
var r = Xr(e.children), i = Zr(t, r);
return Object.keys(i).forEach(function(a) {
var o = i[a];
if ((0, X.isValidElement)(o)) {
var s = a in t, c = a in r, l = t[a], u = (0, X.isValidElement)(l) && !l.props.in;
c && (!s || u) ? i[a] = (0, X.cloneElement)(o, {
onExited: n.bind(null, o),
in: !0,
exit: Qr(o, "exit", e),
enter: Qr(o, "enter", e)
}) : !c && s && !u ? i[a] = (0, X.cloneElement)(o, { in: !1 }) : c && s && (0, X.isValidElement)(l) && (i[a] = (0, X.cloneElement)(o, {
onExited: n.bind(null, o),
in: l.props.in,
exit: Qr(o, "exit", e),
enter: Qr(o, "enter", e)
}));
}
}), i;
}
//#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/TransitionGroup.js
var ti = Object.values || function(e) {
return Object.keys(e).map(function(t) {
return e[t];
});
}, ni = {
component: "div",
childFactory: function(e) {
return e;
}
}, ri = /*#__PURE__*/ function(e) {
Nr(t, e);
function t(t, n) {
var i = e.call(this, t, n) || this;
return i.state = {
contextValue: { isMounting: !0 },
handleExited: i.handleExited.bind(r(i)),
firstRender: !0
}, i;
}
var n = t.prototype;
return n.componentDidMount = function() {
this.mounted = !0, this.setState({ contextValue: { isMounting: !1 } });
}, n.componentWillUnmount = function() {
this.mounted = !1;
}, t.getDerivedStateFromProps = function(e, t) {
var n = t.children, r = t.handleExited;
return {
children: t.firstRender ? $r(e, r) : ei(e, n, r),
firstRender: !1
};
}, n.handleExited = function(e, t) {
var n = Xr(this.props.children);
e.key in n || (e.props.onExited && e.props.onExited(t), this.mounted && this.setState(function(t) {
var n = Re({}, t.children);
return delete n[e.key], { children: n };
}));
}, n.render = function() {
var e = this.props, t = e.component, n = e.childFactory, r = Mr(e, ["component", "childFactory"]), i = this.state.contextValue, a = ti(this.state.children).map(n);
return delete r.appear, delete r.enter, delete r.exit, t === null ? /*#__PURE__*/ X.createElement(zr.Provider, { value: i }, a) : /*#__PURE__*/ X.createElement(zr.Provider, { value: i }, /*#__PURE__*/ X.createElement(t, r, a));
}, t;
}(X.Component);
ri.propTypes = {}, ri.defaultProps = ni;
//#endregion
//#region src/components/RebookingNotesContainer.tsx
var ii = q((e) => /* @__PURE__ */ (0, Z.jsx)(hn, {
noteLabel: d("Note"),
saveButtonLabel: d("Save note"),
saveButtonAriaLabel: d("Save rebooking note"),
...e
})), ai = {
[Se.Unasked]: "Unasked",
[Se.Accepted]: "Accepted",
[Se.Rejected]: "Rejected",
[Se.Undecided]: "Undecided"
}, oi = () => Object.entries(de).map(([e, t]) => ({
value: e,
label: d(ai[Number(e)]),
iconName: t.iconName,
color: t.color.primary
})), si = q((e) => {
let { showTitle: t, ...n } = e;
return /* @__PURE__ */ (0, Z.jsx)(gn, {
options: oi(),
title: t ? d("Choose Rebooking offer") : void 0,
...n
});
}), ci = X.lazy(() => import(
/* webpackChunkName: "gallery" */
"./GalleryContainer-CIasK5mL.js"
).then((e) => e.t)), li = q(function() {
let e = (0, X.useRef)(null), t = G(() => ({
collapsed: !0,
updateOverlayContent: null,
get exhibitor() {
return B.selectedExhibitor;
},
get websiteTrimmed() {
return this.exhibitor.website ? this.exhibitor.website.replace(/^(http(s?):\/\/)([^/]+)(\/)?$/i, "$3") : "";
},
get anySocial() {
return !B.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 || B.overlayPosition === "left" && (this.exhibitor.description || "").length < 800;
},
get showEdit() {
return !!(k.sendLoginLinkUrl && this.sendLinkEmail);
},
get sendLinkEmail() {
return this.exhibitor.privateEmail || this.exhibitor.email;
}
})), { heatmapBar: n } = zn(t.exhibitor), [r, i] = (0, X.useState)(!1), [a, o] = (0, X.useState)(!1), s = (0, X.useRef)(null);
(0, X.useEffect)(() => ((() => {
if (s.current) {
let e = s.current.offsetHeight;
i(e > 300);
}
})(), () => {
z.exhibitorStore.rebookingStateChangeRequested = !1;
}), []), J(() => t.exhibitor, () => {
e.current && (e.current.parentElement.scrollTop = 0), t.collapsed = !0;
});
function c(e, t) {
if (u(t), B.kiosk) return e.preventDefault();
}
function l(e, n, r) {
V(L.ClickCustomButton, t.exhibitor.name);
let i = {
externalId: t.exhibitor.externalId,
buttonNumber: e,
buttonUrl: n,
preventDefault: r.preventDefault.bind(r)
};
B.onExhibitorCustomButtonClick && B.onExhibitorCustomButtonClick(i);
}
function u(e) {
V(e, t.exhibitor.name);
}
let f = (0, X.useRef)(), p = {
entering: { opacity: 1 },
entered: { opacity: 1 },
exiting: { opacity: 0 },
exited: { opacity: 0 }
};
return K(() => {
var e, i, _, b, x;
let S = t.exhibitor, C = k.isRebooking ? (() => {
let e = /* @__PURE__ */ new Set();
for (let t of S.booths) t instanceof Pe && t.size && e.add(t.size);
let t = Array.from(e);
return /* @__PURE__ */ (0, Z.jsxs)("div", { children: [
t.length > 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__infos",
style: {
padding: "0 15px",
marginBottom: "1rem"
},
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-size" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "booth__info-body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-title",
children: d("Size")
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "booth__info-val",
children: t.join(", ")
})]
})]
})
}),
/* @__PURE__ */ (0, Z.jsx)(si, {
value: S.rebookingState.toString(),
onChange: (e) => z.exhibitorStore.setRebookingState(S, parseInt(e), S.rebookingNote)
}),
/* @__PURE__ */ (0, Z.jsx)(ii, {
value: S.rebookingNote || "",
onSave: (e) => z.exhibitorStore.setRebookingState(S, S.rebookingState, e)
}, S.id),
/* @__PURE__ */ (0, Z.jsx)($, {
in: z.exhibitorStore.rebookingStateChangeRequested,
nodeRef: f,
timeout: 150,
appear: !0,
enter: !0,
exit: !0,
mountOnEnter: !0,
unmountOnExit: !0,
children: (e) => /* @__PURE__ */ (0, Z.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, Z.jsx)(kn, {
title: z.exhibitorStore.rebookingStateSaved ? d("Changes saved") : d("Oops! Something went wrong"),
variant: z.exhibitorStore.rebookingStateSaved ? "success" : "error",
inline: !0,
closable: !0,
onClose: () => {
z.exhibitorStore.rebookingStateChangeRequested = !1;
}
})
})
})
] });
})() : null, w = (0, Y.default)({
exhibitor: !0,
"is-featured": S.featured,
bookmarked: S.bookmarked,
[B.responsiveClass]: !0
}), T = () => {
t.collapsed = !1, setTimeout(t.updateOverlayContent);
};
function E(e, t, n) {
return !e || !t || B.kiosk || B.previewMode ? null : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-custom-button",
children: /* @__PURE__ */ (0, Z.jsx)(qe, {
link: t,
inline: !0,
onClick: (e) => {
l(n, t, e);
},
target: "_blank",
children: e
})
}, n);
}
let D = ({ exhibitor: e }) => {
let t = [
E(e.customButtonTitle, e.customButtonUrl, 1),
E(e.customButton2Title, e.customButton2Url, 2),
E(e.customButton3Title, e.customButton3Url, 3)
].filter(Boolean);
return t.length === 0 ? null : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-custom-buttons",
children: t
});
};
function O() {
return !k.hideShareButton && !B.kiosk && window.location.host.endsWith(".expofp.com") && W.EXPO !== "globalaltsmiami2024";
}
function A() {
t.updateOverlayContent();
}
let j = () => {
z.routeStore.clickRoute(null, z.routeStore.tempToBooth || S.booths[0]), z.routeStore.currentRouteExhibitor = S;
}, ee = (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, Z.jsxs)("div", {
className: w,
"aria-label": d("Details"),
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor__header",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor__header-name",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor__header-icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-exhibitor-solid" })
}),
/* @__PURE__ */ (0, Z.jsx)("span", {
dir: "auto",
children: S.name
}),
n
]
}), /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
onClick: () => z.searchStore.handleBackAction(),
className: "exhibitor__header-close",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-close" })
})]
}), C || /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor__buttons",
children: !B.isGuidedToursActive && /* @__PURE__ */ (0, Z.jsx)(Nn, {
showBookmark: !B.disableBookmarked && !k.hideBookmarks && !B.kiosk,
showDirections: S.booths.length > 0 && W.wayfinding,
inBookmark: S.bookmarked,
showShare: O(),
showVisited: !B.kiosk,
visited: S.visited,
onClickBookmark: v,
onClickShare: m,
onClickDirections: j,
onClickVisited: y
})
}),
S.leadingImageUrl ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor__leading-image-container exhibitor-slider",
children: S.leadingImageLinkUrl ? /* @__PURE__ */ (0, Z.jsx)("a", {
href: S.leadingImageLinkUrl,
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: S.leadingImageUrl,
className: "exhibitor__leading-image",
alt: "",
crossOrigin: "anonymous"
})
}) : /* @__PURE__ */ (0, Z.jsx)(gr, { children: /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(ci, {
className: B.responsiveClass,
onOpenGallery: () => z.openGallery(),
onCloseGallery: () => z.closeGallery(),
onImageLoadHeightUpdate: A,
leading: !0,
images: [S.leadingImageUrl]
})
}) })
}) : null,
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("exhibitor__details", { "details-hidden": B.kiosk && r && !a }),
ref: s,
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("exhibitor-categories", { "is-links-disabled": B.isGuidedToursActive }),
children: [
S.featured && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-featured",
children: d("Featured")
}),
S.booths.map((e) => {
let t = M(e);
return /* @__PURE__ */ (0, Z.jsxs)("a", {
href: `?${e.slug}`,
onClick: (t) => {
t.preventDefault(), z.toggleMapOverlay(), z.selectBooth(e);
},
className: "exhibitor-categories__booth",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-categories__booth-name",
children: e.name
}), t && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-categories__booth-level",
children: [ee(t) ? d("Level") + " " : "", t]
})]
}, e.id);
}),
S.categories.map((e) => /* @__PURE__ */ (0, Z.jsx)("a", {
href: "?" + encodeURIComponent(e.slug),
onClick: (t) => {
t.preventDefault(), h(e);
},
className: e.sponsorship ? "exhibitor-categories__sponsorship" : "exhibitor-categories__cat",
children: e.name
}, e.id))
]
}),
S.description || (e = S.logo) != null && e.url ? /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("exhibitor-description", { collapsed: t.collapsed && !t.disableCollapse }),
children: [(i = S.logo) != null && i.url ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("exhibitor-description__logo", { "exhibitor-description__logo--left": !S.description }),
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: S.logo.url,
alt: S.name,
crossOrigin: "anonymous"
})
}) : null, S.description ? /* @__PURE__ */ (0, Z.jsx)("span", {
className: "exhibitor-description__content",
dir: "auto",
dangerouslySetInnerHTML: { __html: Er(S.description) },
onClick: T
}) : null]
}) : null,
(!!((_ = S.schedule) != null && _.length) || !!((b = S.booths[0]) != null && b.schedule.length)) && /* @__PURE__ */ (0, Z.jsx)(Yn, { 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()) }),
!B.kiosk && S.videoUrl && navigator.onLine && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-video",
children: /* @__PURE__ */ (0, Z.jsx)("iframe", {
src: S.videoUrl,
"data-allow": "encrypted-media; autoplay; fullscreen",
title: d("Exhibitor Video"),
allowFullScreen: !0
})
}),
S.gallery && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-slider",
onClick: () => u(L.ViewGallery),
children: /* @__PURE__ */ (0, Z.jsx)(gr, { children: /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(ci, {
className: B.responsiveClass,
onOpenGallery: () => z.openGallery(),
onCloseGallery: () => z.closeGallery(),
onImageLoadHeightUpdate: A,
images: S.gallery
})
}) })
}),
!B.kiosk && S.marketMaterials && /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)("div", { className: "exhibitor-sep" }), /* @__PURE__ */ (0, Z.jsx)(hr, { list: S.marketMaterials })] }),
t.showEdit && /* @__PURE__ */ (0, Z.jsx)("div", { className: "exhibitor-sep" }),
!B.kiosk && t.showEdit && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-edit",
children: /* @__PURE__ */ (0, Z.jsx)(qe, {
size: "sm",
variant: "secondary",
onClick: g,
children: d("Edit")
})
}),
t.anyAddress && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta",
children: [
!!(S.address || S.address2) && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-marker-pin-solid" })
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta__content",
children: [
S.address,
!!S.address2 && /* @__PURE__ */ (0, Z.jsx)("div", { children: S.address2 }),
!!(S.city || S.state || S.zip) && /* @__PURE__ */ (0, Z.jsxs)("div", { children: [
S.city,
!!(S.city && S.state) && /* @__PURE__ */ (0, Z.jsx)("span", { children: " " }),
S.state,
!!(S.state && S.zip) && /* @__PURE__ */ (0, Z.jsx)("span", { children: "\xA0" }),
" ",
S.zip
] }),
!!S.country && /* @__PURE__ */ (0, Z.jsx)("div", { children: S.country })
]
})]
}),
!!S.phone1 && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-phone-solid" })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__content",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
dir: "ltr",
href: "tel:" + S.phone1,
className: "exhibitor-meta__link",
onClick: (e) => c(e, L.ClickPhone),
children: S.phone1
})
})]
}),
!!S.website && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-globe-solid" })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__content",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
href: S.website,
target: "_blank",
rel: "noopener noreferrer",
className: "exhibitor-meta__link",
onClick: (e) => c(e, L.ClickWebsite),
children: t.websiteTrimmed
})
})]
}),
!!S.email && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta__item",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-mail-at-solid" })
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "exhibitor-meta__content",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
href: "mailto:" + S.email,
target: "_blank",
rel: "noopener noreferrer",
className: "exhibitor-meta__link",
onClick: (e) => c(e, L.ClickEmail),
children: S.email
})
})]
}),
t.anySocial && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "exhibitor-meta__socials",
children: [
/* @__PURE__ */ (0, Z.jsx)("a", {
href: S.facebook,
className: "exhibitor-meta__social",
onClick: () => u(L.ClickFacebook),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-facebook" })
}),
/* @__PURE__ */ (0, Z.jsx)("a", {
href: S.instagram,
className: "exhibitor-meta__social",
onClick: () => u(L.ClickInstagaram),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-instagram" })
}),
/* @__PURE__ */ (0, Z.jsx)("a", {
href: S.linkedin,
className: "exhibitor-meta__social",
onClick: () => u(L.ClickLinkedin),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-linkedin" })
}),
/* @__PURE__ */ (0, Z.jsx)("a", {
href: S.twitter,
className: "exhibitor-meta__social",
onClick: () => u(L.ClickTwitter),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-twitter-x" })
}),
/* @__PURE__ */ (0, Z.jsx)("a", {
href: S.xing,
className: "exhibitor-meta__social",
onClick: () => u(L.ClickXing),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-xing" })
}),
/* @__PURE__ */ (0, Z.jsx)("a", {
href: S.youtube,
className: "exhibitor-meta__social",
onClick: () => u(L.ClickYoutube),
target: "_blank",
rel: "noopener noreferrer",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-youtube" })
})
]
})
]
}),
/* @__PURE__ */ (0, Z.jsx)(D, { exhibitor: S })
]
}),
B.kiosk && r && /* @__PURE__ */ (0, Z.jsx)(Kn, {
className: (0, Y.default)("exhibitor__show-more", { "is-sticky": a }),
expanded: a,
onClick: () => o((e) => !e)
})
] })]
});
});
function m() {
let e = window.navigator, t = {
title: B.selectedExhibitor.name,
url: window.location.href
};
ae && e != null && e.canShare && e.canShare(t) ? e.share(t) : z.toggleModal("share");
}
function h(e) {
z.clickCategory(e);
}
function g(e) {
if (B.kiosk) return e.preventDefault();
e.target.blur();
let n = t.sendLinkEmail;
if (!window.confirm(d("Send login instructions to {{email}} to edit profile?", { email: n })) || W.EXPO === "expo") return;
let r = new XMLHttpRequest();
r.open("POST", k.sendLoginLinkUrl), r.setRequestHeader("Content-Type", "application/json");
function i() {
alert(d("Error sending login instructions"));
}
r.onload = function(e) {
if (this.status !== 200) {
i();
return;
}
alert(d("A link to edit profile was sent to {{email}}", { email: n }));
}, r.onerror = function(e) {
_.error("Error", e), i();
}, r.send(JSON.stringify({ id: t.exhibitor.id }));
}
function v() {
t.exhibitor.bookmarked = !t.exhibitor.bookmarked, B.onBookmarkClick && B.onBookmarkClick({
name: t.exhibitor.name,
bookmarked: t.exhibitor.bookmarked,
externalId: t.exhibitor.externalId
}), t.exhibitor.bookmarked && I("bookmark", t.exhibitor.id, "exhibitor");
}
function y() {
t.exhibitor.visited = !t.exhibitor.visited, B.onVisitedClick && B.onVisitedClick({
name: t.exhibitor.name,
visited: t.exhibitor.visited,
externalId: t.exhibitor.externalId
});
}
}), ui = () => K(() => /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: !B.menu && B.selectedExhibitor ? /* @__PURE__ */ (0, Z.jsx)(li, {}) : null }));
//#endregion
//#region src/components/Filter.tsx
function di() {
let e = (0, X.useRef)(), t = G(() => ({
updateOverlayContent: null,
get list() {
return B.list;
}
})), n = (0, X.useCallback)(() => {
t.updateOverlayContent && t.updateOverlayContent();
}, [t.updateOverlayContent]);
return K(() => /* @__PURE__ */ (0, Z.jsx)(ur, {
updateScroll: n,
updatedScrollableRef: e
}));
}
var fi = () => K(() => /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: !B.details && !B.menu && B.list.type === "filter" && /* @__PURE__ */ (0, Z.jsx)(di, {}) }));
//#endregion
//#region src/components/heatmap-legend-ticks.ts
function pi(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: Ie(s, e, t, n)
};
});
}
//#endregion
//#region src/components/HeatmapLegendContainer.tsx
var mi = q((e) => {
let { min: t, max: n } = Fe.minAndMaxClicks, r = pi(t, n, W.heatmapColors);
return /* @__PURE__ */ (0, Z.jsx)(jt, {
...e,
ticks: r,
ariaLabel: d("Heatmap intensity scale")
});
}), hi = q(({ item: e }) => /* @__PURE__ */ (0, Z.jsx)(mn, {
name: "language",
label: e.name,
value: e.id,
checked: e.id === f(),
className: "language-row",
ariaLabel: d("Change language to {{language}}", { language: e.name }),
onChange: () => u(e.id)
})), gi = () => import(
/* webpackChunkName: "react-virtuoso-list" */
"./dist--cp6ZHYH.js"
).then((e) => ({ default: e.Virtuoso })).catch(() => new Promise((e) => setTimeout(() => e(gi()), 3e3))), _i = (0, X.lazy)(gi);
function vi({ updatedScrollableRef: e, updateScroll: t }) {
let [n, r] = (0, X.useState)(null), i = (0, X.useRef)(null);
(0, X.useEffect)(() => {
r(e == null ? null : e);
}, [e]), (0, X.useEffect)(() => {
let e = B.getListScrollTop(B.list.type);
if (e > 0) {
let t = setTimeout(() => {
i.current && i.current.scrollTo({
top: e,
behavior: "auto"
});
}, 100);
return () => clearTimeout(t);
}
}, [B.list.type]);
let a = (0, X.useCallback)(() => {
if (i.current) i.current.getState((e) => {
var t;
let n = (e == null ? void 0 : e.scrollTop) || 0;
B.setListScrollTop((t = B.list) == null ? void 0 : t.type, n);
});
else if (n != null && n.current) {
var e;
B.setListScrollTop((e = B.list) == null ? void 0 : e.type, n.current.scrollTop || 0);
}
}, [n]);
(0, X.useEffect)(() => () => {
a();
}, []);
let o = ({ index: e }) => {
let t = B.listItems[e];
return t.entity.type === "language" ? /* @__PURE__ */ (0, Z.jsx)(hi, { item: t }, t.id) : (console.error("Invalid item type"), null);
}, s = () => {
t && setTimeout(t);
}, c = () => {
t && t();
};
return K(() => {
let e = B.listItems.findIndex((e) => e.id === f());
return /* @__PURE__ */ (0, Z.jsx)("div", {
style: {
height: "100%",
cursor: "pointer",
resize: "both",
minHeight: 100
},
children: n && /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: /* @__PURE__ */ (0, Z.jsx)(En, {
active: !0,
isCenter: !0
}),
children: /* @__PURE__ */ (0, Z.jsx)(_i, {
ref: i,
className: "list-virtual",
style: { minHeight: B.listItems.length ? "1px" : 0 },
data: B.listItems,
itemContent: (e) => o({ index: e }),
itemsRendered: s,
totalListHeightChanged: c,
customScrollParent: n.current,
totalCount: B.listItems.length,
overscan: 20,
increaseViewportBy: 200,
initialTopMostItemIndex: e === -1 ? 0 : e,
components: { EmptyPlaceholder: () => /* @__PURE__ */ (0, Z.jsx)("div", {
className: "list-empty",
children: "No items to show"
}) }
})
})
});
});
}
//#endregion
//#region src/components/Language.tsx
var yi = q(() => {
let e = (0, X.useRef)();
return !k.hideLanguage && !B.details && B.list.type === "language" && /* @__PURE__ */ (0, Z.jsx)(vi, { updatedScrollableRef: e });
}), bi = q(() => {
var e;
return (e = B.globalErrorMessages) != null && e.length ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "global-error-message",
children: B.globalErrorMessages.map((e, t) => /* @__PURE__ */ (0, Z.jsx)(kn, {
variant: "error",
closable: !0,
title: e.title,
onClose: () => B.popGlobalErrorMessage(),
children: e.body
}, t))
}) : null;
}), xi = q(function() {
if (!De.enabled || B.kiosk) return null;
let e = () => {
let e = window;
typeof e.Intercom == "function" && e.Intercom("show");
}, t = De.unreadCount;
return /* @__PURE__ */ (0, Z.jsxs)("button", {
className: "efp-intercom-launcher",
type: "button",
"aria-label": d("Open chat"),
onClick: e,
children: [/* @__PURE__ */ (0, Z.jsx)("svg", {
width: "24",
height: "24",
viewBox: "0 0 28 32",
fill: "currentColor",
"aria-hidden": "true",
focusable: "false",
children: /* @__PURE__ */ (0, Z.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, Z.jsx)("span", {
className: "efp-intercom-launcher__badge",
"aria-label": d("Unread messages"),
children: t > 99 ? "99+" : t
})]
});
}), Si = ["ice-gaming2026"];
function Ci(e) {
return Si.includes(W.EXPO) ? {
layout: "compact-list",
useShortNames: e
} : {
layout: e ? "compact-list" : "dropdown",
useShortNames: e
};
}
var wi = q(() => {
let e = z.layerStore.floors;
if (!(z.layerStore.mode === Ge.Radio || z.layerStore.mode === Ge.CheckBox) || e.length === 0) return null;
let { layout: t, useShortNames: n } = Ci(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, Z.jsx)(Pt, {
floors: r,
layout: t,
onSelect: (t) => {
let n = e.find((e) => e.layer.description === t);
!n || n.disabled || z.layerStore.selectFloor(n.layer);
},
floorSelectionLabel: d("Floor selection"),
currentFloorLabel: d("Current Floor"),
floorLabel: d("Floor")
});
}), Ti = document.referrer && (document.referrer.indexOf("app.expofp.com") > -1 || document.referrer.indexOf("app-show.expofp.com") > -1), Ei = (0, X.lazy)(() => import("./lib-CW4ROgrI.js").then((t) => /* @__PURE__ */ e(t.default, 1)).then((e) => {
var t;
return { default: (t = e.QRCode) == null ? e.default : t };
})), Di = /* @__PURE__ */ e(D(), 1), Oi, ki = ["info-techlive2025", "metstrade-superyacht2023"].includes(W.EXPO), Ai = W.backgroundColor !== "none" && (0, Di.default)(W.backgroundColor).isDark() || (pe == null || (Oi = pe.properties) == null || (Oi = Oi.style) == null ? void 0 : Oi.includes("dark"));
function ji() {
var e, t, n;
let r = G(() => {
let e = (e, t, n, r) => ({
width: r,
opacity: +!!B.wsStarted
}), t = ki || B.rtl ? "left" : "right";
return {
get style() {
let n = U((B.overlayPosition, 1));
if (B.overlayPosition === "left") {
let r = B.mapVisibleBottom + n;
return e("bottom", t, r, "5rem");
} else return B.mapVisibleTop, z.maplibreStore.showMaplibre && U(.5), e("bottom", t, 20, "4.5rem");
},
get warningStyle() {
let n = U(B.overlayPosition === "left" ? 1 : .5);
if (B.overlayPosition === "left") {
let r = B.mapVisibleBottom + 2 * n;
return e("bottom", t, r, "3rem");
} else {
let r = B.mapVisibleTop + 2 * n;
return z.maplibreStore.showMaplibre && (r = U(.5)), e("top", t, r, "2rem");
}
}
};
}), i = Math.round(((e = ue().__fpStat) == null ? void 0 : e.dataSize) / 1024 / 1024 || 0), a = Ti && i >= 10, o = Ti && !pe && k.allow3dView && !B.kiosk && !B.heatmap, s = B.kiosk && !((t = B.selectedRoute) != null && t.to) && !((n = B.selectedRoute) != null && n.from), l = (0, Y.default)("efp-qr", { "is-right": ki || B.rtl });
return K(() => /* @__PURE__ */ (0, Z.jsxs)("div", { children: [
/* @__PURE__ */ (0, Z.jsx)("a", {
href: ve(Te.SUBDOMAIN_LOGO),
target: "_blank",
rel: "noopener noreferrer",
className: (0, Y.default)("logo-overlay", { invert: Ai }),
style: r.style,
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: `${c}expofp-overlay.png`,
alt: d("Made with ExpoFP"),
crossOrigin: "anonymous"
})
}),
a && /* @__PURE__ */ (0, Z.jsx)(kn, {
title: d("This floor plan is too big"),
variant: "warning",
showIcon: !0,
position: "bottom-right",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
rel: "noopener noreferrer",
target: "_blank",
href: "https://expofp.com/pages/huge-fp-warning",
children: d("Read how to optimize it")
})
}),
o && /* @__PURE__ */ (0, Z.jsx)(kn, {
title: d("3D view is hidden"),
variant: "warning",
showIcon: !0,
position: "bottom-right",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
rel: "noopener noreferrer",
target: "_blank",
href: "https://expofp.com/pages/expofp-mapbox-integration",
children: d("Setup mapbox first")
})
}),
s && /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)(l, { "efp-semi-transparent": B.setKioskModeEnabled }),
children: [/* @__PURE__ */ (0, Z.jsx)("div", { children: d("View Map on Phone") }), /* @__PURE__ */ (0, Z.jsx)(Ei, {
value: B.viewMapOnPhoneQRCodeUrl,
size: 100
})]
})
})
] }));
}
//#endregion
//#region src/utils/camera-map-settings.ts
function Mi(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 Ni(e) {
let t = {}, n = Pi(e.centerxy);
n && ([t.x, t.y] = n);
let r = Pi(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 Pi(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 Fi() {
let e = Ke(), t = j(), n = (0, X.useRef)({
api: e,
state: t
}), [r] = (0, X.useState)(() => oe(n));
return (0, X.useLayoutEffect)(() => {
n.current = {
api: e,
state: t
};
}), (0, X.useEffect)(() => (C(r), () => C(void 0)), [r]), w(() => O()), me(() => et()), Qe(() => B.zoomBy, (e) => {
e && (n.current.api.zoomBy(e), B.zoomBy = null);
}, []), Qe(() => B.rollReset, (e) => {
e && (n.current.api.reset({ roll: !0 }), B.rollReset = !1);
}, []), Qe(() => B.centerMap, (e) => {
e && (n.current.api.reset({ zoom: !!(B.list.type === "search" && B.list.text) }), B.centerMap = !1);
}, []), Qe(() => B.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;
Ii(n.current.api, e, (i = B.moveToRectPaddingPercent) == null ? void 0 : i);
}
B.moveToRect = null, B.moveToRectPaddingPercent = null;
}, []), Qe(() => B.moveToBooths, (e) => {
if (!e) return;
_.log("watched moveToBooths", e);
let t = e.filter((e) => e.rect).map((e) => e.rect);
t.length && Ii(n.current.api, S.fromUnion(...t)), B.moveToBooths = null;
}, []), Qe(() => B.mapSettings, ({ center: e, centerxy: t, bearing: r, pitchdegrees: i, z: a }) => {
try {
a && z.fp.activateFloor({ name: a });
let o = Bi(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: !B.animatePitch });
} catch (e) {
_.error("Error in mapSettings reaction", e);
}
}, []), null;
}
function Ii(e, t, n) {
e.zoomTo(Ri(t), {
padding: n == null ? zi(t, ce) : n,
maxZoom: Number.isFinite(W.maxZoom) ? void 0 : 10,
within: Li()
});
}
function Li() {
let e = B.canvasVisibleRectPx;
return B.shouldShiftMapRect ? S.fromMinMax({
x: e.min.x + B.overlayWidthPx,
y: e.min.y
}, e.max) : e;
}
function Ri(e) {
var t, n, r;
let i = B.kioskData;
if (!i) return e;
let a = (t = B.selectedRoute) == null ? void 0 : t.from, o = a instanceof we ? (n = a.layer) == null ? void 0 : n.name : a == null ? void 0 : a.layer;
return !Ee() || o === ((r = z.routeStore.currentRouteLayer) == null ? void 0 : r.name) ? S.fromUnion(e, new S(i.x, i.y, 1, 1)) : e;
}
function zi(e, t) {
return !e || !t ? 0 : (e.area / t.area > .1 ? 15 : 25) / 100;
}
function Bi(e, t) {
if (e) {
var n, r;
let t = Pi(e);
if (!t) return;
let i = pe == null || (n = pe.properties) == null ? void 0 : n.config;
if (!i) throw Error("Map center given in GPS, but the plan has no GPS config");
return (r = P({
lat: t[0],
lng: t[1]
}, i)) == null ? void 0 : r;
}
let i = Pi(t);
if (i) return {
x: i[0],
y: i[1]
};
}
//#endregion
//#region src/components/Map/Map.tsx
var Vi = "#ebebeb", Hi = "routes-api.expofp.com", Ui = 1e4;
function Wi(e) {
return Number.isFinite(W.maxZoom) ? W.maxZoom : e.viewbox.size.width > Ui ? 100 : 35;
}
function Gi() {
let { zoomtime: e, pitchtime: t } = B.mapSettings;
return {
zoomTime: e === void 0 ? void 0 : e / 1e3,
pitchTime: t === void 0 ? void 0 : t / 1e3
};
}
function Ki() {
var e;
let t = (0, X.useRef)(null), n = (0, X.useMemo)(() => o({
moving: !1,
prevLevel: z.layerStore.layers.find((e) => !e.frozen && e.visible)
}), []), [r, i] = (0, X.useState)(void 0), a = (0, X.useRef)(null), s = (0, X.useRef)(null);
function c() {
R.layers.forEach((e) => {
e.configured = !1, e.children = [], e.loaded = !1;
});
}
(0, X.useEffect)(() => {
let e = !1;
return c(), R.layersLoaded = !1, rt().then(({ layers: t, cleanup: n }) => {
if (e) {
n();
return;
}
s.current = n;
let r = N(t, ce, W.backgroundColor === "none" ? Vi : W.backgroundColor);
i(r), He(r), a.current = ct((e) => {
ot(r, e) && fe(r.rootLayer);
}), a.current.setTarget(B.dimmed, { immediate: !0 }), R.layersLoaded = !0, z.fp.onFpConfigured && z.fp.onFpConfigured(), le();
}), () => {
var t, n;
e = !0, (t = s.current) == null || t.call(s), s.current = null, (n = a.current) == null || n.stop(), a.current = null, He(void 0), c();
};
}, []), J(() => B.dimmed, (e) => {
var t;
(t = a.current) == null || t.setTarget(e);
}), (0, X.useEffect)(() => {
z.fp.getCenterCoordinates = () => tt(t.current);
}, []), (0, X.useEffect)(() => {
if (!r) return;
let e = E({
scene: r,
store: z,
canvas: t
}), n = at({ scene: r });
return () => {
e(), n();
};
}, [r]), J(() => z.routeStore.currentRouteLayer, () => {
let e = z.routeStore.currentRouteLayer;
if (!r || !e || n.prevLevel === e) return;
let t = r.rootLayer.children.filter((e) => z.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 && fe(...a);
}, void 0, [r]), J(() => z.layerStore.visible, (e) => {
if (!r) return;
let t = e.filter((e) => Be(e.name)), n = r.rootLayer.children, i = [];
for (let e of n) {
if (!Be(e.name)) continue;
let n = !t.find((t) => t.name === e.name);
e.hidden !== n && (e.hidden = n, i.push(e));
}
i.length && fe(...i);
}, void 0, [r]);
let l = K(() => R.layersLoaded), u = K(() => !!B.buildRoute);
nt({
enabled: l && u,
scene: r
});
let d = (e = k.busRoutes) != null && e;
return it({
permission: l && d,
scene: r,
dataJsonUrl: `https://${Hi}/v1/routes?expo=${W.EXPO}`,
websocketUrl: `wss://${Hi}/locations?expo=${W.EXPO}`
}), K(() => r ? /* @__PURE__ */ (0, Z.jsxs)(ie, {
debug: g,
style: {
width: "100%",
height: "100%"
},
ref: t,
className: (0, Y.default)({ map: !0 }),
scene: r,
maxZoom: Wi(r),
maxPitch: B.maxPitch,
bounds: R.bounds,
controls: {
roll: B.rollEnabled,
pitch: B.pitchEnabled
},
smoothTime: Gi(),
visibleRect: B.canvasVisibleRectPx,
onPointerMissed: A,
children: [
/* @__PURE__ */ (0, Z.jsx)(Fi, {}),
/* @__PURE__ */ (0, Z.jsx)(st, {}),
g && /* @__PURE__ */ (0, Z.jsx)(lt, { canvas: t })
]
}) : null);
}
//#endregion
//#region src/components/MapControlsContainer.tsx
function qi(e) {
var t, n;
(t = (n = window).__resett) == null || t.call(n), e();
}
var Ji = q(() => {
let e = G(() => ({
get className() {
return (0, Y.default)({
controls: !0,
container: !0,
"-ready": !0,
[B.responsiveClass]: !0
});
},
get style() {
return {
[B.rtl ? "left" : "right"]: B.overlayPosition === "left" ? B.overlayCollapsed ? U(.9) : (B.kiosk ? 10 : 0) + U(.7) + "px" : "10px",
bottom: B.kiosk ? U(4) : U(9.6)
};
},
get layers() {
return R.layers.filter((e) => e.mode !== Ue.AlwaysHidden && e.mode !== Ue.AlwaysVisible).map((e) => ({
id: e.name,
name: e.description
})).concat([]).reverse();
},
get visible() {
return R.layers.filter((e) => e.visible).map((e) => e.name);
}
}));
return /* @__PURE__ */ (0, Z.jsx)(Ft, {
className: e.className,
style: e.style,
title: d("Map controls"),
findLocationLabel: d("Find your location"),
zoomInLabel: d("Zoom In"),
zoomOutLabel: d("Zoom Out"),
viewModeLabel: d("View switch"),
fitToScreenLabel: d("Fit to screen"),
layersLabel: d("Layers"),
onFindLocation: () => z.routeStore.findLocation(),
onZoomIn: () => qi(() => B.zoomIn()),
onZoomOut: () => qi(() => B.zoomOut()),
onFitToScreen: () => qi(() => B.fitBounds()),
onViewModeSwitch: () => z.maplibreStore.activateMaplibre(),
showModeSwitch: z.maplibreStore.maplibreEnabled && !z.maplibreStore.hideModeSwitchButton,
isMap3d: z.maplibreStore.isMap3d,
showFindLocation: z.routeStore.canFindLocation && !B.setKioskModeEnabled,
layersActiveItems: e.visible,
layersList: R.mode === Ge.CheckBox ? e.layers : void 0,
onChangeLayers: (e) => {
let t = R.layers.find((t) => t.name === e);
t && R.updateVisibility(e, !t.visible);
}
});
});
//#endregion
//#region src/components/MobileToggleButtonContainer.tsx
function Yi() {
let e = (0, X.useCallback)(() => {
B.isOverlayOpen && B.overlaySize === "full" ? B.desiredOverlaySize = "small" : H.openOverlayWithoutInputFocus();
}, []);
return K(() => {
if (!B.shouldShowMobileToggle) return null;
let t = B.mobileToggleIsListMode;
return /* @__PURE__ */ (0, Z.jsx)(It, {
mode: t ? "list" : "map",
label: d(t ? "List" : "Map"),
ariaLabel: d(t ? "Show list" : "Show map"),
withBanner: B.isBannerVisible,
onClick: e
});
});
}
//#endregion
//#region src/components/Menu.tsx
var Xi = X.lazy(() => import(
/* webpackChunkName: "viewer-menu-panel" */
"./ViewerMenuPanel-C0hwkh7I.js"
)), Zi = k.logo;
_.log("Logo url: ", Zi), window.setTimeout(function() {
let e = new Image();
e.onload = () => {
_.log("Logo image loaded");
}, e.crossOrigin = "anonymous", e.src = Zi;
}, 1500);
function Qi({ consent: e, isGDPR: t }) {
let n = G(() => ({
logoVisibility: "visible",
shown: !1,
shownTimeout: void 0,
modalOpen: !1,
selectedCategoryIds: (B.selectedCategoryFilters || []).map((e) => Number(e.id)),
pendingSelectedIds: (B.selectedCategoryFilters || []).map((e) => Number(e.id))
}));
s(() => {
B.menu ? (n.shownTimeout = window.setTimeout(() => n.shown = !0, 1), B.list.type === "sessions" && z.searchStore.selectSearch()) : (n.shown = !1, n.shownTimeout && window.clearTimeout(n.shownTimeout));
});
function r(e) {
if (B.kiosk) return e.preventDefault();
}
function i(e) {
e.preventDefault(), c(), z.searchStore.selectSearch();
}
function a(e) {
var t, n;
e.preventDefault(), (t = z.fp) == null || (n = t.onLeaveEvent) == null || n.call(t);
}
function o(e) {
e.preventDefault(), z.clickLanguage();
}
return K(() => {
var s, c, u;
if (!B.menu) return null;
let p = z.boothStore.booths.filter((e) => e.bookmarked).map((e) => e.name), m = (s = ue().__fpSettings) != null && s.fpVer ? `https://d2.expofp.com/export/v2/${W.EXPO}/pdf` : `https://api.expofp.com/service/convert/${W.EXPO}/pdf`, h = B.viewerMode && typeof ((c = z.fp) == null ? void 0 : c.onLeaveEvent) == "function";
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: `menu ${n.shown ? "shown" : ""}`,
children: [$n ? /* @__PURE__ */ (0, Z.jsx)("div", { className: "menu__cover -empty" }) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "menu__cover",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
href: k.homeUrl,
target: "_blank",
rel: "noopener noreferrer",
onClick: r,
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: Zi,
onError: () => n.logoVisibility = "hidden",
style: { visibility: n.logoVisibility },
alt: "",
crossOrigin: "anonymous"
})
})
}), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "menu__content",
children: [
B.viewerMode && /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(Xi, {})
}),
!B.viewerMode && /* @__PURE__ */ (0, Z.jsx)("a", {
href: "/#",
onClick: i,
className: "menu__item",
children: d("Search")
}),
!k.hideEventHomeLink && !B.kiosk && !$n && !!k.homeUrl && /* @__PURE__ */ (0, Z.jsxs)("a", {
href: k.homeUrl,
target: "_blank",
className: "menu__item",
rel: "noopener noreferrer",
children: [d("Event Home").replace(/ /g, "\xA0"), /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-link-external" })]
}),
!k.hideRegisterToAttendLink && !B.kiosk && !$n && !!k.registerUrl && /* @__PURE__ */ (0, Z.jsxs)("a", {
href: k.registerUrl,
target: "_blank",
className: "menu__item",
rel: "noopener noreferrer",
children: [d("Register to Attend").replace(/ /g, "\xA0"), /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-link-external" })]
}),
!B.hideLanguage && !k.hideLanguage && !k.hideLanguageLink && /* @__PURE__ */ (0, Z.jsxs)("a", {
href: "?language",
onClick: o,
className: "menu__item -language",
children: [/* @__PURE__ */ (0, Z.jsxs)("span", { children: [d("Language"), " "] }), /* @__PURE__ */ (0, Z.jsxs)("span", {
className: "menu__icons",
children: [/* @__PURE__ */ (0, Z.jsx)(Ct, {
variant: "gray",
size: "md",
noMargins: !0,
rounded: !0,
children: (u = l().find((e) => e.id === f())) == null ? void 0 : u.name
}), /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-chevron-right" })]
})]
}),
!k.hideDownloadPdfLink && !B.kiosk && /* @__PURE__ */ (0, Z.jsx)("a", {
className: "menu__item -pdf",
target: "_blank",
rel: "noopener noreferrer",
href: `${m}/?exhibitors=true&bookmarks=${p.join(",")}&layers=${(z.layerStore.layers.length >= z.layerStore.visible.length ? z.layerStore.visible.map((e) => e.name).join(",") : "").replace(/&/g, "%26")}`,
children: d("Download PDF")
}),
e === "ask" && t && /* @__PURE__ */ (0, Z.jsx)("a", {
href: "/#",
className: "menu__item -cookie-consent",
onClick: (e) => {
e.preventDefault(), B.hideCookieConsent = !1;
},
children: d("Review Cookie Consent")
}),
h && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "menu__item-leave",
children: /* @__PURE__ */ (0, Z.jsx)("a", {
href: "/#",
className: "menu__item -leave-event menu__leave-link",
onClick: a,
children: d("Select another event")
})
})
]
})]
});
});
function c() {
B.menu = !1;
}
}
var $i = ({ isGDPR: e, consent: t }) => K(() => /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: B.menu ? /* @__PURE__ */ (0, Z.jsx)(Qi, {
isGDPR: e,
consent: t
}) : null }));
//#endregion
//#region src/components/OverlayParticles.tsx
function ea() {
let [t, r] = (0, X.useState)(!1), [i, a] = (0, X.useState)(), [o, s] = (0, X.useState)(!1), c = (0, X.useRef)();
return $e(() => {
var e;
return s(B.overlayPosition === "left" && ((e = n.getEngine()) == null ? void 0 : e.name) !== "EdgeHTML");
}), (0, X.useEffect)(() => {
o && !i && import(
/* webpackChunkName: "particlesjs" */
"./particles.min-Dccc8fgr.js"
).then((t) => /* @__PURE__ */ e(t.default, 1)).then((e) => {
a(e.default);
});
}, [o, i]), (0, X.useEffect)(() => {
if (i && o) {
let e = i.init({
selector: c.current,
maxParticles: 50,
speed: .4,
sizeVariations: 4,
color: "#0C5AB8",
connectParticles: !0
});
return r(!0), () => {
e.destroy();
};
}
}, [i, o]), o ? /* @__PURE__ */ (0, Z.jsx)("div", { children: /* @__PURE__ */ (0, Z.jsx)("canvas", {
className: `overlay-particles__canvas ${t ? "-visible" : ""}`,
ref: c
}) }) : null;
}
var ta = q(ea), na = ({ 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 ? d("Floor {{name}}", { name: e.name }) : t
};
});
return /* @__PURE__ */ (0, Z.jsx)(On, {
...n,
floors: r,
floorSelectionLabel: t == null ? d("Floor selection") : t
});
}, ra = q(() => {
let e = z.routePlannerStore, { from: t, stops: n, distance: r, travelTime: i } = e.subtitleParts;
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-planner__header",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__title",
children: e.title
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-planner__details",
children: [
t && /* @__PURE__ */ (0, Z.jsx)("span", { children: t }),
/* @__PURE__ */ (0, Z.jsx)("span", { children: n }),
r && /* @__PURE__ */ (0, Z.jsx)("span", { children: r }),
i && /* @__PURE__ */ (0, Z.jsx)("span", { children: i })
]
}),
e.excludedVisitedCount > 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__alert",
children: /* @__PURE__ */ (0, Z.jsx)(kn, {
variant: "warning",
inline: !0,
showIcon: !1,
size: "sm",
children: d("{{count}} visited bookmarks excluded", { count: e.excludedVisitedCount })
})
})
]
});
}), ia = () => /* @__PURE__ */ (0, Z.jsxs)("svg", {
width: "22",
height: "22",
viewBox: "0 0 22 22",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Z.jsx)("rect", {
width: "22",
height: "22",
rx: "11",
fill: "#2382F4"
}), /* @__PURE__ */ (0, Z.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"
})]
}), aa = q(({ startPoint: e, onSelectStartPoint: t }) => {
let n = z.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, Z.jsxs)("div", {
className: "efp-planner__stop is-start",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__stop-timeline",
children: /* @__PURE__ */ (0, Z.jsx)(ia, {})
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__stop-content",
children: /* @__PURE__ */ (0, Z.jsx)(An, {
placeholder: d("Select starting point"),
options: i,
value: o,
onChange: a
})
})]
});
}), oa = {
exhibitor: "icon-exhibitor-solid",
event: "icon-event-solid",
booth: "icon-booth-solid"
}, sa = (e) => /^\d+$/.test(e), ca = ({ item: e, isLast: t }) => {
var n, r, i;
let { type: a, entity: o, booth: s } = e, c = oa[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 ? sa(d) ? `Level ${d}` : d : null
].filter(Boolean).join(", "), m = () => {
a === "exhibitor" ? z.selectExhibitor(o) : s && z.selectBooth(s), z.showMap();
};
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-planner__stop", { "is-last": t }),
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__stop-timeline",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__stop-icon",
style: { "--dot-color": `var(--color-${a})` },
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: c })
})
}), /* @__PURE__ */ (0, Z.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, Z.jsx)("strong", { children: l }), f && /* @__PURE__ */ (0, Z.jsxs)(Ct, {
variant: "location",
size: "xs",
inline: !0,
noMargins: !0,
children: [u && /* @__PURE__ */ (0, Z.jsx)("span", { children: u }), d && /* @__PURE__ */ (0, Z.jsxs)("span", { children: [sa(d) && /* @__PURE__ */ (0, Z.jsx)(Z.Fragment, { children: "Level\xA0" }), d] })]
})]
})]
});
};
//#endregion
//#region src/components/RoutePlanner/RoutePlanner.tsx
function la() {
return K(() => {
let e = z.routePlannerStore, t = e.items;
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-planner",
children: [
t.length > 0 && /* @__PURE__ */ (0, Z.jsx)(ra, {}),
t.length > 0 && e.routeFloors.length > 1 && e.currentRouteFloor && /* @__PURE__ */ (0, Z.jsx)(na, {
floors: e.routeFloors,
value: e.currentRouteFloor,
onSelect: (t) => e.setRouteFloor(t)
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-planner__stops",
children: [t.length > 0 && /* @__PURE__ */ (0, Z.jsx)(aa, {
startPoint: e.startPoint,
onSelectStartPoint: (t) => e.setStartPoint(t)
}), t.map((e, n) => /* @__PURE__ */ (0, Z.jsx)(ca, {
item: e,
isLast: n === t.length - 1
}, `${e.type}-${e.entity.id}-${n}`))]
}),
t.length === 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-planner__empty",
children: d("Add stops to build a route")
})
]
});
});
}
function ua() {
return K(() => {
let e = B.details && !(B.details instanceof T);
return B.list.type === "route-planner" && !B.menu && !e ? /* @__PURE__ */ (0, Z.jsx)(la, {}) : null;
});
}
//#endregion
//#region src/components/ScrollableRowContainer.tsx
var da = q((e) => /* @__PURE__ */ (0, Z.jsx)(yn, {
...e,
isRtl: B.rtl,
leftAriaLabel: d("Scroll left"),
rightAriaLabel: d("Scroll right")
})), fa = (0, X.memo)(({ id: e, label: t, icon: n, enabled: r, active: i, tooltip: a, badge: o, variant: s = "default", showResetButton: c = !1, interfaceId: l }) => {
let u = (0, X.useCallback)(() => {
r && z.shortcutRegistry.handleShortcutClick(l, e);
}, [
r,
l,
e
]), f = (0, X.useCallback)((t) => {
t.stopPropagation(), r && i && z.shortcutRegistry.handleShortcutReset(l, e);
}, [
r,
i,
l,
e
]);
return /* @__PURE__ */ (0, Z.jsxs)("button", {
className: (0, Y.default)("shortcut-button", `shortcut-button--${s}`, {
"is-active": i,
"is-disabled": !r
}),
onClick: u,
disabled: !r,
title: a || t,
type: "button",
"aria-label": a || t,
children: [
c && i && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "shortcut-reset-button",
onClick: f,
title: d("Reset filter"),
"aria-label": d("Reset filter"),
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-close-solid" })
}),
n && /* @__PURE__ */ (0, Z.jsx)("i", { className: n }),
t && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "shortcut-button__label",
children: t
}),
o && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "shortcut-button__badge",
children: o
})
]
});
});
fa.displayName = "ShortcutButton";
//#endregion
//#region src/components/Shortcuts/ShortcutsFiltersButton.tsx
var pa = (0, X.memo)(q(({ interfaceId: e, className: t }) => {
let { shortcutRegistry: n } = z, r = n.getShortcuts(e).filter((e) => e.active).length, i = 0;
e === "sessions" ? i = z.sessionsFilterStore.activeFiltersCount : e === "speakers" && (i = z.speakerFilterStore.activeFiltersCount);
let a = Math.max(r, i);
return /* @__PURE__ */ (0, Z.jsx)("button", {
className: (0, Y.default)("shortcuts-filters-button", t, { "is-active": a > 0 }),
onClick: () => {
e === "sessions" ? z.sessionsFilterStore.openFilterWithSections([
"tracks",
"venues",
"date",
"time",
"sort",
"settings"
]) : e === "speakers" && z.speakerFilterStore.openFilterWithSections(["companies", "jobTitles"]);
},
type: "button",
"aria-label": d("Open filters"),
title: d("Open filters"),
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-filter-horizontal-solid" })
});
}));
pa.displayName = "ShortcutsFiltersButton";
//#endregion
//#region src/components/Shortcuts/ShortcutsToolbar.tsx
var ma = (0, X.memo)(q(({ interfaceId: e, showFiltersButton: t = !0, className: n }) => {
let { shortcutRegistry: r } = z, i = r.getShortcuts(e);
return !r.shouldShowShortcuts(e) || i.length === 0 ? null : /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("shortcuts-toolbar", n),
children: /* @__PURE__ */ (0, Z.jsxs)(da, {
ariaLabel: d("Shortcuts"),
className: "shortcuts-toolbar__scrollable",
scrollAmount: 150,
showArrowsOnMobile: !1,
arrowPosition: "inside",
children: [t && /* @__PURE__ */ (0, Z.jsx)(pa, { interfaceId: e }), i.map((t) => /* @__PURE__ */ (0, Z.jsx)(fa, {
...t,
interfaceId: e
}, t.id))]
})
});
}));
ma.displayName = "ShortcutsToolbar";
//#endregion
//#region src/components/Search.tsx
function ha() {
let e = (0, X.useRef)(), t = G(() => ({
updateOverlayContent: null,
get text() {
return B.list.type === "search" || B.list.type === "exhibitors" ? B.list.text : "";
},
get showClose() {
return !!this.text;
},
get backMode() {
return this.text ? "back" : "menu";
}
}));
(0, X.useEffect)(() => {
z.fuzzySearchEngineStore.loadEngine();
}, []);
let n = (0, X.useCallback)(() => {
t.updateOverlayContent && t.updateOverlayContent();
}, [t.updateOverlayContent]);
return K(() => /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(ma, {
interfaceId: "search",
showFiltersButton: !1
}), /* @__PURE__ */ (0, Z.jsx)(ur, {
updateScroll: n,
updatedScrollableRef: e
})] }));
}
var ga = () => K(() => /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [!B.details && !B.menu && B.list.type === "exhibitors" ? /* @__PURE__ */ (0, Z.jsx)(ha, {}) : null, !B.details && !B.menu && B.list.type === "search" && (z.fp.alwaysShowSidebar || B.heatmap || B.searchFocused || B.list.text.length > 0 || B.searchClearMode) ? /* @__PURE__ */ (0, Z.jsx)(ha, {}) : null] })), _a = q(({ showFilters: e = !0 }) => {
let t = z.eventStore.eventItems, { filters: { date: { value: n }, timeOfDay: { value: r }, sortOrder: { value: i }, showBookmarksOnly: { value: a }, showLiveOnly: { value: o }, selectedTracks: { value: s }, selectedVenues: { value: c } } } = z.sessionsFilterStore.state, l = (0, X.useMemo)(() => {
let e = /* @__PURE__ */ new Date();
e.setHours(0, 0, 0, 0);
let i = new Date(e);
i.setDate(e.getDate() + 1);
let l = t;
if (n !== "all" && (l = l.filter((t) => {
let r = new Date(t.startDate);
if (r.setHours(0, 0, 0, 0), n === "today") return r.getTime() === e.getTime();
if (n === "tomorrow") return r.getTime() === i.getTime();
if (n === "past") {
let e = /* @__PURE__ */ new Date();
return new Date(t.endDate) < e;
}
return !0;
})), r !== "all" && n === "today" && (l = l.filter((e) => {
let t = new Date(e.startDate).getHours();
switch (r) {
case "morning": return t >= 6 && t < 12;
case "midday": return t >= 12 && t < 18;
case "afternoon": return t >= 18 && t <= 23;
default: return !0;
}
})), B.selectedTrack && (l = l.filter((e) => e.tracks.some((e) => e.id === B.selectedTrack.id))), a && (l = l.filter((e) => e.bookmarked)), o) {
let e = /* @__PURE__ */ new Date();
l = l.filter((t) => {
let n = new Date(t.startDate), r = new Date(t.endDate);
return n <= e && e <= r;
});
}
s.length > 0 && (l = l.filter((e) => e.tracks.some((e) => s.includes(e.id)))), c.length > 0 && (l = l.filter((e) => e.boothId && c.includes(e.boothId)));
let u = z.searchStore.searchText;
return u && (l = new y(l, {
keys: ["name"],
threshold: .3,
ignoreLocation: !0,
includeScore: !0
}).search(u).map((e) => e.item)), l;
}, [
t,
z.searchStore.searchText,
n,
r,
B.selectedTrack,
a,
o,
s,
c,
z.sessionsFilterStore.state
]), u = (0, X.useMemo)(() => [...l].sort((e, t) => {
let n = new Date(e.startDate).getTime(), r = new Date(t.startDate).getTime();
return i === "asc" ? r - n : n - r;
}), [l, i]);
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-content",
children: [e && /* @__PURE__ */ (0, Z.jsx)(ma, { interfaceId: "sessions" }), u.length > 0 ? /* @__PURE__ */ (0, Z.jsx)(Yn, {
events: u,
showBooths: !0,
isSessions: !0,
onEventClick: (e) => {
z.selectEventItem(e, !0);
}
}) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-empty",
children: z.sessionsFilterStore.activeFiltersCount > 0 || z.searchStore.searchText || B.selectedTrack ? d(a ? "No bookmarked events found. Try adjusting your filters." : "No events found. Try adjusting your filters.") : d("No events found")
})]
});
}), va = q((e) => B.list.type !== "sessions" || B.details ? null : /* @__PURE__ */ (0, Z.jsx)(_a, { ...e })), ya = q(() => {
(0, X.useRef)(null);
let e = (0, X.useRef)(null), [t, n] = (0, X.useState)(!1), r = z.speakerStore.selectedSpeaker;
if (!r) return /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker-empty",
children: d("Speaker not found")
});
let i = z.speakerStore.getEventsBySpeaker(r.id), a = (0, X.useMemo)(() => [...i].sort((e, t) => new Date(e.startDate).getTime() - new Date(t.startDate).getTime()), [i]);
(0, X.useEffect)(() => {
(() => {
if (e.current) {
let t = e.current.offsetHeight;
n(t > 300);
}
})();
}, []);
let o = (e) => {
z.selectEventItem(e, !0);
}, s = () => {
r.bookmarked = !r.bookmarked, V(L.ClickBookmark, r.name), r.bookmarked && I("bookmark", r.name, "speaker");
}, c = () => {
V(L.ClickCustomButton, r.name), z.toggleModal("share");
}, l = () => {
V(L.ClickCustomButton, r.name);
}, u = (0, Y.default)({
"efp-speaker": !0,
[B.responsiveClass]: !0
});
return K(() => /* @__PURE__ */ (0, Z.jsxs)("div", {
className: u,
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-speaker__header",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-speaker-solid" })
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-speaker__content",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker__name",
children: r.name
}),
r.company && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker__company",
children: r.company
}),
r.jobTitle && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker__job-title",
children: r.jobTitle
})
]
}),
r.photoFile && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker__photo",
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: r.photoFile,
alt: r.name
})
})
]
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speaker__buttons",
children: !B.isGuidedToursActive && /* @__PURE__ */ (0, Z.jsx)(Nn, {
showBookmark: !B.disableBookmarked && !k.hideBookmarks && !B.kiosk,
showDirections: !1,
inBookmark: r.bookmarked || !1,
showShare: !0,
showVisited: !1,
visited: !1,
onClickBookmark: s,
onClickShare: c,
onClickVisited: l
})
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("efp-speaker__details", { "details-hidden": B.kiosk && t }),
ref: e,
children: a.length > 0 && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-speaker-events",
children: [/* @__PURE__ */ (0, Z.jsx)("h3", {
className: "efp-speaker-events__title",
children: d("Sessions")
}), /* @__PURE__ */ (0, Z.jsx)(Yn, {
events: a,
showBooths: !0,
isSessions: !1,
onEventClick: o
})]
})
})
]
}));
}), ba = q(() => {
var e;
let t = z.uiState.details;
return !t || (t == null || (e = t.entity) == null ? void 0 : e.type) !== "speaker" ? null : /* @__PURE__ */ (0, Z.jsx)(ya, {});
}), xa = q(({ showFilters: e = !0 }) => {
let t = (0, X.useRef)(), n = z.speakerStore.speakers, { filters: { selectedCompanies: { value: r }, selectedJobTitles: { value: i } } } = z.speakerFilterStore.state, a = (0, X.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 = z.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,
z.searchStore.searchText,
r,
i,
z.speakerFilterStore.state
]);
return K(() => /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-speakers-content",
children: [e && /* @__PURE__ */ (0, Z.jsx)(ma, { interfaceId: "speakers" }), a.length > 0 ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speakers-list",
ref: t,
children: a.map((e) => {
let t = z.speakerStore.getEventsBySpeaker(e.id), n = [];
return e.jobTitle && n.push({
type: "text",
text: e.jobTitle
}), /* @__PURE__ */ (0, Z.jsx)(Un, {
id: e.id.toString(),
kind: "speaker",
title: e.name,
subtitle: e.company,
image: e.photoFile,
itemsCount: t.length,
additionalInfo: n,
bookmarked: e.bookmarked,
onClick: () => z.selectSpeaker(e, !0)
}, e.id);
})
}) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "list-empty",
children: z.speakerFilterStore.activeFiltersCount > 0 || z.searchStore.searchText ? d("No speakers found. Try adjusting your filters.") : d("No speakers found")
})]
}));
}), Sa = q((e) => B.list.type !== "speakers" || B.details ? null : /* @__PURE__ */ (0, Z.jsx)(xa, { ...e })), Ca = () => {
let e = (0, X.useRef)(null);
return K(() => {
let t = z.toursStore.currentTour;
if (!t) return null;
let n = t.points && t.points.length > 0;
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-tour-points", { hidden: B.kiosk }),
children: [B.tourDescription && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfinding-description",
children: B.tourDescription
}), n && /* @__PURE__ */ (0, Z.jsx)(ur, { updatedScrollableRef: e })]
});
});
}, wa = () => K(() => !B.menu && !B.details && z.toursStore.currentTour && /* @__PURE__ */ (0, Z.jsx)(Ca, {})), Ta = q(() => {
let e = z.toursStore.tourItems, t = z.toursStore.hasTours, n = z.toursStore.currentExpo, r = z.toursStore.toursLoadError, i = (0, X.useMemo)(() => {
let t = e, n = z.searchStore.searchText;
return n && (t = new y(t, {
keys: ["name"],
threshold: .3,
ignoreLocation: !0,
includeScore: !0
}).search(n).map((e) => e.item)), t;
}, [e, z.searchStore.searchText]), a = (e, t, n) => {
z.toursStore.launchTour(e, t, n);
};
return K(() => r ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Z.jsxs)("p", { children: [
d("Error loading Guided Tours"),
": ",
r
] })
})
}) : t ? i.length === 0 ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Z.jsx)("p", { children: d("No Guided Tours found matching your search") })
})
}) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Z.jsx)(co, {
tours: i,
onTourClick: a
})
}) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-content",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Z.jsxs)("p", { children: [
d("No Guided Tours available for"),
" ",
n
] })
})
}));
}), Ea = q((e) => B.list.type !== "tours" || B.details ? null : /* @__PURE__ */ (0, Z.jsx)(Ta, { ...e }));
//#endregion
//#region src/components/Visited.tsx
function Da() {
let e = (0, X.useRef)();
return K(() => /* @__PURE__ */ (0, Z.jsx)(ur, { updatedScrollableRef: e }));
}
var Oa = () => K(() => !B.details && B.list.type === "visited" && /* @__PURE__ */ (0, Z.jsx)(Da, {})), ka = q(({ url: e }) => /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "route-qr",
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "route-qr__body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "route-qr__code",
role: "img",
"aria-label": d("QR code to open the route on your phone"),
children: /* @__PURE__ */ (0, Z.jsx)(Ei, {
value: e,
size: 80
})
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "route-qr__label",
children: d("Scan to see route on your phone")
})]
})
})
})), Aa = ({ items: e, accessible: t, onClick: n }) => e != null && e.length ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayInformation",
onClick: n,
role: "button",
tabIndex: 0,
"aria-label": d("Show detailed route steps"),
children: e.map((e, n) => /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-wayInformation__item", { "is-accessible": t && n === 0 }),
children: [/* @__PURE__ */ (0, Z.jsx)("span", { children: e.title }), /* @__PURE__ */ (0, Z.jsx)("strong", { children: e.text })]
}, n))
}) : null, ja = ({ options: e = [], fromValue: t, toValue: n, showForm: r = !0, showAccessible: i = !1, showInfo: a = !1, routeFound: o = !1, infoItems: s = [], infoAccessible: c, floors: l = [], currentFloor: u, routeUrl: f, isKiosk: p, onChangeFrom: m, onChangeTo: h, getOptionKey: g, onSwitch: _, onClickInfo: v, onClickFloor: y, onAccessibleCheck: b, showDetailsIcon: x, onDetailsIconClick: S }) => /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-wayfinding", { isCollapsed: !r }),
children: [
r && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-wayfinding__top",
children: [/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-wayfindingForm",
children: [
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-wayfindingForm__icons",
children: [
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfindingForm__from",
children: /* @__PURE__ */ (0, Z.jsxs)("svg", {
width: "18",
height: "18",
viewBox: "0 0 18 18",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Z.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, Z.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, Z.jsx)("div", {
className: "efp-wayfindingForm__to",
children: /* @__PURE__ */ (0, Z.jsxs)("svg", {
width: "18",
height: "25",
viewBox: "0 0 18 25",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Z.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, Z.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, Z.jsx)("div", {
className: "efp-wayfindingForm__dots",
children: /* @__PURE__ */ (0, Z.jsxs)("svg", {
width: "4",
height: "18",
viewBox: "0 0 4 18",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: [/* @__PURE__ */ (0, Z.jsx)("circle", {
cx: "2",
cy: "2",
r: "2",
fill: "#DCDFE9"
}), /* @__PURE__ */ (0, Z.jsx)("circle", {
cx: "2",
cy: "16",
r: "2",
fill: "#DCDFE9"
})]
})
})
]
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-wayfindingForm__controls",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
style: { marginBottom: 10 },
children: /* @__PURE__ */ (0, Z.jsx)(An, {
placeholder: d("Choose starting point"),
options: e,
value: t,
onChange: m,
getOptionKey: g
})
}), /* @__PURE__ */ (0, Z.jsx)("div", { children: /* @__PURE__ */ (0, Z.jsx)(An, {
placeholder: d("Choose destination point"),
options: e,
value: n,
onChange: h,
getOptionKey: g
}) })]
}),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-wayfindingForm__actions",
children: [/* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-wayfindingForm__switch",
onClick: _
}), x && /* @__PURE__ */ (0, Z.jsx)("button", {
type: "button",
className: "efp-wayfindingForm__details",
onClick: S
})]
})
]
}), i && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfindingForm__accessible",
children: /* @__PURE__ */ (0, Z.jsx)(Dn, {
name: "onlyAccessible",
label: d("Accessible"),
value: c,
onChange: (e) => b(e)
})
})]
}),
l.length > 1 && /* @__PURE__ */ (0, Z.jsx)(na, {
floors: l,
value: u,
onSelect: y
}),
a && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfindingInfo",
children: o ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(Aa, {
items: s,
accessible: c,
onClick: v
}), p && /* @__PURE__ */ (0, Z.jsx)(ka, { url: f })] }) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfindingError",
children: d("Route not found")
})
})
]
});
//#endregion
//#region src/components/Wayfinding.tsx
function Ma() {
var e;
let t = (0, X.useRef)(null), n = (0, X.useMemo)(() => {
let e = z.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
};
});
}, [z.routeStore.pathLayers]), [r, i] = (0, X.useState)(), [a, o] = (0, X.useState)({}), s = (e) => {
e && o((t) => ({
...t,
[e.value]: e
}));
};
(0, X.useEffect)(() => {
r || i(n[0]);
}, [z.routeStore.pathLayers, n]), (0, X.useEffect)(() => {
let e = n.find((e) => {
var t, n;
return ((t = e.description) == null ? void 0 : t.toLowerCase()) === ((n = z.routeStore.currentRouteLayer) == null || (n = n.description) == null ? void 0 : n.toLowerCase());
});
e && i(e);
}, [z.routeStore.currentRouteLayer, n]), (0, X.useEffect)(() => {
var e;
let t = B.selectedRoute;
if (!t) {
B.setIsMultiPointRoute(!1);
return;
}
let n = (((e = t.waypoints) == null ? void 0 : e.length) || 0) > 0;
B.setIsMultiPointRoute(n);
}, [B.selectedRoute]);
let c = () => {
let { from: e, to: t } = B.selectedRoute;
return !!(e && t);
}, l = () => B.overlaySize === "full", u = () => !!(c() && !l()), f = () => {
var e;
let t = B.selectedRoute;
return t ? (((e = t.waypoints) == null ? void 0 : e.length) || 0) > 0 ? "multi" : "simple" : "none";
};
(0, X.useEffect)(() => {
f() === "multi" && B.selectedRoute;
}, [B.selectedRoute]);
let p = (0, X.useMemo)(() => {
let e = /* @__PURE__ */ new Set(), t = ze.booths, n = t.filter((e) => e instanceof Pe), r = t.filter((e) => !(e instanceof Pe)), i = [];
return Ae.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;
}, [Ae.exhibitors.length, ze.booths.length]);
return (0, X.useEffect)(() => {
var e;
let t = (e = B.selectedRoute) == null || (e = e.to) == null || (e = e.id) == null ? void 0 : e.toString(), n = z.routeStore.currentRouteExhibitor;
if (!n) return;
let r = p.find((e) => e.value === t && e.exhibitorId === n.id);
z.routeStore.currentRouteExhibitor = null, s(r);
}, [
z.routeStore.currentRouteExhibitor,
(e = B.selectedRoute) == null || (e = e.to) == null ? void 0 : e.id,
p
]), K(() => {
var e, i, o, c, l, m, h, g;
if (f() === "multi") {
var _, v;
return /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("main-wayfinding", { hidden: B.kiosk && ((_ = B.selectedRoute) == null ? void 0 : _.from) && ((v = B.selectedRoute) == null ? void 0 : v.to) }),
children: [B.routeDescription && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-wayfinding-description",
children: B.routeDescription
}), /* @__PURE__ */ (0, Z.jsx)(ur, { updatedScrollableRef: t })]
});
}
let y = (e = B.selectedRoute) != null && e.from && !(B.selectedRoute.from instanceof we) ? B.selectedRoute.from : null, b = (i = B.selectedRoute) != null && i.to && !(B.selectedRoute.to instanceof we) ? B.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 = ze.booths.find((e) => e.id.toString() === r)) == null ? null : n, { from: a, to: o } = B.selectedRoute;
s(e), t ? z.routeStore.selectRoute(new T(i, o)) : z.routeStore.selectRoute(new T(a, i));
}, C = (e) => {
let t = [], n = xe().getAttribute("units") || "ft", r = ee(e, ne(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: d("Travel time"),
text: r < 60 ? "< 1 min" : `~ ${Math.round(r / 60)} min`
}, {
title: d("Distance"),
text: Math.round(e) + ` ${n}`
}, {
title: d("Est arrival"),
text: a
}), t;
}, w = () => {
let { from: e, to: t } = B.selectedRoute;
(e == null ? void 0 : e.id) !== "current-position" && z.routeStore.selectRoute(new T(t, e));
}, E = ((o = B.selectedRoute) == null ? void 0 : o.from) && ((c = B.selectedRoute) == null ? void 0 : c.to) && !z.routeStore.routeLines.length;
function D() {
var e;
let t = (e = B.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 O() {
var e;
let t = (e = B.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 A = !!(!k.hideWayInformation && W.EXPO !== "bloomberg" && (l = B.selectedRoute) != null && l.from && (m = B.selectedRoute) != null && m.to);
return /* @__PURE__ */ (0, Z.jsx)("div", {
className: (0, Y.default)("main-wayfinding", { hidden: B.kiosk && ((h = B.selectedRoute) == null ? void 0 : h.from) && ((g = B.selectedRoute) == null ? void 0 : g.to) }),
children: /* @__PURE__ */ (0, Z.jsx)(ja, {
showForm: !u(),
showInfo: A,
floors: n,
currentFloor: r,
onClickFloor: (e) => {
let t = z.routeStore.pathLayers.find((t) => t.id === e.id);
t != null && t.layer && z.layerStore.updateVisibility(t.layer, !0);
},
routeFound: !E,
options: x,
getOptionKey: (e) => {
var t;
return `${e.value}-${(t = e.exhibitorId) == null ? "" : t}`;
},
fromValue: D(),
toValue: O(),
onChangeFrom: (e) => S(e, !0),
onChangeTo: (e) => S(e, !1),
onSwitch: w,
infoItems: C(z.routeStore.routeDistance),
infoAccessible: z.routeStore.onlyAccessible,
showAccessible: z.routeStore.showAccessible,
onAccessibleCheck: (e) => z.routeStore.setOnlyAccessible(e),
onClickInfo: () => z.showOverlay(),
routeUrl: B.routeQRCodeUrl,
isKiosk: B.kiosk,
showDetailsIcon: B.showRouteInstantly,
onDetailsIconClick: () => {
var e;
let { from: t, to: n } = B.selectedRoute || {}, r = (e = n instanceof we ? n : null) == null ? t instanceof we ? t : null : e;
if (r) {
var i;
let e = r.id.toString(), t = (i = a[e]) == null ? x.find((t) => t.value === e) : i;
B.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 Na() {
return K(() => W.wayfinding && !B.menu && B.selectedRoute && B.list.type !== "route-planner" && /* @__PURE__ */ (0, Z.jsx)(Ma, {}));
}
//#endregion
//#region src/components/OverlayContainer.tsx
var Pa = q(({ isGDPR: e, consent: t }) => {
let n = (0, X.useCallback)((e) => {
B.desiredOverlaySize = e;
}, []), r = (0, X.useCallback)((e) => {
B.setOverlayScrolled(e);
}, []), i = B.overlaySize, a = (0, X.useMemo)(() => [B.list.type, B.details], [B.list.type, B.details]), o = (0, X.useMemo)(() => {
let e = (0, Y.default)({
"-backdrop": B.canvasStarted && B.shouldUseBackdrop && !B.dimmed && !B.galleryActive,
"-no-transition": B.dimmed,
"-gallery-active": B.galleryActive,
collapsed: B.overlayCollapsed,
kiosk: B.kiosk,
start: B.overlayPosition === "left",
bottom: B.overlayPosition !== "left",
...B.overlaySize && { [B.overlaySize]: !0 }
}), t = B.overlayInterfaceClasses.join(" ");
return t ? `${e} ${t}` : e;
}, [
B.canvasStarted,
B.shouldUseBackdrop,
B.dimmed,
B.galleryActive,
B.overlayCollapsed,
B.kiosk,
B.inIdle,
B.setKioskModeEnabled,
B.overlayPosition,
B.overlaySize,
B.overlayInterfaceClasses
]);
return /* @__PURE__ */ (0, Z.jsxs)(fn, {
open: B.isOverlayOpen,
size: i,
particles: B.isFeaturedExhibitorActive ? /* @__PURE__ */ (0, Z.jsx)(ta, {}) : null,
className: o,
mediumSizeMultiplier: Me.mediumSizeMultiplier,
fullSizeOffset: Me.fullSizeOffset,
disableDrag: B.viewerMode && B.menu,
forceFull: B.viewerMode && B.menu,
scrollResetKey: a,
noContentLabel: d("No content"),
onChangeSize: n,
onScrollStateChange: r,
onScrollActivity: () => {
var e, t;
return (e = (t = window).__resett) == null ? void 0 : e.call(t);
},
children: [
/* @__PURE__ */ (0, Z.jsx)($i, {
isGDPR: e,
consent: t
}),
/* @__PURE__ */ (0, Z.jsx)(ga, {}),
/* @__PURE__ */ (0, Z.jsx)(ui, {}),
/* @__PURE__ */ (0, Z.jsx)(nr, {}),
/* @__PURE__ */ (0, Z.jsx)(In, {}),
/* @__PURE__ */ (0, Z.jsx)(Oa, {}),
/* @__PURE__ */ (0, Z.jsx)(yi, {}),
/* @__PURE__ */ (0, Z.jsx)(fr, {}),
/* @__PURE__ */ (0, Z.jsx)(Na, {}),
/* @__PURE__ */ (0, Z.jsx)(fi, {}),
/* @__PURE__ */ (0, Z.jsx)(va, { showFilters: !0 }),
/* @__PURE__ */ (0, Z.jsx)(Sa, { showFilters: !0 }),
/* @__PURE__ */ (0, Z.jsx)(Ea, {}),
/* @__PURE__ */ (0, Z.jsx)(wa, {}),
/* @__PURE__ */ (0, Z.jsx)(ua, {}),
/* @__PURE__ */ (0, Z.jsx)(jr, {}),
/* @__PURE__ */ (0, Z.jsx)(ba, {})
]
});
});
//#endregion
//#region src/tools/debounce.ts
function Fa(e, t) {
let n;
return (...r) => {
clearTimeout(n), n = setTimeout(() => {
e(...r);
}, t);
};
}
//#endregion
//#region src/tools/handleDebugMode.ts
function Ia() {
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(i, "true");
else if (t === "0") localStorage.setItem(i, "false");
else return;
n && (e.searchParams.delete(n), Ne(e.search) && window.location.reload());
} catch (e) {
console.error("Error in handleDebugMode:", e);
}
}
//#endregion
//#region src/utils/customCommands.ts
function La(e) {
if (e = e.trim(), e.toLowerCase() === "__addcache") navigator.serviceWorker.getRegistrations().then((e) => {
if (!e.length) return alert("No registered service workers.");
let t = [];
z.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 (Oe()) return !0;
else e.startsWith("debug") ? Ia() : e === (k.customSetKiosk || "setkiosk") && B.enableSetKioskMode(!0);
return !1;
}
//#endregion
//#region src/components/SearchBox.tsx
var Ra = 1e3;
function za(e) {
return e.getRootNode().activeElement === e;
}
function Ba({ className: e }) {
let t = (0, X.useRef)(null), n = (0, X.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(), z.openActiveListItem();
let t = n.current;
t && La(t.value);
return;
}
case "Escape":
e.preventDefault(), H.closeSearch();
return;
}
t && (e.preventDefault(), z.changeActiveListIndex(t));
}
let [i, a] = (0, X.useState)(""), [o, s] = (0, X.useState)(!1);
$e(() => {
s(B.kiosk && B.inIdle);
}), (0, X.useEffect)(() => {
if (!o) return;
let e = [
d("Find Companies..."),
d("Find Categories..."),
d("Find Sessions..."),
d("Search...")
], t = 0, n = 0, r = !1, i, s = () => {
let o = e[t];
r ? (a(o.substring(0, n - 1)), n--) : (a(o.substring(0, n + 1)), n++);
let c = r ? 50 : 100;
!r && n === o.length ? (r = !0, c = 2e3) : r && n === 0 && (r = !1, t = (t + 1) % e.length, c = 500), i = setTimeout(s, c);
};
return i = setTimeout(s, 0), () => clearTimeout(i);
}, [o]), $e(() => {
let e = n.current;
e && !H.isFocused && za(e) && e.blur();
}), $e(() => {
B.menu && B.kiosk && H.setFocused(!1);
}), $e(() => {
let e = n.current;
e && H.isFocused && !H.skipInputFocus && !za(e) && e.focus();
}), (0, X.useEffect)(() => {
z.fuzzySearchEngineStore.loadEngine();
}, []);
let c = (0, X.useMemo)(() => Fa(() => {
var e, t;
H.searchText && V(L.Search, H.searchText), (e = (t = window).__resett) == null || e.call(t);
}, Ra), []);
function l() {
var e;
H.setSearchText(((e = n.current) == null ? void 0 : e.value) || ""), c();
}
function u() {
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 K(() => /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("search-box", e, H.searchBoxClass, { "efp-semi-transparent": B.setKioskModeEnabled }),
"data-interface": B.activeInterfaceId,
ref: t,
children: [
/* @__PURE__ */ (0, Z.jsx)("button", {
className: (0, Y.default)("search-box__button", "search-box__button--back", {
"is-mobile-details": H.isMobileDetailsMode,
"search-box__button--home": H.backMode !== "back" && B.viewerMode
}),
onClick: p,
type: "button",
"aria-label": H.backMode === "back" ? d("Go back") : d("Main menu"),
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: H.backMode === "back" ? "icon-chevron-left" : B.viewerMode ? "icon-home-solid" : "icon-menu" })
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "search-box__input-wrapper",
children: H.shouldShowSearchInput ? /* @__PURE__ */ (0, Z.jsx)("input", {
ref: n,
type: "search",
className: "search-box__input",
placeholder: o ? i : H.placeholder,
"aria-label": "Search",
value: H.searchText,
onChange: l,
onKeyDown: r,
onFocus: u,
autoComplete: "off",
autoCorrect: "off",
autoCapitalize: "off",
spellCheck: !1,
disabled: B.setKioskModeEnabled
}) : /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "search-box__title",
children: [
H.searchBoxIcon && /* @__PURE__ */ (0, Z.jsx)("i", { className: (0, Y.default)("search-box__title-icon", H.searchBoxIcon) }),
/* @__PURE__ */ (0, Z.jsxs)("div", {
className: "search-box__title-content",
children: [/* @__PURE__ */ (0, Z.jsx)("strong", {
className: "search-box__title-text",
children: H.searchBoxTitle
}), H.searchBoxSubtitle && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "search-box__title-subtitle",
children: H.searchBoxSubtitle
})]
}),
H.searchBoxBadge ? /* @__PURE__ */ (0, Z.jsx)(Ct, {
variant: "lightgray",
size: "md",
rounded: !0,
noMargins: !0,
children: H.searchBoxBadge
}) : null
]
})
}),
!H.shouldShowSearchInput && H.searchBoxActions.map((e) => /* @__PURE__ */ (0, Z.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, Z.jsx)("i", { className: e.icon })
}, e.id)),
/* @__PURE__ */ (0, Z.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, Z.jsx)("i", { className: H.actionButtonIcon })
})
]
}));
}
//#endregion
//#region src/components/SearchButtons/SearchButton.tsx
var Va = q(({ id: e, label: t, icon: n, text: r, active: i, count: a, variant: o = "toggle", isDimmed: s = !1, isDisabled: c = !1, showZeroCount: l = !1, backgroundColor: u, textColor: d, onClick: f }) => {
let p = a !== void 0 && (a > 0 || l), m = !!u;
return /* @__PURE__ */ (0, Z.jsxs)("button", {
type: "button",
style: m ? {
"--btn-bg-color": u,
"--btn-text-color": d || "#1a1a1a"
} : void 0,
className: (0, Y.default)("efp-search-button", `efp-search-button--${o}`, {
"is-active": i,
"is-dimmed": s,
"is-disabled": c,
"has-custom-color": m
}),
onClick: () => {
var e, t;
f == null || f(), (e = (t = window).__resett) == null || e.call(t);
},
disabled: c,
"aria-label": t,
title: t,
children: [
n && /* @__PURE__ */ (0, Z.jsx)("i", { className: n }),
r && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-search-button__text",
children: r
}),
p && /* @__PURE__ */ (0, Z.jsx)("span", {
className: (0, Y.default)("efp-search-button__count", { "is-zero": a === 0 }),
children: a
})
]
});
}), Ha = (0, X.memo)(q(({ id: e, label: t, icon: n, text: r, active: i, count: a, onClick: o }) => /* @__PURE__ */ (0, Z.jsxs)("button", {
type: "button",
className: (0, Y.default)("efp-search-sub-button", { "is-active": i }),
onClick: o,
"aria-label": t,
title: t,
children: [n ? /* @__PURE__ */ (0, Z.jsx)("i", { className: n }) : r ? /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-search-sub-button__text",
children: r
}) : null, a !== void 0 && a > 0 && /* @__PURE__ */ (0, Z.jsx)("span", {
className: "efp-search-sub-button__count",
children: a
})]
})));
Ha.displayName = "SearchSubButton";
//#endregion
//#region src/components/SearchButtons/SearchSubButtons.tsx
var Ua = (0, X.memo)(q(() => {
let { searchButtonsStore: e } = z, t = (0, X.useRef)(null);
(0, X.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, X.useMemo)(() => e.activeSubButtons, [e.activeSubButtons]);
return e.shouldShowSubButtons ? /* @__PURE__ */ (0, Z.jsx)("div", {
ref: t,
className: (0, Y.default)("efp-search-sub-buttons", { "is-visible": e.shouldShowSubButtons }),
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-search-sub-buttons__container",
children: n.map((e) => /* @__PURE__ */ (0, Z.jsx)(Ha, { ...e }, e.id))
})
}) : null;
}));
Ua.displayName = "SearchSubButtons";
//#endregion
//#region src/components/SearchButtons/SearchButtons.tsx
var Wa = q(() => {
let { searchButtonsStore: e } = z, t = (0, X.useMemo)(() => e.searchButtons.filter((e) => e.enabled), [e.searchButtons]);
return e.shouldShow ? /* @__PURE__ */ (0, Z.jsxs)("div", {
className: (0, Y.default)("efp-search-buttons", {
"is-overlay-full": z.uiState.isOverlayOpen && z.uiState.overlaySize === "full",
"is-long-levels": !k.shortLevelName,
"is-standalone": z.uiState.overlayOnDemand && !z.uiState.isOverlayOpen,
"efp-semi-transparent": z.uiState.setKioskModeEnabled
}),
children: [/* @__PURE__ */ (0, Z.jsx)(da, {
ariaLabel: d("Search filters"),
scrollAmount: 150,
showArrowsOnMobile: !1,
arrowPosition: "inside",
children: t.map((e) => /* @__PURE__ */ (0, Z.jsx)(Va, {
...e,
isDisabled: z.uiState.setKioskModeEnabled
}, e.id))
}), e.subButtonsEnabled && /* @__PURE__ */ (0, Z.jsx)(Ua, {})]
}) : null;
}), Ga = q(({ 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, X.useMemo)(() => e.rootStore.eventStore.futureEvents.length, [e.rootStore.eventStore.futureEvents]), o = (0, X.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]), s = (0, X.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]), c = (t) => {
let n = t.map((e) => Number(e));
e.setPending("selectedTracks", n);
}, l = (t) => {
let n = t.map((e) => Number(e));
e.setPending("selectedVenues", n);
}, u = n === void 0 ? e.state.isOpen : n, f = r || (() => e.closeFilter()), p = t || e.state.visibleSections;
return /* @__PURE__ */ (0, Z.jsx)(Xe, {
open: u,
title: d("Sessions Filters"),
maxWidth: 800,
footerLeft: [{
label: d("Clear all"),
variant: "gray",
disabled: i.selectedTracks.pending.length === 0 && i.selectedVenues.pending.length === 0,
onClick: () => {
e.resetFilters(), r && r();
}
}],
footerRight: [{
label: d("Apply"),
variant: "primary",
onClick: () => {
e.applyFilters(), r && r();
}
}],
onClose: f,
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-filters-modal",
children: [
p.includes("tracks") && o.length > 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-filters-modal__section",
children: /* @__PURE__ */ (0, Z.jsx)(jn, {
groups: o,
selectedIds: i.selectedTracks.pending,
onChange: c,
showItemCounts: !0
})
}),
p.includes("venues") && s.length > 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-filters-modal__section",
children: /* @__PURE__ */ (0, Z.jsx)(jn, {
groups: s,
selectedIds: i.selectedVenues.pending,
onChange: l,
showItemCounts: !0
})
}),
p.includes("date") && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [/* @__PURE__ */ (0, Z.jsx)("h3", { children: d("Date") }), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-filters-modal__buttons",
children: [
"all",
"today",
"tomorrow"
].map((t) => /* @__PURE__ */ (0, Z.jsx)("button", {
className: (0, Y.default)("efp-sessions-filters-modal__btn", { "is-active": i.date.pending === t }),
onClick: () => e.setPending("date", t),
children: d(t === "all" ? "All dates" : t.charAt(0).toUpperCase() + t.slice(1))
}, t))
})]
}),
p.includes("time") && a >= 30 && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [/* @__PURE__ */ (0, Z.jsx)("h3", { children: d("Session time") }), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-filters-modal__buttons",
children: [
"all",
"morning",
"midday",
"afternoon"
].map((t) => /* @__PURE__ */ (0, Z.jsx)("button", {
className: (0, Y.default)("efp-sessions-filters-modal__btn", { "is-active": i.timeOfDay.pending === t }),
onClick: () => e.setPending("timeOfDay", t),
children: d(t === "all" ? "All times" : t.charAt(0).toUpperCase() + t.slice(1))
}, t))
})]
}),
p.includes("sort") && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [/* @__PURE__ */ (0, Z.jsx)("h3", { children: d("Sort order") }), /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-filters-modal__buttons",
children: [/* @__PURE__ */ (0, Z.jsx)("button", {
className: (0, Y.default)("efp-sessions-filters-modal__btn", { "is-active": i.sortOrder.pending === "desc" }),
onClick: () => e.setPending("sortOrder", "desc"),
children: d("Earliest first")
}), /* @__PURE__ */ (0, Z.jsx)("button", {
className: (0, Y.default)("efp-sessions-filters-modal__btn", { "is-active": i.sortOrder.pending === "asc" }),
onClick: () => e.setPending("sortOrder", "asc"),
children: d("Latest first")
})]
})]
}),
p.includes("settings") && /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-sessions-filters-modal__section",
children: [
/* @__PURE__ */ (0, Z.jsx)("h3", { children: d("Additional settings") }),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-filters-modal__toggle",
children: /* @__PURE__ */ (0, Z.jsx)(Dn, {
name: "showBookmarksOnly",
label: d("Show bookmarks only"),
value: i.showBookmarksOnly.pending,
onChange: (t) => e.setPending("showBookmarksOnly", t)
})
}),
/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-sessions-filters-modal__toggle",
children: /* @__PURE__ */ (0, Z.jsx)(Dn, {
name: "use24hFormat",
label: d("Show time in 24h format"),
value: i.use24hFormat.pending,
onChange: (t) => e.setPending("use24hFormat", t)
})
})
]
})
]
})
});
}), Ka = q(({ title: e, url: t }) => {
let n = encodeURIComponent(t), r = [
{
network: "facebook",
name: "Facebook",
url: `https://www.facebook.com/sharer/sharer.php?u=${n}`,
ariaLabel: d("Share {{title}} on Facebook", { title: e })
},
{
network: "xcom",
name: "X.COM",
url: `https://x.com/share?url=${n}`,
ariaLabel: d("Share {{title}} on X.com", { title: e })
},
{
network: "linkedin",
name: "LinkedIn",
url: `https://linkedin.com/shareArticle?url=${n}`,
ariaLabel: d("Share {{title}} on LinkedIn", { title: e })
}
];
return /* @__PURE__ */ (0, Z.jsx)(Cn, {
title: e,
url: t,
shareHeading: d("Share"),
socials: r,
copyLinkSectionLabel: d("or copy link"),
directLinkAriaLabel: d("Direct link to {{title}}", { title: e }),
copyButtonAriaLabel: d("Copy link to clipboard"),
copyLabel: d("Copy"),
copiedLabel: d("Copied")
});
}), qa = q(({ store: e, visibleSections: t, open: n, onClose: r }) => {
let i = e.state.filters, a = (0, X.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, X.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]), s = (t) => {
let n = t;
e.setPending("selectedCompanies", n);
}, c = (t) => {
let n = t;
e.setPending("selectedJobTitles", n);
}, l = n === void 0 ? e.state.isOpen : n, u = r || (() => e.closeFilter()), f = t || e.state.visibleSections;
return /* @__PURE__ */ (0, Z.jsx)(Xe, {
open: l,
title: d("Speaker Filters"),
maxWidth: 800,
footerLeft: [{
label: d("Clear all"),
variant: "gray",
disabled: i.selectedCompanies.pending.length === 0 && i.selectedJobTitles.pending.length === 0,
onClick: () => {
e.resetFilters();
}
}],
footerRight: [{
label: d("Apply"),
variant: "primary",
onClick: () => {
e.applyFilters();
}
}],
onClose: u,
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: "efp-speakers-filters-modal",
children: [f.includes("companies") && a.length > 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speakers-filters-modal__section",
children: /* @__PURE__ */ (0, Z.jsx)(jn, {
groups: a,
selectedIds: i.selectedCompanies.pending,
onChange: s,
showItemCounts: !0
})
}), f.includes("jobTitles") && o.length > 0 && /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-speakers-filters-modal__section",
children: /* @__PURE__ */ (0, Z.jsx)(jn, {
groups: o,
selectedIds: i.selectedJobTitles.pending,
onChange: c,
showItemCounts: !0
})
})]
})
});
}), Ja = 8e3, Ya = X.memo(() => {
let e = G(() => ({
el: null,
all: [],
adv: [],
keySeq: 0,
index: 0,
batchStart: 0,
imgByExhibitorId: /* @__PURE__ */ new Map(),
batchSize: 100,
loading: !1,
leftToNextLoad: 0,
timeoutId: 0,
get sectionStyle() {
let { wsStarted: e, wsPosition: t } = B, n = t === "top", r = {
right: 0,
width: "100%",
opacity: +!!e
};
return n ? r.top = 0 : r.bottom = 0, r;
}
})), t = (0, X.useCallback)((t = !1) => {
var n, r;
let i = t ? e.adv : [];
t ? e.index = e.batchStart : e.batchStart = e.index;
let a = ((n = (r = e.el) == null ? void 0 : r.getBoundingClientRect().width) == null ? 0 : n) - U(.3) * 2, o = 0, s = [];
do {
var c;
let t = e.all[e.index % e.all.length], n = e.imgByExhibitorId.get(t.id);
if (!n) break;
let r = n.width * B.wsImageHeightPx / n.height + 20;
if (o + r > a && s.length) break;
o += r;
let l = ((c = i[s.length]) == null ? void 0 : c.e) === t ? i[s.length] : null;
s.push(l == null ? {
key: e.keySeq++,
e: t,
nodeRef: (0, X.createRef)()
} : l), e.index = (e.index + 1) % e.all.length;
} while (!0);
e.adv = s, e.leftToNextLoad = Math.max(0, e.leftToNextLoad - Math.max(0, s.length - i.length));
}, [e]), n = (0, X.useCallback)(async () => {
e.loading = !0;
let t = e.all.slice(e.index, e.index + e.batchSize);
t.length < e.batchSize && (t = t.concat(e.all.slice(0, e.batchSize - t.length)));
let n = await F(new Map(t.map((e) => {
var t;
return [e.id, { fallback: (t = e.logo) == null ? void 0 : t.url }];
})));
return e.leftToNextLoad = n.size, e.loading = !1, n;
}, [e]), r = (0, X.useCallback)(() => {
let r = async () => {
if (e.loading) {
e.timeoutId = window.setTimeout(r, Ja);
return;
}
e.leftToNextLoad <= e.adv.length && (e.imgByExhibitorId = await n()), t(), e.timeoutId = window.setTimeout(r, Ja);
};
clearTimeout(e.timeoutId), e.timeoutId = window.setTimeout(r, Ja);
}, [n, t]);
return Ze(() => {
let i, a = !0;
return (async () => {
e.all = We(Ae.advertised), e.imgByExhibitorId = await n(), a && (t(), r(), B.wsStarted = !0, i = p(() => B.screenSize, () => t(!0), { delay: 250 }));
})(), () => {
a = !1, i == null || i(), clearInterval(e.timeoutId);
};
}), K(() => /* @__PURE__ */ (0, Z.jsx)("section", {
className: (0, Y.default)("ws", { "efp-semi-transparent": B.setKioskModeEnabled }),
ref: (t) => e.el = t,
onMouseOver: () => clearInterval(e.timeoutId),
onMouseOut: r,
style: e.sectionStyle,
children: /* @__PURE__ */ (0, Z.jsx)(ri, {
component: null,
children: e.adv.map((e) => {
var t;
return /* @__PURE__ */ (0, Z.jsx)(Yr, {
timeout: 500,
nodeRef: e.nodeRef,
children: /* @__PURE__ */ (0, Z.jsx)("a", {
ref: e.nodeRef,
href: `?${e.e.slug}`,
className: "ws__exhibitor",
style: { height: `${B.wsImageHeightPx}px` },
onClick: (t) => {
t.preventDefault(), ge(e.e), z.clickExhibitor(e.e);
},
children: /* @__PURE__ */ (0, Z.jsx)("img", {
src: (t = e.e.logo) == null ? void 0 : t.url,
alt: e.e.name,
crossOrigin: "anonymous"
})
})
}, e.key);
})
})
}));
}), Xa = () => K(() => B.wsShown ? /* @__PURE__ */ (0, Z.jsx)(Ya, {}) : null), Za = X.lazy(() => import(
/* webpackChunkName: "demo" */
"./Demo-ClW-lszE.js"
).then((e) => e.t)), Qa = X.lazy(() => import(
/* webpackChunkName: "free" */
"./Free-CPuBAHN9.js"
)), $a = X.lazy(() => import(
/* webpackChunkName: "debug" */
"./Debug-Bt5IRvUt.js"
)), eo = X.lazy(() => import(
/* webpackChunkName: "maplibre" */
"./MaplibreAdapter-BdbdSizH.js"
)), to = X.lazy(() => import("./ModalContainer-BuH30fJN.js").then((e) => e.n)), no = X.lazy(() => import(
/* webpackChunkName: "cc-script" */
"./CookieConsent-CJSQYYJ0.js"
).then((e) => e.t)), ro = X.lazy(() => import(
/* webpackChunkName: "cc-script" */
"./GpsLoader-DiArANLO.js"
)), io = X.lazy(() => import(
/* webpackChunkName: "set-kiosk-mode" */
"./SetKioskMode-BUUQxMDT.js"
)), ao = X.lazy(() => import(
/* webpackChunkName: "show-kiosk" */
"./ShowKiosk-CGkQXtiC.js"
)), oo = q(function({ offHistory: e, consent: t }) {
var n, r, i, a, o, s;
let [c, l] = (0, X.useState)(!1), [u, f] = (0, X.useState)(!1), p = z.maplibreStore.showMaplibre, m = B.searchButtonsOverride !== !1 && (!B.noOverlay || B.overlayOnDemand), h = !B.noOverlay || B.overlayOnDemand && (u || B.isOverlayOpen), _ = null;
B.bannerType === "demo" ? _ = /* @__PURE__ */ (0, Z.jsx)(Za, {}) : B.bannerType === "free" && (_ = /* @__PURE__ */ (0, Z.jsx)(Qa, {}));
let v = () => {
_e(!0), M(), z.uiState.hideCookieConsent = !0;
}, y = () => {
_e(!1), M(), z.uiState.hideCookieConsent = !0;
};
(0, X.useEffect)(() => {
async function e() {
let e = await he();
l(!!(e || e === null));
}
te(t) ? l(!0) : e();
}, []), J(() => B.isOverlayOpen, (e) => e && f(!0)), J(() => B.selectedExhibitor, (e) => {
let t = z.heatmapStore.forceTrack;
if (z.heatmapStore.forceTrack = null, t && t.exhibitor === e) {
V(t.action, t.label);
return;
}
e && (I("exview", e.id), V(L.ViewExhibitor, e.name));
}), J(() => B.selectedBooth, (e) => (e == null ? void 0 : e.name) && V(L.ViewBooth, e.name)), J(() => B.selectedCategory, (e) => (e == null ? void 0 : e.name) && V(L.ViewCategory, e == null ? void 0 : e.name)), J(() => B.selectedEventItem, (e) => {
e != null && e.name && (I("sesview", e.name), V(L.ViewExhibitor, e.name));
}), J(() => B.selectedSpeaker, (e) => {
e != null && e.name && I("spkview", e.name);
});
let b = !B.hideCookieConsent && !B.kiosk && c && t === "ask";
return /* @__PURE__ */ (0, Z.jsx)("div", {
id: "efp-layout",
className: (0, Y.default)("layout", {
"efp-kiosk": B.kiosk,
"efp-kiosk-route-active": B.kiosk && ((n = B.selectedRoute) == null ? void 0 : n.from) && ((r = B.selectedRoute) == null ? void 0 : r.to),
"efp-layers-mode": z.layerStore.mode,
"efp-ws-mode": B.wsShown,
"efp-no-overlay": B.overlayHiddenNow,
"efp-overlay-on-demand": B.overlayOnDemand,
"efp-top-banner": B.bannerType === "free" && !B.freeBannerDismissed,
"efp-viewer-mode": B.viewerMode
}),
dir: B.rtl ? "rtl" : "ltr",
style: { "--ui-scale": B.uiScale.toString() },
children: /* @__PURE__ */ (0, Z.jsxs)("div", {
className: `layout__fixed expo-${W.EXPO} overlay-${z.uiState.overlayPosition}`,
children: [
(R.mode === Ge.Radio || R.mode === Ge.CheckBox) && !B.floorsControlHidden && z.initialized && /* @__PURE__ */ (0, Z.jsx)(wi, {}),
h && z.initialized && /* @__PURE__ */ (0, Z.jsx)(Pa, {
isGDPR: c,
consent: t
}),
z.initialized && /* @__PURE__ */ (0, Z.jsx)(ji, {}),
(!B.noOverlay || B.overlayOnDemand && B.isOverlayOpen) && z.initialized && !(B.viewerMode && B.menu) && /* @__PURE__ */ (0, Z.jsx)(Ba, {}),
m && z.initialized && /* @__PURE__ */ (0, Z.jsx)(Wa, {}),
!B.noOverlay && z.initialized && /* @__PURE__ */ (0, Z.jsx)(Yi, {}),
!B.mapControlsHidden && z.initialized && /* @__PURE__ */ (0, Z.jsx)(Ji, {}),
/* @__PURE__ */ (0, Z.jsx)(xi, {}),
!B.hideHeaderLogo && z.initialized && /* @__PURE__ */ (0, Z.jsx)(Xa, {}),
z.routeStore.gpsEnabled && /* @__PURE__ */ (0, Z.jsx)(ro, { requestCompassAllowed: !b }),
ye && !p && /* @__PURE__ */ (0, Z.jsx)(Ki, {}),
p && /* @__PURE__ */ (0, Z.jsx)(gr, { children: /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: /* @__PURE__ */ (0, Z.jsx)("div", {}),
children: /* @__PURE__ */ (0, Z.jsx)(eo, { viewMode: z.maplibreStore.mapViewMode })
}) }),
_ && !B.hideFreeOrDemo && !B.heatmap ? /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: _
}) : null,
b && /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(no, {
link: "https://expofp.com/pages/viewer-cookie-consent",
onAccept: v,
onReject: y
})
}),
g ? /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)($a, {})
}) : null,
B.modalActive.share ? /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(to, {
variant: "share",
ariaLabel: d("Share"),
open: B.modalActive.share,
onClose: () => z.toggleModal("share"),
children: /* @__PURE__ */ (0, Z.jsx)(Ka, {
title: ((i = B.selectedExhibitor) == null ? void 0 : i.name) || ((a = B.selectedEventItem) == null ? void 0 : a.name) || "",
url: e ? `${window.location.origin}?${encodeURI(((o = B.selectedExhibitor) == null ? void 0 : o.slug) || ((s = B.selectedEventItem) == null ? void 0 : s.slug))}` : window.location.href
})
})
}) : null,
B.heatmap || B.heatmapYah ? /* @__PURE__ */ (0, Z.jsx)(mi, {
style: { left: `calc(50% + ${z.uiState.mapVisibleStart / 2}px)` },
className: B.responsiveClass
}) : null,
/* @__PURE__ */ (0, Z.jsx)(En, { active: !R.layersLoaded }),
/* @__PURE__ */ (0, Z.jsx)("div", { id: "fps" }),
z.initialized && /* @__PURE__ */ (0, Z.jsx)(mr, {}),
z.initialized && /* @__PURE__ */ (0, Z.jsx)(Ga, { store: z.sessionsFilterStore }),
z.initialized && /* @__PURE__ */ (0, Z.jsx)(qa, { store: z.speakerFilterStore }),
/* @__PURE__ */ (0, Z.jsx)(bi, {}),
z.initialized && B.setKioskModeEnabled && /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(io, {})
}),
z.initialized && !B.setKioskModeEnabled && /* @__PURE__ */ (0, Z.jsx)(X.Suspense, {
fallback: null,
children: /* @__PURE__ */ (0, Z.jsx)(ao, {})
})
]
})
});
}), so = q((e) => /* @__PURE__ */ (0, Z.jsx)(Nt, {
...e,
levelLabel: d("Level")
}));
q(() => {
let e = B.overlaySize === "full";
return /* @__PURE__ */ (0, Z.jsx)(pn, {
isFull: e,
onToggle: () => B.toggleMapOverlay(),
ariaLabel: d(e ? "Collapse overlay" : "Expand overlay")
});
});
//#endregion
//#region src/components/ToursList.tsx
var co = q(({ tours: e, onTourClick: t }) => {
let n = (e, n, r) => {
t && t(e, n, r);
};
return e.length === 0 ? /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-empty",
children: /* @__PURE__ */ (0, Z.jsx)("p", { children: d("No Guided Tours found") })
}) : /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tours-list",
children: e.map((e) => /* @__PURE__ */ (0, Z.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, Z.jsxs)("div", {
className: "efp-tour-item__body",
children: [/* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tour-item__left",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tour-item__icon",
children: /* @__PURE__ */ (0, Z.jsx)("i", { className: "icon-route-solid" })
})
}), /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tour-item__right",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tour-item__content",
children: /* @__PURE__ */ (0, Z.jsx)("div", {
className: "efp-tour-item__title",
children: /* @__PURE__ */ (0, Z.jsx)(rr, { text: e.name })
})
})
})]
})
}, e.id))
});
});
//#endregion
export { Ni as i, La as n, Mi as r, oo 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-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-mobile-toggle-button--with-banner{bottom:calc(2.5rem * var(--ui-scale))}.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__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__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--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{border-top:1px solid var(--color-gray-300)}.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%}@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)}}.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%)}.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-ws-mode{--ws-height:calc(3.375rem * 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;min-height:100vh;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-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}.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 i{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: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 i{margin-left:0;margin-right:calc(-.25rem * 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)}.ws{z-index:102;height:var(--ws-height);padding:0 calc(.25rem * var(--ui-scale));background:var(--color-white);filter:brightness(97%);box-shadow:var(--shadow-md);justify-content:space-around;align-items:center;transition:opacity .5s;display:flex;position:absolute;right:0;overflow:hidden}.ws__exhibitor{margin:calc(.3125rem * var(--ui-scale)) 0;background:var(--color-white);align-items:center;display:flex}.ws__exhibitor>img{max-height:100%}@media print{.ws{display:none}}.ws__list-item{margin-right:calc(.625rem * var(--ui-scale));display:inline-block}.ws__exhibitor.exit{display:none}.overlay-left .ws__exhibitor.enter{opacity:0}.overlay-left .ws__exhibitor.enter-active{opacity:1;transition:opacity .5s}.overlay-left .ws__exhibitor.exit{display:none}.efp-kiosk.efp-ws-mode .overlay-content__scrollable{max-height:var(--k-sidebar-max-height-with-ws)}.layout[dir=rtl] .ws{left:10px;right:unset!important}@media (max-width:550px){.ws{border-radius:0}}.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);