@expofp/floorplan 3.13.2 → 3.13.4

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 (90) hide show
  1. package/dist/browser/{Button-C5DLguTW.js → Button-Di2ct8As.js} +5 -5
  2. package/dist/browser/{CookieConsent-CPXxoJkz.js → CookieConsent-CzE7xqru.js} +7 -7
  3. package/dist/browser/{Debug-bxMz-HDF.js → Debug-BsFpCwAP.js} +7 -7
  4. package/dist/browser/{Demo-CGCZqU_8.js → Demo-CUBUALkV.js} +9 -9
  5. package/dist/browser/{Free-I-EGiu3o.js → Free-CeVCkK7q.js} +9 -9
  6. package/dist/browser/{Gallery-Bce2fubu.js → Gallery-BseorZVt.js} +9 -9
  7. package/dist/browser/{GpsLoader-CnPH3rxE.js → GpsLoader-CEqhVKuQ.js} +22 -22
  8. package/dist/browser/{KioskStore-K0Ps7wq6.js → KioskStore-CkjO0Hfm.js} +6 -6
  9. package/dist/browser/{MaplibreAdapter-DKa1N9-7.js → MaplibreAdapter-Cv3TA80a.js} +90 -90
  10. package/dist/browser/{ModalContainer-BxCJTxBS.js → ModalContainer-DBzlfN-T.js} +10 -10
  11. package/dist/browser/{PermissionNotice-BS53dDaS.js → PermissionNotice-B07dAoJS.js} +6 -6
  12. package/dist/browser/{SetKioskMode-P2g_TnCr.js → SetKioskMode-Bx1kz1kp.js} +8 -8
  13. package/dist/browser/{ShowKiosk-Bz-7t-PL.js → ShowKiosk-B7-iTNeI.js} +12 -12
  14. package/dist/browser/{TouchHand-Dm3c6gpk.js → TouchHand-Bnn5MVhC.js} +4 -4
  15. package/dist/browser/{ViewerMenuPanel-COyljU8V.js → ViewerMenuPanel-CXUBz4Wo.js} +10 -10
  16. package/dist/browser/{add-debug-secret-listener-DQjjtobD.js → add-debug-secret-listener-BNYotAb-.js} +1 -1
  17. package/dist/browser/{adopt-global-settings-DIJsf94E.js → adopt-global-settings-4U11MsDW.js} +9 -9
  18. package/dist/browser/{boolean-editor-D4Y66mgk.js → boolean-editor-CHApWCH1.js} +9 -9
  19. package/dist/browser/{bootIntercom-DUPbX22l.js → bootIntercom-DxJQ9eFU.js} +2 -2
  20. package/dist/browser/{booth-by-xy-DKyMJwg9.js → booth-by-xy-BLVVwNtj.js} +206 -206
  21. package/dist/browser/bundle.json +65 -65
  22. package/dist/browser/{classnames-CTiheKEO.js → classnames-DyPh2wWH.js} +2 -2
  23. package/dist/browser/{client-B0g0Q0fu.js → client-VtpPft-k.js} +4 -4
  24. package/dist/browser/{components-DUbHmBQ6.js → components-pEqQBzpb.js} +581 -581
  25. package/dist/browser/{debug-overlay-CKXL3Z9z.js → debug-overlay-BIIG939X.js} +10 -10
  26. package/dist/browser/{debug-ui-D2GPuJSX.js → debug-ui-Dd-aHSgD.js} +6 -6
  27. package/dist/browser/{dist-CZH-D_bo.js → dist-B--b6-sL.js} +6 -6
  28. package/dist/browser/{dist-CFY_dc-C.js → dist-B-7AJaNA.js} +3 -3
  29. package/dist/browser/{dist-BFVoy_zB.js → dist-qa-F0eMk.js} +5 -5
  30. package/dist/browser/{efp-debug-init-pd2smy4A.js → efp-debug-init-Bzf4T8Xx.js} +3 -3
  31. package/dist/browser/{enum-editor-a07SOXXi.js → enum-editor-DC0RIYSE.js} +4 -4
  32. package/dist/browser/{es5-jDwWZhmf.js → es5-DQ8JOeDN.js} +2 -2
  33. package/dist/browser/{event-not-found-CPqO_ew-.js → event-not-found-BKJBsZXi.js} +1 -1
  34. package/dist/browser/{exports-8JcxTO7_.js → exports-6X24q5_8.js} +1 -1
  35. package/dist/browser/{favicon-BhTDecsz.js → favicon-DxFo6cG6.js} +1 -1
  36. package/dist/browser/{fetch-retry.umd-BuEcG130.js → fetch-retry.umd-DbPKc93r.js} +2 -2
  37. package/dist/browser/{flex-FVc6l8VM.js → flex-D7Rgw10G.js} +5 -5
  38. package/dist/browser/{floorplan.loader-DM3BoMUa.js → floorplan.loader-DWmxY4b8.js} +19 -19
  39. package/dist/browser/{floorplan.ready-DQAk0-bE.js → floorplan.ready-BBeRJMyN.js} +312 -321
  40. package/dist/browser/{fuse-hiNWVTid.js → fuse-CMjVlF0N.js} +2 -2
  41. package/dist/browser/{i18n-DmUQ2csh.js → i18n-xqAQbHAE.js} +2885 -2510
  42. package/dist/browser/index.js +25 -25
  43. package/dist/browser/{index.module-Ce5K5GHH.js → index.module-Cow3RO4I.js} +4 -4
  44. package/dist/browser/{integrateKiosk-DLY98yHT.js → integrateKiosk-GhnQowhu.js} +3 -3
  45. package/dist/browser/{is-webview-DYW7jMPo.js → is-webview-BL3sbVlT.js} +1 -1
  46. package/dist/browser/{jsx-runtime-Cn7VZCRr.js → jsx-runtime-1kuNv2jo.js} +2 -2
  47. package/dist/browser/{lib-DKxIjoGs.js → lib-KmlWWpxs.js} +3 -3
  48. package/dist/browser/{loadImage-CFRF6nKm.js → loadImage-OQCwDcXc.js} +4 -4
  49. package/dist/browser/{logDeviceInfo-B2xD643p.js → logDeviceInfo-C4CqLCSB.js} +9 -9
  50. package/dist/browser/{main-BE7HSdfx.js → main-lSz23rgB.js} +1 -1
  51. package/dist/browser/{mobx-Dss6V0uv.js → mobx-Juv7YSNw.js} +4 -4
  52. package/dist/browser/{optional-boolean-editor-BDWvD6R3.js → optional-boolean-editor-Bzfn3FDz.js} +3 -3
  53. package/dist/browser/{optional-enum-editor-DzJSD274.js → optional-enum-editor-C46BK0zF.js} +4 -4
  54. package/dist/browser/{optional-string-editor-DvQrsAvN.js → optional-string-editor-77_tZQLr.js} +4 -4
  55. package/dist/browser/{particles.min-0GINFlmD.js → particles.min-vy3ld3Rh.js} +2 -2
  56. package/dist/browser/{react-CQIXbbli.js → react-DTFJ9F0z.js} +2 -2
  57. package/dist/browser/{react-dom-DB3HP1L3.js → react-dom--ZXNmyjd.js} +3 -3
  58. package/dist/browser/{rolldown-runtime-CBbNE2KV.js → rolldown-runtime-DKhEBWux.js} +1 -1
  59. package/dist/browser/{select-DkvD6Ont.js → select-BSCoOOKF.js} +10 -10
  60. package/dist/browser/{settings-3RnELfMa.js → settings-COo-V6uV.js} +2 -2
  61. package/dist/browser/{settings-item-wgFS4pwq.js → settings-item-twkhiQs1.js} +6 -6
  62. package/dist/browser/{store-Bh1UUDBZ.js → store-7Bfkwa8d.js} +2694 -2694
  63. package/dist/browser/{string-editor-DIG3V4Iv.js → string-editor-D3_ZBuje.js} +4 -4
  64. package/dist/browser/{text-field-Ce1nLpTL.js → text-field-BlFx76b3.js} +5 -5
  65. package/dist/browser/{theme-DE94e68B.js → theme-Cdr_JTu6.js} +8 -8
  66. package/dist/browser/{ui-DKrc1LYz.js → ui-DsnmvJHp.js} +8 -8
  67. package/dist/browser/{useRenderTarget-DwEjrRiD.js → useRenderTarget-CqTbZKLS.js} +4 -4
  68. package/dist/esm/components/LogoOverlay.js +1 -1
  69. package/dist/esm/components/Map/drawing/config/config-bg.d.ts +1 -1
  70. package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
  71. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  72. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
  73. package/dist/esm/components/Overlay.d.ts +1 -1
  74. package/dist/esm/components/Overlay.js +1 -1
  75. package/dist/esm/constants.d.ts +0 -1
  76. package/dist/esm/constants.js +1 -1
  77. package/dist/esm/data/svg.js +1 -1
  78. package/dist/esm/load-dev.d.ts +1 -1
  79. package/dist/esm/services/url-dispatch.js +1 -1
  80. package/dist/esm/store/BoothStore.d.ts +1 -1
  81. package/dist/esm/store/HeatmapStore.js +1 -1
  82. package/dist/esm/store/LayerStore.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/init/init-booths.js +1 -1
  86. package/dist/esm/store/init/init-layers.js +1 -1
  87. package/dist/esm/store/types.d.ts +6 -6
  88. package/dist/esm/tools/settings.js +1 -1
  89. package/dist/esm/utils/camera-map-settings.d.ts +2 -2
  90. package/package.json +14 -14
