@expofp/floorplan 3.23.0 → 3.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/browser/{Button-Cdcme0dW.js → Button-DBTihmKU.js} +5 -5
  2. package/dist/browser/{CookieConsent-B7cDBqp6.js → CookieConsent-DlDte0lk.js} +8 -8
  3. package/dist/browser/{Debug-C1YnJvnk.js → Debug-BtvsTOMr.js} +10 -10
  4. package/dist/browser/{Demo-BIM3wFq3.js → Demo-_YQZ9fif.js} +10 -10
  5. package/dist/browser/{Free-D7U5AEcf.js → Free-D6J6-cXi.js} +12 -12
  6. package/dist/browser/{Gallery-BXlz1tz4.js → GalleryContainer-BnUt1PNs.js} +714 -589
  7. package/dist/browser/{GpsLoader-BdUzK_Wq.js → GpsLoader-OUCQ7ZMm.js} +31 -31
  8. package/dist/browser/{KioskStore-t38ARgcW.js → KioskStore-dFbTmzRX.js} +34 -34
  9. package/dist/browser/{MaplibreAdapter-CSAShUgd.js → MaplibreAdapter-Dm0ssNYr.js} +847 -838
  10. package/dist/browser/{ModalContainer-B33HKAAU.js → ModalContainer-dPz6CJEz.js} +59 -54
  11. package/dist/browser/{PermissionNotice-F6g9pz0M.js → PermissionNotice-CkPfMzyD.js} +6 -6
  12. package/dist/browser/{SetKioskMode-CJoi2gHM.js → SetKioskMode-B-vMQm34.js} +15 -15
  13. package/dist/browser/{ShowKiosk-H4rnBUGh.js → ShowKiosk-jHz_HhEH.js} +11 -11
  14. package/dist/browser/{ViewerMenuPanel-BmJhh8Ln.js → ViewerMenuPanel-6QP-3jhe.js} +18 -18
  15. package/dist/browser/{add-debug-secret-listener-BNoe6VU3.js → add-debug-secret-listener-CKkrKZtV.js} +1 -1
  16. package/dist/browser/{adopt-global-settings-DIweHmmO.js → adopt-global-settings-DDOfuPoA.js} +9 -9
  17. package/dist/browser/{boolean-editor-C9fqoeTB.js → boolean-editor-DbE8wBID.js} +9 -9
  18. package/dist/browser/{bootIntercom-BB5HdKln.js → bootIntercom-W2WvsUkQ.js} +2 -2
  19. package/dist/browser/{booth-by-xy-BP9IYJhy.js → booth-by-xy-Bl9WXuO-.js} +287 -287
  20. package/dist/browser/bundle.json +65 -65
  21. package/dist/browser/{classnames-Dmeqek3o.js → classnames-Bg5rLqNN.js} +2 -2
  22. package/dist/browser/{client-CBb2454O.js → client-DeQq5mQU.js} +4 -4
  23. package/dist/browser/{components-DyDFRZBC.js → components-on0LMU5X.js} +2032 -2034
  24. package/dist/browser/{debug-overlay-DXOrtUeJ.js → debug-overlay-DxDWBv6z.js} +10 -10
  25. package/dist/browser/{debug-ui-tNUnR4wz.js → debug-ui-EkvTnZPW.js} +6 -6
  26. package/dist/browser/{dist-BIFUFe-T.js → dist-BSIFCb0t.js} +5 -5
  27. package/dist/browser/{dist-DcOtrqGG.js → dist-UfmPsoUY.js} +3 -3
  28. package/dist/browser/{dist-DZfEO0RJ.js → dist-iqnveclN.js} +6 -6
  29. package/dist/browser/{efp-debug-init-B4ddpmiL.js → efp-debug-init-C0OHRZNn.js} +3 -3
  30. package/dist/browser/{enum-editor-CJB3E-Vh.js → enum-editor-Beyz9Cw7.js} +4 -4
  31. package/dist/browser/{es5-DeTUpXm2.js → es5-BLugQzbi.js} +2 -2
  32. package/dist/browser/{event-not-found-WRXwMJms.js → event-not-found-BVuVRHWg.js} +1 -1
  33. package/dist/browser/{exports-C5uYtLxL.js → exports-DbyVbUOC.js} +1 -1
  34. package/dist/browser/{favicon-5gTCZLy9.js → favicon-DpMbk9tx.js} +1 -1
  35. package/dist/browser/{fetch-retry.umd-BoyaQteS.js → fetch-retry.umd-BkW3rJuZ.js} +2 -2
  36. package/dist/browser/{flex-DjFgAKFt.js → flex-DPKB0RuC.js} +5 -5
  37. package/dist/browser/{floorplan.loader-Ck3XnezM.js → floorplan.loader-Bt4oybgX.js} +10 -10
  38. package/dist/browser/{floorplan.ready-CzTR8qqL.js → floorplan.ready-CwF4F1tf.js} +269 -269
  39. package/dist/browser/{fuse-BR27GheK.js → fuse-DDDXbqE_.js} +2 -2
  40. package/dist/browser/{i18n-DNH3sP4D.js → i18n-D_PeYM0A.js} +5 -5
  41. package/dist/browser/index.js +14 -14
  42. package/dist/browser/{index.module-DzGptmYn.js → index.module-DPKx9U0o.js} +4 -4
  43. package/dist/browser/{integrateKiosk-DN5HgMdz.js → integrateKiosk-BQaVMEWM.js} +5 -5
  44. package/dist/browser/{is-webview-CEqtlsy5.js → is-webview-BvcAtwvK.js} +1 -1
  45. package/dist/browser/{jsx-runtime-BRUHXGcL.js → jsx-runtime-CiltolM1.js} +2 -2
  46. package/dist/browser/{kiosk-record-C6KsyYH0.js → kiosk-record-CDOXD0YR.js} +1 -1
  47. package/dist/browser/{lib-BoYL1Y22.js → lib-CLR-Jqc_.js} +3 -3
  48. package/dist/browser/{loadImage-2JV_4hsV.js → loadImage-Bv8NDM3i.js} +4 -4
  49. package/dist/browser/{logDeviceInfo-Bga4LjdT.js → logDeviceInfo-IqDo_h8W.js} +9 -9
  50. package/dist/browser/{main-BUSluy8y.js → main-BfGxlpV2.js} +1 -1
  51. package/dist/browser/{mobx-Cp-RXiD6.js → mobx-DqXBQLr3.js} +4 -4
  52. package/dist/browser/{optional-boolean-editor-biZOa4EF.js → optional-boolean-editor-C2OpCDdc.js} +3 -3
  53. package/dist/browser/{optional-enum-editor-BuzYWVhL.js → optional-enum-editor-Bn_IuNy7.js} +4 -4
  54. package/dist/browser/{optional-string-editor-1Gxph7oU.js → optional-string-editor-BAnOpEsC.js} +4 -4
  55. package/dist/browser/{particles.min-Cq5SYO7P.js → particles.min-BizTykKa.js} +2 -2
  56. package/dist/browser/{react-BCiZTNvQ.js → react-1v6olhrH.js} +2 -2
  57. package/dist/browser/{react-dom-Gayzbfmi.js → react-dom-CXdU7G-n.js} +3 -3
  58. package/dist/browser/{rolldown-runtime-C4CgTizo.js → rolldown-runtime-MTWZj7PQ.js} +1 -1
  59. package/dist/browser/{select-BEAG7sfR.js → select-BMOhi0jB.js} +10 -10
  60. package/dist/browser/{settings-BJrS0XMO.js → settings-C2XBSodv.js} +2 -2
  61. package/dist/browser/{settings-item-C-rqGE6m.js → settings-item-DCdMf74g.js} +6 -6
  62. package/dist/browser/{store-DH91iUcL.js → store-W6DIPr1q.js} +5349 -5301
  63. package/dist/browser/{string-editor-fs3xB248.js → string-editor-BKRgpXC1.js} +4 -4
  64. package/dist/browser/{text-field-CN-pynRC.js → text-field-7VmhUoTM.js} +5 -5
  65. package/dist/browser/{theme-78GgHmsO.js → theme-B3dhDzGI.js} +8 -8
  66. package/dist/browser/{ui-BFQlKtKk.js → ui-Cj76n3w6.js} +8 -8
  67. package/dist/browser/useRenderTarget-DfvYoh2A.js +57 -0
  68. package/dist/esm/components/EntityList.js +1 -1
  69. package/dist/esm/components/Exhibitor.js +1 -1
  70. package/dist/esm/components/GalleryContainer.d.ts +6 -0
  71. package/dist/esm/components/GalleryContainer.js +1 -0
  72. package/dist/esm/components/Maplibre/useCameraReactions.js +1 -1
  73. package/dist/esm/components/OverlayContainer.d.ts +1 -2
  74. package/dist/esm/components/OverlayContainer.js +1 -1
  75. package/dist/esm/components/index.d.ts +1 -3
  76. package/dist/esm/components/index.js +1 -1
  77. package/dist/esm/store/OverlayStore.d.ts +19 -0
  78. package/dist/esm/store/OverlayStore.js +1 -0
  79. package/dist/esm/store/RootStore.d.ts +2 -0
  80. package/dist/esm/store/RootStore.js +1 -1
  81. package/dist/esm/store/RouteStore.d.ts +13 -0
  82. package/dist/esm/store/RouteStore.js +1 -1
  83. package/dist/esm/store/UIState.d.ts +0 -1
  84. package/dist/esm/store/UIState.js +1 -1
  85. package/dist/esm/store/index.d.ts +1 -0
  86. package/dist/esm/store/index.js +1 -1
  87. package/dist/esm/store/reveal-layer.d.ts +29 -0
  88. package/dist/esm/store/reveal-layer.js +1 -0
  89. package/package.json +9 -11
  90. package/dist/browser/useRenderTarget-CtWSXh71.js +0 -48
  91. package/dist/esm/components/Gallery/Gallery.d.ts +0 -13
  92. package/dist/esm/components/Gallery/Gallery.js +0 -1
  93. package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.d.ts +0 -8
  94. package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.js +0 -1
  95. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.d.ts +0 -9
  96. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +0 -1
  97. package/dist/esm/components/Gallery/GalleryImg/GalleryImg.d.ts +0 -14
  98. package/dist/esm/components/Gallery/GalleryImg/GalleryImg.js +0 -1
  99. package/dist/esm/components/Gallery/GalleryItem/GalleryItem.d.ts +0 -13
  100. package/dist/esm/components/Gallery/GalleryItem/GalleryItem.js +0 -1
  101. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +0 -12
  102. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +0 -1
  103. package/dist/esm/components/Gallery/GalleryPreLoader.d.ts +0 -7
  104. package/dist/esm/components/Gallery/GalleryPreLoader.js +0 -1
  105. package/dist/esm/components/Gallery/TransformImg/TransformImg.d.ts +0 -10
  106. package/dist/esm/components/Gallery/TransformImg/TransformImg.js +0 -1
  107. package/dist/esm/components/Overlay.d.ts +0 -23
  108. package/dist/esm/components/Overlay.js +0 -1
  109. package/dist/esm/components/Toast/ToastContainer.d.ts +0 -12
  110. package/dist/esm/components/Toast/ToastContainer.js +0 -1
  111. package/dist/esm/components/Toast/ToastContext.d.ts +0 -2
  112. package/dist/esm/components/Toast/ToastContext.js +0 -1
  113. package/dist/esm/components/Toast/ToastProvider.d.ts +0 -6
  114. package/dist/esm/components/Toast/ToastProvider.js +0 -1
  115. package/dist/esm/components/Toast/index.d.ts +0 -2
  116. package/dist/esm/components/Toast/index.js +0 -1
  117. package/dist/esm/hooks/useDragGesture.d.ts +0 -19
  118. package/dist/esm/hooks/useDragGesture.js +0 -1
  119. package/dist/esm/hooks/useWindowSize.d.ts +0 -5
  120. package/dist/esm/hooks/useWindowSize.js +0 -1
  121. package/dist/esm/utils/useTimeout.d.ts +0 -2
  122. package/dist/esm/utils/useTimeout.js +0 -1
@@ -1,14 +1,14 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.23.0" };
4
+ e.SENTRY_RELEASE = { id: "3.23.2" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "0a67f4c1-0ef6-428f-92c6-94c57178bf21", e._sentryDebugIdIdentifier = "sentry-dbid-0a67f4c1-0ef6-428f-92c6-94c57178bf21");
7
7
  } catch {}
8
8
  })();
9
- import { t as e } from "./jsx-runtime-BRUHXGcL.js";
10
- import { t } from "./settings-item-C-rqGE6m.js";
11
- import { t as n } from "./text-field-CN-pynRC.js";
9
+ import { t as e } from "./jsx-runtime-CiltolM1.js";
10
+ import { t } from "./settings-item-DCdMf74g.js";
11
+ import { t as n } from "./text-field-7VmhUoTM.js";
12
12
  //#region ../debug/src/lib/ui/string-editor.tsx