@@ -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.13.2" };
4
+ e.SENTRY_RELEASE = { id: "3.13.4" };
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-Cn7VZCRr.js";
10
- import { t } from "./settings-item-wgFS4pwq.js";
11
- import { t as n } from "./text-field-Ce1nLpTL.js";
9
+ import { t as e } from "./jsx-runtime-1kuNv2jo.js";
10
+ import { t } from "./settings-item-twkhiQs1.js";
11
+ import { t as n } from "./text-field-BlFx76b3.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.13.2" };
4
+ e.SENTRY_RELEASE = { id: "3.13.4" };
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-CBbNE2KV.js";
10
- import { t } from "./react-CQIXbbli.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-FVc6l8VM.js";
12
- import { t as l } from "./classnames-CTiheKEO.js";
9
+ import { r as e } from "./rolldown-runtime-DKhEBWux.js";
10
+ import { t } from "./react-DTFJ9F0z.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-D7Rgw10G.js";
12
+ import { t as l } from "./classnames-DyPh2wWH.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.13.2" };
4
+ e.SENTRY_RELEASE = { id: "3.13.4" };
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-CBbNE2KV.js";
10
- import { t } from "./react-CQIXbbli.js";
11
- import { t as n } from "./jsx-runtime-Cn7VZCRr.js";
12
- import { t as r } from "./react-dom-DB3HP1L3.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-FVc6l8VM.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-CZH-D_bo.js";
15
- import { t as y } from "./classnames-CTiheKEO.js";
9
+ import { r as e } from "./rolldown-runtime-DKhEBWux.js";
10
+ import { t } from "./react-DTFJ9F0z.js";
11
+ import { t as n } from "./jsx-runtime-1kuNv2jo.js";
12
+ import { t as r } from "./react-dom--ZXNmyjd.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-D7Rgw10G.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-B--b6-sL.js";
15
+ import { t as y } from "./classnames-DyPh2wWH.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.13.2" };
4
+ e.SENTRY_RELEASE = { id: "3.13.4" };
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-CBbNE2KV.js";
10
- import { a as t, i as n, s as r } from "./efp-debug-init-pd2smy4A.js";
11
- import { a as i, i as a } from "./adopt-global-settings-DIJsf94E.js";
12
- import { t as o } from "./jsx-runtime-Cn7VZCRr.js";
13
- import "./settings-3RnELfMa.js";
14
- import { t as s } from "./add-debug-secret-listener-DQjjtobD.js";
9
+ import { r as e } from "./rolldown-runtime-DKhEBWux.js";
10
+ import { a as t, i as n, s as r } from "./efp-debug-init-Bzf4T8Xx.js";
11
+ import { a as i, i as a } from "./adopt-global-settings-4U11MsDW.js";
12
+ import { t as o } from "./jsx-runtime-1kuNv2jo.js";
13
+ import "./settings-COo-V6uV.js";
14
+ import { t as s } from "./add-debug-secret-listener-BNYotAb-.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-D2GPuJSX.js"), { createRoot: i } = await import("./client-B0g0Q0fu.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
29
+ let { DebugUi: n } = await import("./debug-ui-Dd-aHSgD.js"), { createRoot: i } = await import("./client-VtpPft-k.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
@@ -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.13.2" };
4
+ e.SENTRY_RELEASE = { id: "3.13.4" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "a7e05aea-745e-4a4b-ba82-432527d9c312", e._sentryDebugIdIdentifier = "sentry-dbid-a7e05aea-745e-4a4b-ba82-432527d9c312");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CBbNE2KV.js";
10
- import { t } from "./react-CQIXbbli.js";
11
- import { c as n } from "./store-Bh1UUDBZ.js";
9
+ import { r as e } from "./rolldown-runtime-DKhEBWux.js";
10
+ import { t } from "./react-DTFJ9F0z.js";
11
+ import { c as n } from "./store-7Bfkwa8d.js";
12
12
  //#region src/utils/getRenderTargetFromRoot.ts
13
13
  var r = /* @__PURE__ */ e(t(), 1);
14
14
  function i(e) {
@@ -1 +1 @@
1
- import{jsx as t,jsxs as m}from"react/jsx-runtime";import{getFpSvgJs as k}from"../data/fp-payloads";import"./LogoOverlay.scss";import l from"classnames";import M from"color";import{useLocalStore as P,useObserver as _}from"mobx-react-lite";import{Suspense as O}from"react";import C from"../data";import{fpGeo as f}from"../data/fpGeo";import c,{uiState as o}from"../store";import R from"../tools/base-runtime-url";import{buildExpofpUrl as N,UTM_CAMPAIGNS as V}from"../tools/expofpUrl";import p from"../tools/settings";import{remsToPixels as a}from"../utils";import{t as r}from"../utils/i18n";import d from"../utils/is-from-designer";import A from"../utils/lazy-qr-code";import h from"./AlertContainer";const g=["info-techlive2025","metstrade-superyacht2023"].includes(p.EXPO),D=p.backgroundColor!=="none"&&M(p.backgroundColor).isDark()||f?.properties?.style?.includes("dark");export default function E(){const b=P(()=>{const s=(i,e,T,S)=>({width:S,opacity:o.wsStarted?1:0}),n=g||o.rtl?"left":"right";return{get style(){const i=a((o.overlayPosition==="left",1));if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+i;return s("bottom",n,e,"5rem")}else{let e=o.mapVisibleTop;return c.maplibreStore.showMaplibre&&(e=a(.5)),s("bottom",n,20,"4.5rem")}},get warningStyle(){const i=a(o.overlayPosition==="left"?1:.5);if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+2*i;return s("bottom",n,e,"3rem")}else{let e=o.mapVisibleTop+2*i;return c.maplibreStore.showMaplibre&&(e=a(.5)),s("top",n,e,"2rem")}}}}),u=Math.round(k().__fpStat?.dataSize/1024/1024||0),v=d&&u>=10,w=d&&!f&&C.allow3dView&&!o.kiosk&&!o.heatmap,y=o.kiosk&&!o.selectedRoute?.to&&!o.selectedRoute?.from,x=l("efp-qr",{"is-right":g||o.rtl});return _(()=>m("div",{children:[t("a",{href:N(V.SUBDOMAIN_LOGO),target:"_blank",rel:"noopener noreferrer",className:l("logo-overlay",{invert:D}),style:b.style,children:t("img",{src:`${R}expofp-overlay.png`,alt:r("Made with ExpoFP"),crossOrigin:"anonymous"})}),v&&t(h,{title:r("This floor plan is too big"),variant:"warning",showIcon:!0,position:"bottom-right",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/huge-fp-warning",children:r("Read how to optimize it")})}),w&&t(h,{title:r("3D view is hidden"),variant:"warning",showIcon:!0,position:"bottom-right",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/expofp-mapbox-integration",children:r("Setup mapbox first")})}),y&&t(O,{fallback:null,children:m("div",{className:l(x,{"efp-semi-transparent":o.setKioskModeEnabled}),children:[t("div",{children:r("View Map on Phone")}),t(A,{value:o.viewMapOnPhoneQRCodeUrl,size:100})]})})]}))}
1
+ import{jsx as t,jsxs as m}from"react/jsx-runtime";import"./LogoOverlay.scss";import l from"classnames";import k from"color";import{useLocalStore as M,useObserver as P}from"mobx-react-lite";import{Suspense as _}from"react";import O from"../data";import{getFpSvgJs as C}from"../data/fp-payloads";import{fpGeo as f}from"../data/fpGeo";import c,{uiState as o}from"../store";import R from"../tools/base-runtime-url";import{buildExpofpUrl as N,UTM_CAMPAIGNS as V}from"../tools/expofpUrl";import p from"../tools/settings";import{remsToPixels as a}from"../utils";import{t as r}from"../utils/i18n";import d from"../utils/is-from-designer";import A from"../utils/lazy-qr-code";import h from"./AlertContainer";const g=["info-techlive2025","metstrade-superyacht2023"].includes(p.EXPO),D=p.backgroundColor!=="none"&&k(p.backgroundColor).isDark()||f?.properties?.style?.includes("dark");export default function E(){const b=M(()=>{const s=(i,e,T,S)=>({width:S,opacity:o.wsStarted?1:0}),n=g||o.rtl?"left":"right";return{get style(){const i=a((o.overlayPosition==="left",1));if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+i;return s("bottom",n,e,"5rem")}else{let e=o.mapVisibleTop;return c.maplibreStore.showMaplibre&&(e=a(.5)),s("bottom",n,20,"4.5rem")}},get warningStyle(){const i=a(o.overlayPosition==="left"?1:.5);if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+2*i;return s("bottom",n,e,"3rem")}else{let e=o.mapVisibleTop+2*i;return c.maplibreStore.showMaplibre&&(e=a(.5)),s("top",n,e,"2rem")}}}}),u=Math.round(C().__fpStat?.dataSize/1024/1024||0),v=d&&u>=10,w=d&&!f&&O.allow3dView&&!o.kiosk&&!o.heatmap,y=o.kiosk&&!o.selectedRoute?.to&&!o.selectedRoute?.from,x=l("efp-qr",{"is-right":g||o.rtl});return P(()=>m("div",{children:[t("a",{href:N(V.SUBDOMAIN_LOGO),target:"_blank",rel:"noopener noreferrer",className:l("logo-overlay",{invert:D}),style:b.style,children:t("img",{src:`${R}expofp-overlay.png`,alt:r("Made with ExpoFP"),crossOrigin:"anonymous"})}),v&&t(h,{title:r("This floor plan is too big"),variant:"warning",showIcon:!0,position:"bottom-right",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/huge-fp-warning",children:r("Read how to optimize it")})}),w&&t(h,{title:r("3D view is hidden"),variant:"warning",showIcon:!0,position:"bottom-right",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/expofp-mapbox-integration",children:r("Setup mapbox first")})}),y&&t(_,{fallback:null,children:m("div",{className:l(x,{"efp-semi-transparent":o.setKioskModeEnabled}),children:[t("div",{children:r("View Map on Phone")}),t(A,{value:o.viewMapOnPhoneQRCodeUrl,size:100})]})})]}))}
@@ -1,7 +1,7 @@
1
1
  import { LayerDef } from '@expofp/renderer';
2
- import { ShapeBgDef } from '../../../../types/drawing.types';
3
2
  import { PathInfo } from '../../../../renderer/engine-core/types';
4
3
  import { Layer } from '../../../../store/LayerStore';
4
+ import { ShapeBgDef } from '../../../../types/drawing.types';
5
5
  export declare const BG_LAYER_NAME = "bg";
6
6
  export declare const FG_LAYER_NAME = "fg";
7
7
  export default function configBg(layer: Layer): Promise<LayerDef>;