13
13
  var r = e(), i = (e) => {
14
14
  var i;
@@ -1,15 +1,15 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.23.0" };
4
+ e.SENTRY_RELEASE = { id: "3.23.2" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "9c5a0877-c176-4e2d-b51c-123d50ab2b3c", e._sentryDebugIdIdentifier = "sentry-dbid-9c5a0877-c176-4e2d-b51c-123d50ab2b3c");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-C4CgTizo.js";
10
- import { t } from "./react-BCiZTNvQ.js";
11
- import { D as n, i as r, l as i, n as a, s as o, u as s, y as c } from "./flex-DjFgAKFt.js";
12
- import { t as l } from "./classnames-Dmeqek3o.js";
9
+ import { r as e } from "./rolldown-runtime-MTWZj7PQ.js";
10
+ import { t } from "./react-1v6olhrH.js";
11
+ import { D as n, i as r, l as i, n as a, s as o, u as s, y as c } from "./flex-DPKB0RuC.js";
12
+ import { t as l } from "./classnames-Bg5rLqNN.js";
13
13
  //#region ../../node_modules/.pnpm/@radix-ui+themes@3.3.0_@types+react-dom@19.2.3_@types+react@19.2.17__@types+react@19.2._5ea800d4e947acedb1fa1275f1697b17/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.js
14
14
  var u = /* @__PURE__ */ e(t()), d = /* @__PURE__ */ e(l()), f = {
15
15
  size: {
@@ -1,18 +1,18 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.23.0" };
4
+ e.SENTRY_RELEASE = { id: "3.23.2" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "f658045a-5be7-4ea4-a4b2-ddea9ab9caf3", e._sentryDebugIdIdentifier = "sentry-dbid-f658045a-5be7-4ea4-a4b2-ddea9ab9caf3");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-C4CgTizo.js";
10
- import { t } from "./react-BCiZTNvQ.js";
11
- import { t as n } from "./jsx-runtime-BRUHXGcL.js";
12
- import { t as r } from "./react-dom-Gayzbfmi.js";
13
- import { C as i, E as a, O as o, T as s, _ as c, o as l, v as u, w as d } from "./flex-DjFgAKFt.js";
14
- import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-DZfEO0RJ.js";
15
- import { t as y } from "./classnames-Dmeqek3o.js";
9
+ import { r as e } from "./rolldown-runtime-MTWZj7PQ.js";
10
+ import { t } from "./react-1v6olhrH.js";
11
+ import { t as n } from "./jsx-runtime-CiltolM1.js";
12
+ import { t as r } from "./react-dom-CXdU7G-n.js";
13
+ import { C as i, E as a, O as o, T as s, _ as c, o as l, v as u, w as d } from "./flex-DPKB0RuC.js";
14
+ import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-iqnveclN.js";
15
+ import { t as y } from "./classnames-Bg5rLqNN.js";
16
16
  //#region ../../node_modules/.pnpm/@radix-ui+react-visually-hidden@1.2.3_@types+react-dom@19.2.3_@types+react@19.2.17__@ty_cffccd7838985066e8e1d993b5cb6017/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
17
17
  var b = /* @__PURE__ */ e(r(), 1), x = /* @__PURE__ */ e(t(), 1), S = n(), C = Object.freeze({
18
18
  position: "absolute",
@@ -1,17 +1,17 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.23.0" };
4
+ e.SENTRY_RELEASE = { id: "3.23.2" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "3c34ab8b-5d65-4c06-8595-6ed371acabc5", e._sentryDebugIdIdentifier = "sentry-dbid-3c34ab8b-5d65-4c06-8595-6ed371acabc5");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-C4CgTizo.js";
10
- import { a as t, i as n, s as r } from "./efp-debug-init-B4ddpmiL.js";
11
- import { a as i, i as a } from "./adopt-global-settings-DIweHmmO.js";
12
- import { t as o } from "./jsx-runtime-BRUHXGcL.js";
13
- import "./settings-BJrS0XMO.js";
14
- import { t as s } from "./add-debug-secret-listener-BNoe6VU3.js";
9
+ import { r as e } from "./rolldown-runtime-MTWZj7PQ.js";
10
+ import { a as t, i as n, s as r } from "./efp-debug-init-C0OHRZNn.js";
11
+ import { a as i, i as a } from "./adopt-global-settings-DDOfuPoA.js";
12
+ import { t as o } from "./jsx-runtime-CiltolM1.js";
13
+ import "./settings-C2XBSodv.js";
14
+ import { t as s } from "./add-debug-secret-listener-CKkrKZtV.js";
15
15
  //#region ../debug/src/lib/ui/render-debug-ui.tsx
16
16
  var c = /* @__PURE__ */ e(r(), 1), l = o(), u = !1;
17
17
  function d() {
@@ -26,7 +26,7 @@ function d() {
26
26
  }
27
27
  });
28
28
  let o = async (t) => {
29
- let { DebugUi: n } = await import("./debug-ui-tNUnR4wz.js"), { createRoot: i } = await import("./client-CBb2454O.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
29
+ let { DebugUi: n } = await import("./debug-ui-EkvTnZPW.js"), { createRoot: i } = await import("./client-DeQq5mQU.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
30
30
  document.body.appendChild(a), i(a).render(/* @__PURE__ */ (0, l.jsx)(n, {
31
31
  useDebugButtonState: r.useState,
32
32
  open: t
@@ -0,0 +1,57 @@
1
+ (function() {
2
+ try {
3
+ var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
+ e.SENTRY_RELEASE = { id: "3.23.2" };
5
+ var t = new e.Error().stack;
6
+ t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "7407e64e-4c4e-4bfb-b2ef-80063ad22998", e._sentryDebugIdIdentifier = "sentry-dbid-7407e64e-4c4e-4bfb-b2ef-80063ad22998");
7
+ } catch {}
8
+ })();
9
+ import { r as e } from "./rolldown-runtime-MTWZj7PQ.js";
10
+ import { t } from "./react-1v6olhrH.js";
11
+ import { l as n } from "./store-W6DIPr1q.js";
12
+ //#region ../ui/src/shared/activeElement.ts
13
+ var r = (e) => !!e && "activeElement" in e;
14
+ function i(e) {
15
+ var t;
16
+ let n = e == null ? void 0 : e.getRootNode(), i = r(n) ? n.activeElement : document.activeElement;
17
+ for (; !(i == null || (t = i.shadowRoot) == null) && t.activeElement;) i = i.shadowRoot.activeElement;
18
+ return i;
19
+ }
20
+ //#endregion
21
+ //#region src/utils/getRenderTargetFromRoot.ts
22
+ var a = /* @__PURE__ */ e(t(), 1);
23
+ function o(e) {
24
+ var t;
25
+ if (!e) return console.error("[getRenderTargetFromRoot] rootElement is null"), null;
26
+ let n = e.firstElementChild;
27
+ if (n && n.shadowRoot) {
28
+ let e = n.shadowRoot.querySelector("#efp-layout");
29
+ if (e) return e;
30
+ }
31
+ return ((t = e.querySelector) == null ? void 0 : t.call(e, "#efp-layout")) || (console.error("[getRenderTargetFromRoot] rootElement is null"), null);
32
+ }
33
+ //#endregion
34
+ //#region src/utils/useRenderTarget.ts
35
+ var s = () => {
36
+ let [e, t] = (0, a.useState)(() => o(n.rootElement));
37
+ return (0, a.useEffect)(() => {
38
+ var e, r;
39
+ if (typeof window > "u" || !n.rootElement) return;
40
+ let i = !1, a = null, s = () => {
41
+ let e = o(n.rootElement);
42
+ return e && !i ? (t((t) => t === e ? t : e), !0) : !1;
43
+ };
44
+ if (s()) return;
45
+ let c = (e = (r = n.rootElement.firstElementChild) == null ? void 0 : r.shadowRoot) == null ? n.rootElement : e;
46
+ return a = new MutationObserver(() => {
47
+ s() && a && a.disconnect();
48
+ }), a.observe(c, {
49
+ childList: !0,
50
+ subtree: !0
51
+ }), () => {
52
+ i = !0, a && a.disconnect();
53
+ };
54
+ }, [n.rootElement]), e;
55
+ };
56
+ //#endregion
57
+ export { i as n, s as t };
@@ -1 +1 @@
1
- import{jsx as c}from"react/jsx-runtime";import"./EntityList.scss";import{Spinner as x}from"@expofp/ui";import{observer as v}from"mobx-react-lite";import{lazy as C,Suspense as T,useCallback as L,useContext as E,useEffect as w,useRef as R}from"react";import e,{uiState as t}from"../store";import P from"../tools/settings";import{t as I}from"../utils/i18n";import O from"./EntityListRow";import{OverlayScrollContext as H}from"./Overlay";const S=()=>import("react-virtuoso").then(r=>({default:r.Virtuoso})).catch(()=>new Promise(r=>setTimeout(()=>r(S()),3e3))),V=C(S),_=["ipia2025"],z=({updatedScrollableRef:r,updateScroll:m})=>{const f=E(H),a=R(null),b=t.getListScrollItemId(t.list.type),g=_.includes(P.EXPO);w(()=>{const n=t.getListScrollTop(t.list.type),l=t.getListScrollItemId(t.list.type);(n>0||l)&&setTimeout(()=>{if(a.current){if(l){const o=t.listItems.findIndex(s=>s?.id?.toString()===l.toString());if(o!==-1){a.current.scrollToIndex({index:o,align:"center",behavior:"auto"});return}}n>0&&a.current.scrollTo({top:n,behavior:"auto"})}},100)},[t.list.type]);const u=t.showRouteInstantly,y=L((n,l)=>{const o=parseInt(l,10);switch(t.setListScrollItemId(t.list?.type,o),a.current?a.current.getState(s=>{const h=s?.scrollTop||0;t.setListScrollTop(t.list?.type,h)}):r.current&&t.setListScrollTop(t.list?.type,r.current.scrollTop||0),n){case"exhibitor":const s=e.exhibitorStore.exhibitors.find(i=>i.id===o);u?e.routeStore.clickRoute(null,e.routeStore.tempToBooth||s.booths[0]):e.clickExhibitor(s);break;case"booth":const h=e.boothStore.booths.find(i=>i.id===o);u?e.routeStore.clickRoute(null,h):e.clickBoothInList2(h);break;case"category":e.clickCategory(e.categoryStore.categories.find(i=>i.id===o));break;case"event":const p=e.eventStore.eventItems.find(i=>i.id===o);if(p){const i=e.boothStore.booths.find(d=>d.id===p.boothId);u&&i?e.routeStore.clickRoute(null,i):e.selectEventItem(p,!0)}break;case"speaker":{const i=e.speakerStore.speakers.find(d=>d.id===o);i&&e.selectSpeaker(i,!0);break}}},[u,r]),k=()=>c("div",{className:"list-empty",children:t.list.type==="search"?I("Oops, nothing found"):I("No items to show")});return f===null||t.setKioskModeEnabled?null:t.listItems.length?c("div",{style:{height:"100%",cursor:"pointer",resize:"both",minHeight:100},children:c(T,{fallback:c(x,{active:!0,isCenter:!0}),children:c(V,{ref:a,className:"list-virtual",style:{minHeight:t.listItems.length?"1px":0},data:t.listItems,itemContent:(n,l)=>{const o=l;if(!o)return null;const s=b?.toString()===o.id?.toString();return c(O,{item:o,index:n,current:s,compactDetails:g,onClick:y},o.id)},itemsRendered:()=>m&&setTimeout(m),totalListHeightChanged:()=>m&&m(),customScrollParent:f,totalCount:t.listItems.length,overscan:20,increaseViewportBy:200,initialItemCount:Math.min(t.listScrollIndex+30,t.listItems.length)})})}):c(k,{})};export default v(z);
1
+ import{jsx as c}from"react/jsx-runtime";import"./EntityList.scss";import{OverlayScrollContext as x,Spinner as v}from"@expofp/ui";import{observer as C}from"mobx-react-lite";import{lazy as T,Suspense as L,useCallback as E,useContext as w,useEffect as R,useRef as P}from"react";import e,{uiState as t}from"../store";import O from"../tools/settings";import{t as I}from"../utils/i18n";import H from"./EntityListRow";const S=()=>import("react-virtuoso").then(r=>({default:r.Virtuoso})).catch(()=>new Promise(r=>setTimeout(()=>r(S()),3e3))),V=T(S),_=["ipia2025"],z=({updatedScrollableRef:r,updateScroll:m})=>{const f=w(x),a=P(null),b=t.getListScrollItemId(t.list.type),g=_.includes(O.EXPO);R(()=>{const n=t.getListScrollTop(t.list.type),l=t.getListScrollItemId(t.list.type);(n>0||l)&&setTimeout(()=>{if(a.current){if(l){const o=t.listItems.findIndex(s=>s?.id?.toString()===l.toString());if(o!==-1){a.current.scrollToIndex({index:o,align:"center",behavior:"auto"});return}}n>0&&a.current.scrollTo({top:n,behavior:"auto"})}},100)},[t.list.type]);const u=t.showRouteInstantly,y=E((n,l)=>{const o=parseInt(l,10);switch(t.setListScrollItemId(t.list?.type,o),a.current?a.current.getState(s=>{const h=s?.scrollTop||0;t.setListScrollTop(t.list?.type,h)}):r.current&&t.setListScrollTop(t.list?.type,r.current.scrollTop||0),n){case"exhibitor":const s=e.exhibitorStore.exhibitors.find(i=>i.id===o);u?e.routeStore.clickRoute(null,e.routeStore.tempToBooth||s.booths[0]):e.clickExhibitor(s);break;case"booth":const h=e.boothStore.booths.find(i=>i.id===o);u?e.routeStore.clickRoute(null,h):e.clickBoothInList2(h);break;case"category":e.clickCategory(e.categoryStore.categories.find(i=>i.id===o));break;case"event":const d=e.eventStore.eventItems.find(i=>i.id===o);if(d){const i=e.boothStore.booths.find(p=>p.id===d.boothId);u&&i?e.routeStore.clickRoute(null,i):e.selectEventItem(d,!0)}break;case"speaker":{const i=e.speakerStore.speakers.find(p=>p.id===o);i&&e.selectSpeaker(i,!0);break}}},[u,r]),k=()=>c("div",{className:"list-empty",children:t.list.type==="search"?I("Oops, nothing found"):I("No items to show")});return f===null||t.setKioskModeEnabled?null:t.listItems.length?c("div",{style:{height:"100%",cursor:"pointer",resize:"both",minHeight:100},children:c(L,{fallback:c(v,{active:!0,isCenter:!0}),children:c(V,{ref:a,className:"list-virtual",style:{minHeight:t.listItems.length?"1px":0},data:t.listItems,itemContent:(n,l)=>{const o=l;if(!o)return null;const s=b?.toString()===o.id?.toString();return c(H,{item:o,index:n,current:s,compactDetails:g,onClick:y},o.id)},itemsRendered:()=>m&&setTimeout(m),totalListHeightChanged:()=>m&&m(),customScrollParent:f,totalCount:t.listItems.length,overscan:20,increaseViewportBy:200,initialItemCount:Math.min(t.listScrollIndex+30,t.listItems.length)})})}):c(k,{})};export default C(z);
@@ -1 +1 @@
1
- import{Fragment as N,jsx as i,jsxs as n}from"react/jsx-runtime";import"./Exhibitor.scss";import{Button as R}from"@expofp/ui";import g from"classnames";import{observer as Q,useLocalStore as Z,useObserver as T}from"mobx-react-lite";import ee,{Suspense as D,useEffect as ie,useRef as C,useState as I}from"react";import{Transition as te}from"react-transition-group";import p from"../data";import a,{uiState as o}from"../store";import{RegularBooth as oe}from"../store/BoothStore";import{GaEventActions as d,sendEventToGa as O}from"../tools/gtag";import re from"../tools/logger";import y from"../tools/settings";import{t as h}from"../utils/i18n";import ne from"../utils/is-mobile";import{useReaction as ae}from"../utils/mobx";import se from"../utils/useHeatmapOverlay";import le from"./AlertContainer";import ce from"./DownloadListContainer";import U from"./ErrorBoundary";import de from"./RebookingNotesContainer";import he from"./RebookingRadioGroupContainer";import me from"./Schedule";import ue from"./ShowMoreButtonContainer";import be from"./SidebarActionsContainer";import{getDescription as ke}from"./utils/getDescription";const G=ee.lazy(()=>import("./Gallery/Gallery")),ge=Q(function(){const S=C(null),r=Z(()=>({collapsed:!0,updateOverlayContent:null,get exhibitor(){return o.selectedExhibitor},get websiteTrimmed(){return this.exhibitor.website?this.exhibitor.website.replace(/^(http(s?):\/\/)([^/]+)(\/)?$/i,"$3"):""},get anySocial(){return o.kiosk?!1:!!["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||o.overlayPosition==="left"&&(this.exhibitor.description||"").length<800},get showEdit(){return!!(p.sendLoginLinkUrl&&this.sendLinkEmail)},get sendLinkEmail(){return this.exhibitor.privateEmail||this.exhibitor.email}})),{heatmapBar:A}=se(r.exhibitor),[w,z]=I(!1),[f,M]=I(!1),x=C(null);ie(()=>((()=>{if(x.current){const c=x.current.offsetHeight;z(c>300)}})(),()=>{a.exhibitorStore.rebookingStateChangeRequested=!1}),[]),ae(()=>r.exhibitor,()=>{S.current&&(S.current.parentElement.scrollTop=0),r.collapsed=!0});function _(e,c){if(u(c),o.kiosk)return e.preventDefault()}function H(e,c,m){O(d.ClickCustomButton,r.exhibitor.name);const b={externalId:r.exhibitor.externalId,buttonNumber:e,buttonUrl:c,preventDefault:m.preventDefault.bind(m)};o.onExhibitorCustomButtonClick&&o.onExhibitorCustomButtonClick(b)}function u(e){O(e,r.exhibitor.name)}const B=C(),V={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0}},E=150;return T(()=>{const e=r.exhibitor,c=p.isRebooking?(()=>{const t=new Set;for(const s of e.booths)s instanceof oe&&s.size&&t.add(s.size);const l=Array.from(t);return n("div",{children:[l.length>0&&i("div",{className:"booth__infos",style:{padding:"0 15px",marginBottom:"1rem"},children:n("div",{className:"booth__info",children:[i("div",{className:"booth__info-icon",children:i("i",{className:"icon-size"})}),n("div",{className:"booth__info-body",children:[i("div",{className:"booth__info-title",children:h("Size")}),i("div",{className:"booth__info-val",children:l.join(", ")})]})]})}),i(he,{value:e.rebookingState.toString(),onChange:s=>a.exhibitorStore.setRebookingState(e,parseInt(s),e.rebookingNote)}),i(de,{value:e.rebookingNote||"",onSave:s=>a.exhibitorStore.setRebookingState(e,e.rebookingState,s)},e.id),i(te,{in:a.exhibitorStore.rebookingStateChangeRequested,nodeRef:B,timeout:E,appear:!0,enter:!0,exit:!0,mountOnEnter:!0,unmountOnExit:!0,children:s=>i("div",{ref:B,style:{position:"fixed",bottom:"1rem",left:"1rem",zIndex:9999,transition:`opacity ${E}ms ease-in-out`,opacity:0,...V[s]},children:i(le,{title:a.exhibitorStore.rebookingStateSaved?h("Changes saved"):h("Oops! Something went wrong"),variant:a.exhibitorStore.rebookingStateSaved?"success":"error",inline:!0,closable:!0,onClose:()=>{a.exhibitorStore.rebookingStateChangeRequested=!1}})})})]})})():null,m=g({exhibitor:!0,"is-featured":e.featured,bookmarked:e.bookmarked,[o.responsiveClass]:!0}),b=()=>{r.collapsed=!1,setTimeout(r.updateOverlayContent)};function k(t,l,s){return!t||!l||o.kiosk||o.previewMode?null:i("div",{className:"exhibitor-custom-button",children:i(R,{link:l,inline:!0,onClick:v=>{H(s,l,v)},target:"_blank",children:t})},s)}const X=({exhibitor:t})=>{const s=[k(t.customButtonTitle,t.customButtonUrl,1),k(t.customButton2Title,t.customButton2Url,2),k(t.customButton3Title,t.customButton3Url,3)].filter(Boolean);return s.length===0?null:i("div",{className:"exhibitor-custom-buttons",children:s})};function K(){return!p.hideShareButton&&!o.kiosk&&window.location.host.endsWith(".expofp.com")&&y.EXPO!=="globalaltsmiami2024"}function L(){r.updateOverlayContent()}const W=()=>{a.routeStore.clickRoute(null,a.routeStore.tempToBooth||e.booths[0]),a.routeStore.currentRouteExhibitor=e},J=t=>/^\d+$/.test(t),Y=t=>p.shortLevelName?t.layer?.shortName:t.layer?.description;return n("div",{className:m,"aria-label":h("Details"),children:[n("div",{className:"exhibitor__header",children:[n("div",{className:"exhibitor__header-name",children:[i("div",{className:"exhibitor__header-icon",children:i("i",{className:"icon-exhibitor-solid"})}),i("span",{dir:"auto",children:e.name}),A]}),i("button",{type:"button",onClick:()=>a.searchStore.handleBackAction(),className:"exhibitor__header-close",children:i("i",{className:"icon-close"})})]}),c||n(N,{children:[i("div",{className:"exhibitor__buttons",children:!o.isGuidedToursActive&&i(be,{showBookmark:!o.disableBookmarked&&!p.hideBookmarks&&!o.kiosk,showDirections:e.booths.length>0&&y.wayfinding,inBookmark:e.bookmarked,showShare:K(),showVisited:!o.kiosk,visited:e.visited,onClickBookmark:F,onClickShare:P,onClickDirections:W,onClickVisited:$})}),e.leadingImageUrl?i("div",{className:"exhibitor__leading-image-container exhibitor-slider",children:e.leadingImageLinkUrl?i("a",{href:e.leadingImageLinkUrl,target:"_blank",rel:"noopener noreferrer",children:i("img",{src:e.leadingImageUrl,className:"exhibitor__leading-image",alt:"",crossOrigin:"anonymous"})}):i(U,{children:i(D,{fallback:null,children:i(G,{className:o.responsiveClass,onOpenGallery:()=>a.openGallery(),onCloseGallery:()=>a.closeGallery(),onImageLoadHeightUpdate:L,leading:!0,images:[e.leadingImageUrl]})})})}):null,n("div",{className:g("exhibitor__details",{"details-hidden":o.kiosk&&w&&!f}),ref:x,children:[n("div",{className:g("exhibitor-categories",{"is-links-disabled":o.isGuidedToursActive}),children:[e.featured&&i("div",{className:"exhibitor-featured",children:h("Featured")}),e.booths.map(t=>{const l=Y(t),s=v=>{v.preventDefault(),a.toggleMapOverlay(),a.selectBooth(t)};return n("a",{href:`?${t.slug}`,onClick:s,className:"exhibitor-categories__booth",children:[i("div",{className:"exhibitor-categories__booth-name",children:t.name}),l&&n("div",{className:"exhibitor-categories__booth-level",children:[J(l)?h("Level")+" ":"",l]})]},t.id)}),e.categories.map(t=>i("a",{href:"?"+encodeURIComponent(t.slug),onClick:l=>{l.preventDefault(),j(t)},className:t.sponsorship?"exhibitor-categories__sponsorship":"exhibitor-categories__cat",children:t.name},t.id))]}),e.description||e.logo?.url?n("div",{className:g("exhibitor-description",{collapsed:r.collapsed&&!r.disableCollapse}),children:[e.logo?.url?i("div",{className:g("exhibitor-description__logo",{"exhibitor-description__logo--left":!e.description}),children:i("img",{src:e.logo.url,alt:e.name,crossOrigin:"anonymous"})}):null,e.description?i("span",{className:"exhibitor-description__content",dir:"auto",dangerouslySetInnerHTML:{__html:ke(e.description)},onClick:b}):null]}):null,(!!e.schedule?.length||!!e.booths[0]?.schedule.length)&&i(me,{events:[...e.schedule||e.booths[0]?.schedule||[]].sort((t,l)=>new Date(t.startDate).getTime()-new Date(l.startDate).getTime())}),!o.kiosk&&e.videoUrl&&navigator.onLine&&i("div",{className:"exhibitor-video",children:i("iframe",{src:e.videoUrl,"data-allow":"encrypted-media; autoplay; fullscreen",title:h("Exhibitor Video"),allowFullScreen:!0})}),e.gallery&&i("div",{className:"exhibitor-slider",onClick:()=>u(d.ViewGallery),children:i(U,{children:i(D,{fallback:null,children:i(G,{className:o.responsiveClass,onOpenGallery:()=>a.openGallery(),onCloseGallery:()=>a.closeGallery(),onImageLoadHeightUpdate:L,images:e.gallery})})})}),!o.kiosk&&e.marketMaterials&&n(N,{children:[i("div",{className:"exhibitor-sep"}),i(ce,{list:e.marketMaterials})]}),r.showEdit&&i("div",{className:"exhibitor-sep"}),!o.kiosk&&r.showEdit&&i("div",{className:"exhibitor-edit",children:i(R,{size:"sm",variant:"secondary",onClick:q,children:h("Edit")})}),r.anyAddress&&n("div",{className:"exhibitor-meta",children:[!!(e.address||e.address2)&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-marker-pin-solid"})}),n("div",{className:"exhibitor-meta__content",children:[e.address,!!e.address2&&i("div",{children:e.address2}),!!(e.city||e.state||e.zip)&&n("div",{children:[e.city,!!(e.city&&e.state)&&i("span",{children:" "}),e.state,!!(e.state&&e.zip)&&i("span",{children:"\xA0"})," ",e.zip]}),!!e.country&&i("div",{children:e.country})]})]}),!!e.phone1&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-phone-solid"})}),i("div",{className:"exhibitor-meta__content",children:i("a",{dir:"ltr",href:"tel:"+e.phone1,className:"exhibitor-meta__link",onClick:t=>_(t,d.ClickPhone),children:e.phone1})})]}),!!e.website&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-globe-solid"})}),i("div",{className:"exhibitor-meta__content",children:i("a",{href:e.website,target:"_blank",rel:"noopener noreferrer",className:"exhibitor-meta__link",onClick:t=>_(t,d.ClickWebsite),children:r.websiteTrimmed})})]}),!!e.email&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-mail-at-solid"})}),i("div",{className:"exhibitor-meta__content",children:i("a",{href:"mailto:"+e.email,target:"_blank",rel:"noopener noreferrer",className:"exhibitor-meta__link",onClick:t=>_(t,d.ClickEmail),children:e.email})})]}),r.anySocial&&n("div",{className:"exhibitor-meta__socials",children:[i("a",{href:e.facebook,className:"exhibitor-meta__social",onClick:()=>u(d.ClickFacebook),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-facebook"})}),i("a",{href:e.instagram,className:"exhibitor-meta__social",onClick:()=>u(d.ClickInstagaram),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-instagram"})}),i("a",{href:e.linkedin,className:"exhibitor-meta__social",onClick:()=>u(d.ClickLinkedin),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-linkedin"})}),i("a",{href:e.twitter,className:"exhibitor-meta__social",onClick:()=>u(d.ClickTwitter),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-twitter-x"})}),i("a",{href:e.xing,className:"exhibitor-meta__social",onClick:()=>u(d.ClickXing),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-xing"})}),i("a",{href:e.youtube,className:"exhibitor-meta__social",onClick:()=>u(d.ClickYoutube),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-youtube"})})]})]}),i(X,{exhibitor:e})]}),o.kiosk&&w&&i(ue,{className:g("exhibitor__show-more",{"is-sticky":f}),expanded:f,onClick:()=>M(t=>!t)})]})]})});function P(){const e=window.navigator,c={title:o.selectedExhibitor.name,url:window.location.href};ne&&e?.canShare&&e.canShare(c)?e.share(c):a.toggleModal("share")}function j(e){a.clickCategory(e)}function q(e){if(o.kiosk)return e.preventDefault();e.target.blur();const c=r.sendLinkEmail;if(!window.confirm(h("Send login instructions to {{email}} to edit profile?",{email:c}))||y.EXPO==="expo")return;const m=new XMLHttpRequest;m.open("POST",p.sendLoginLinkUrl),m.setRequestHeader("Content-Type","application/json");function b(){alert(h("Error sending login instructions"))}m.onload=function(k){if(this.status!==200){b();return}alert(h("A link to edit profile was sent to {{email}}",{email:c}))},m.onerror=function(k){re.error("Error",k),b()},m.send(JSON.stringify({id:r.exhibitor.id}))}function F(){r.exhibitor.bookmarked=!r.exhibitor.bookmarked,o.onBookmarkClick&&o.onBookmarkClick({name:r.exhibitor.name,bookmarked:r.exhibitor.bookmarked,externalId:r.exhibitor.externalId})}function $(){r.exhibitor.visited=!r.exhibitor.visited,o.onVisitedClick&&o.onVisitedClick({name:r.exhibitor.name,visited:r.exhibitor.visited,externalId:r.exhibitor.externalId})}});export default()=>T(()=>i(N,{children:!o.menu&&o.selectedExhibitor?i(ge,{}):null}));
1
+ import{Fragment as N,jsx as i,jsxs as n}from"react/jsx-runtime";import"./Exhibitor.scss";import{Button as R}from"@expofp/ui";import g from"classnames";import{observer as Q,useLocalStore as Z,useObserver as T}from"mobx-react-lite";import ee,{Suspense as D,useEffect as ie,useRef as C,useState as I}from"react";import{Transition as te}from"react-transition-group";import p from"../data";import a,{uiState as o}from"../store";import{RegularBooth as oe}from"../store/BoothStore";import{GaEventActions as d,sendEventToGa as O}from"../tools/gtag";import re from"../tools/logger";import y from"../tools/settings";import{t as h}from"../utils/i18n";import ne from"../utils/is-mobile";import{useReaction as ae}from"../utils/mobx";import se from"../utils/useHeatmapOverlay";import le from"./AlertContainer";import ce from"./DownloadListContainer";import U from"./ErrorBoundary";import de from"./RebookingNotesContainer";import he from"./RebookingRadioGroupContainer";import me from"./Schedule";import ue from"./ShowMoreButtonContainer";import be from"./SidebarActionsContainer";import{getDescription as ke}from"./utils/getDescription";const G=ee.lazy(()=>import("./GalleryContainer")),ge=Q(function(){const S=C(null),r=Z(()=>({collapsed:!0,updateOverlayContent:null,get exhibitor(){return o.selectedExhibitor},get websiteTrimmed(){return this.exhibitor.website?this.exhibitor.website.replace(/^(http(s?):\/\/)([^/]+)(\/)?$/i,"$3"):""},get anySocial(){return o.kiosk?!1:!!["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||o.overlayPosition==="left"&&(this.exhibitor.description||"").length<800},get showEdit(){return!!(p.sendLoginLinkUrl&&this.sendLinkEmail)},get sendLinkEmail(){return this.exhibitor.privateEmail||this.exhibitor.email}})),{heatmapBar:A}=se(r.exhibitor),[w,z]=I(!1),[f,M]=I(!1),x=C(null);ie(()=>((()=>{if(x.current){const c=x.current.offsetHeight;z(c>300)}})(),()=>{a.exhibitorStore.rebookingStateChangeRequested=!1}),[]),ae(()=>r.exhibitor,()=>{S.current&&(S.current.parentElement.scrollTop=0),r.collapsed=!0});function _(e,c){if(u(c),o.kiosk)return e.preventDefault()}function H(e,c,m){O(d.ClickCustomButton,r.exhibitor.name);const b={externalId:r.exhibitor.externalId,buttonNumber:e,buttonUrl:c,preventDefault:m.preventDefault.bind(m)};o.onExhibitorCustomButtonClick&&o.onExhibitorCustomButtonClick(b)}function u(e){O(e,r.exhibitor.name)}const B=C(),V={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0}},E=150;return T(()=>{const e=r.exhibitor,c=p.isRebooking?(()=>{const t=new Set;for(const s of e.booths)s instanceof oe&&s.size&&t.add(s.size);const l=Array.from(t);return n("div",{children:[l.length>0&&i("div",{className:"booth__infos",style:{padding:"0 15px",marginBottom:"1rem"},children:n("div",{className:"booth__info",children:[i("div",{className:"booth__info-icon",children:i("i",{className:"icon-size"})}),n("div",{className:"booth__info-body",children:[i("div",{className:"booth__info-title",children:h("Size")}),i("div",{className:"booth__info-val",children:l.join(", ")})]})]})}),i(he,{value:e.rebookingState.toString(),onChange:s=>a.exhibitorStore.setRebookingState(e,parseInt(s),e.rebookingNote)}),i(de,{value:e.rebookingNote||"",onSave:s=>a.exhibitorStore.setRebookingState(e,e.rebookingState,s)},e.id),i(te,{in:a.exhibitorStore.rebookingStateChangeRequested,nodeRef:B,timeout:E,appear:!0,enter:!0,exit:!0,mountOnEnter:!0,unmountOnExit:!0,children:s=>i("div",{ref:B,style:{position:"fixed",bottom:"1rem",left:"1rem",zIndex:9999,transition:`opacity ${E}ms ease-in-out`,opacity:0,...V[s]},children:i(le,{title:a.exhibitorStore.rebookingStateSaved?h("Changes saved"):h("Oops! Something went wrong"),variant:a.exhibitorStore.rebookingStateSaved?"success":"error",inline:!0,closable:!0,onClose:()=>{a.exhibitorStore.rebookingStateChangeRequested=!1}})})})]})})():null,m=g({exhibitor:!0,"is-featured":e.featured,bookmarked:e.bookmarked,[o.responsiveClass]:!0}),b=()=>{r.collapsed=!1,setTimeout(r.updateOverlayContent)};function k(t,l,s){return!t||!l||o.kiosk||o.previewMode?null:i("div",{className:"exhibitor-custom-button",children:i(R,{link:l,inline:!0,onClick:v=>{H(s,l,v)},target:"_blank",children:t})},s)}const X=({exhibitor:t})=>{const s=[k(t.customButtonTitle,t.customButtonUrl,1),k(t.customButton2Title,t.customButton2Url,2),k(t.customButton3Title,t.customButton3Url,3)].filter(Boolean);return s.length===0?null:i("div",{className:"exhibitor-custom-buttons",children:s})};function K(){return!p.hideShareButton&&!o.kiosk&&window.location.host.endsWith(".expofp.com")&&y.EXPO!=="globalaltsmiami2024"}function L(){r.updateOverlayContent()}const W=()=>{a.routeStore.clickRoute(null,a.routeStore.tempToBooth||e.booths[0]),a.routeStore.currentRouteExhibitor=e},J=t=>/^\d+$/.test(t),Y=t=>p.shortLevelName?t.layer?.shortName:t.layer?.description;return n("div",{className:m,"aria-label":h("Details"),children:[n("div",{className:"exhibitor__header",children:[n("div",{className:"exhibitor__header-name",children:[i("div",{className:"exhibitor__header-icon",children:i("i",{className:"icon-exhibitor-solid"})}),i("span",{dir:"auto",children:e.name}),A]}),i("button",{type:"button",onClick:()=>a.searchStore.handleBackAction(),className:"exhibitor__header-close",children:i("i",{className:"icon-close"})})]}),c||n(N,{children:[i("div",{className:"exhibitor__buttons",children:!o.isGuidedToursActive&&i(be,{showBookmark:!o.disableBookmarked&&!p.hideBookmarks&&!o.kiosk,showDirections:e.booths.length>0&&y.wayfinding,inBookmark:e.bookmarked,showShare:K(),showVisited:!o.kiosk,visited:e.visited,onClickBookmark:F,onClickShare:P,onClickDirections:W,onClickVisited:$})}),e.leadingImageUrl?i("div",{className:"exhibitor__leading-image-container exhibitor-slider",children:e.leadingImageLinkUrl?i("a",{href:e.leadingImageLinkUrl,target:"_blank",rel:"noopener noreferrer",children:i("img",{src:e.leadingImageUrl,className:"exhibitor__leading-image",alt:"",crossOrigin:"anonymous"})}):i(U,{children:i(D,{fallback:null,children:i(G,{className:o.responsiveClass,onOpenGallery:()=>a.openGallery(),onCloseGallery:()=>a.closeGallery(),onImageLoadHeightUpdate:L,leading:!0,images:[e.leadingImageUrl]})})})}):null,n("div",{className:g("exhibitor__details",{"details-hidden":o.kiosk&&w&&!f}),ref:x,children:[n("div",{className:g("exhibitor-categories",{"is-links-disabled":o.isGuidedToursActive}),children:[e.featured&&i("div",{className:"exhibitor-featured",children:h("Featured")}),e.booths.map(t=>{const l=Y(t),s=v=>{v.preventDefault(),a.toggleMapOverlay(),a.selectBooth(t)};return n("a",{href:`?${t.slug}`,onClick:s,className:"exhibitor-categories__booth",children:[i("div",{className:"exhibitor-categories__booth-name",children:t.name}),l&&n("div",{className:"exhibitor-categories__booth-level",children:[J(l)?h("Level")+" ":"",l]})]},t.id)}),e.categories.map(t=>i("a",{href:"?"+encodeURIComponent(t.slug),onClick:l=>{l.preventDefault(),j(t)},className:t.sponsorship?"exhibitor-categories__sponsorship":"exhibitor-categories__cat",children:t.name},t.id))]}),e.description||e.logo?.url?n("div",{className:g("exhibitor-description",{collapsed:r.collapsed&&!r.disableCollapse}),children:[e.logo?.url?i("div",{className:g("exhibitor-description__logo",{"exhibitor-description__logo--left":!e.description}),children:i("img",{src:e.logo.url,alt:e.name,crossOrigin:"anonymous"})}):null,e.description?i("span",{className:"exhibitor-description__content",dir:"auto",dangerouslySetInnerHTML:{__html:ke(e.description)},onClick:b}):null]}):null,(!!e.schedule?.length||!!e.booths[0]?.schedule.length)&&i(me,{events:[...e.schedule||e.booths[0]?.schedule||[]].sort((t,l)=>new Date(t.startDate).getTime()-new Date(l.startDate).getTime())}),!o.kiosk&&e.videoUrl&&navigator.onLine&&i("div",{className:"exhibitor-video",children:i("iframe",{src:e.videoUrl,"data-allow":"encrypted-media; autoplay; fullscreen",title:h("Exhibitor Video"),allowFullScreen:!0})}),e.gallery&&i("div",{className:"exhibitor-slider",onClick:()=>u(d.ViewGallery),children:i(U,{children:i(D,{fallback:null,children:i(G,{className:o.responsiveClass,onOpenGallery:()=>a.openGallery(),onCloseGallery:()=>a.closeGallery(),onImageLoadHeightUpdate:L,images:e.gallery})})})}),!o.kiosk&&e.marketMaterials&&n(N,{children:[i("div",{className:"exhibitor-sep"}),i(ce,{list:e.marketMaterials})]}),r.showEdit&&i("div",{className:"exhibitor-sep"}),!o.kiosk&&r.showEdit&&i("div",{className:"exhibitor-edit",children:i(R,{size:"sm",variant:"secondary",onClick:q,children:h("Edit")})}),r.anyAddress&&n("div",{className:"exhibitor-meta",children:[!!(e.address||e.address2)&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-marker-pin-solid"})}),n("div",{className:"exhibitor-meta__content",children:[e.address,!!e.address2&&i("div",{children:e.address2}),!!(e.city||e.state||e.zip)&&n("div",{children:[e.city,!!(e.city&&e.state)&&i("span",{children:" "}),e.state,!!(e.state&&e.zip)&&i("span",{children:"\xA0"})," ",e.zip]}),!!e.country&&i("div",{children:e.country})]})]}),!!e.phone1&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-phone-solid"})}),i("div",{className:"exhibitor-meta__content",children:i("a",{dir:"ltr",href:"tel:"+e.phone1,className:"exhibitor-meta__link",onClick:t=>_(t,d.ClickPhone),children:e.phone1})})]}),!!e.website&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-globe-solid"})}),i("div",{className:"exhibitor-meta__content",children:i("a",{href:e.website,target:"_blank",rel:"noopener noreferrer",className:"exhibitor-meta__link",onClick:t=>_(t,d.ClickWebsite),children:r.websiteTrimmed})})]}),!!e.email&&n("div",{className:"exhibitor-meta__item",children:[i("div",{className:"exhibitor-meta__icon",children:i("i",{className:"icon-mail-at-solid"})}),i("div",{className:"exhibitor-meta__content",children:i("a",{href:"mailto:"+e.email,target:"_blank",rel:"noopener noreferrer",className:"exhibitor-meta__link",onClick:t=>_(t,d.ClickEmail),children:e.email})})]}),r.anySocial&&n("div",{className:"exhibitor-meta__socials",children:[i("a",{href:e.facebook,className:"exhibitor-meta__social",onClick:()=>u(d.ClickFacebook),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-facebook"})}),i("a",{href:e.instagram,className:"exhibitor-meta__social",onClick:()=>u(d.ClickInstagaram),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-instagram"})}),i("a",{href:e.linkedin,className:"exhibitor-meta__social",onClick:()=>u(d.ClickLinkedin),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-linkedin"})}),i("a",{href:e.twitter,className:"exhibitor-meta__social",onClick:()=>u(d.ClickTwitter),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-twitter-x"})}),i("a",{href:e.xing,className:"exhibitor-meta__social",onClick:()=>u(d.ClickXing),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-xing"})}),i("a",{href:e.youtube,className:"exhibitor-meta__social",onClick:()=>u(d.ClickYoutube),target:"_blank",rel:"noopener noreferrer",children:i("i",{className:"icon-youtube"})})]})]}),i(X,{exhibitor:e})]}),o.kiosk&&w&&i(ue,{className:g("exhibitor__show-more",{"is-sticky":f}),expanded:f,onClick:()=>M(t=>!t)})]})]})});function P(){const e=window.navigator,c={title:o.selectedExhibitor.name,url:window.location.href};ne&&e?.canShare&&e.canShare(c)?e.share(c):a.toggleModal("share")}function j(e){a.clickCategory(e)}function q(e){if(o.kiosk)return e.preventDefault();e.target.blur();const c=r.sendLinkEmail;if(!window.confirm(h("Send login instructions to {{email}} to edit profile?",{email:c}))||y.EXPO==="expo")return;const m=new XMLHttpRequest;m.open("POST",p.sendLoginLinkUrl),m.setRequestHeader("Content-Type","application/json");function b(){alert(h("Error sending login instructions"))}m.onload=function(k){if(this.status!==200){b();return}alert(h("A link to edit profile was sent to {{email}}",{email:c}))},m.onerror=function(k){re.error("Error",k),b()},m.send(JSON.stringify({id:r.exhibitor.id}))}function F(){r.exhibitor.bookmarked=!r.exhibitor.bookmarked,o.onBookmarkClick&&o.onBookmarkClick({name:r.exhibitor.name,bookmarked:r.exhibitor.bookmarked,externalId:r.exhibitor.externalId})}function $(){r.exhibitor.visited=!r.exhibitor.visited,o.onVisitedClick&&o.onVisitedClick({name:r.exhibitor.name,visited:r.exhibitor.visited,externalId:r.exhibitor.externalId})}});export default()=>T(()=>i(N,{children:!o.menu&&o.selectedExhibitor?i(ge,{}):null}));
@@ -0,0 +1,6 @@
1
+ import { type GalleryProps } from '@expofp/ui';
2
+ declare const GalleryContainer: import("react").FunctionComponent<Omit<GalleryProps, "closeLabel" | "fullscreenLabel" | "images" | "itemLabel" | "nextSlideLabel" | "onSlideActivate" | "prevSlideLabel" | "renderTarget" | "zoomInLabel" | "zoomOutLabel"> & {
3
+ images: string[];
4
+ }>;
5
+ export default GalleryContainer;
6
+ //# sourceMappingURL=GalleryContainer.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as p}from"react/jsx-runtime";import{Gallery as u}from"@expofp/ui";import{observer as v}from"mobx-react-lite";import{useCallback as x,useState as L}from"react";import{t as n}from"../utils/i18n";import{loadImage as b}from"../utils/loadImage";import{useRenderTarget as S}from"../utils/useRenderTarget";const h=o=>{const e=o.split("/"),r=e[e.length-1];return r.includes("original-")||(e[e.length-1]="original-"+r),e.join("/")},m=new Map,C=o=>{const e=m.get(o);if(e)return e;const r=h(o),i=r===o?Promise.resolve(o):b(r).then(l=>l?r:o);return m.set(o,i),i},I=v(o=>{const{images:e,...r}=o,i=S(),[l,d]=L({}),g=x(t=>{const s=e[t];s&&C(s).then(a=>{a!==s&&d(c=>c[s]===a?c:{...c,[s]:a})})},[e]),f=e.map(t=>({thumbnailUrl:t,fullUrl:l[t]??t}));return p(u,{...r,images:f,closeLabel:n("Close"),zoomInLabel:n("Zoom In"),zoomOutLabel:n("Zoom Out"),nextSlideLabel:n("Next slide"),prevSlideLabel:n("Prev slide"),fullscreenLabel:n("View fullscreen"),itemLabel:t=>n("View image {{index}}",{index:t+1}),renderTarget:i,onSlideActivate:g})});export default I;
@@ -1 +1 @@
1
- import{Box as T}from"@expofp/geometry";import{svgArea as f,svgAreaExplicit as v}from"../../data/svg";import m,{uiState as s}from"../../store";import{convertLocalToGps as h}from"../../utils/gps";import{useReaction as u}from"../../utils/mobx";import{expandRectByPercent as P,getVenueFitMarginPercent as b,resolveVenueFitRect as x}from"../../utils/scene-bounds";import{fitMapToLocalRect as d,getVisibleRectFitPadding as M,isLngLatInVisibleViewport as O}from"./utils/geo-config";const a=s,g=15,R=24;function S(e){return P(e,b(e,f))}function L(e,r){return Math.min(Math.max(r,e.getMinZoom()),e.getMaxZoom())}function B(e,r,l){if(l.length!==1)return!1;const n=l[0]?.id,t=m.poiMarkerStore.markers.find(c=>c.boothId===n);if(!t)return!1;const o=h(t.center.x,t.center.y,r.gpsConfig),i=M(R);return O(e,o,i)||e.easeTo({center:o,zoom:L(e,g),bearing:r.bearing,duration:500,essential:!0}),!0}export function useCameraReactions(e,r,l){u(()=>a.moveToBooths,n=>{const t=e.current;if(!n||!t||!r)return;const o=n.filter(c=>c.rect);if(o.length===0)return;if(B(t,r,o)){a.moveToBooths=null;return}const i=T.fromUnion(...o.map(c=>c.rect));d(t,S(i),r),a.moveToBooths=null}),u(()=>a.moveToRect,n=>{const t=e.current;!n||!t||!r||(d(t,n,r,{paddingPercent:a.moveToRectPaddingPercent}),a.moveToRect=null,a.moveToRectPaddingPercent=null)}),u(()=>a.zoomBy,n=>{const t=e.current;!n||!t||(t.flyTo({zoom:t.getZoom()+(n>1?.5:-.5),animate:!0,duration:500}),a.zoomBy=null)}),u(()=>s.moveToLocation,n=>{const t=e.current,o=m.routeStore.currentPosition;if(!n||!t||!o)return;const{lng:i,lat:c}=o,y=typeof i=="number"&&Number.isFinite(i)&&typeof c=="number"&&Number.isFinite(c);let p;if(y)p=[i,c];else{if(!r)return;p=h(o.x,o.y,r.gpsConfig)}t.flyTo({center:p,animate:!0,duration:1e3}),t.once("moveend",()=>{s.moveToLocation=!1})}),u(()=>s.centerMap,n=>{const t=e.current;if(!n||!t||!r)return;if(!(s.list.type==="search"&&!s.list.text)){const{rect:i}=x({layerViewbox:m.layerStore.viewboxRectangle,explicitArea:v?f:null,layerRectangle:m.layerStore.rectangle,sceneDef:l,svgArea:f});d(t,i,r)}s.centerMap=!1})}
1
+ import{Box as h}from"@expofp/geometry";import{svgArea as p,svgAreaExplicit as y}from"../../data/svg";import u,{uiState as s}from"../../store";import{convertLocalToGps as P}from"../../utils/gps";import{useReaction as l}from"../../utils/mobx";import{expandRectByPercent as b,getVenueFitMarginPercent as v,resolveVenueFitRect as x}from"../../utils/scene-bounds";import{fitMapToLocalRect as d,getVisibleRectFitPadding as M,isLngLatInVisibleViewport as S}from"./utils/geo-config";const a=s,O=15,g=24;function L(e){return b(e,v(e,p))}function R(e,r){return Math.min(Math.max(r,e.getMinZoom()),e.getMaxZoom())}function B(e,r,m){if(m.length!==1)return!1;const o=m[0]?.id,t=u.poiMarkerStore.markers.find(c=>c.boothId===o);if(!t)return!1;const n=P(t.center.x,t.center.y,r.gpsConfig),i=M(g);return S(e,n,i)||e.easeTo({center:n,zoom:R(e,O),bearing:r.bearing,duration:500,essential:!0}),!0}export function useCameraReactions(e,r,m){l(()=>a.moveToBooths,o=>{const t=e.current;if(!o||!t||!r)return;const n=o.filter(c=>c.rect);if(n.length===0)return;if(B(t,r,n)){a.moveToBooths=null;return}const i=h.fromUnion(...n.map(c=>c.rect));d(t,L(i),r),a.moveToBooths=null}),l(()=>a.moveToRect,o=>{const t=e.current;!o||!t||!r||(d(t,o,r,{paddingPercent:a.moveToRectPaddingPercent}),a.moveToRect=null,a.moveToRectPaddingPercent=null)}),l(()=>a.zoomBy,o=>{const t=e.current;!o||!t||(t.flyTo({zoom:t.getZoom()+(o>1?.5:-.5),animate:!0,duration:500}),a.zoomBy=null)}),l(()=>[s.moveToLocation,u.maplibreStore.cameraPort,u.routeStore.currentPosition],([o])=>{if(!o)return;const t=e.current,n=u.routeStore.currentPosition;if(!n){s.moveToLocation=!1;return}if(!t)return;const{lng:i,lat:c}=n,T=typeof i=="number"&&Number.isFinite(i)&&typeof c=="number"&&Number.isFinite(c);s.moveToLocation=!1;let f;if(T)f=[i,c];else{if(!r)return;f=P(n.x,n.y,r.gpsConfig)}t.flyTo({center:f,animate:!0,duration:1e3})}),l(()=>s.centerMap,o=>{const t=e.current;if(!o||!t||!r)return;if(!(s.list.type==="search"&&!s.list.text)){const{rect:i}=x({layerViewbox:u.layerStore.viewboxRectangle,explicitArea:y?p:null,layerRectangle:u.layerStore.rectangle,sceneDef:m,svgArea:p});d(t,i,r)}s.centerMap=!1})}
@@ -1,9 +1,8 @@
1
1
  import { type Consent } from '@expofp/config';
2
- import React from 'react';
3
2
  interface OverlayContainerProps {
4
3
  isGDPR: boolean;
5
4
  consent: Consent;
6
5
  }
7
- declare const OverlayContainer: React.FunctionComponent<OverlayContainerProps>;
6
+ declare const OverlayContainer: import("react").FunctionComponent<OverlayContainerProps>;
8
7
  export default OverlayContainer;
9
8
  //# sourceMappingURL=OverlayContainer.d.ts.map
@@ -1 +1 @@
1
- import{jsx as o,jsxs as S}from"react/jsx-runtime";import h from"classnames";import{observer as g}from"mobx-react-lite";import{useCallback as l,useMemo as a}from"react";import k from"../data";import{uiState as e}from"../store";import z from"./Bookmarks";import C from"./Booth/Booth";import O from"./Category";import b from"./Event";import x from"./Exhibitor";import M from"./Filter";import R from"./Language";import P from"./Menu";import A from"./Overlay";import E from"./RoutePlanner/RoutePlanner";import j from"./Search";import F from"./Sessions";import w from"./Speaker";import B from"./Speakers";import I from"./TourPoints";import _ from"./Tours";import K from"./Visited";import L from"./Wayfinding";const T={full:"full",medium:"medium",small:"medium"},D=r=>T[r],N=()=>e.list.type==="search"||k.isRebooking&&e.list.type==="exhibitors",U=r=>r?7:e.details?3:N()?9:3,V=g(({isGDPR:r,consent:m})=>{const n=l(t=>{e.desiredOverlaySize=t},[]),c=l(t=>{e.setOverlayScrolled(t)},[]),f=D(e.overlaySize),d=e.selectedRoute?.from&&e.selectedRoute?.to,p=U(!!d),u=e.fullSizeOffset,v=a(()=>[e.list.type,e.details],[e.list.type,e.details]),y=a(()=>{const t={"-backdrop":e.canvasStarted&&e.shouldUseBackdrop&&!e.dimmed&&!e.galleryActive,"-no-transition":e.dimmed,"-gallery-active":e.galleryActive,collapsed:e.overlayCollapsed,kiosk:e.kiosk,start:e.overlayPosition==="left",bottom:e.overlayPosition!=="left",[e.overlaySize]:!0},i=h(t),s=e.overlayInterfaceClasses.join(" ");return s?`${i} ${s}`:i},[e.canvasStarted,e.shouldUseBackdrop,e.dimmed,e.galleryActive,e.overlayCollapsed,e.kiosk,e.inIdle,e.setKioskModeEnabled,e.overlayPosition,e.overlaySize,e.overlayInterfaceClasses]);return S(A,{open:e.isOverlayOpen,size:f,particles:e.isFeaturedExhibitorActive,className:y,mediumSizeMultiplier:p,fullSizeOffset:u,disableDrag:e.viewerMode&&e.menu,forceFull:e.viewerMode&&e.menu,scrollResetKey:v,onChangeSize:n,onScrollStateChange:c,children:[o(P,{isGDPR:r,consent:m}),o(j,{}),o(x,{}),o(C,{}),o(z,{}),o(K,{}),o(R,{}),o(O,{}),o(L,{}),o(M,{}),o(F,{showFilters:!0}),o(B,{showFilters:!0}),o(_,{}),o(I,{}),o(E,{}),o(b,{}),o(w,{})]})});export default V;
1
+ import{jsx as o,jsxs as v}from"react/jsx-runtime";import{Overlay as y}from"@expofp/ui";import S from"classnames";import{observer as h}from"mobx-react-lite";import{useCallback as l,useMemo as a}from"react";import{overlayStore as m,uiState as e}from"../store";import{t as k}from"../utils/i18n";import C from"./Bookmarks";import g from"./Booth/Booth";import z from"./Category";import b from"./Event";import O from"./Exhibitor";import x from"./Filter";import M from"./Language";import P from"./Menu";import A from"./OverlayParticles";import w from"./RoutePlanner/RoutePlanner";import E from"./Search";import _ from"./Sessions";import j from"./Speaker";import F from"./Speakers";import R from"./TourPoints";import B from"./Tours";import I from"./Visited";import K from"./Wayfinding";const L={full:"full",medium:"medium",small:"medium"},N=t=>L[t],T=h(({isGDPR:t,consent:n})=>{const c=l(r=>{e.desiredOverlaySize=r},[]),d=l(r=>{e.setOverlayScrolled(r)},[]),p=N(e.overlaySize),f=a(()=>[e.list.type,e.details],[e.list.type,e.details]),u=a(()=>{const r={"-backdrop":e.canvasStarted&&e.shouldUseBackdrop&&!e.dimmed&&!e.galleryActive,"-no-transition":e.dimmed,"-gallery-active":e.galleryActive,collapsed:e.overlayCollapsed,kiosk:e.kiosk,start:e.overlayPosition==="left",bottom:e.overlayPosition!=="left",[e.overlaySize]:!0},i=S(r),s=e.overlayInterfaceClasses.join(" ");return s?`${i} ${s}`:i},[e.canvasStarted,e.shouldUseBackdrop,e.dimmed,e.galleryActive,e.overlayCollapsed,e.kiosk,e.inIdle,e.setKioskModeEnabled,e.overlayPosition,e.overlaySize,e.overlayInterfaceClasses]);return v(y,{open:e.isOverlayOpen,size:p,particles:e.isFeaturedExhibitorActive?o(A,{}):null,className:u,mediumSizeMultiplier:m.mediumSizeMultiplier,fullSizeOffset:m.fullSizeOffset,disableDrag:e.viewerMode&&e.menu,forceFull:e.viewerMode&&e.menu,scrollResetKey:f,noContentLabel:k("No content"),onChangeSize:c,onScrollStateChange:d,onScrollActivity:()=>window.__resett?.(),children:[o(P,{isGDPR:t,consent:n}),o(E,{}),o(O,{}),o(g,{}),o(C,{}),o(I,{}),o(M,{}),o(z,{}),o(K,{}),o(x,{}),o(_,{showFilters:!0}),o(F,{showFilters:!0}),o(B,{}),o(R,{}),o(w,{}),o(b,{}),o(j,{})]})});export default T;
@@ -21,7 +21,7 @@ export { default as Event } from './Event';
21
21
  export { default as EventBadgeContainer } from './EventBadgeContainer';
22
22
  export { default as Exhibitor } from './Exhibitor';
23
23
  export { default as Filter } from './Filter';
24
- export { default as Gallery } from './Gallery/Gallery';
24
+ export { default as GalleryContainer } from './GalleryContainer';
25
25
  export { default as HeatmapLegend } from './HeatmapLegendContainer';
26
26
  export { default as HighlightTextContainer } from './HighlightTextContainer';
27
27
  export { default as Language } from './Language';
@@ -36,7 +36,6 @@ export { default as Menu } from './Menu';
36
36
  export { default as MobileToggleButtonContainer } from './MobileToggleButtonContainer';
37
37
  export { default as ModalContainer } from './ModalContainer';
38
38
  export { default as MultiSelectGroupsContainer } from './MultiSelectGroupsContainer';
39
- export { default as Overlay } from './Overlay';
40
39
  export { default as OverlayGrip } from './OverlayGripContainer';
41
40
  export { default as OverlayParticles } from './OverlayParticles';
42
41
  export { default as RebookingNotesContainer } from './RebookingNotesContainer';
@@ -60,7 +59,6 @@ export { ShortcutsFiltersButton } from './Shortcuts';
60
59
  export { default as ShowMoreButtonContainer } from './ShowMoreButtonContainer';
61
60
  export { default as SidebarActionsContainer } from './SidebarActionsContainer';
62
61
  export { default as SimpleRowContainer } from './SimpleRowContainer';
63
- export { useToast } from './Toast';
64
62
  export { default as TourPoints } from './TourPoints';
65
63
  export { default as Tours } from './Tours';
66
64
  export { default as ToursList } from './ToursList';
@@ -1 +1 @@
1
- export{default as AlertContainer}from"./AlertContainer";export{default as AutocompleteContainer}from"./AutocompleteContainer";export{BaseFilterModal}from"./BaseFilterModal";export{default as Bookmarks}from"./Bookmarks";export{default as Booth}from"./Booth/Booth";export{BoothOnHold}from"./Booth/BoothOnHold";export{BoothReserved}from"./Booth/BoothReserved";export{BoothWithoutExhibitor}from"./Booth/BoothWithoutExhibitor";export{default as Category}from"./Category";export{CategoryFilterModal}from"./CategoryFilterModal";export{default as CookieConsent}from"./CookieConsent";export{default as Demo}from"./Demo";export{default as DownloadListContainer}from"./DownloadListContainer";export{default as EntityItemContainer}from"./EntityItemContainer";export{default as EntityList}from"./EntityList";export{default as EntityListRow}from"./EntityListRow";export{default as ErrorBoundary}from"./ErrorBoundary";export{default as Event}from"./Event";export{default as EventBadgeContainer}from"./EventBadgeContainer";export{default as Exhibitor}from"./Exhibitor";export{default as Filter}from"./Filter";export{default as Gallery}from"./Gallery/Gallery";export{default as HeatmapLegend}from"./HeatmapLegendContainer";export{default as HighlightTextContainer}from"./HighlightTextContainer";export{default as Language}from"./Language";export{default as LanguageRowContainer}from"./LanguageRowContainer";export{default as Layout}from"./Layout";export{default as LevelBadge}from"./LevelBadgeContainer";export{default as LevelSelectorContainer}from"./LevelSelectorContainer";export{default as List}from"./List";export{default as LogoOverlay}from"./LogoOverlay";export{default as MapControlsContainer}from"./MapControlsContainer";export{default as Menu}from"./Menu";export{default as MobileToggleButtonContainer}from"./MobileToggleButtonContainer";export{default as ModalContainer}from"./ModalContainer";export{default as MultiSelectGroupsContainer}from"./MultiSelectGroupsContainer";export{default as Overlay}from"./Overlay";export{default as OverlayGrip}from"./OverlayGripContainer";export{default as OverlayParticles}from"./OverlayParticles";export{default as RebookingNotesContainer}from"./RebookingNotesContainer";export{default as RebookingRadioGroupContainer}from"./RebookingRadioGroupContainer";export{default as RoutePlanner}from"./RoutePlanner/RoutePlanner";export{default as RouteQR}from"./RouteQR";export{default as Schedule}from"./Schedule";export{default as ScrollableRow}from"./ScrollableRowContainer";export{default as Search}from"./Search";export{default as SearchBox}from"./SearchBox";export{SearchButtons}from"./SearchButtons";export{default as Sessions}from"./Sessions";export{default as SessionsFiltersModal}from"./SessionsFiltersModal";export{default as ShareContainer}from"./ShareContainer";export{ShortcutsToolbar}from"./Shortcuts";export{ShortcutButton}from"./Shortcuts";export{ShortcutsFiltersButton}from"./Shortcuts";export{default as ShowMoreButtonContainer}from"./ShowMoreButtonContainer";export{default as SidebarActionsContainer}from"./SidebarActionsContainer";export{default as SimpleRowContainer}from"./SimpleRowContainer";export{useToast}from"./Toast";export{default as TourPoints}from"./TourPoints";export{default as Tours}from"./Tours";export{default as ToursList}from"./ToursList";export{default as Visited}from"./Visited";export{default as Wayfinding}from"./Wayfinding";export{default as WayfindingFloorSelectorContainer}from"./WayfindingFloorSelectorContainer";export{default as WayfindingTemplate}from"./WayfindingTemplate";export{default as WayInformation}from"./WayInformation";export{default as Ws}from"./Ws";export{default as YahRow}from"./YahRow";export{Badge}from"@expofp/ui";export{Button}from"@expofp/ui";export{Checkbox}from"@expofp/ui";export{CheckboxButton}from"@expofp/ui";export{PermissionNotice}from"@expofp/ui";export{Radio}from"@expofp/ui";export{Spinner}from"@expofp/ui";export{ToggleButton}from"@expofp/ui";export{ToggleSwitch}from"@expofp/ui";export{TouchHand}from"@expofp/ui";
1
+ export{default as AlertContainer}from"./AlertContainer";export{default as AutocompleteContainer}from"./AutocompleteContainer";export{BaseFilterModal}from"./BaseFilterModal";export{default as Bookmarks}from"./Bookmarks";export{default as Booth}from"./Booth/Booth";export{BoothOnHold}from"./Booth/BoothOnHold";export{BoothReserved}from"./Booth/BoothReserved";export{BoothWithoutExhibitor}from"./Booth/BoothWithoutExhibitor";export{default as Category}from"./Category";export{CategoryFilterModal}from"./CategoryFilterModal";export{default as CookieConsent}from"./CookieConsent";export{default as Demo}from"./Demo";export{default as DownloadListContainer}from"./DownloadListContainer";export{default as EntityItemContainer}from"./EntityItemContainer";export{default as EntityList}from"./EntityList";export{default as EntityListRow}from"./EntityListRow";export{default as ErrorBoundary}from"./ErrorBoundary";export{default as Event}from"./Event";export{default as EventBadgeContainer}from"./EventBadgeContainer";export{default as Exhibitor}from"./Exhibitor";export{default as Filter}from"./Filter";export{default as GalleryContainer}from"./GalleryContainer";export{default as HeatmapLegend}from"./HeatmapLegendContainer";export{default as HighlightTextContainer}from"./HighlightTextContainer";export{default as Language}from"./Language";export{default as LanguageRowContainer}from"./LanguageRowContainer";export{default as Layout}from"./Layout";export{default as LevelBadge}from"./LevelBadgeContainer";export{default as LevelSelectorContainer}from"./LevelSelectorContainer";export{default as List}from"./List";export{default as LogoOverlay}from"./LogoOverlay";export{default as MapControlsContainer}from"./MapControlsContainer";export{default as Menu}from"./Menu";export{default as MobileToggleButtonContainer}from"./MobileToggleButtonContainer";export{default as ModalContainer}from"./ModalContainer";export{default as MultiSelectGroupsContainer}from"./MultiSelectGroupsContainer";export{default as OverlayGrip}from"./OverlayGripContainer";export{default as OverlayParticles}from"./OverlayParticles";export{default as RebookingNotesContainer}from"./RebookingNotesContainer";export{default as RebookingRadioGroupContainer}from"./RebookingRadioGroupContainer";export{default as RoutePlanner}from"./RoutePlanner/RoutePlanner";export{default as RouteQR}from"./RouteQR";export{default as Schedule}from"./Schedule";export{default as ScrollableRow}from"./ScrollableRowContainer";export{default as Search}from"./Search";export{default as SearchBox}from"./SearchBox";export{SearchButtons}from"./SearchButtons";export{default as Sessions}from"./Sessions";export{default as SessionsFiltersModal}from"./SessionsFiltersModal";export{default as ShareContainer}from"./ShareContainer";export{ShortcutsToolbar}from"./Shortcuts";export{ShortcutButton}from"./Shortcuts";export{ShortcutsFiltersButton}from"./Shortcuts";export{default as ShowMoreButtonContainer}from"./ShowMoreButtonContainer";export{default as SidebarActionsContainer}from"./SidebarActionsContainer";export{default as SimpleRowContainer}from"./SimpleRowContainer";export{default as TourPoints}from"./TourPoints";export{default as Tours}from"./Tours";export{default as ToursList}from"./ToursList";export{default as Visited}from"./Visited";export{default as Wayfinding}from"./Wayfinding";export{default as WayfindingFloorSelectorContainer}from"./WayfindingFloorSelectorContainer";export{default as WayfindingTemplate}from"./WayfindingTemplate";export{default as WayInformation}from"./WayInformation";export{default as Ws}from"./Ws";export{default as YahRow}from"./YahRow";export{Badge}from"@expofp/ui";export{Button}from"@expofp/ui";export{Checkbox}from"@expofp/ui";export{CheckboxButton}from"@expofp/ui";export{PermissionNotice}from"@expofp/ui";export{Radio}from"@expofp/ui";export{Spinner}from"@expofp/ui";export{ToggleButton}from"@expofp/ui";export{ToggleSwitch}from"@expofp/ui";export{TouchHand}from"@expofp/ui";
@@ -0,0 +1,19 @@
1
+ import type RootStore from './RootStore';
2
+ /**
3
+ * View-model store for the overlay bottom-sheet: derives the sizing inputs the
4
+ * pure `<Overlay>` component needs (how tall the medium/full sheet should be)
5
+ * from the current UI state. Keeps this presentation math out of the Container
6
+ * and out of the already-large UIState.
7
+ */
8
+ export default class OverlayStore {
9
+ private readonly rootStore;
10
+ constructor(rootStore: RootStore);
11
+ private get ui();
12
+ private get isRouteActive();
13
+ private get isSearchListOpen();
14
+ /** Divisor for the medium sheet height (viewportHeight / multiplier) — larger = shorter sheet. */
15
+ get mediumSizeMultiplier(): 3 | 7 | 9;
16
+ /** Pixels subtracted from viewport height for the full sheet (search box, banners, safe padding). */
17
+ get fullSizeOffset(): number;
18
+ }
19
+ //# sourceMappingURL=OverlayStore.d.ts.map
@@ -0,0 +1 @@
1
+ import{__decorate as s}from"tslib";import{computed as u}from"mobx";import l from"../data";import{Route as h}from"./RouteStore";export default class e{constructor(t){this.rootStore=t}get ui(){return this.rootStore.uiState}get isRouteActive(){const t=this.ui.selectedRoute;return!!(t?.from&&t?.to)}get isSearchListOpen(){const{list:t}=this.ui;return t.type==="search"||l.isRebooking&&t.type==="exhibitors"}get mediumSizeMultiplier(){return this.isRouteActive?7:this.ui.details?3:this.isSearchListOpen?9:3}get fullSizeOffset(){const t=this.ui,i=t.wsShown?54:0,r=t.bannerType==="free"&&!t.freeBannerDismissed?40:0,o=20;if(t.details&&!(t.details instanceof h))return i+r+o;const n=54,c=t.shouldShowSearchButtons?54:0;return i+r+n+o+c}}s([u({keepAlive:!0})],e.prototype,"mediumSizeMultiplier",null),s([u({keepAlive:!0})],e.prototype,"fullSizeOffset",null);
@@ -12,6 +12,7 @@ import HeatmapStore from './HeatmapStore';
12
12
  import IntercomStore from './IntercomStore';
13
13
  import LayerStore from './LayerStore';
14
14
  import MaplibreStore from './MaplibreStore';
15
+ import OverlayStore from './OverlayStore';
15
16
  import PoiMarkerStore from './PoiMarkerStore';
16
17
  import PoiTypeStore from './PoiTypeStore';
17
18
  import RoutePlannerStore from './RoutePlannerStore';
@@ -31,6 +32,7 @@ export default class RootStore {
31
32
  readonly exhibitorStore: ExhibitorStore;
32
33
  readonly boothStore: BoothStore;
33
34
  readonly uiState: UIState;
35
+ readonly overlayStore: OverlayStore;
34
36
  readonly routeStore: RouteStore;
35
37
  readonly routePlannerStore: RoutePlannerStore;
36
38
  readonly toursStore: ToursStore;
@@ -1 +1 @@
1
- import{__decorate as i}from"tslib";import{action as s,computed as m,observable as u,runInAction as S}from"mobx";import{LANGUAGE_TYPE as d}from"../constants";import{RendererService as y}from"../renderer";import{URLFilterManager as w}from"../services/URLFilterManager";import{GaEventActions as b}from"../tools/gtag";import g from"../tools/logger";import{isWebGlSupported as v}from"../utils";import{resetLocale as k}from"../utils/i18n";import h from"../utils/is-mobile";import n from"../utils/is-webview";import{sanitizeSearch as x}from"../utils/sanitizeText";import B from"./BookmarksStore";import _,{BoothBase as c,RegularBooth as L}from"./BoothStore";import C from"./CategoryFilterStore";import E,{Category as T}from"./CategoryStore";import I,{EventItem as F}from"./EventStore";import M,{Exhibitor as p}from"./ExhibitorStore";import O from"./FuzzySearchEngineStore";import z from"./HeatmapStore";import R from"./IntercomStore";import A,{LayersMode as f}from"./LayerStore";import P from"./MaplibreStore";import V from"./PoiMarkerStore";import G from"./PoiTypeStore";import{SearchShortcutProvider as q}from"./providers/SearchShortcutProvider";import{SessionsShortcutProvider as N}from"./providers/SessionsShortcutProvider";import{SpeakerShortcutProvider as U}from"./providers/SpeakerShortcutProvider";import W from"./RoutePlannerStore";import j from"./RouteStore";import H from"./SearchButtonsStore";import K from"./SearchStore";import Y from"./SessionsFilterStore";import{ShortcutRegistry as $}from"./ShortcutRegistry";import D from"./SpeakerFilterStore";import J from"./SpeakerStore";import{SpeakerItem as Q}from"./SpeakerStore";import X from"./ToursStore";import Z from"./UIState";export default class e{setResetCameraFn(t){this.resetCameraFn=t}constructor(){this.rendererService=new y,this.initialized=!1,this.categoryStore=new E(this),this.exhibitorStore=new M(this),this.boothStore=new _(this),this.routeStore=new j(this),this.routePlannerStore=new W(this),this.toursStore=new X(this),this.uiState=new Z(this),this.maplibreStore=new P(this),this.layerStore=new A,this.intercomStore=new R,this.eventStore=new I(this),this.heatmapStore=new z,this.poiTypeStore=new G(this),this.poiMarkerStore=new V(this),this.fuzzySearchEngineStore=new O(["name","title","fullName","booths.name"]),this.categoryFilterStore=new C(this),this.sessionsFilterStore=new Y(this),this.speakerStore=new J(this),this.speakerFilterStore=new D(this),this.searchStore=new K(this),this.searchButtonsStore=new H(this),this.bookmarksStore=new B(this),this.urlFilterManager=new w(this),this.shortcutRegistry=new $,this.registerShortcutProviders()}selectExhibitor(t,r=!0){this.uiState.hoveredExhibitor=null,this.uiState.details=t;var o=t.booths.filter(a=>a.visible),l=t.booths.filter(a=>!a.visible);!o.length&&l.length&&this.layerStore.updateVisibility(l[0].layer,!0),r&&setTimeout(()=>this.moveToList(t.booths.filter(a=>a.visible)),n||h?500:50)}selectBooth(t,r=!0){let o=Array.isArray(t)?t:[t];this.uiState.details=o[0],o.length===1&&o[0].schedule?.length&&(this.uiState.desiredOverlaySize="medium"),o.length===1&&o[0].layer&&!o[0].visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o[0].layer,!0),r&&setTimeout(()=>this.moveToList(o),n||h?500:50)}reset(){const t=window.__searchi;t&&t.querySelector&&t.querySelector("input[type=search]")&&t.querySelector("input[type=search]").blur&&t.querySelector("input[type=search]").blur(),window.setTimeout(()=>{this.uiState.setKioskModeEnabled||k().then(()=>{S(()=>{this.selectSearch(""),this.uiState.details=null,this.resetCameraFn?.(),this.uiState.menu=!1,this.searchStore.resetSearchBox(),this.searchButtonsStore.clearAllFilters()}),setTimeout(()=>{S(()=>{this.uiState.inIdle=!0})},100)})},1e3)}selectNone(){window.__resett&&window.__resett(),this.uiState.details=this.uiState.selectedCategory}selectBookmarks(){this.uiState.details=null,this.uiState.list={type:"bookmarks"}}selectVisited(){this.uiState.details=null,this.uiState.list={type:"visited"}}selectLanguage(){this.uiState.details=null,this.uiState.list={type:d}}selectCategory(t){window.__resett&&window.__resett(),this.uiState.details=t,this.uiState.list={type:"category",category:t},this.uiState.desiredOverlaySize="full",t.exhibitors.find(o=>o.booths.find(l=>l.visible))||this.layerStore.updateVisibility(t.exhibitors[0]?.booths[0]?.layer,!0),setTimeout(()=>{this.uiState.moveToBooths=t.exhibitors.filter(o=>o.booths.find(l=>l.visible)).flatMap(o=>o.booths)},200)}selectEventItem(t,r=!0){if(this.uiState.hoveredExhibitor=null,this.uiState.details=t,this.uiState.desiredOverlaySize="medium",t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&o.layer&&!o.visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o.layer,!0)}r&&setTimeout(()=>{if(t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&this.moveToList([o])}},n||h?500:50)}selectSearch(t){window.__resett&&window.__resett(),this.uiState.details=null,this.speakerStore.clearSelectedSpeaker(),this.uiState.list={type:"search",text:x(t,Object.keys(this.uiState.mapSettings).map(r=>`${r}=`)),focused:!1},this.uiState.activeListIndex=-1}clickBookmarks(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectBookmarks(),this.moveToList(),this.showMap()}clickVisited(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectVisited(),this.moveToList(),this.showMap()}clickLanguage(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectLanguage()}clickCategory(t){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectCategory(t),this.uiState.onCategoryClick&&this.uiState.onCategoryClick({id:t.id,name:t.name,exhibitors:t.exhibitors.map(r=>r.id)}),setTimeout(()=>{this.moveToList(),this.showMap()},100)}clickSeminars(){this.clickCategory(this.categoryStore.seminarsCategory)}clickBoothInList(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t),this.moveToList([t]),this.showMap()}clickBoothInList2(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t,!1),window.setTimeout(()=>{this.moveToList([t]),this.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}clickBooth(t){if(this.uiState.menu=!1,this.uiState.list.type==="sessions"&&this.searchStore.selectSearch(),this.uiState.list.type==="speakers"&&this.searchStore.selectSearch(),this.uiState.list.type==="tours"&&this.searchStore.selectSearch(),this.uiState.list.type==="multi-point-tour"&&this.searchStore.selectSearch(),!(this.uiState.selectedRoute?.from&&this.uiState.selectedRoute?.to)){if(this.uiState.selectedRoute?.to&&!this.uiState.selectedRoute?.from&&t){this.routeStore.setStartPoint(t);return}if(t)this.routeStore.tempToBooth=t;else{this.uiState.details=null,this.fp.hidePathways(),this.uiState.list={type:"search",text:"",focused:!1},this.uiState.onBoothClick&&this.uiState.onBoothClick({target:null});return}if(this.uiState.onBoothClick){const r={name:"",description:""},o={target:{...t,layer:t.layer||r}};this.uiState.onBoothClick(o)}t.exhibitors.length===1&&t instanceof L?(this.heatmapStore.forceTrack={action:b.ViewBooth,label:t.name},this.selectExhibitor(t.exhibitors[0],!1)):this.selectBooth(t,!1),this.showMap()}}clickExhibitor2(t){this.selectExhibitor(t,!0),this.showMap()}clickExhibitor(t){window.setTimeout(()=>{this.clickExhibitor2(t)},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}showMap(){this.uiState.overlayPosition==="bottom"&&v&&(this.uiState.desiredOverlaySize="medium")}showOverlay(){this.uiState.overlayPosition==="bottom"&&(this.uiState.desiredOverlaySize="full")}toggleMapOverlay(){this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize==="full"?this.uiState.desiredOverlaySize="medium":this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize!=="full"&&(this.uiState.desiredOverlaySize="full")}moveToList(t){t=t||this.uiState.listItems;const r=[];t.forEach(o=>{if(o instanceof p)r.push(...o.booths.filter(l=>l.visible));else if(o instanceof c)o.visible&&r.push(o);else if(o instanceof F&&o.boothId){const l=this.boothStore.boothById.get(o.boothId);l?.visible&&r.push(l)}else o instanceof Q&&this.speakerStore.getEventsBySpeaker(o.id).forEach(l=>{if(!l.boothId)return;const a=this.boothStore.boothById.get(l.boothId);a?.visible&&r.push(a)})}),this.uiState.moveToBooths=r}moveToExhibitor(t){this.moveToList([t])}changeActiveListIndex(t){let r=this.uiState.activeListIndex+t;r=Math.max(0,Math.min(this.uiState.listItems.length-1,r)),this.uiState.activeListIndex=r}toggleModal(t){this.uiState.modalActive[t]=!this.uiState.modalActive[t]}openGallery(){this.uiState.galleryActive=!0}closeGallery(){this.uiState.galleryActive=!1}openActiveListItem(){const t=this.uiState.listItems[this.uiState.activeListIndex];t&&(g.log("Opening",t),t instanceof p?this.clickExhibitor(t):t instanceof T?this.clickCategory(t):t instanceof c&&this.clickBoothInList2(t))}toggleCategoryFilter(){this.uiState.categoryFilterOpen=!this.uiState.categoryFilterOpen}applyCategoryFilters(t){this.uiState.selectedCategoryFilters=t,this.uiState.categoryFilterOpen=!1}get filteredExhibitors(){return this.uiState.selectedCategoryFilters.length===0?this.exhibitorStore.exhibitors:this.exhibitorStore.exhibitors.filter(t=>this.uiState.selectedCategoryFilters.some(r=>t.categories.some(o=>o.id===r.id)))}selectSessions(){this.uiState.list={type:"sessions",text:"",focused:!1},this.uiState.menu=!1,this.uiState.selectedTrack=null,this.searchButtonsStore.setSubButtonId(null),this.searchButtonsStore.subButtonsEnabled&&this.searchButtonsStore.showSubButtons("sessions"),h&&(this.uiState.desiredOverlaySize="full")}selectExhibitors(){this.uiState.list={type:"exhibitors",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectTours(){this.uiState.list={type:"tours",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeakers(){this.uiState.list={type:"speakers",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeaker(t,r=!0){this.speakerStore.selectSpeaker(t,r)}resetFilters(){this.searchButtonsStore.clearAllFilters()}registerShortcutProviders(){this.shortcutRegistry.register(new N(this)),this.shortcutRegistry.register(new U(this)),this.shortcutRegistry.register(new q(this))}}i([u],e.prototype,"initialized",void 0),i([u],e.prototype,"resetCameraFn",void 0),i([s],e.prototype,"setResetCameraFn",null),i([s],e.prototype,"selectExhibitor",null),i([s],e.prototype,"selectBooth",null),i([s],e.prototype,"reset",null),i([s],e.prototype,"selectNone",null),i([s],e.prototype,"selectBookmarks",null),i([s],e.prototype,"selectVisited",null),i([s],e.prototype,"selectLanguage",null),i([s],e.prototype,"selectCategory",null),i([s],e.prototype,"selectEventItem",null),i([s],e.prototype,"selectSearch",null),i([s],e.prototype,"clickBookmarks",null),i([s],e.prototype,"clickVisited",null),i([s],e.prototype,"clickLanguage",null),i([s],e.prototype,"clickCategory",null),i([s],e.prototype,"clickSeminars",null),i([s],e.prototype,"clickBoothInList",null),i([s],e.prototype,"clickBoothInList2",null),i([s],e.prototype,"clickBooth",null),i([s],e.prototype,"clickExhibitor2",null),i([s],e.prototype,"clickExhibitor",null),i([s],e.prototype,"showMap",null),i([s],e.prototype,"showOverlay",null),i([s],e.prototype,"toggleMapOverlay",null),i([s],e.prototype,"moveToList",null),i([s],e.prototype,"moveToExhibitor",null),i([s],e.prototype,"changeActiveListIndex",null),i([s],e.prototype,"toggleModal",null),i([s],e.prototype,"openGallery",null),i([s],e.prototype,"closeGallery",null),i([s],e.prototype,"openActiveListItem",null),i([s],e.prototype,"toggleCategoryFilter",null),i([s],e.prototype,"applyCategoryFilters",null),i([m],e.prototype,"filteredExhibitors",null),i([s],e.prototype,"selectSessions",null),i([s],e.prototype,"selectExhibitors",null),i([s],e.prototype,"selectTours",null),i([s],e.prototype,"selectSpeakers",null),i([s],e.prototype,"selectSpeaker",null),i([s],e.prototype,"resetFilters",null);
1
+ import{__decorate as i}from"tslib";import{action as s,computed as m,observable as u,runInAction as S}from"mobx";import{LANGUAGE_TYPE as d}from"../constants";import{RendererService as y}from"../renderer";import{URLFilterManager as w}from"../services/URLFilterManager";import{GaEventActions as b}from"../tools/gtag";import v from"../tools/logger";import{isWebGlSupported as g}from"../utils";import{resetLocale as k}from"../utils/i18n";import h from"../utils/is-mobile";import n from"../utils/is-webview";import{sanitizeSearch as x}from"../utils/sanitizeText";import B from"./BookmarksStore";import _,{BoothBase as c,RegularBooth as L}from"./BoothStore";import C from"./CategoryFilterStore";import E,{Category as T}from"./CategoryStore";import I,{EventItem as F}from"./EventStore";import M,{Exhibitor as p}from"./ExhibitorStore";import O from"./FuzzySearchEngineStore";import z from"./HeatmapStore";import R from"./IntercomStore";import A,{LayersMode as f}from"./LayerStore";import P from"./MaplibreStore";import V from"./OverlayStore";import G from"./PoiMarkerStore";import q from"./PoiTypeStore";import{SearchShortcutProvider as N}from"./providers/SearchShortcutProvider";import{SessionsShortcutProvider as U}from"./providers/SessionsShortcutProvider";import{SpeakerShortcutProvider as W}from"./providers/SpeakerShortcutProvider";import j from"./RoutePlannerStore";import H from"./RouteStore";import K from"./SearchButtonsStore";import Y from"./SearchStore";import $ from"./SessionsFilterStore";import{ShortcutRegistry as D}from"./ShortcutRegistry";import J from"./SpeakerFilterStore";import Q from"./SpeakerStore";import{SpeakerItem as X}from"./SpeakerStore";import Z from"./ToursStore";import tt from"./UIState";export default class e{setResetCameraFn(t){this.resetCameraFn=t}constructor(){this.rendererService=new y,this.initialized=!1,this.categoryStore=new E(this),this.exhibitorStore=new M(this),this.boothStore=new _(this),this.routeStore=new H(this),this.routePlannerStore=new j(this),this.toursStore=new Z(this),this.uiState=new tt(this),this.overlayStore=new V(this),this.maplibreStore=new P(this),this.layerStore=new A,this.intercomStore=new R,this.eventStore=new I(this),this.heatmapStore=new z,this.poiTypeStore=new q(this),this.poiMarkerStore=new G(this),this.fuzzySearchEngineStore=new O(["name","title","fullName","booths.name"]),this.categoryFilterStore=new C(this),this.sessionsFilterStore=new $(this),this.speakerStore=new Q(this),this.speakerFilterStore=new J(this),this.searchStore=new Y(this),this.searchButtonsStore=new K(this),this.bookmarksStore=new B(this),this.urlFilterManager=new w(this),this.shortcutRegistry=new D,this.registerShortcutProviders()}selectExhibitor(t,r=!0){this.uiState.hoveredExhibitor=null,this.uiState.details=t;var o=t.booths.filter(a=>a.visible),l=t.booths.filter(a=>!a.visible);!o.length&&l.length&&this.layerStore.updateVisibility(l[0].layer,!0),r&&setTimeout(()=>this.moveToList(t.booths.filter(a=>a.visible)),n||h?500:50)}selectBooth(t,r=!0){let o=Array.isArray(t)?t:[t];this.uiState.details=o[0],o.length===1&&o[0].schedule?.length&&(this.uiState.desiredOverlaySize="medium"),o.length===1&&o[0].layer&&!o[0].visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o[0].layer,!0),r&&setTimeout(()=>this.moveToList(o),n||h?500:50)}reset(){const t=window.__searchi;t&&t.querySelector&&t.querySelector("input[type=search]")&&t.querySelector("input[type=search]").blur&&t.querySelector("input[type=search]").blur(),window.setTimeout(()=>{this.uiState.setKioskModeEnabled||k().then(()=>{S(()=>{this.selectSearch(""),this.uiState.details=null,this.resetCameraFn?.(),this.uiState.menu=!1,this.searchStore.resetSearchBox(),this.searchButtonsStore.clearAllFilters()}),setTimeout(()=>{S(()=>{this.uiState.inIdle=!0})},100)})},1e3)}selectNone(){window.__resett&&window.__resett(),this.uiState.details=this.uiState.selectedCategory}selectBookmarks(){this.uiState.details=null,this.uiState.list={type:"bookmarks"}}selectVisited(){this.uiState.details=null,this.uiState.list={type:"visited"}}selectLanguage(){this.uiState.details=null,this.uiState.list={type:d}}selectCategory(t){window.__resett&&window.__resett(),this.uiState.details=t,this.uiState.list={type:"category",category:t},this.uiState.desiredOverlaySize="full",t.exhibitors.find(o=>o.booths.find(l=>l.visible))||this.layerStore.updateVisibility(t.exhibitors[0]?.booths[0]?.layer,!0),setTimeout(()=>{this.uiState.moveToBooths=t.exhibitors.filter(o=>o.booths.find(l=>l.visible)).flatMap(o=>o.booths)},200)}selectEventItem(t,r=!0){if(this.uiState.hoveredExhibitor=null,this.uiState.details=t,this.uiState.desiredOverlaySize="medium",t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&o.layer&&!o.visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o.layer,!0)}r&&setTimeout(()=>{if(t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&this.moveToList([o])}},n||h?500:50)}selectSearch(t){window.__resett&&window.__resett(),this.uiState.details=null,this.speakerStore.clearSelectedSpeaker(),this.uiState.list={type:"search",text:x(t,Object.keys(this.uiState.mapSettings).map(r=>`${r}=`)),focused:!1},this.uiState.activeListIndex=-1}clickBookmarks(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectBookmarks(),this.moveToList(),this.showMap()}clickVisited(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectVisited(),this.moveToList(),this.showMap()}clickLanguage(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectLanguage()}clickCategory(t){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectCategory(t),this.uiState.onCategoryClick&&this.uiState.onCategoryClick({id:t.id,name:t.name,exhibitors:t.exhibitors.map(r=>r.id)}),setTimeout(()=>{this.moveToList(),this.showMap()},100)}clickSeminars(){this.clickCategory(this.categoryStore.seminarsCategory)}clickBoothInList(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t),this.moveToList([t]),this.showMap()}clickBoothInList2(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t,!1),window.setTimeout(()=>{this.moveToList([t]),this.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}clickBooth(t){if(this.uiState.menu=!1,this.uiState.list.type==="sessions"&&this.searchStore.selectSearch(),this.uiState.list.type==="speakers"&&this.searchStore.selectSearch(),this.uiState.list.type==="tours"&&this.searchStore.selectSearch(),this.uiState.list.type==="multi-point-tour"&&this.searchStore.selectSearch(),!(this.uiState.selectedRoute?.from&&this.uiState.selectedRoute?.to)){if(this.uiState.selectedRoute?.to&&!this.uiState.selectedRoute?.from&&t){this.routeStore.setStartPoint(t);return}if(t)this.routeStore.tempToBooth=t;else{this.uiState.details=null,this.fp.hidePathways(),this.uiState.list={type:"search",text:"",focused:!1},this.uiState.onBoothClick&&this.uiState.onBoothClick({target:null});return}if(this.uiState.onBoothClick){const r={name:"",description:""},o={target:{...t,layer:t.layer||r}};this.uiState.onBoothClick(o)}t.exhibitors.length===1&&t instanceof L?(this.heatmapStore.forceTrack={action:b.ViewBooth,label:t.name},this.selectExhibitor(t.exhibitors[0],!1)):this.selectBooth(t,!1),this.showMap()}}clickExhibitor2(t){this.selectExhibitor(t,!0),this.showMap()}clickExhibitor(t){window.setTimeout(()=>{this.clickExhibitor2(t)},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}showMap(){this.uiState.overlayPosition==="bottom"&&g&&(this.uiState.desiredOverlaySize="medium")}showOverlay(){this.uiState.overlayPosition==="bottom"&&(this.uiState.desiredOverlaySize="full")}toggleMapOverlay(){this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize==="full"?this.uiState.desiredOverlaySize="medium":this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize!=="full"&&(this.uiState.desiredOverlaySize="full")}moveToList(t){t=t||this.uiState.listItems;const r=[];t.forEach(o=>{if(o instanceof p)r.push(...o.booths.filter(l=>l.visible));else if(o instanceof c)o.visible&&r.push(o);else if(o instanceof F&&o.boothId){const l=this.boothStore.boothById.get(o.boothId);l?.visible&&r.push(l)}else o instanceof X&&this.speakerStore.getEventsBySpeaker(o.id).forEach(l=>{if(!l.boothId)return;const a=this.boothStore.boothById.get(l.boothId);a?.visible&&r.push(a)})}),this.uiState.moveToBooths=r}moveToExhibitor(t){this.moveToList([t])}changeActiveListIndex(t){let r=this.uiState.activeListIndex+t;r=Math.max(0,Math.min(this.uiState.listItems.length-1,r)),this.uiState.activeListIndex=r}toggleModal(t){this.uiState.modalActive[t]=!this.uiState.modalActive[t]}openGallery(){this.uiState.galleryActive=!0}closeGallery(){this.uiState.galleryActive=!1}openActiveListItem(){const t=this.uiState.listItems[this.uiState.activeListIndex];t&&(v.log("Opening",t),t instanceof p?this.clickExhibitor(t):t instanceof T?this.clickCategory(t):t instanceof c&&this.clickBoothInList2(t))}toggleCategoryFilter(){this.uiState.categoryFilterOpen=!this.uiState.categoryFilterOpen}applyCategoryFilters(t){this.uiState.selectedCategoryFilters=t,this.uiState.categoryFilterOpen=!1}get filteredExhibitors(){return this.uiState.selectedCategoryFilters.length===0?this.exhibitorStore.exhibitors:this.exhibitorStore.exhibitors.filter(t=>this.uiState.selectedCategoryFilters.some(r=>t.categories.some(o=>o.id===r.id)))}selectSessions(){this.uiState.list={type:"sessions",text:"",focused:!1},this.uiState.menu=!1,this.uiState.selectedTrack=null,this.searchButtonsStore.setSubButtonId(null),this.searchButtonsStore.subButtonsEnabled&&this.searchButtonsStore.showSubButtons("sessions"),h&&(this.uiState.desiredOverlaySize="full")}selectExhibitors(){this.uiState.list={type:"exhibitors",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectTours(){this.uiState.list={type:"tours",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeakers(){this.uiState.list={type:"speakers",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeaker(t,r=!0){this.speakerStore.selectSpeaker(t,r)}resetFilters(){this.searchButtonsStore.clearAllFilters()}registerShortcutProviders(){this.shortcutRegistry.register(new U(this)),this.shortcutRegistry.register(new W(this)),this.shortcutRegistry.register(new N(this))}}i([u],e.prototype,"initialized",void 0),i([u],e.prototype,"resetCameraFn",void 0),i([s],e.prototype,"setResetCameraFn",null),i([s],e.prototype,"selectExhibitor",null),i([s],e.prototype,"selectBooth",null),i([s],e.prototype,"reset",null),i([s],e.prototype,"selectNone",null),i([s],e.prototype,"selectBookmarks",null),i([s],e.prototype,"selectVisited",null),i([s],e.prototype,"selectLanguage",null),i([s],e.prototype,"selectCategory",null),i([s],e.prototype,"selectEventItem",null),i([s],e.prototype,"selectSearch",null),i([s],e.prototype,"clickBookmarks",null),i([s],e.prototype,"clickVisited",null),i([s],e.prototype,"clickLanguage",null),i([s],e.prototype,"clickCategory",null),i([s],e.prototype,"clickSeminars",null),i([s],e.prototype,"clickBoothInList",null),i([s],e.prototype,"clickBoothInList2",null),i([s],e.prototype,"clickBooth",null),i([s],e.prototype,"clickExhibitor2",null),i([s],e.prototype,"clickExhibitor",null),i([s],e.prototype,"showMap",null),i([s],e.prototype,"showOverlay",null),i([s],e.prototype,"toggleMapOverlay",null),i([s],e.prototype,"moveToList",null),i([s],e.prototype,"moveToExhibitor",null),i([s],e.prototype,"changeActiveListIndex",null),i([s],e.prototype,"toggleModal",null),i([s],e.prototype,"openGallery",null),i([s],e.prototype,"closeGallery",null),i([s],e.prototype,"openActiveListItem",null),i([s],e.prototype,"toggleCategoryFilter",null),i([s],e.prototype,"applyCategoryFilters",null),i([m],e.prototype,"filteredExhibitors",null),i([s],e.prototype,"selectSessions",null),i([s],e.prototype,"selectExhibitors",null),i([s],e.prototype,"selectTours",null),i([s],e.prototype,"selectSpeakers",null),i([s],e.prototype,"selectSpeaker",null),i([s],e.prototype,"resetFilters",null);
@@ -17,6 +17,8 @@ export default class RouteStore {
17
17
  prevZ: string;
18
18
  markersData: MarkersData;
19
19
  prevMarkers: Marker[];
20
+ /** Cancels the camera move still waiting for a floor to come on screen (see `revealLayer`). */
21
+ private pendingReveal;
20
22
  showAccessible: boolean;
21
23
  onlyAccessible: boolean;
22
24
  currentRouteLayer: Layer;
@@ -47,6 +49,17 @@ export default class RouteStore {
47
49
  clickRoute(from: Booth, to: Booth): void;
48
50
  selectCurrentPosition(point: CurrentPosition, focus?: boolean, icon?: number): void;
49
51
  findLocation(): void;
52
+ /** The dot, plus — when it lies outside the drawing — enough of the nearest map edge for context. */
53
+ private findLocationRect;
54
+ /**
55
+ * Focus for a position update (first fix, or the dot changing floor): bring
56
+ * its floor on screen, then move the camera onto it keeping the zoom —
57
+ * `panTo` in the floor plan renderer; under MapLibre the renderer camera is
58
+ * an external-mode no-op stub, so the move goes through the adapter's
59
+ * `moveToLocation` reaction instead. Waits for the floor to be visible first
60
+ * (see `revealLayer`).
61
+ */
62
+ private focusOnPosition;
50
63
  routeUnits: string;
51
64
  get routeInfo(): {
52
65
  distance: string;
@@ -1 +1 @@
1
- import{__decorate as n}from"tslib";import{action as f,computed as g,observable as u}from"mobx";import{Box as R,Point as _,boxContainsPoint as O,pointDistance as T}from"@expofp/geometry";import c,{layersStore as x}from".";import{fpGeo as S}from"../data/fpGeo";import{getName as F}from"../components/Kiosk/SetKiosk";import{DEFAULT_UNITS as L,ORIENTATION_GRANTED_KEY as G}from"../constants";import E from"../data";import{getLayerSvg as B,svgArea as m}from"../data/svg";import{GaEventActions as U,sendEventToGa as $}from"../tools/gtag";import P from"../tools/logger";import{areLayersEnabled as V}from"../utils/areLayersEnabled";import{calcSpeed as D}from"../utils/calcSpeed";import{calcTravelTime as w}from"../utils/calcTravelTime";import{calculateRelativeBearing as K,convertGpsToLocal as A,isValidPointCoords as I}from"../utils/gps";import{boothToEndpoint as C,buildRoute as W,CURRENT_LOCATION_NAME as Z,CURRENT_POSITION_POINT_ID as q,isWayfindingReady as j,KIOSK_ANCHOR_POINT_ID as X,toArbitraryPoint as M}from"../wayfinding";import{BoothBase as y}from"./BoothStore";import{uiState as h}from"./index";import{LayersMode as Y}from"./LayerStore";const d=o=>typeof o=="string"?Number(o.replace(",",".")):o;export default class i{constructor(t){this.routeLines=[],this.routeDistance=null,this.currentPosition=null,this.requestCompass=!1,this.iconType=0,this.tempToBooth=null,this.focusEnabled=!0,this.prevZ=null,this.markersData={icons:[],markers:[]},this.prevMarkers=[],this.showAccessible=!1,this.onlyAccessible=!1,this.currentRouteLayer=null,this.currentRouteExhibitor=null,this.routeUnits=L,this.isGpsTrackingEnabled=!0,this.rootStore=t,this.focusEnabled=!window.location.search}get canFindLocation(){return!!h.kioskData||!!this.currentPosition}selectRoute(t,e=!0,r=!1){if(e&&(h.list={type:"search",text:"",focused:!1}),t&&!t.from&&t.to){const l=this.resolveFallbackFrom();l&&(t=new Route(l,t.to,t.waypoints))}t?.from&&t?.to&&t.from===t.to&&(t=null);let s=[];t?.from&&t?.to&&window.setTimeout(()=>{this.rootStore.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50),t?.from instanceof y&&t.from.visible&&s.push(t.from),t?.to instanceof y&&t.to.visible&&(this.tempToBooth=null,s.push(t.to)),!t&&c.fp.onDirection&&c.fp.onDirection(null);const a=()=>{if(this.rootStore.moveToList(s),h.details=t,t&&(!t.from||!t.to)&&c.showOverlay(),t?.to&&t?.from){const l=H(t.from);l&&this.rootStore.layerStore.updateVisibility(l,!0)}if(!this.currentRouteLayer){const l=N(this.rootStore.layerStore,t?.from),p=N(this.rootStore.layerStore,t?.to);l?this.currentRouteLayer=l:p&&(this.currentRouteLayer=p)}e&&t?.from&&t?.to&&$(U.ClickDirections,`${t?.from?"From "+t.from.name:""} ${t?.to?"To "+t.to.name:""}`)};r?a():setTimeout(a,200)}rebuildRouteFromPosition(t){const e=h.selectedRoute;e?.to&&this.selectRoute(new Route(t,e.to,e.waypoints),!1,!0)}resolveFallbackFrom(){if(this.currentPosition)return M(this.currentPosition,Z,q);const t=h.kioskData;return t?M({x:t.x,y:t.y,z:t.z},F(),X):null}setStartPoint(t){const e=h.selectedRoute;if(e?.to&&!e?.from&&t){const r=new Route(t,e.to,e.waypoints);this.selectRoute(r)}}get pathLayers(){return c.routeStore.routeLines?.map(t=>t.p0.layer)?.filter((t,e,r)=>r.indexOf(t)===e).map((t,e)=>({id:e+1,layer:c.layerStore.findLayer(t)}))}getNearestBooth(t){if(!t)return null;let e=this.rootStore.layerStore.findLayer(t.z);const r=t.lat&&t.lng?A(t,S.properties.config):t;return this.rootStore.boothStore.booths.filter(s=>x.mode===Y.Default||!e?s.visible&&s.rect:s.rect&&(typeof t.z!="number"&&!t.z&&s.visible||e.name===s.layer?.name)).sort((s,a)=>T(r,s.rect.center)-T(r,a.rect.center))[0]||null}setMarkers(t){this.markersData.markers=(t?.markers??[]).map(J),this.markersData.icons=t?.icons??[]}selectMarker(t,e){const r=this.markersData.markers.find(a=>a.id===t);this.markersData.markers.forEach(a=>a.active=!1),r&&(r.active=!0);let s=c.layerStore.findLayer(r?.z);if(e&&r){const a=c.rendererService.renderer;return s&&!s?.visible&&x.updateVisibility(s,!0),a?a.controls.panTo(r.x,r.y):(P.warn("Renderer is not initialized. Cannot pan to marker."),Promise.resolve())}return Promise.resolve()}get selectedMarkers(){return this.markersData.markers.filter(t=>t.active)}get layers(){var t=[];return c.routeStore.routeLines?.map(e=>e.p0.layer).forEach(e=>{t.indexOf(e)===-1&&t.push(e)}),t.map(e=>c.layerStore.layers.find(r=>r.name===e))}clickRoute(t,e){window.__resett&&window.__resett(),this.rootStore.uiState.menu=null,h.list.type==="route-planner"&&(h.list={type:"search",text:"",focused:!1}),this.selectRoute(new Route(t,e))}selectCurrentPosition(t,e=!0,r){clearTimeout(this.cpTimeout),t&&(t.x=d(t.x),t.y=d(t.y),t.lat=d(t.lat),t.lng=d(t.lng),V()||(t.z=null));const s=e&&this.rootStore.uiState.details&&!(this.rootStore.uiState.details instanceof Route),a=e&&!s&&(this.focusEnabled||this.prevZ!=t?.z);this.focusEnabled&&(this.focusEnabled=!1),this.prevZ=t?.z?.toString(),this.iconType=r?1:0;const l=t?Q(t):null;if(!l){this.currentPosition=null;return}const p=c.layerStore.findLayer(t.z),b=new CurrentPosition(l.x,l.y,p?.name||this.currentRouteLayer?.name,K(l),t.lat,t.lng);let v=!this.routeLines?.length;if(p&&this.routeLines?.length&&(v=!!this.routeLines.find(k=>k.p0.layer===p.name||k.p1.layer===p.name)),a&&v){const k=c.rendererService.renderer;if(p&&!p?.visible&&x.updateVisibility(p,!0),!k){P.warn("Renderer is not initialized. Cannot pan to current position.");return}k.controls.panTo(b.x,b.y)}this.currentPosition=b,this.gpsEnabled||(this.cpTimeout=setTimeout(()=>{this.currentPosition&&this.selectCurrentPosition(null,!1)},30*1e3))}findLocation(){if(!this.canFindLocation)return;if(c.maplibreStore.showMaplibre){h.moveToLocation=!0;return}const t=this.currentPosition??h.kioskData;if(!t)return;this.currentPosition&&localStorage.getItem(G)==="false"&&(c.routeStore.requestCompass=!0);const e=R.fromCenter(t,{x:100,y:100});let r;if(e.intersects(m))r=e;else{const a=Math.max(m.min.x,Math.min(t.x,m.max.x)),l=Math.max(m.min.y,Math.min(t.y,m.max.y)),p=Math.min(m.size.width,m.size.height)*.3,b=R.fromCenter({x:a,y:l},{x:p,y:p}).intersection(m);r=b?R.fromUnion(e,b):e}h.moveToRect=r;const s=c.layerStore.findLayer(t.z);s&&x.updateVisibility(s,!0)}get routeInfo(){const t=this.routeDistance,e=this.routeUnits;return t?{distance:`${t}${e}`,units:e,time:w(t,D(e))}:null}updateRoute(t,e){!t?.length&&!this.routeLines.length||(this.routeLines=t,this.updateRoutePoints())}updateRouteDistance(t){if(t==null)return;const e=B(),r=(e.getAttribute("units")||L).toLowerCase?.().trim(),s=e.getAttribute("fp-ver")?.startsWith("5")??!1;this.routeDistance=Math.round(t/(s?1:10)),this.routeUnits=r,this.updateRoutePoints()}updateRoutePoints(){const t=h.selectedRoute,e=this.routeDistance,r=this.routeUnits;c.fp.onDirection&&setTimeout(()=>{c.fp.onDirection({from:z(t?.from??null),to:z(t?.to??null),lines:this.routeLines,distance:`${e}${r}`,units:r,time:w(e,D(r))})},200)}checkRoutes(){if(!j()){console.warn("checkRoutes: wayfinding is not initialized \u2014 call createWayfinding() first. Skipping route check.");return}const t=c.boothStore.booths;console.info(`Route check started ${t.length}.... `);for(let e=0;e<t.length;e++){const r=t[e];for(let s=e+1;s<t.length;s++){const a=t[s];W(C(r),C(a)).lines.length||console.warn(`No route found from ${r.name} to ${a.name}`)}}console.info("Route check done....")}setGpsTrackingEnabled(t){this.isGpsTrackingEnabled=t}get gpsEnabled(){return E.autoTrackingGps&&this.isGpsTrackingEnabled&&!E.enableIPS}setOnlyAccessible(t){this.onlyAccessible=t}}n([u],i.prototype,"routeLines",void 0),n([u],i.prototype,"routeDistance",void 0),n([u],i.prototype,"currentPosition",void 0),n([u],i.prototype,"requestCompass",void 0),n([u],i.prototype,"iconType",void 0),n([u],i.prototype,"tempToBooth",void 0),n([u],i.prototype,"focusEnabled",void 0),n([u],i.prototype,"prevZ",void 0),n([u],i.prototype,"markersData",void 0),n([u],i.prototype,"prevMarkers",void 0),n([u],i.prototype,"showAccessible",void 0),n([u],i.prototype,"onlyAccessible",void 0),n([u],i.prototype,"currentRouteLayer",void 0),n([u],i.prototype,"currentRouteExhibitor",void 0),n([g],i.prototype,"canFindLocation",null),n([f],i.prototype,"selectRoute",null),n([f],i.prototype,"rebuildRouteFromPosition",null),n([f],i.prototype,"setStartPoint",null),n([g({keepAlive:!0})],i.prototype,"pathLayers",null),n([f],i.prototype,"setMarkers",null),n([f],i.prototype,"selectMarker",null),n([g({keepAlive:!0})],i.prototype,"selectedMarkers",null),n([g({keepAlive:!0})],i.prototype,"layers",null),n([f],i.prototype,"clickRoute",null),n([f],i.prototype,"selectCurrentPosition",null),n([f],i.prototype,"findLocation",null),n([u],i.prototype,"routeUnits",void 0),n([g],i.prototype,"routeInfo",null),n([f],i.prototype,"updateRoute",null),n([f],i.prototype,"updateRouteDistance",null),n([f],i.prototype,"updateRoutePoints",null),n([f],i.prototype,"checkRoutes",null),n([u],i.prototype,"isGpsTrackingEnabled",void 0),n([f],i.prototype,"setGpsTrackingEnabled",null),n([g({keepAlive:!0})],i.prototype,"gpsEnabled",null),n([f],i.prototype,"setOnlyAccessible",null);function H(o){if(o)return o instanceof y?o.layer?.name:o.layer}function N(o,t){return t?t instanceof y?t.layer??null:o.findLayer(t.layer):null}function J(o){return{...o,x:d(o.x),y:d(o.y),lat:d(o.lat),lng:d(o.lng)}}function Q(o){let t=null,e=null;return S&&(t=S.properties.config),t&&O({min:t.p0,max:t.p2},o)?e={...o}:t&&I(o.lat)&&I(o.lng)?e=A(o,t):t||(e=o),e||null}export function findBooth(o){return c.boothStore.findBooth(o)||c.exhibitorStore.findExhibitor(o)?.booths[0]}export function findEntityByExternalId(o){const t=c.boothStore.boothByExternalId.get(o);if(t)return{type:"booth",entity:t};const e=c.exhibitorStore.exhibitorByExternalId.get(o);if(e)return{type:"exhibitor",entity:e}}export function separateExternalIds(o){const t=[],e=[];for(const r of o){const s=findEntityByExternalId(r);s&&(s.type==="booth"?t.push(r):e.push(r))}return{boothExternalIds:t,exhibitorExternalIds:e}}export function extractRoute(o,t,e){return new Route(findBooth(o)??null,findBooth(t)??null,e?.map(r=>findBooth(r)))}export class Route{constructor(t,e,r){this.from=t,this.to=e,this.waypoints=r;const s=t instanceof y?t.id:void 0,a=e instanceof y?e.id:void 0;this.waypoints=r?.filter(l=>l&&l.id!==s&&l.id!==a)}}function z(o){return o?o instanceof y?{id:o.id,name:o.name,externalId:o.externalId,layer:{name:o.layer?.name,description:o.layer?.description}}:{id:Number.MAX_SAFE_INTEGER,name:o.name,externalId:void 0,layer:{name:o.layer,description:void 0}}:null}export class CurrentPosition extends _{constructor(t,e,r,s,a,l){super(t,e),this.x=t,this.y=e,this.z=r,this.angle=s,this.lat=a,this.lng=l}}
1
+ import{__decorate as n}from"tslib";import{action as f,computed as b,observable as u}from"mobx";import{Box as R,Point as F,boxContainsPoint as G,pointDistance as L}from"@expofp/geometry";import c,{layersStore as g}from".";import{fpGeo as k}from"../data/fpGeo";import{getName as B}from"../components/Kiosk/SetKiosk";import{DEFAULT_UNITS as T,ORIENTATION_GRANTED_KEY as U}from"../constants";import E from"../data";import{getLayerSvg as $,svgArea as m}from"../data/svg";import{GaEventActions as V,sendEventToGa as K}from"../tools/gtag";import P from"../tools/logger";import{areLayersEnabled as W}from"../utils/areLayersEnabled";import{calcSpeed as w}from"../utils/calcSpeed";import{calcTravelTime as D}from"../utils/calcTravelTime";import{calculateRelativeBearing as Z,convertGpsToLocal as A,isValidPointCoords as I}from"../utils/gps";import{boothToEndpoint as C,buildRoute as q,CURRENT_LOCATION_NAME as j,CURRENT_POSITION_POINT_ID as X,isWayfindingReady as Y,KIOSK_ANCHOR_POINT_ID as H,toArbitraryPoint as M}from"../wayfinding";import{BoothBase as y}from"./BoothStore";import{uiState as p}from"./index";import{LayersMode as J}from"./LayerStore";import{revealLayer as N}from"./reveal-layer.js";const d=o=>typeof o=="string"?Number(o.replace(",",".")):o;export default class i{constructor(t){this.routeLines=[],this.routeDistance=null,this.currentPosition=null,this.requestCompass=!1,this.iconType=0,this.tempToBooth=null,this.focusEnabled=!0,this.prevZ=null,this.markersData={icons:[],markers:[]},this.prevMarkers=[],this.pendingReveal=null,this.showAccessible=!1,this.onlyAccessible=!1,this.currentRouteLayer=null,this.currentRouteExhibitor=null,this.routeUnits=T,this.isGpsTrackingEnabled=!0,this.rootStore=t,this.focusEnabled=!window.location.search}get canFindLocation(){return!!p.kioskData||!!this.currentPosition}selectRoute(t,e=!0,r=!1){if(e&&(p.list={type:"search",text:"",focused:!1}),t&&!t.from&&t.to){const l=this.resolveFallbackFrom();l&&(t=new Route(l,t.to,t.waypoints))}t?.from&&t?.to&&t.from===t.to&&(t=null);let s=[];t?.from&&t?.to&&window.setTimeout(()=>{this.rootStore.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50),t?.from instanceof y&&t.from.visible&&s.push(t.from),t?.to instanceof y&&t.to.visible&&(this.tempToBooth=null,s.push(t.to)),!t&&c.fp.onDirection&&c.fp.onDirection(null);const a=()=>{if(this.rootStore.moveToList(s),p.details=t,t&&(!t.from||!t.to)&&c.showOverlay(),t?.to&&t?.from){const l=Q(t.from);l&&this.rootStore.layerStore.updateVisibility(l,!0)}if(!this.currentRouteLayer){const l=O(this.rootStore.layerStore,t?.from),h=O(this.rootStore.layerStore,t?.to);l?this.currentRouteLayer=l:h&&(this.currentRouteLayer=h)}e&&t?.from&&t?.to&&K(V.ClickDirections,`${t?.from?"From "+t.from.name:""} ${t?.to?"To "+t.to.name:""}`)};r?a():setTimeout(a,200)}rebuildRouteFromPosition(t){const e=p.selectedRoute;e?.to&&this.selectRoute(new Route(t,e.to,e.waypoints),!1,!0)}resolveFallbackFrom(){if(this.currentPosition)return M(this.currentPosition,j,X);const t=p.kioskData;return t?M({x:t.x,y:t.y,z:t.z},B(),H):null}setStartPoint(t){const e=p.selectedRoute;if(e?.to&&!e?.from&&t){const r=new Route(t,e.to,e.waypoints);this.selectRoute(r)}}get pathLayers(){return c.routeStore.routeLines?.map(t=>t.p0.layer)?.filter((t,e,r)=>r.indexOf(t)===e).map((t,e)=>({id:e+1,layer:c.layerStore.findLayer(t)}))}getNearestBooth(t){if(!t)return null;let e=this.rootStore.layerStore.findLayer(t.z);const r=t.lat&&t.lng?A(t,k.properties.config):t;return this.rootStore.boothStore.booths.filter(s=>g.mode===J.Default||!e?s.visible&&s.rect:s.rect&&(typeof t.z!="number"&&!t.z&&s.visible||e.name===s.layer?.name)).sort((s,a)=>L(r,s.rect.center)-L(r,a.rect.center))[0]||null}setMarkers(t){this.markersData.markers=(t?.markers??[]).map(tt),this.markersData.icons=t?.icons??[]}selectMarker(t,e){const r=this.markersData.markers.find(a=>a.id===t);this.markersData.markers.forEach(a=>a.active=!1),r&&(r.active=!0);let s=c.layerStore.findLayer(r?.z);if(e&&r){const a=c.rendererService.renderer;return s&&!s?.visible&&g.updateVisibility(s,!0),a?a.controls.panTo(r.x,r.y):(P.warn("Renderer is not initialized. Cannot pan to marker."),Promise.resolve())}return Promise.resolve()}get selectedMarkers(){return this.markersData.markers.filter(t=>t.active)}get layers(){var t=[];return c.routeStore.routeLines?.map(e=>e.p0.layer).forEach(e=>{t.indexOf(e)===-1&&t.push(e)}),t.map(e=>c.layerStore.layers.find(r=>r.name===e))}clickRoute(t,e){window.__resett&&window.__resett(),this.rootStore.uiState.menu=null,p.list.type==="route-planner"&&(p.list={type:"search",text:"",focused:!1}),this.selectRoute(new Route(t,e))}selectCurrentPosition(t,e=!0,r){clearTimeout(this.cpTimeout),t&&(t.x=d(t.x),t.y=d(t.y),t.lat=d(t.lat),t.lng=d(t.lng),W()||(t.z=null));const s=e&&this.rootStore.uiState.details&&!(this.rootStore.uiState.details instanceof Route),a=e&&!s&&(this.focusEnabled||this.prevZ!=t?.z);this.focusEnabled&&(this.focusEnabled=!1),this.prevZ=t?.z?.toString(),this.iconType=r?1:0;const l=t?et(t):null;if(!l){this.currentPosition=null;return}const h=c.layerStore.findLayer(t.z),x=new CurrentPosition(l.x,l.y,h?.name||this.currentRouteLayer?.name,Z(l),t.lat,t.lng);let v=!this.routeLines?.length;h&&this.routeLines?.length&&(v=!!this.routeLines.find(S=>S.p0.layer===h.name||S.p1.layer===h.name));const _=a&&v;this.currentPosition=x,_&&this.focusOnPosition(x,h),this.gpsEnabled||(this.cpTimeout=setTimeout(()=>{this.currentPosition&&this.selectCurrentPosition(null,!1)},30*1e3))}findLocation(){if(!this.canFindLocation)return;const t=this.currentPosition??p.kioskData;t&&(this.currentPosition&&localStorage.getItem(U)==="false"&&(c.routeStore.requestCompass=!0),this.pendingReveal?.(),this.pendingReveal=N({layer:c.layerStore.findLayer(t.z),show:e=>g.updateVisibility(e,!0),then:()=>{if(c.maplibreStore.showMaplibre){p.moveToLocation=!0;return}p.moveToRect=this.findLocationRect(t)}}))}findLocationRect(t){const e=R.fromCenter(t,{x:100,y:100});if(e.intersects(m))return e;const r=Math.max(m.min.x,Math.min(t.x,m.max.x)),s=Math.max(m.min.y,Math.min(t.y,m.max.y)),a=Math.min(m.size.width,m.size.height)*.3,l=R.fromCenter({x:r,y:s},{x:a,y:a}).intersection(m);return l?R.fromUnion(e,l):e}focusOnPosition(t,e){this.pendingReveal?.(),this.pendingReveal=N({layer:e,show:r=>g.updateVisibility(r,!0),then:()=>{if(c.maplibreStore.showMaplibre){p.moveToLocation=!0;return}const r=c.rendererService.renderer;if(!r){P.warn("Renderer is not initialized. Cannot pan to current position.");return}r.controls.panTo(t.x,t.y)}})}get routeInfo(){const t=this.routeDistance,e=this.routeUnits;return t?{distance:`${t}${e}`,units:e,time:D(t,w(e))}:null}updateRoute(t,e){!t?.length&&!this.routeLines.length||(this.routeLines=t,this.updateRoutePoints())}updateRouteDistance(t){if(t==null)return;const e=$(),r=(e.getAttribute("units")||T).toLowerCase?.().trim(),s=e.getAttribute("fp-ver")?.startsWith("5")??!1;this.routeDistance=Math.round(t/(s?1:10)),this.routeUnits=r,this.updateRoutePoints()}updateRoutePoints(){const t=p.selectedRoute,e=this.routeDistance,r=this.routeUnits;c.fp.onDirection&&setTimeout(()=>{c.fp.onDirection({from:z(t?.from??null),to:z(t?.to??null),lines:this.routeLines,distance:`${e}${r}`,units:r,time:D(e,w(r))})},200)}checkRoutes(){if(!Y()){console.warn("checkRoutes: wayfinding is not initialized \u2014 call createWayfinding() first. Skipping route check.");return}const t=c.boothStore.booths;console.info(`Route check started ${t.length}.... `);for(let e=0;e<t.length;e++){const r=t[e];for(let s=e+1;s<t.length;s++){const a=t[s];q(C(r),C(a)).lines.length||console.warn(`No route found from ${r.name} to ${a.name}`)}}console.info("Route check done....")}setGpsTrackingEnabled(t){this.isGpsTrackingEnabled=t}get gpsEnabled(){return E.autoTrackingGps&&this.isGpsTrackingEnabled&&!E.enableIPS}setOnlyAccessible(t){this.onlyAccessible=t}}n([u],i.prototype,"routeLines",void 0),n([u],i.prototype,"routeDistance",void 0),n([u],i.prototype,"currentPosition",void 0),n([u],i.prototype,"requestCompass",void 0),n([u],i.prototype,"iconType",void 0),n([u],i.prototype,"tempToBooth",void 0),n([u],i.prototype,"focusEnabled",void 0),n([u],i.prototype,"prevZ",void 0),n([u],i.prototype,"markersData",void 0),n([u],i.prototype,"prevMarkers",void 0),n([u],i.prototype,"showAccessible",void 0),n([u],i.prototype,"onlyAccessible",void 0),n([u],i.prototype,"currentRouteLayer",void 0),n([u],i.prototype,"currentRouteExhibitor",void 0),n([b],i.prototype,"canFindLocation",null),n([f],i.prototype,"selectRoute",null),n([f],i.prototype,"rebuildRouteFromPosition",null),n([f],i.prototype,"setStartPoint",null),n([b({keepAlive:!0})],i.prototype,"pathLayers",null),n([f],i.prototype,"setMarkers",null),n([f],i.prototype,"selectMarker",null),n([b({keepAlive:!0})],i.prototype,"selectedMarkers",null),n([b({keepAlive:!0})],i.prototype,"layers",null),n([f],i.prototype,"clickRoute",null),n([f],i.prototype,"selectCurrentPosition",null),n([f],i.prototype,"findLocation",null),n([u],i.prototype,"routeUnits",void 0),n([b],i.prototype,"routeInfo",null),n([f],i.prototype,"updateRoute",null),n([f],i.prototype,"updateRouteDistance",null),n([f],i.prototype,"updateRoutePoints",null),n([f],i.prototype,"checkRoutes",null),n([u],i.prototype,"isGpsTrackingEnabled",void 0),n([f],i.prototype,"setGpsTrackingEnabled",null),n([b({keepAlive:!0})],i.prototype,"gpsEnabled",null),n([f],i.prototype,"setOnlyAccessible",null);function Q(o){if(o)return o instanceof y?o.layer?.name:o.layer}function O(o,t){return t?t instanceof y?t.layer??null:o.findLayer(t.layer):null}function tt(o){return{...o,x:d(o.x),y:d(o.y),lat:d(o.lat),lng:d(o.lng)}}function et(o){let t=null,e=null;return k&&(t=k.properties.config),t&&G({min:t.p0,max:t.p2},o)?e={...o}:t&&I(o.lat)&&I(o.lng)?e=A(o,t):t||(e=o),e||null}export function findBooth(o){return c.boothStore.findBooth(o)||c.exhibitorStore.findExhibitor(o)?.booths[0]}export function findEntityByExternalId(o){const t=c.boothStore.boothByExternalId.get(o);if(t)return{type:"booth",entity:t};const e=c.exhibitorStore.exhibitorByExternalId.get(o);if(e)return{type:"exhibitor",entity:e}}export function separateExternalIds(o){const t=[],e=[];for(const r of o){const s=findEntityByExternalId(r);s&&(s.type==="booth"?t.push(r):e.push(r))}return{boothExternalIds:t,exhibitorExternalIds:e}}export function extractRoute(o,t,e){return new Route(findBooth(o)??null,findBooth(t)??null,e?.map(r=>findBooth(r)))}export class Route{constructor(t,e,r){this.from=t,this.to=e,this.waypoints=r;const s=t instanceof y?t.id:void 0,a=e instanceof y?e.id:void 0;this.waypoints=r?.filter(l=>l&&l.id!==s&&l.id!==a)}}function z(o){return o?o instanceof y?{id:o.id,name:o.name,externalId:o.externalId,layer:{name:o.layer?.name,description:o.layer?.description}}:{id:Number.MAX_SAFE_INTEGER,name:o.name,externalId:void 0,layer:{name:o.layer,description:void 0}}:null}export class CurrentPosition extends F{constructor(t,e,r,s,a,l){super(t,e),this.x=t,this.y=e,this.z=r,this.angle=s,this.lat=a,this.lng=l}}
@@ -171,7 +171,6 @@ export default class UIState {
171
171
  get mapVisibleBottom(): number;
172
172
  get mapVisibleStart(): number;
173
173
  get searchActionsHeightPx(): number;
174
- get fullSizeOffset(): number;
175
174
  get shouldShowSearchButtons(): false;
176
175
  get shouldShowMobileToggle(): boolean;
177
176
  get mobileToggleIsListMode(): boolean;