@@ -1 +1 @@
1
- import{Polygon as S,Rect as W}from"@expofp/geometry";import p from"color";import{reaction as k}from"mobx";import{createShapeDef as D}from"../../../../renderer";import{boothStore as m,layersStore as f,uiState as u,heatmapStore as P}from"../../../../store";import a from"../../../../tools/settings";import{BoothDrawerBaseWithoutPainter as L}from"./BoothDrawerBase";export default function v(c,o){if(a.EXPO!=="confex20"&&!(o.poiType||o.borderColor==="none"||o.borderWidth===0&&!m.borderWidth||o.paths&&!o.pathsWithRect))return new R(c,o)}class R extends L{constructor(o,s){super(s);const t=this.booth.rect,{x:e,y:i}=t.center,{width:n,height:h}=t.size,r=s.borderWidth||m.borderWidth,l=[],d=(B,b,C,x)=>{const w=new W({x:B,y:b},{x:C,y:x}).toPolygon();l.push(w.rotate(s.rotate??0,{x:e,y:i}))};d(e,i-h/2,n+r,r),d(e,i+h/2,n+r,r),d(e-n/2,i,r,h+r),d(e+n/2,i,r,h+r);const g=S.merge(...l),y=this.getBorderColor();this.shape=D(g,y.string()),k(()=>[this.booth.skipDim,f.layersLoaded,this.booth.hover,this.booth.selected,u.heatmap],()=>{f.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,this.shape.color=this.getBorderColor().string(),o.update(this.shape))})}getBorderColor(){const o=this.booth;if(u.heatmap){const t=P.getHeatmapColorForBooth(o);if(o.selected){const e=a.colors.booths.selectedBorder;return e?p(e):t.darken(.4)}return o.hover?t.darken(.3):t.darken(.2)}const s=o.selected?a.colors.booths.selectedBorder:o.borderColor;return p(s||a.colors.booths.default)}getShape(){return this.shape}}
1
+ import{Polygon as S,Rect as W}from"@expofp/geometry";import p from"color";import{reaction as k}from"mobx";import{createShapeDef as D}from"../../../../renderer";import{boothStore as m,heatmapStore as P,layersStore as f,uiState as u}from"../../../../store";import a from"../../../../tools/settings";import{BoothDrawerBaseWithoutPainter as L}from"./BoothDrawerBase";export default function v(c,o){if(a.EXPO!=="confex20"&&!(o.poiType||o.borderColor==="none"||o.borderWidth===0&&!m.borderWidth||o.paths&&!o.pathsWithRect))return new R(c,o)}class R extends L{constructor(o,s){super(s);const t=this.booth.rect,{x:e,y:i}=t.center,{width:n,height:h}=t.size,r=s.borderWidth||m.borderWidth,l=[],d=(B,b,C,x)=>{const w=new W({x:B,y:b},{x:C,y:x}).toPolygon();l.push(w.rotate(s.rotate??0,{x:e,y:i}))};d(e,i-h/2,n+r,r),d(e,i+h/2,n+r,r),d(e-n/2,i,r,h+r),d(e+n/2,i,r,h+r);const g=S.merge(...l),y=this.getBorderColor();this.shape=D(g,y.string()),k(()=>[this.booth.skipDim,f.layersLoaded,this.booth.hover,this.booth.selected,u.heatmap],()=>{f.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,this.shape.color=this.getBorderColor().string(),o.update(this.shape))})}getBorderColor(){const o=this.booth;if(u.heatmap){const t=P.getHeatmapColorForBooth(o);if(o.selected){const e=a.colors.booths.selectedBorder;return e?p(e):t.darken(.4)}return o.hover?t.darken(.3):t.darken(.2)}const s=o.selected?a.colors.booths.selectedBorder:o.borderColor;return p(s||a.colors.booths.default)}getShape(){return this.shape}}
@@ -1 +1 @@
1
- import{getConfig as x}from"@expofp/config";import{resolve as O}from"@expofp/resolve";import{degToRad as T,Rect as v}from"@expofp/geometry";import{BOOTHS_PAINTER_MARKER as D,SEPARATOR as m}from"../../../../constants";import{createImageDef as H,createLayerDef as k}from"../../../../renderer";import c,{boothStore as F}from"../../../../store";import G from"../../../../store/init/init-booths";import{getChildLayers as K}from"../../../../store/init/init-layers";import{LayersMode as Y}from"../../../../store/LayerStore";import{chunkArray as j}from"../../../../utils";import{getFpPaths as J}from"../../../../data/fp-payloads";import{loadIcons as U}from"../../../../utils/imageloader";import Z,{BG_LAYER_NAME as R,FG_LAYER_NAME as $}from"./config-bg";import q,{BOOTHS_CHUNK_SIZE as z}from"./config-booths";import{getImageLayerName as Q,getLayerIcons as V}from"./loadBoothsImages";function W(e){return e.childLayers.length?e.childLayers:K(e,e.basePriority,15).layers}function E(e,t,f){return new Promise(async g=>{let n=[];const i=G(c,t),s=await Z(t),a=[],h=j(i,z),l=F.booths.filter(o=>o.rect&&(!o.layer||o.layer===t||o.layer.childLayers.includes(t))&&o.exhibitors.find(r=>!!r.logoInBooth&&!!r.logo?.url)&&!c.uiState.hideLogoInBooth),I=new Map(l.map(o=>[o.id,o.noLabels]));l.forEach(o=>o.noLabels=!0),i.length&&h.forEach((o,r)=>{a.push(q(e,`${t.name}${m}${D}${m}${r}`,o))}),l.forEach(o=>{o.noLabels=I.get(o.id)}),t.loaded=!0;const y=s.children.find(o=>o.name===R),u=s.children.find(o=>o.name===$),p=Q(t.name),d=V(t),L={name:p,children:[]};d.length&&e.onLayerImages(p,async()=>{const o=await U(d),r=[];for(const w of o.filter(Boolean)){const{bounds:{x:b,y:P,height:A,angle:S,width:_},htmlImage:M}=w,N=v.fromMinMax({x:b,y:P},{x:b+_,y:P+A},T(S)),C=H(M,N);r.push({shape:C})}return{layer:L,children:r}}),y&&n.push({...y,name:`${s.name}${m}${R}`}),a.length&&n.push(...a),u&&n.push({...u,name:`${s.name}${m}${$}`}),d.length&&n.push(L);const B=t.childLayers.sort((o,r)=>o.basePriority-r.basePriority).map(async o=>E(e,o,!0));Promise.all(B).then(o=>{const r=o.flat();r.length&&n.push(...r),t.children=n,t.configured=!0,g(k(t.name,n,{hidden:!f}))})})}export default async function X(e,t){return e.configured?Promise.resolve({name:e.name,children:e.children}):new Promise(async(f,g)=>{if(c.layerStore.mode!==Y.Default&&!J(e.name)&&!e.rootParent)try{const a=x().fpSvgLayerJsRefs[e.name];a&&await O(a)}catch(a){console.warn(`Layer data not loaded: ${e.name}`,a)}const n=W(e);n.length&&(e.childLayers=n);const{layers:i}=c.layerStore;c.layerStore.layers=[...i,...n.filter(a=>!i.some(h=>h.name===a.name))];const s=await E(t,e,e.visible);f(s)})}
1
+ import{getConfig as x}from"@expofp/config";import{degToRad as O,Rect as T}from"@expofp/geometry";import{resolve as v}from"@expofp/resolve";import{BOOTHS_PAINTER_MARKER as D,SEPARATOR as m}from"../../../../constants";import{getFpPaths as H}from"../../../../data/fp-payloads";import{createImageDef as k,createLayerDef as F}from"../../../../renderer";import c,{boothStore as G}from"../../../../store";import K from"../../../../store/init/init-booths";import{getChildLayers as Y}from"../../../../store/init/init-layers";import{LayersMode as j}from"../../../../store/LayerStore";import{chunkArray as J}from"../../../../utils";import{loadIcons as U}from"../../../../utils/imageloader";import Z,{BG_LAYER_NAME as R,FG_LAYER_NAME as $}from"./config-bg";import q,{BOOTHS_CHUNK_SIZE as z}from"./config-booths";import{getImageLayerName as Q,getLayerIcons as V}from"./loadBoothsImages";function W(e){return e.childLayers.length?e.childLayers:Y(e,e.basePriority,15).layers}function E(e,t,f){return new Promise(async g=>{let n=[];const i=K(c,t),s=await Z(t),a=[],h=J(i,z),l=G.booths.filter(o=>o.rect&&(!o.layer||o.layer===t||o.layer.childLayers.includes(t))&&o.exhibitors.find(r=>!!r.logoInBooth&&!!r.logo?.url)&&!c.uiState.hideLogoInBooth),I=new Map(l.map(o=>[o.id,o.noLabels]));l.forEach(o=>o.noLabels=!0),i.length&&h.forEach((o,r)=>{a.push(q(e,`${t.name}${m}${D}${m}${r}`,o))}),l.forEach(o=>{o.noLabels=I.get(o.id)}),t.loaded=!0;const y=s.children.find(o=>o.name===R),u=s.children.find(o=>o.name===$),p=Q(t.name),d=V(t),L={name:p,children:[]};d.length&&e.onLayerImages(p,async()=>{const o=await U(d),r=[];for(const w of o.filter(Boolean)){const{bounds:{x:b,y:P,height:A,angle:S,width:_},htmlImage:M}=w,N=T.fromMinMax({x:b,y:P},{x:b+_,y:P+A},O(S)),C=k(M,N);r.push({shape:C})}return{layer:L,children:r}}),y&&n.push({...y,name:`${s.name}${m}${R}`}),a.length&&n.push(...a),u&&n.push({...u,name:`${s.name}${m}${$}`}),d.length&&n.push(L);const B=t.childLayers.sort((o,r)=>o.basePriority-r.basePriority).map(async o=>E(e,o,!0));Promise.all(B).then(o=>{const r=o.flat();r.length&&n.push(...r),t.children=n,t.configured=!0,g(F(t.name,n,{hidden:!f}))})})}export default async function X(e,t){return e.configured?Promise.resolve({name:e.name,children:e.children}):new Promise(async(f,g)=>{if(c.layerStore.mode!==j.Default&&!H(e.name)&&!e.rootParent)try{const a=x().fpSvgLayerJsRefs[e.name];a&&await v(a)}catch(a){console.warn(`Layer data not loaded: ${e.name}`,a)}const n=W(e);n.length&&(e.childLayers=n);const{layers:i}=c.layerStore;c.layerStore.layers=[...i,...n.filter(a=>!i.some(h=>h.name===a.name))];const s=await E(t,e,e.visible);f(s)})}
@@ -1 +1 @@
1
- import{getFpSvgJs as f}from"../../../../data/fp-payloads";import{degToRad as d,radToDeg as h,Rect as u}from"@expofp/geometry";import{select as y}from"d3";import{SEPARATOR as R}from"../../../../constants";import{getLayerSvg as x}from"../../../../data/svg";import{flipImageDef as I,isInnerInsideOuter as w}from"../../../../renderer";import{rotateImageDef as A}from"../../../../renderer/engine-core/utils/rotation";import{getLogoUrl as L}from"../../../../utils/getLogoUrl";export async function loadLayersImages(e){const a=e.layerImagesRegistry.invoke();await Promise.all(a.map(async s=>{const n=await s;if(!n)return;const{layer:r,children:c}=n;if(c.length){const i=[];for(let o=0;o<c.length;o++){const{shape:t,parentRect:g}=c[o],l=w(t.bounds,g);if(!r.name.includes("Pathway_")){const m=l?"image-rotate":"image-flip";e.onRoll(`${m}-${r.name}-${o}`,l?p=>A(t,p):p=>I(t,p))}i.push(t)}r.children.push(...i),e.update(r)}}))}export const getImageLayerName=e=>`${e}${R}images`;export function mapBoothsLogos(e){return new Map(e.map(a=>{const s=a.rect&&a.exhibitors.find(n=>n.logoInBooth&&n.logo);return s?[a.id,{preferred:L(s.logo),fallback:s.logo.url}]:null}).filter(Boolean))}export function getLayerIcons(e){const a=y(x(e)).select(`[data-layer="${e.name}"]`);return(f().__fpVersion>5?a.selectAll(":scope > image, :scope > g:not([data-layer]) image").nodes():a.selectAll(":scope > g[data-is-editable='false'] image").nodes()).filter(Boolean)}export function createBoothImg(e,a){const s=e.rect,n=s.size.width,r=s.size.height,c=r?n/r:1,i=a.height?a.width/a.height:1;let o,t,g;const l=.9;c>i?(t=r*l,o=t*i):(o=n*l,t=o/i);const m=e.rotate||0;return i>=2&&!m&&r>=n*2?(t=n*l,o=t*i,g=-90):g=h(m),o>n&&(o=n,t=o/i),t>r&&(t=r,o=t*i),{name:e.slug,bounds:new u(s.center,{x:o,y:t},d(g)),htmlImage:a,booth:e}}
1
+ import{degToRad as f,radToDeg as d,Rect as h}from"@expofp/geometry";import{select as u}from"d3";import{SEPARATOR as y}from"../../../../constants";import{getFpSvgJs as R}from"../../../../data/fp-payloads";import{getLayerSvg as x}from"../../../../data/svg";import{flipImageDef as I,isInnerInsideOuter as w}from"../../../../renderer";import{rotateImageDef as A}from"../../../../renderer/engine-core/utils/rotation";import{getLogoUrl as L}from"../../../../utils/getLogoUrl";export async function loadLayersImages(e){const a=e.layerImagesRegistry.invoke();await Promise.all(a.map(async s=>{const n=await s;if(!n)return;const{layer:r,children:c}=n;if(c.length){const i=[];for(let o=0;o<c.length;o++){const{shape:t,parentRect:g}=c[o],l=w(t.bounds,g);if(!r.name.includes("Pathway_")){const m=l?"image-rotate":"image-flip";e.onRoll(`${m}-${r.name}-${o}`,l?p=>A(t,p):p=>I(t,p))}i.push(t)}r.children.push(...i),e.update(r)}}))}export const getImageLayerName=e=>`${e}${y}images`;export function mapBoothsLogos(e){return new Map(e.map(a=>{const s=a.rect&&a.exhibitors.find(n=>n.logoInBooth&&n.logo);return s?[a.id,{preferred:L(s.logo),fallback:s.logo.url}]:null}).filter(Boolean))}export function getLayerIcons(e){const a=u(x(e)).select(`[data-layer="${e.name}"]`);return(R().__fpVersion>5?a.selectAll(":scope > image, :scope > g:not([data-layer]) image").nodes():a.selectAll(":scope > g[data-is-editable='false'] image").nodes()).filter(Boolean)}export function createBoothImg(e,a){const s=e.rect,n=s.size.width,r=s.size.height,c=r?n/r:1,i=a.height?a.width/a.height:1;let o,t,g;const l=.9;c>i?(t=r*l,o=t*i):(o=n*l,t=o/i);const m=e.rotate||0;return i>=2&&!m&&r>=n*2?(t=n*l,o=t*i,g=-90):g=d(m),o>n&&(o=n,t=o/i),t>r&&(t=r,o=t*i),{name:e.slug,bounds:new h(s.center,{x:o,y:t},f(g)),htmlImage:a,booth:e}}
@@ -1,5 +1,5 @@
1
1
  import './Overlay.scss';
2
- import React, { ReactNode } from 'react';
2
+ import React, { type ReactNode } from 'react';
3
3
  export type Size = 'small' | 'medium' | 'full';
4
4
  export interface OverlayPanelProps {
5
5
  children?: ReactNode;
@@ -1 +1 @@
1
- import{jsx as _,jsxs as Q}from"react/jsx-runtime";import"./Overlay.scss";import fe from"classnames";import{createContext as de,useCallback as m,useEffect as x,useMemo as X,useRef as v,useState as u}from"react";import{MOBILE_BREAKPOINT as Y}from"../constants";import{useDragGesture as me}from"../hooks/useDragGesture";import{useWindowSize as ge}from"../hooks/useWindowSize";import he from"../tools/debounce";import{t as ve}from"../utils/i18n";import we from"./OverlayParticles";export const OverlayScrollContext=de(null);const Z=70,pe="0.3s",ye=10,D=()=>window!==window.top&&(document.documentElement.clientHeight||document.body.clientHeight)||window.innerHeight,$=(a=D(),r,s,I)=>({small:a/r,medium:a/s,full:a-I}),He=({children:a,open:r,size:s="medium",particles:I=!1,className:V,onChangeSize:U,onScrollStateChange:w,smallSizeMultiplier:O=12.6,mediumSizeMultiplier:A=2.6,fullSizeOffset:S=0,scrollThreshold:C=ye,disableDrag:G=!1,forceFull:N=!1,scrollResetKey:z})=>{const{width:M,height:ee}=ge(),[t,te]=u(()=>$(D(),O,A,S)),[l,oe]=u(()=>M<=Y),[p,W]=u(!1),[i,ne]=u(()=>t[s]),[g,b]=u(()=>t[s]),[h,y]=u(!1),[re,K]=u(r),[L,P]=u(!1),j=v(),k=v(),q=v(null),F=v(null),f=v(null),c=m(e=>{const o=t[e];ne(o),b(o),U?.(e)},[t,U]),se=X(()=>l?N&&r?{height:D()}:{height:r||h?g:0}:{height:r?"auto":void 0},[l,r,g,p,s,h,N]),J=m(e=>{const o=[t.small,t.medium,t.full].sort();if(e>=t.full){c("full");return}if(e<=t.small){c("small");return}const n=i||t.medium,d=e>n?o.find(E=>E+Z>=e)||t.full:o.reverse().find(E=>E-Z<=e)||t.small;d===t.full?c("full"):d===t.medium?c("medium"):c("small")},[t,i,c]),le=m(e=>{W(!0),j.current=e},[]),ie=m(e=>{const o=j.current;if(o===void 0)return;const n=f.current;if(n?.scrollTop>0&&i===t.full)return;const d=o-e;let R=(i||t.medium)+d;n&&i===t.full&&R<i&&(n.style.overflow="hidden"),R=Math.min(Math.max(R,t.small),t.full),k.current=d,b(R)},[i,t]),ce=m(()=>{W(!1),j.current=void 0;const e=f.current;e&&e.style.removeProperty("overflow");const o=k.current;k.current=void 0,o!==void 0&&g!==void 0&&J(g)},[g,J]),B=m(e=>{if(p)return;c(s==="small"?"medium":s==="medium"?"full":"small")},[p,s,c]),{touchHandlers:H,mouseHandlers:T}=me({onDragStart:le,onDragMove:ie,onDragEnd:ce}),ue=m(()=>{const e=f.current;if(!e)return;const n=e.scrollTop>=C;L!==n&&(P(n),w?.(n))},[C,L,w]),ae=X(()=>he(()=>{window.__resett?.()},250),[]);return x(()=>{if(!l||G)return;const e=q.current,o=F.current,n=f.current;e&&(e.ontouchstart=H.onTouchStart,e.ontouchend=H.onTouchEnd,window.ontouchmove=H.onTouchMove,e.onmousedown=T.onMouseDown,e.onmouseup=T.onMouseUp,window.onmousemove=T.onMouseMove),o&&o.addEventListener("mouseup",B);const d=()=>{i&&i<t.full&&n&&(n.style.overflow="hidden")};return n&&(n.ontouchstart=d),()=>{e&&(window.ontouchmove=null,window.onmousemove=null),o&&o.removeEventListener("mouseup",B)}},[l,H,T,B,i,t]),x(()=>{oe(M<=Y);const e=D();te($(e,O,A,S))},[M,ee,O,A,S]),x(()=>{if(r){K(!0),y(!0);const e=setTimeout(()=>{c(s),y(!1)},10);return()=>clearTimeout(e)}else{y(!0),l&&b(0);const e=setTimeout(()=>{K(!1),y(!1),P(!1)},parseFloat(pe)*1e3);return()=>clearTimeout(e)}},[r,s,c,l]),x(()=>{r&&!h&&(f.current?.scrollTo({top:0}),P(!1),w?.(!1))},[r,h,w,z]),re?_(OverlayScrollContext.Provider,{value:f.current,children:Q("div",{className:fe("efp-overlay",{"is-open":r,"is-draggable":p,"is-small":s==="small","is-medium":s==="medium","is-full":s==="full","is-mobile":l,"is-desktop":!l,"is-hidden":!l&&!r,"is-animating":h,"is-scrolled":L,"is-forced-full":N&&l},V),style:se,ref:q,children:[!G&&_("div",{className:"efp-overlay__draghandle",ref:F}),Q("div",{className:"efp-overlay__scroll",ref:f,onScroll:e=>{ue(),ae()},children:[I?_(we,{}):null,_("div",{className:"efp-overlay__content",children:a||ve("No content")})]})]})}):null};export default He;
1
+ import{jsx as _,jsxs as J}from"react/jsx-runtime";import"./Overlay.scss";import fe from"classnames";import{createContext as de,useCallback as a,useEffect as R,useMemo as Q,useRef as v,useState as m}from"react";import{MOBILE_BREAKPOINT as X}from"../constants";import{useDragGesture as ae}from"../hooks/useDragGesture";import{useWindowSize as me}from"../hooks/useWindowSize";import ge from"../tools/debounce";import{t as he}from"../utils/i18n";import ve from"./OverlayParticles";export const OverlayScrollContext=de(null);const Y=70,we="0.3s",pe=10,x=()=>window!==window.top&&(document.documentElement.clientHeight||document.body.clientHeight)||window.innerHeight,Z=(u=x(),r,s,I)=>({small:u/r,medium:u/s,full:u-I}),ye=({children:u,open:r,size:s="medium",particles:I=!1,className:$,onChangeSize:C,onScrollStateChange:w,smallSizeMultiplier:D=12.6,mediumSizeMultiplier:O=2.6,fullSizeOffset:A=0,scrollThreshold:G=pe,disableDrag:N=!1,forceFull:S=!1,scrollResetKey:V})=>{const{width:M,height:z}=me(),[t,ee]=m(()=>Z(x(),D,O,A)),[l,te]=m(()=>M<=X),[L,W]=m(!1),[i,ne]=m(()=>t[s]),[h,P]=m(()=>t[s]),[g,p]=m(!1),[b,j]=m(!1),oe=r||g,k=v(void 0),B=v(void 0),K=v(null),q=v(null),f=v(null),c=a(e=>{const n=t[e];ne(n),P(n),C?.(e)},[t,C]),re=Q(()=>l?S&&r?{height:x()}:{height:r||g?h:0}:{height:r?"auto":void 0},[l,r,h,g,S]),F=a(e=>{const n=[t.small,t.medium,t.full].sort();if(e>=t.full){c("full");return}if(e<=t.small){c("small");return}const o=i||t.medium,d=e>o?n.find(T=>T+Y>=e)||t.full:n.reverse().find(T=>T-Y<=e)||t.small;d===t.full?c("full"):d===t.medium?c("medium"):c("small")},[t,i,c]),se=a(e=>{W(!0),k.current=e},[]),le=a(e=>{const n=k.current;if(n===void 0)return;const o=f.current;if((o?.scrollTop??0)>0&&i===t.full)return;const d=n-e;let E=(i||t.medium)+d;o&&i===t.full&&E<i&&(o.style.overflow="hidden"),E=Math.min(Math.max(E,t.small),t.full),B.current=d,P(E)},[i,t]),ie=a(()=>{W(!1),k.current=void 0;const e=f.current;e&&e.style.removeProperty("overflow");const n=B.current;B.current=void 0,n!==void 0&&h!==void 0&&F(h)},[h,F]),U=a(e=>{if(L)return;c(s==="small"?"medium":s==="medium"?"full":"small")},[L,s,c]),{touchHandlers:y,mouseHandlers:H}=ae({onDragStart:se,onDragMove:le,onDragEnd:ie}),ce=a(()=>{const e=f.current;if(!e)return;const o=e.scrollTop>=G;b!==o&&(j(o),w?.(o))},[G,b,w]),ue=Q(()=>ge(()=>{window.__resett?.()},250),[]);return R(()=>{if(!l||N)return;const e=K.current,n=q.current,o=f.current;e&&(e.ontouchstart=y.onTouchStart,e.ontouchend=y.onTouchEnd,window.ontouchmove=y.onTouchMove,e.onmousedown=H.onMouseDown,e.onmouseup=H.onMouseUp,window.onmousemove=H.onMouseMove),n&&n.addEventListener("mouseup",U);const d=()=>{i&&i<t.full&&o&&(o.style.overflow="hidden")};return o&&(o.ontouchstart=d),()=>{e&&(window.ontouchmove=null,window.onmousemove=null),n&&n.removeEventListener("mouseup",U)}},[l,N,y,H,U,i,t]),R(()=>{te(M<=X);const e=x();ee(Z(e,D,O,A))},[M,z,D,O,A]),R(()=>{if(r){p(!0);const e=setTimeout(()=>{c(s),p(!1)},10);return()=>clearTimeout(e)}else{p(!0),l&&P(0);const e=setTimeout(()=>{p(!1),j(!1)},parseFloat(we)*1e3);return()=>clearTimeout(e)}},[r,s,c,l]),R(()=>{r&&!g&&(f.current?.scrollTo({top:0}),j(!1),w?.(!1))},[r,g,w,V]),oe?_(OverlayScrollContext.Provider,{value:f.current,children:J("div",{className:fe("efp-overlay",{"is-open":r,"is-draggable":L,"is-small":s==="small","is-medium":s==="medium","is-full":s==="full","is-mobile":l,"is-desktop":!l,"is-hidden":!l&&!r,"is-animating":g,"is-scrolled":b,"is-forced-full":S&&l},$),style:re,ref:K,children:[!N&&_("div",{className:"efp-overlay__draghandle",ref:q}),J("div",{className:"efp-overlay__scroll",ref:f,onScroll:e=>{ce(),ue()},children:[I?_(ve,{}):null,_("div",{className:"efp-overlay__content",children:u||he("No content")})]})]})}):null};export default ye;
@@ -8,7 +8,6 @@ export declare const STRING_META_DELIMITER = "$$";
8
8
  export declare const KIOSK_ENABLE_KEY = "kiosk";
9
9
  export declare const SET_KIOSK_KEY = "setkiosk";
10
10
  export declare const BOOKMARK_PAINTER_MARKER = "booth-bookmark";
11
- export declare const MAP_SETTINGS_KEY = "expofp-map-settings";
12
11
  export declare const DEBUG_KEY = "debug";
13
12
  export declare const DEBUG_STORAGE_KEY = "efp-debugMode";
14
13
  export declare const DEFAULT_UNITS = "ft";
@@ -1 +1 @@
1
- export const VISIBILITY_STORAGE_KEY="___visibility",PREVIEW_MODE_ATTRIBUTE="data-preview-mode",BOOTHS_PAINTER_MARKER="booths",SEPARATOR=":",LAYER_LOGOS_MARKER="logos",LAYER_ICONS_MARKER="icons",STRING_META_DELIMITER="$$",KIOSK_ENABLE_KEY="kiosk",SET_KIOSK_KEY="setkiosk",BOOKMARK_PAINTER_MARKER="booth-bookmark",MAP_SETTINGS_KEY="expofp-map-settings",DEBUG_KEY="debug",DEBUG_STORAGE_KEY="efp-debugMode",DEFAULT_UNITS="ft",PATHWAY_KEY="pathway",CACHE_DURATION=1e3,MOBILE_BREAKPOINT=768,LANGUAGE_TYPE="language",MAX_ROUTE_WAYPOINTS=8,VIEWER_MODE_STORAGE_KEY="efp-viewerMode",LEGACY_VIEWER_MODE_STORAGE_KEY="___viewer_mode",PREVIEW_MODE_STORAGE_KEY="efp-previewMode",LEGACY_PREVIEW_MODE_STORAGE_KEY="___preview_mode",UI_SCALE_STORAGE_KEY="efp-uiScale",LEGACY_UI_SCALE_STORAGE_KEY="___ui-scale",FONT_FACE="--expofp-font-face",FONT_WEIGHT_PRIMARY_BOOTH="--expofp-booth-main-weight",FONT_WEIGHT_SECONDARY_BOOTH="--expofp-booth-details-weight",FONT_WEIGHT_PRIMARY_EXHIBITOR="--expofp-exhibitor-main-weight",FONT_WEIGHT_SECONDARY_EXHIBITOR="--expofp-exhibitor-details-weight",FONT_WEIGHT_PRIMARY_SPECIAL="--expofp-booth-special-weight",ORIENTATION_GRANTED_KEY="efp-compass-permission-granted";
1
+ export const VISIBILITY_STORAGE_KEY="___visibility",PREVIEW_MODE_ATTRIBUTE="data-preview-mode",BOOTHS_PAINTER_MARKER="booths",SEPARATOR=":",LAYER_LOGOS_MARKER="logos",LAYER_ICONS_MARKER="icons",STRING_META_DELIMITER="$$",KIOSK_ENABLE_KEY="kiosk",SET_KIOSK_KEY="setkiosk",BOOKMARK_PAINTER_MARKER="booth-bookmark",DEBUG_KEY="debug",DEBUG_STORAGE_KEY="efp-debugMode",DEFAULT_UNITS="ft",PATHWAY_KEY="pathway",CACHE_DURATION=1e3,MOBILE_BREAKPOINT=768,LANGUAGE_TYPE="language",MAX_ROUTE_WAYPOINTS=8,VIEWER_MODE_STORAGE_KEY="efp-viewerMode",LEGACY_VIEWER_MODE_STORAGE_KEY="___viewer_mode",PREVIEW_MODE_STORAGE_KEY="efp-previewMode",LEGACY_PREVIEW_MODE_STORAGE_KEY="___preview_mode",UI_SCALE_STORAGE_KEY="efp-uiScale",LEGACY_UI_SCALE_STORAGE_KEY="___ui-scale",FONT_FACE="--expofp-font-face",FONT_WEIGHT_PRIMARY_BOOTH="--expofp-booth-main-weight",FONT_WEIGHT_SECONDARY_BOOTH="--expofp-booth-details-weight",FONT_WEIGHT_PRIMARY_EXHIBITOR="--expofp-exhibitor-main-weight",FONT_WEIGHT_SECONDARY_EXHIBITOR="--expofp-exhibitor-details-weight",FONT_WEIGHT_PRIMARY_SPECIAL="--expofp-booth-special-weight",ORIENTATION_GRANTED_KEY="efp-compass-permission-granted";
@@ -1 +1 @@
1
- import{getFpPaths as x,getFpSvg as a,getFpSvgJs as M,getWfData as E}from"./fp-payloads";import{Box as h}from"@expofp/geometry";import*as c from"d3-selection";import{STRING_META_DELIMITER as b}from"../constants";import A from"../tools/logger";import _ from"../tools/settings";import{extractMetaFromString as P}from"../utils/extractMetaFromString";import V from".";const n=new Map;function p(e,r=""){if(n.has(r))return n.get(r);const s=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;s.firstChild.tagName==="parsererror"&&A.error("Parsed svg with error: ",l);const i=new Map;return c.select(s).selectAll("style").each(function(){const t=this.textContent,S=/\.([a-z0-9.]+)\s*{[^}]*fill\s*:\s*([^};]+);[^}]*}/gi;let v;for(;(v=S.exec(t))!==null;){const B=v[1],F=v[2];i.set(B,F)}}),c.select(s).selectAll("*[class]").each(function(){const t=this;t.style.fill=i.get(t.className.baseVal)}),N(s),n.set(r,s),s}let l=p(a());const m=M().__viewbox,d=c.select(l).select("rect#VIEWBOX").node(),u=l.viewBox.baseVal,g=new h(u.x,u.y,u.width,u.height);let f,w=!1;m?(f=new h(m.x,m.y,m.width,m.height),w=!0,d?.remove()):d?(f=h.fromSvg(d),w=!0,d.remove()):f=g.scale(1.1),c.select(l).attr("width",g.size.width),c.select(l).attr("height",g.size.height),A.log("svgArea",f,"svgViewBox",g),_.wayfinding=!!(!V.hideDirections&&E());let I=M().__fpLayersMode?c.select(l).selectAll("[data-floor]").nodes().map(e=>(e.remove(),{name:e.dataset.floor,rect:h.fromSvg(e)})).sort():[];export{I as floors,f as svgArea,w as svgAreaExplicit,g as svgViewBox};export function getTrianglesFromFpPaths(e,r){const o=gtePathByIndex(e,r),s=o.positions.map(t=>[t[0],Math.abs(t[1])]),i=[];for(const t of o.cells)i.push([s[t[0]],s[t[1]],s[t[2]]]);return i}export let gtePathByIndex=(e,r="")=>(x(r)??x())[e],getLayerSvg=(e="")=>typeof e=="string"?n.has(e)?n.get(e):a(e)?p(a(e),e):n.get(""):e.rootParent?n.has(e.rootParent.name)?n.get(e.rootParent.name):a(e.rootParent.name)?p(a(e.rootParent.name),e.rootParent.name):n.get(""):a(e.name)?p(a(e.name),e.name):n.get("");function N(e){c.select(e).selectAll("[id], [data-name]").each(function(){const r=this;let o={};const s=r.getAttribute("data-name");if(s&&s.includes(b)){const{meta:t}=P(s);o={...o,...t}}const i=r.getAttribute("id");if(i&&i.includes(b)){const{meta:t}=P(i);o={...o,...t}}r.setAttribute("data-meta",JSON.stringify(o))})}
1
+ import{Box as h}from"@expofp/geometry";import*as a from"d3-selection";import{STRING_META_DELIMITER as x}from"../constants";import M from"../tools/logger";import E from"../tools/settings";import{extractMetaFromString as b}from"../utils/extractMetaFromString";import _ from".";import{getFpPaths as A,getFpSvg as c,getFpSvgJs as P,getWfData as V}from"./fp-payloads";const n=new Map;function p(e,r=""){if(n.has(r))return n.get(r);const s=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;s.firstChild.tagName==="parsererror"&&M.error("Parsed svg with error: ",l);const i=new Map;return a.select(s).selectAll("style").each(function(){const t=this.textContent,S=/\.([a-z0-9.]+)\s*{[^}]*fill\s*:\s*([^};]+);[^}]*}/gi;let v;for(;(v=S.exec(t))!==null;){const B=v[1],F=v[2];i.set(B,F)}}),a.select(s).selectAll("*[class]").each(function(){const t=this;t.style.fill=i.get(t.className.baseVal)}),N(s),n.set(r,s),s}let l=p(c());const m=P().__viewbox,d=a.select(l).select("rect#VIEWBOX").node(),u=l.viewBox.baseVal,g=new h(u.x,u.y,u.width,u.height);let f,w=!1;m?(f=new h(m.x,m.y,m.width,m.height),w=!0,d?.remove()):d?(f=h.fromSvg(d),w=!0,d.remove()):f=g.scale(1.1),a.select(l).attr("width",g.size.width),a.select(l).attr("height",g.size.height),M.log("svgArea",f,"svgViewBox",g),E.wayfinding=!!(!_.hideDirections&&V());let I=P().__fpLayersMode?a.select(l).selectAll("[data-floor]").nodes().map(e=>(e.remove(),{name:e.dataset.floor,rect:h.fromSvg(e)})).sort():[];export{I as floors,f as svgArea,w as svgAreaExplicit,g as svgViewBox};export function getTrianglesFromFpPaths(e,r){const o=gtePathByIndex(e,r),s=o.positions.map(t=>[t[0],Math.abs(t[1])]),i=[];for(const t of o.cells)i.push([s[t[0]],s[t[1]],s[t[2]]]);return i}export let gtePathByIndex=(e,r="")=>(A(r)??A())[e],getLayerSvg=(e="")=>typeof e=="string"?n.has(e)?n.get(e):c(e)?p(c(e),e):n.get(""):e.rootParent?n.has(e.rootParent.name)?n.get(e.rootParent.name):c(e.rootParent.name)?p(c(e.rootParent.name),e.rootParent.name):n.get(""):c(e.name)?p(c(e.name),e.name):n.get("");function N(e){a.select(e).selectAll("[id], [data-name]").each(function(){const r=this;let o={};const s=r.getAttribute("data-name");if(s&&s.includes(x)){const{meta:t}=b(s);o={...o,...t}}const i=r.getAttribute("id");if(i&&i.includes(x)){const{meta:t}=b(i);o={...o,...t}}r.setAttribute("data-meta",JSON.stringify(o))})}
@@ -21,8 +21,8 @@
21
21
  * await __efpDev.resolve({ $ref: 'https://…/fp.svg.js' }) // raw resolve, js or json
22
22
  */
23
23
  import { type Config } from '@expofp/config';
24
- import { type FpSvgJs, type FpSvgLayerJs, type FpSvgLayerJsRef } from '@expofp/schema';
25
24
  import { resolve } from '@expofp/resolve';
25
+ import { type FpSvgJs, type FpSvgLayerJs, type FpSvgLayerJsRef } from '@expofp/schema';
26
26
  interface EfpDevPlayground {
27
27
  config: Config;
28
28
  fpSvgJs: FpSvgJs;
@@ -1 +1 @@
1
- import{applyIntents as Y,getConfig as g,parseFromUrlTolerant as D,parseIntentsFromUrl as K,parseLegacyQuery as v,serializeSelection as W}from"@expofp/config";import{Box as z}from"@expofp/geometry";import{UrlConfigSchema as Q}from"@expofp/schema";import{safeDecode as d}from"@expofp/utils";import{autorun as x,runInAction as w,when as p}from"mobx";import{recoverKioskFromUrlPrams as H}from"../components/Kiosk/recoverKioskFromUrlPrams";import{LEGACY_PREVIEW_MODE_STORAGE_KEY as j,LEGACY_VIEWER_MODE_STORAGE_KEY as N,MAP_SETTINGS_KEY as $,PREVIEW_MODE_STORAGE_KEY as M,VIEWER_MODE_STORAGE_KEY as P}from"../constants";import b from"../data";import o,{uiState as r}from"../store";import{BoothBase as B}from"../store/BoothStore";import{CurrentPosition as q,extractRoute as J}from"../store/RouteStore";import{setConsentSettings as X}from"../tools/gtag";import L from"../tools/logger";import{areLayersEnabled as Z}from"../utils/areLayersEnabled";import{cameraToMapSettings as S}from"../utils/camera-map-settings";import{handleCustomCommand as ee}from"../utils/customCommands";import{getMostFrequent as te}from"../utils/getMostFrequent";import{heatmapEnabled as oe}from"../utils/heatmap-enabled";import{hasLocale as re,setLocale as ie}from"../utils/i18n";import{isLocalStorageAvailable as T}from"../utils/localStorage";import{stripTrackingParams as se}from"../utils/trackingParams";import{rewriteMultiSlugQuery as ae}from"./multi-slug";import{currentSearch as m,disableUrlWrites as ne,initUrlSync as le,pushQuery as ce,replaceQuery as f}from"./url-sync";let k=!1;export function applyDeclarativeConfig(){U(g()),p(()=>o.layerStore.layersLoaded,()=>{const e=g().camera;Object.keys(e).length&&h(S(e));const t=g().visibility;Object.keys(t).length&&r.setVisibility(t)})}export function initUrlRouting(e){le({offHistory:e,onNavigate:E}),R(),I(),p(()=>o.layerStore.layersLoaded,()=>{o.urlFilterManager&&!o.urlFilterManager.isInitialized&&o.urlFilterManager.initialize(),E(),x(V),x(G),r.viewerMode&&(r.menu=!0)})}export function applyParameters(e=""){f("?"+d(e.toString())),o.layerStore.layersLoaded?F(e):(I(),p(()=>o.layerStore.layersLoaded,()=>F(e)))}function F(e){const t="?"+d(e),s=de(t);U(s),s.consent&&X(s.consent),s.camera&&Object.keys(s.camera).length&&h(S(s.camera)),s.visibility&&Object.keys(s.visibility).length&&r.setVisibility(s.visibility),R(),E();const i=[...s.intents??[],...K(t).intents];i.length&&Y(o.fp,i)}function I(){const e=m(),t=e.length>1?d(e.substring(1)):"";return ee(t)}function E(){k=!0;try{const e=new URLSearchParams(d(window.location.search));H(e);const{primary:t,oneShots:s}=v(m()),i=s.find(l=>l.type==="camera");if(i){const l=i.roll;h({...S(i.camera),roll:l})}else new Set(e.keys()).size||he();const c=t.type==="select"&&(!t.slug||/^t=[^&]*$/.test(t.slug))&&(r.heatmap||r.heatmapYah);!I()&&!c&&ue(t)}finally{k=!1}G(),V()}function ue(e){const t=o.fp;switch(e.type){case"kiosk":e.enabled===!0?r.kiosk=!0:e.enabled===!1&&(r.kiosk=!1,r.resetUIScale());return;case"list":t.showList(e.list);return;case"tour":t.selectTour(e.tourId);return;case"planner":t.openPlanner({items:e.items,from:e.from,fromBookmarks:e.fromBookmarks});return;case"route":{o.routeStore.setOnlyAccessible(e.accessible),o.routeStore.selectRoute(J(e.from??"",e.to??"",e.waypoints)),o.uiState.setIsMultiPointRoute(e.waypoints.length>0),e.title&&o.uiState.setRouteTitle(e.title);return}case"language":re(e.langId)&&ie(e.langId);return;case"printPdf":o.uiState.printingPdf=!0;return;case"visibility":o.uiState.setVisibility(e.hidden.reduce((s,i)=>({...s,[i]:!1}),{}));return;case"buildRoute":t.startBuildRoute();return;case"pathway":applyPathway(e);return;case"selectExhibitors":setTimeout(()=>t.selectExhibitor(e.values),250);return;case"ownedByFilters":L.log("Skipping filter parameters in dispatchFromUrl (owned by URLFilterManager)");return;case"ownedByConfig":return;case"select":t.select(e.slug);return}}export function applyPathway(e){const{pathwayId:t,boothIds:s,exhibitorIds:i,tourId:c}=e;if(c){const a=o.toursStore.getTourById(c);a&&w(()=>{o.uiState.setTourTitle(a.name),o.uiState.setTourDescription(a.description??""),o.uiState.setIsMultiPointTour(!0),o.uiState.setMultiPointTourList(a.id)})}const l=o.boothStore.booths.filter(a=>s.includes(a.externalId)),u=o.exhibitorStore.exhibitors.filter(a=>i.includes(a.externalId)).flatMap(a=>a.booths),n=[...l,...u];if(Z()){const a=te(n.map(y=>y.layer.name));a&&o.fp.activateFloor({name:a})}(s.length>0||i.length>0)&&o.fp.highlightEntities([...s,...i]),o.layerStore.showPathWay(t),n.length>0&&w(()=>{o.uiState.moveToRect=z.fromUnion(...n.map(a=>a.rect).filter(Boolean)),o.uiState.rollReset=!0})}function R(){const e=m(),{oneShots:t}=v(e);for(const i of t)fe(i);e.startsWith("?preview=")&&f("?"),m().includes("copy_exh")&&f("?");const s=se(m());s!==null&&f("?"+s),r.previewExhibitor&&f("?"+r.previewExhibitor.slug),me()}function fe(e){switch(e.type){case"heatmap":O(e.yah);return;case"blueDot":{const t=new q(e.x,e.y,o.layerStore.findLayer(e.layer??"")?.name,void 0,e.lat,e.lng);p(()=>o.layerStore.layersLoaded,()=>o.routeStore.selectCurrentPosition(t,!0,1));return}case"viewerMode":T&&(e.enabled?localStorage.setItem(P,"true"):(localStorage.removeItem(P),localStorage.removeItem(N)));return;case"previewMode":T&&(e.enabled?localStorage.setItem(M,"true"):(localStorage.removeItem(M),localStorage.removeItem(j)));return;case"uiScale":e.scale!==null?o.uiState.setUIScale(e.scale,!0):L.warn(`Invalid ui-scale parameter: ${e.raw}. Must be a number between 0.8 and 1.4.`);return;case"resetUiScale":o.uiState.resetUIScale();return;case"legacyBookmarks":{const t=e.appendExhibitorId===null?void 0:o.exhibitorStore.exhibitorById.get(e.appendExhibitorId);f(t?"?"+t.slug:"?bookmarks");return}}}function O(e){ne(),e?(r.heatmapYah=!0,r.monochrome=!0,r.hideLogoInBooth=!0,r.hideHeaderLogo=!0,r.disableBookmarked=!0):r.heatmap=!0}function me(){const e=ae(m(),t=>o.exhibitorStore.exhibitors.find(i=>i.slug===t||i.externalId===t)?.name);e!==null&&f(e)}function U(e){e.noOverlay!==void 0&&(r.hideOverlay=e.noOverlay),e.monochrome&&(r.monochrome=!0),e.hideHeaderLogo&&(r.hideHeaderLogo=!0),e.hideLogoInBooth&&(r.hideLogoInBooth=!0),e.disableFeatured&&o.exhibitorStore.exhibitors.forEach(t=>t.featured=!1),e.disableBookmarked&&(r.disableBookmarked=!0),e.disableGps&&o.routeStore.setGpsTrackingEnabled(!1),e.heatmap&&oe(e.heatmap)&&O(e.heatmap.variant==="yah")}function de(e){return D(Q,e).value}let C=null,_=null,A=null;function G(){const{selection:e,exhibitor:t,booth:s,eventItem:i}=pe(),c=o.urlFilterManager.filterSearch();if(k)return;const l=W(e)||c;m()!==l&&(t!==C||s!==_||i!==A?ce(l):f(l),C=t,_=s,A=i)}function pe(){const e=r.selectedExhibitor,t=r.selectedBooth,s=r.selectedEventItem,i=r.selectedRoute,c=r.selectedSpeaker,l=r.setKioskModeEnabled,u=r.list;let n;if(u.type==="route-planner"&&!e&&!t&&!s){const a=o.routePlannerStore;n={type:"planner",fromBookmarks:a.source==="bookmarks",items:a.items.map(y=>y.entity.slug).filter(Boolean),from:a.startPoint?.slug||void 0}}else if(i&&!r.isMultiPointRoute)n={type:"route",to:i.to instanceof B?i.to.slug:void 0,from:i.from instanceof B?i.from.slug:void 0,accessible:o.routeStore.onlyAccessible,waypoints:i.waypoints?.map(a=>a.slug)};else if(e)n={type:"slug",slug:e.slug};else if(t)n={type:"slug",slug:t.slug};else if(s)n={type:"slug",slug:s.slug};else if(c)n={type:"slug",slug:c.slug};else if(l)n={type:"none"};else switch(u.type){case"bookmarks":case"visited":case"sessions":case"exhibitors":case"speakers":case"tours":case"language":n={type:"list",list:u.type};break;case"category":n={type:"slug",slug:r.selectedCategory?.slug??""};break;case"search":n={type:"slug",slug:u.text||""};break;case"filter":n={type:"filter",key:u.query.key,value:u.query.value};break;case"multi-point-tour":n={type:"tour",tourId:u.tourId};break;default:throw new Error("Unkown list.type")}return{selection:n,exhibitor:e,booth:t,eventItem:s}}function V(){const e=r.selectedExhibitor,t=r.selectedEventItem,s=r.selectedSpeaker;let i="";e?i=e.name:t?i=t.name:s?i=s.name:r.list.type==="search"&&r.list.text?i="`"+(r.list.text||"")+"`":r.list.type==="multi-point-tour"&&r.tourTitle&&(i=r.tourTitle),i.length&&(i+=" \u2013 "),i+=b.title,b.subtitle&&(i+=" \u2013 "+b.subtitle),i+=" \u2013 Expo Floor Plan by ExpoFP",document.title=i}function h(e){try{if(r.setMapSettings(e),e.z){const t=o.layerStore.layers.find(s=>s.name===e.z);t&&o.layerStore.updateVisibility(t,!0)}}catch(t){console.error("Failed to process or save map settings.",t)}}function he(){try{const e=sessionStorage.getItem($);e&&h(JSON.parse(e))}catch(e){console.error("Failed to process or save map settings.",e)}}
1
+ import{applyIntents as G,getConfig as y,parseFromUrlTolerant as Y,parseIntentsFromUrl as K,parseLegacyQuery as x,serializeSelection as W}from"@expofp/config";import{Box as Q}from"@expofp/geometry";import{UrlConfigSchema as z}from"@expofp/schema";import{safeDecode as d}from"@expofp/utils";import{autorun as v,runInAction as w,when as p}from"mobx";import{recoverKioskFromUrlPrams as H}from"../components/Kiosk/recoverKioskFromUrlPrams";import{LEGACY_PREVIEW_MODE_STORAGE_KEY as j,LEGACY_VIEWER_MODE_STORAGE_KEY as N,PREVIEW_MODE_STORAGE_KEY as M,VIEWER_MODE_STORAGE_KEY as B}from"../constants";import g from"../data";import o,{uiState as r}from"../store";import{BoothBase as P}from"../store/BoothStore";import{CurrentPosition as $,extractRoute as q}from"../store/RouteStore";import{setConsentSettings as J}from"../tools/gtag";import L from"../tools/logger";import{areLayersEnabled as X}from"../utils/areLayersEnabled";import{cameraToMapSettings as b}from"../utils/camera-map-settings";import{handleCustomCommand as Z}from"../utils/customCommands";import{getMostFrequent as ee}from"../utils/getMostFrequent";import{heatmapEnabled as te}from"../utils/heatmap-enabled";import{hasLocale as oe,setLocale as re}from"../utils/i18n";import{isLocalStorageAvailable as R}from"../utils/localStorage";import{stripTrackingParams as ie}from"../utils/trackingParams";import{rewriteMultiSlugQuery as se}from"./multi-slug";import{currentSearch as m,disableUrlWrites as ae,initUrlSync as ne,pushQuery as le,replaceQuery as f}from"./url-sync";let S=!1;export function applyDeclarativeConfig(){O(y()),p(()=>o.layerStore.layersLoaded,()=>{const e=y().camera;Object.keys(e).length&&E(b(e));const t=y().visibility;Object.keys(t).length&&r.setVisibility(t)})}export function initUrlRouting(e){ne({offHistory:e,onNavigate:I}),F(),k(),p(()=>o.layerStore.layersLoaded,()=>{o.urlFilterManager&&!o.urlFilterManager.isInitialized&&o.urlFilterManager.initialize(),I(),v(D),v(V),r.viewerMode&&(r.menu=!0)})}export function applyParameters(e=""){f("?"+d(e.toString())),o.layerStore.layersLoaded?T(e):(k(),p(()=>o.layerStore.layersLoaded,()=>T(e)))}function T(e){const t="?"+d(e),s=me(t);O(s),s.consent&&J(s.consent),s.camera&&Object.keys(s.camera).length&&E(b(s.camera)),s.visibility&&Object.keys(s.visibility).length&&r.setVisibility(s.visibility),F(),I();const i=[...s.intents??[],...K(t).intents];i.length&&G(o.fp,i)}function k(){const e=m(),t=e.length>1?d(e.substring(1)):"";return Z(t)}function I(){S=!0;try{const e=new URLSearchParams(d(window.location.search));H(e);const{primary:t,oneShots:s}=x(m()),i=s.find(l=>l.type==="camera");if(i){const l=i.roll;E({...b(i.camera),roll:l})}const u=t.type==="select"&&(!t.slug||/^t=[^&]*$/.test(t.slug))&&(r.heatmap||r.heatmapYah);!k()&&!u&&ue(t)}finally{S=!1}V(),D()}function ue(e){const t=o.fp;switch(e.type){case"kiosk":e.enabled===!0?r.kiosk=!0:e.enabled===!1&&(r.kiosk=!1,r.resetUIScale());return;case"list":t.showList(e.list);return;case"tour":t.selectTour(e.tourId);return;case"planner":t.openPlanner({items:e.items,from:e.from,fromBookmarks:e.fromBookmarks});return;case"route":{o.routeStore.setOnlyAccessible(e.accessible),o.routeStore.selectRoute(q(e.from??"",e.to??"",e.waypoints)),o.uiState.setIsMultiPointRoute(e.waypoints.length>0),e.title&&o.uiState.setRouteTitle(e.title);return}case"language":oe(e.langId)&&re(e.langId);return;case"printPdf":o.uiState.printingPdf=!0;return;case"visibility":o.uiState.setVisibility(e.hidden.reduce((s,i)=>({...s,[i]:!1}),{}));return;case"buildRoute":t.startBuildRoute();return;case"pathway":applyPathway(e);return;case"selectExhibitors":setTimeout(()=>t.selectExhibitor(e.values),250);return;case"ownedByFilters":L.log("Skipping filter parameters in dispatchFromUrl (owned by URLFilterManager)");return;case"ownedByConfig":return;case"select":t.select(e.slug);return}}export function applyPathway(e){const{pathwayId:t,boothIds:s,exhibitorIds:i,tourId:u}=e;if(u){const a=o.toursStore.getTourById(u);a&&w(()=>{o.uiState.setTourTitle(a.name),o.uiState.setTourDescription(a.description??""),o.uiState.setIsMultiPointTour(!0),o.uiState.setMultiPointTourList(a.id)})}const l=o.boothStore.booths.filter(a=>s.includes(a.externalId)),c=o.exhibitorStore.exhibitors.filter(a=>i.includes(a.externalId)).flatMap(a=>a.booths),n=[...l,...c];if(X()){const a=ee(n.map(h=>h.layer.name));a&&o.fp.activateFloor({name:a})}(s.length>0||i.length>0)&&o.fp.highlightEntities([...s,...i]),o.layerStore.showPathWay(t),n.length>0&&w(()=>{o.uiState.moveToRect=Q.fromUnion(...n.map(a=>a.rect).filter(Boolean)),o.uiState.rollReset=!0})}function F(){const e=m(),{oneShots:t}=x(e);for(const i of t)ce(i);e.startsWith("?preview=")&&f("?"),m().includes("copy_exh")&&f("?");const s=ie(m());s!==null&&f("?"+s),r.previewExhibitor&&f("?"+r.previewExhibitor.slug),fe()}function ce(e){switch(e.type){case"heatmap":U(e.yah);return;case"blueDot":{const t=new $(e.x,e.y,o.layerStore.findLayer(e.layer??"")?.name,void 0,e.lat,e.lng);p(()=>o.layerStore.layersLoaded,()=>o.routeStore.selectCurrentPosition(t,!0,1));return}case"viewerMode":R&&(e.enabled?localStorage.setItem(B,"true"):(localStorage.removeItem(B),localStorage.removeItem(N)));return;case"previewMode":R&&(e.enabled?localStorage.setItem(M,"true"):(localStorage.removeItem(M),localStorage.removeItem(j)));return;case"uiScale":e.scale!==null?o.uiState.setUIScale(e.scale,!0):L.warn(`Invalid ui-scale parameter: ${e.raw}. Must be a number between 0.8 and 1.4.`);return;case"resetUiScale":o.uiState.resetUIScale();return;case"legacyBookmarks":{const t=e.appendExhibitorId===null?void 0:o.exhibitorStore.exhibitorById.get(e.appendExhibitorId);f(t?"?"+t.slug:"?bookmarks");return}}}function U(e){ae(),e?(r.heatmapYah=!0,r.monochrome=!0,r.hideLogoInBooth=!0,r.hideHeaderLogo=!0,r.disableBookmarked=!0):r.heatmap=!0}function fe(){const e=se(m(),t=>o.exhibitorStore.exhibitors.find(i=>i.slug===t||i.externalId===t)?.name);e!==null&&f(e)}function O(e){e.noOverlay!==void 0&&(r.hideOverlay=e.noOverlay),e.monochrome&&(r.monochrome=!0),e.hideHeaderLogo&&(r.hideHeaderLogo=!0),e.hideLogoInBooth&&(r.hideLogoInBooth=!0),e.disableFeatured&&o.exhibitorStore.exhibitors.forEach(t=>t.featured=!1),e.disableBookmarked&&(r.disableBookmarked=!0),e.disableGps&&o.routeStore.setGpsTrackingEnabled(!1),e.heatmap&&te(e.heatmap)&&U(e.heatmap.variant==="yah")}function me(e){return Y(z,e).value}let C=null,_=null,A=null;function V(){const{selection:e,exhibitor:t,booth:s,eventItem:i}=de(),u=o.urlFilterManager.filterSearch();if(S)return;const l=W(e)||u;m()!==l&&(t!==C||s!==_||i!==A?le(l):f(l),C=t,_=s,A=i)}function de(){const e=r.selectedExhibitor,t=r.selectedBooth,s=r.selectedEventItem,i=r.selectedRoute,u=r.selectedSpeaker,l=r.setKioskModeEnabled,c=r.list;let n;if(c.type==="route-planner"&&!e&&!t&&!s){const a=o.routePlannerStore;n={type:"planner",fromBookmarks:a.source==="bookmarks",items:a.items.map(h=>h.entity.slug).filter(Boolean),from:a.startPoint?.slug||void 0}}else if(i&&!r.isMultiPointRoute)n={type:"route",to:i.to instanceof P?i.to.slug:void 0,from:i.from instanceof P?i.from.slug:void 0,accessible:o.routeStore.onlyAccessible,waypoints:i.waypoints?.map(a=>a.slug)};else if(e)n={type:"slug",slug:e.slug};else if(t)n={type:"slug",slug:t.slug};else if(s)n={type:"slug",slug:s.slug};else if(u)n={type:"slug",slug:u.slug};else if(l)n={type:"none"};else switch(c.type){case"bookmarks":case"visited":case"sessions":case"exhibitors":case"speakers":case"tours":case"language":n={type:"list",list:c.type};break;case"category":n={type:"slug",slug:r.selectedCategory?.slug??""};break;case"search":n={type:"slug",slug:c.text||""};break;case"filter":n={type:"filter",key:c.query.key,value:c.query.value};break;case"multi-point-tour":n={type:"tour",tourId:c.tourId};break;default:throw new Error("Unkown list.type")}return{selection:n,exhibitor:e,booth:t,eventItem:s}}function D(){const e=r.selectedExhibitor,t=r.selectedEventItem,s=r.selectedSpeaker;let i="";e?i=e.name:t?i=t.name:s?i=s.name:r.list.type==="search"&&r.list.text?i="`"+(r.list.text||"")+"`":r.list.type==="multi-point-tour"&&r.tourTitle&&(i=r.tourTitle),i.length&&(i+=" \u2013 "),i+=g.title,g.subtitle&&(i+=" \u2013 "+g.subtitle),i+=" \u2013 Expo Floor Plan by ExpoFP",document.title=i}function E(e){try{if(r.setMapSettings(e),e.z){const t=o.layerStore.layers.find(s=>s.name===e.z);t&&o.layerStore.updateVisibility(t,!0)}}catch(t){console.error("Failed to process map settings.",t)}}
@@ -1,6 +1,6 @@
1
- import { RawPoiType, RawRegularBooth } from '@expofp/schema';
2
1
  import { Box } from '@expofp/geometry';
3
2
  import { ImageDef } from '@expofp/renderer';
3
+ import { RawPoiType, RawRegularBooth } from '@expofp/schema';
4
4
  import { PathInfo, ShapeBgDef } from '../types/drawing.types';
5
5
  import { EventItem } from './EventStore';
6
6
  import { Exhibitor } from './ExhibitorStore';
@@ -1 +1 @@
1
- import{__decorate as f}from"tslib";import{computed as C}from"mobx";import p from"color";import y from"../tools/settings";import{getColorFromGradient as k}from"../utils/color-gradient";import{BoothBase as g}from"./BoothStore";import{Category as x}from"./CategoryStore";import{EventItem as d}from"./EventStore";import{Exhibitor as l}from"./ExhibitorStore";export default class m{constructor(){this.heatmapData={},this.forceTrack=null}get minAndMaxClicks(){const{booths:t=[],exhibitors:i=[],yah:o=[]}=this.heatmapData,e=[...t,...i,...o];if(e.length===0)return{min:0,max:0};const s=h=>h.reduce((r,n)=>(n.viewCount>r.max&&(r.max=n.viewCount),n.viewCount<r.min&&(r.min=n.viewCount),r),{min:h[0].viewCount,max:h[0].viewCount}),{min:a,max:u}=s(e);return{min:a,max:u}}getClicksByType(t){return t instanceof x?-1:t instanceof l?this.getClicksByItem(t):t instanceof HeatmapYah?this.getClicksByItem(t):t instanceof d?0:this.getClicksByItem(t)}getClicksByItem(t){return t instanceof l?this.heatmapData?.exhibitors?.find(i=>i.id===t.id)?.viewCount||0:t instanceof g?this.heatmapData?.booths?.find(i=>i.id===t.id)?.viewCount||0:t instanceof HeatmapYah&&this.heatmapData?.yah?.find(i=>i.id===t.id)?.viewCount||0}getTotalClicksByBooth(t){let i=this.getClicksByItem(t);for(const o of t.exhibitors){const e=this.getClicksByItem(o);i+=e}return i}getColorByClicks(t){const{min:i,max:o}=this.minAndMaxClicks;return k(t,i,o,y.heatmapColors)}getHeatmapColorForBooth(t){const i=this.getTotalClicksByBooth(t);return p(this.getColorByClicks(i))}}f([C({keepAlive:!0})],m.prototype,"minAndMaxClicks",null);export class HeatmapYah{constructor(t,i,o,e,s,a){this.id=t,this.name=i,this.viewCount=o,this.x=e,this.y=s,this.z=a,this.entity={type:"heatmap-yah"}}}
1
+ import{__decorate as f}from"tslib";import C from"color";import{computed as p}from"mobx";import y from"../tools/settings";import{getColorFromGradient as k}from"../utils/color-gradient";import{BoothBase as g}from"./BoothStore";import{Category as x}from"./CategoryStore";import{EventItem as d}from"./EventStore";import{Exhibitor as l}from"./ExhibitorStore";export default class m{constructor(){this.heatmapData={},this.forceTrack=null}get minAndMaxClicks(){const{booths:t=[],exhibitors:i=[],yah:o=[]}=this.heatmapData,e=[...t,...i,...o];if(e.length===0)return{min:0,max:0};const s=h=>h.reduce((r,n)=>(n.viewCount>r.max&&(r.max=n.viewCount),n.viewCount<r.min&&(r.min=n.viewCount),r),{min:h[0].viewCount,max:h[0].viewCount}),{min:a,max:u}=s(e);return{min:a,max:u}}getClicksByType(t){return t instanceof x?-1:t instanceof l?this.getClicksByItem(t):t instanceof HeatmapYah?this.getClicksByItem(t):t instanceof d?0:this.getClicksByItem(t)}getClicksByItem(t){return t instanceof l?this.heatmapData?.exhibitors?.find(i=>i.id===t.id)?.viewCount||0:t instanceof g?this.heatmapData?.booths?.find(i=>i.id===t.id)?.viewCount||0:t instanceof HeatmapYah&&this.heatmapData?.yah?.find(i=>i.id===t.id)?.viewCount||0}getTotalClicksByBooth(t){let i=this.getClicksByItem(t);for(const o of t.exhibitors){const e=this.getClicksByItem(o);i+=e}return i}getColorByClicks(t){const{min:i,max:o}=this.minAndMaxClicks;return k(t,i,o,y.heatmapColors)}getHeatmapColorForBooth(t){const i=this.getTotalClicksByBooth(t);return C(this.getColorByClicks(i))}}f([p({keepAlive:!0})],m.prototype,"minAndMaxClicks",null);export class HeatmapYah{constructor(t,i,o,e,s,a){this.id=t,this.name=i,this.viewCount=o,this.x=e,this.y=s,this.z=a,this.entity={type:"heatmap-yah"}}}
@@ -1 +1 @@
1
- import{__decorate as a}from"tslib";import{getFpSvgJs as m}from"../data/fp-payloads";import{Box as y}from"@expofp/geometry";import{action as c,computed as f,observable as h,runInAction as v}from"mobx";import d from"../components/Map/drawing/config/config-load-layer";import w from"../tools/settings";import{areLayersEnabled as b}from"../utils/areLayersEnabled";import{shortenName as g}from"../utils/shortenName";import s from".";const S=["money2020usa","rodion2","possible2025","2025virtuosotravelweek","zscalerskofy26","gamescom2025"];export var LayersMode;(function(i){i[i.Default=0]="Default",i[i.Separated=1]="Separated",i[i.Radio=2]="Radio",i[i.CheckBox=3]="CheckBox"})(LayersMode||(LayersMode={}));export var LayerMode;(function(i){i[i.Unset=0]="Unset",i[i.AlwaysVisible=1]="AlwaysVisible",i[i.AlwaysHidden=2]="AlwaysHidden",i[i.TurnedOn=3]="TurnedOn",i[i.TurnedOff=4]="TurnedOff"})(LayerMode||(LayerMode={}));export class Layer{constructor(){this.rect=null,this.viewbox=null,this.childLayers=[],this.rootParent=null,this.children=[]}get shortName(){return g(this.description)}}a([h],Layer.prototype,"loaded",void 0),a([h],Layer.prototype,"visible",void 0);export default class l{constructor(){this.layers=[],this.layersLoaded=!1,this.updateVisibilityTimeout=0,this.selectFloorTimeout=0}get visible(){return this.layers.filter(t=>t.frozen||t.visible)}get loaded(){return this.layers.filter(t=>t.loaded)}get rectangle(){var t=this.visible.filter(r=>!r.frozen).map(r=>r.viewbox??r.rect);return this.mode!==LayersMode.Radio||!t.length?null:y.fromUnion(...t)||null}get viewboxRectangle(){var t=this.visible.filter(r=>!r.frozen&&r.viewbox).map(r=>r.viewbox);return t.length&&y.fromUnion(...t)||null}get pathwayLayers(){return this.layers.filter(t=>t.pathway)}get floors(){if(!b())return[];const t=new Set(this.layers.filter(e=>e&&!e.frozen&&!e.rootParent&&!e.pathway).concat(s.routeStore.layers.filter(e=>e&&e.mode!==LayerMode.AlwaysHidden&&e.mode!==LayerMode.AlwaysVisible))),r=Array.from(t).reverse();return r.map((e,o)=>{const n=s.routeStore.layers.length>0&&s.routeStore.layers.indexOf(e)===-1,u=s.toursStore.tourLayers.length>0&&s.toursStore.tourLayers.indexOf(e)===-1;return{layer:e,name:e.name,shortName:e.shortName,description:e.description,active:e.visible,disabled:!!(n||u),index:e.floorIndex??r.length-o-1}})}selectFloor(t){if(this.selectFloorTimeout)return;this.selectFloorTimeout=setTimeout(()=>this.selectFloorTimeout=0,500);const r=this.layers.find(o=>o.description===t.description);if(!r)return;if(this.mode===LayersMode.Radio){if(this.updateVisibility(r,!0),s.maplibreStore.showMaplibre)return;if(!!m().__fpSettings?.fpVer||S.includes(w.EXPO)){const n=r.viewbox??r.rect;s.uiState.moveToRect=n}else{const n=this.layers.indexOf(this.layers.filter(p=>!p.frozen&&p.visible)[0]),u=this.layers.indexOf(r);if(n===u)return;s.uiState.zoomBy=u<n?.95:1.05}}else this.updateVisibility(r,!r.visible);const e=s.toursStore.getTourLayerInfo(r.name)||s.toursStore.getTourLayerInfo(r.description);if(e){this.showPathWay(e.id);return}s.toursStore.stopTour()}updateVisibility(t,r){if(this.mode===LayersMode.Radio&&!r)return;const e=t instanceof Layer?t:this.findLayer(t);if(!e||e.visible===r){e&&s.routeStore.currentRouteLayer!==e&&(s.routeStore.currentRouteLayer=e);return}d(e,s.rendererService).then(()=>{this.mode===LayersMode.Radio&&this.layers.filter(o=>!o.pathway).forEach(o=>{o.name!==e.name&&!o.frozen&&o.visible&&(o.visible=!1,o.childLayers.forEach(n=>{n.visible=!1}))}),e&&(e.visible=r,e.childLayers.forEach(o=>{o.visible=r}),r&&(s.routeStore.currentRouteLayer=e),typeof s.fp.onFloorActivated=="function"&&(clearTimeout(this.updateVisibilityTimeout),this.updateVisibilityTimeout=setTimeout(()=>{const o=s.fp.getFloors();s.fp.onFloorActivated(o.find(n=>n.name===e.name))})))})}findLayer(t){if(t==null)return null;const r=this.layers.filter(o=>!o.rootParent);if(typeof t=="number"&&(e=r.filter(o=>!o.frozen)[t],e))return e;t=t.toString().toLowerCase();var e=r.find(o=>{const n=(o.name.match(/(-?[0-9]+)/)||"")[0];return t===o?.name.toLowerCase()||t===o?.description.toLowerCase()||t===o?.shortName.toLowerCase()||t===n});return!e&&!/\D/.test(t)&&(e=r.filter(o=>!o.frozen)[parseInt(t)]),e}getPathwayList(){return this.layers.filter(t=>t.pathway)}async showPathWay(t){try{const r=this.findLayer(t);if(!r)throw new Error(`There is no pathway with this name. ${t}`);await d(r,s.rendererService);const e=this.getPathwayList();v(()=>{e.forEach(o=>{const n=o.name===t;o.visible=n,o.childLayers.forEach(u=>{u.visible=n})})})}catch(r){console.error("showPathWay",r)}}hidePathways(){this.getPathwayList().forEach(r=>{r.visible=!1,r.childLayers.forEach(e=>{e.visible=!1})})}}a([h],l.prototype,"layers",void 0),a([h],l.prototype,"defaultLayer",void 0),a([h],l.prototype,"mode",void 0),a([h],l.prototype,"layersLoaded",void 0),a([f({keepAlive:!0})],l.prototype,"visible",null),a([f({keepAlive:!0})],l.prototype,"loaded",null),a([f({keepAlive:!0})],l.prototype,"rectangle",null),a([f({keepAlive:!0})],l.prototype,"viewboxRectangle",null),a([f],l.prototype,"pathwayLayers",null),a([f],l.prototype,"floors",null),a([c],l.prototype,"selectFloor",null),a([c],l.prototype,"updateVisibility",null),a([c],l.prototype,"showPathWay",null),a([c],l.prototype,"hidePathways",null);
1
+ import{__decorate as a}from"tslib";import{Box as y}from"@expofp/geometry";import{action as c,computed as f,observable as h,runInAction as m}from"mobx";import d from"../components/Map/drawing/config/config-load-layer";import{getFpSvgJs as v}from"../data/fp-payloads";import w from"../tools/settings";import{areLayersEnabled as b}from"../utils/areLayersEnabled";import{shortenName as g}from"../utils/shortenName";import s from".";const S=["money2020usa","rodion2","possible2025","2025virtuosotravelweek","zscalerskofy26","gamescom2025"];export var LayersMode;(function(i){i[i.Default=0]="Default",i[i.Separated=1]="Separated",i[i.Radio=2]="Radio",i[i.CheckBox=3]="CheckBox"})(LayersMode||(LayersMode={}));export var LayerMode;(function(i){i[i.Unset=0]="Unset",i[i.AlwaysVisible=1]="AlwaysVisible",i[i.AlwaysHidden=2]="AlwaysHidden",i[i.TurnedOn=3]="TurnedOn",i[i.TurnedOff=4]="TurnedOff"})(LayerMode||(LayerMode={}));export class Layer{constructor(){this.rect=null,this.viewbox=null,this.childLayers=[],this.rootParent=null,this.children=[]}get shortName(){return g(this.description)}}a([h],Layer.prototype,"loaded",void 0),a([h],Layer.prototype,"visible",void 0);export default class l{constructor(){this.layers=[],this.layersLoaded=!1,this.updateVisibilityTimeout=0,this.selectFloorTimeout=0}get visible(){return this.layers.filter(t=>t.frozen||t.visible)}get loaded(){return this.layers.filter(t=>t.loaded)}get rectangle(){var t=this.visible.filter(r=>!r.frozen).map(r=>r.viewbox??r.rect);return this.mode!==LayersMode.Radio||!t.length?null:y.fromUnion(...t)||null}get viewboxRectangle(){var t=this.visible.filter(r=>!r.frozen&&r.viewbox).map(r=>r.viewbox);return t.length&&y.fromUnion(...t)||null}get pathwayLayers(){return this.layers.filter(t=>t.pathway)}get floors(){if(!b())return[];const t=new Set(this.layers.filter(e=>e&&!e.frozen&&!e.rootParent&&!e.pathway).concat(s.routeStore.layers.filter(e=>e&&e.mode!==LayerMode.AlwaysHidden&&e.mode!==LayerMode.AlwaysVisible))),r=Array.from(t).reverse();return r.map((e,o)=>{const n=s.routeStore.layers.length>0&&s.routeStore.layers.indexOf(e)===-1,u=s.toursStore.tourLayers.length>0&&s.toursStore.tourLayers.indexOf(e)===-1;return{layer:e,name:e.name,shortName:e.shortName,description:e.description,active:e.visible,disabled:!!(n||u),index:e.floorIndex??r.length-o-1}})}selectFloor(t){if(this.selectFloorTimeout)return;this.selectFloorTimeout=setTimeout(()=>this.selectFloorTimeout=0,500);const r=this.layers.find(o=>o.description===t.description);if(!r)return;if(this.mode===LayersMode.Radio){if(this.updateVisibility(r,!0),s.maplibreStore.showMaplibre)return;if(!!v().__fpSettings?.fpVer||S.includes(w.EXPO)){const n=r.viewbox??r.rect;s.uiState.moveToRect=n}else{const n=this.layers.indexOf(this.layers.filter(p=>!p.frozen&&p.visible)[0]),u=this.layers.indexOf(r);if(n===u)return;s.uiState.zoomBy=u<n?.95:1.05}}else this.updateVisibility(r,!r.visible);const e=s.toursStore.getTourLayerInfo(r.name)||s.toursStore.getTourLayerInfo(r.description);if(e){this.showPathWay(e.id);return}s.toursStore.stopTour()}updateVisibility(t,r){if(this.mode===LayersMode.Radio&&!r)return;const e=t instanceof Layer?t:this.findLayer(t);if(!e||e.visible===r){e&&s.routeStore.currentRouteLayer!==e&&(s.routeStore.currentRouteLayer=e);return}d(e,s.rendererService).then(()=>{this.mode===LayersMode.Radio&&this.layers.filter(o=>!o.pathway).forEach(o=>{o.name!==e.name&&!o.frozen&&o.visible&&(o.visible=!1,o.childLayers.forEach(n=>{n.visible=!1}))}),e&&(e.visible=r,e.childLayers.forEach(o=>{o.visible=r}),r&&(s.routeStore.currentRouteLayer=e),typeof s.fp.onFloorActivated=="function"&&(clearTimeout(this.updateVisibilityTimeout),this.updateVisibilityTimeout=setTimeout(()=>{const o=s.fp.getFloors();s.fp.onFloorActivated(o.find(n=>n.name===e.name))})))})}findLayer(t){if(t==null)return null;const r=this.layers.filter(o=>!o.rootParent);if(typeof t=="number"&&(e=r.filter(o=>!o.frozen)[t],e))return e;t=t.toString().toLowerCase();var e=r.find(o=>{const n=(o.name.match(/(-?[0-9]+)/)||"")[0];return t===o?.name.toLowerCase()||t===o?.description.toLowerCase()||t===o?.shortName.toLowerCase()||t===n});return!e&&!/\D/.test(t)&&(e=r.filter(o=>!o.frozen)[parseInt(t)]),e}getPathwayList(){return this.layers.filter(t=>t.pathway)}async showPathWay(t){try{const r=this.findLayer(t);if(!r)throw new Error(`There is no pathway with this name. ${t}`);await d(r,s.rendererService);const e=this.getPathwayList();m(()=>{e.forEach(o=>{const n=o.name===t;o.visible=n,o.childLayers.forEach(u=>{u.visible=n})})})}catch(r){console.error("showPathWay",r)}}hidePathways(){this.getPathwayList().forEach(r=>{r.visible=!1,r.childLayers.forEach(e=>{e.visible=!1})})}}a([h],l.prototype,"layers",void 0),a([h],l.prototype,"defaultLayer",void 0),a([h],l.prototype,"mode",void 0),a([h],l.prototype,"layersLoaded",void 0),a([f({keepAlive:!0})],l.prototype,"visible",null),a([f({keepAlive:!0})],l.prototype,"loaded",null),a([f({keepAlive:!0})],l.prototype,"rectangle",null),a([f({keepAlive:!0})],l.prototype,"viewboxRectangle",null),a([f],l.prototype,"pathwayLayers",null),a([f],l.prototype,"floors",null),a([c],l.prototype,"selectFloor",null),a([c],l.prototype,"updateVisibility",null),a([c],l.prototype,"showPathWay",null),a([c],l.prototype,"hidePathways",null);
@@ -196,7 +196,6 @@ export default class UIState {
196
196
  get selectedEventItem(): EventItem | null;
197
197
  get defaultMapSettings(): MapSettings;
198
198
  mapSettings: MapSettings;
199
- saveMapSettings(settings: MapSettings): void;
200
199
  setMapSettings(settings: MapSettings): void;
201
200
  resetMapSettings(): void;
202
201
  get baseQRCodeUrl(): string;