@expofp/floorplan 3.1.13 → 3.1.14

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 (62) hide show
  1. package/dist/browser/{CookieConsent-Bw3oK-p1.js → CookieConsent-Jau4ROyh.js} +1154 -1154
  2. package/dist/browser/{Debug-cM5zeZ84.js → Debug-B0DTKyj4.js} +6 -6
  3. package/dist/browser/{Demo-ZB-Jl9mj.js → Demo-DHAqCrx_.js} +8 -8
  4. package/dist/browser/{Free-BaILsghL.js → Free-DLgSf53K.js} +8 -8
  5. package/dist/browser/{Gallery-Buc865iX.js → Gallery-CBECpMlB.js} +8 -8
  6. package/dist/browser/{GpsLoader-C-OlR79z.js → GpsLoader-D78set4y.js} +16 -16
  7. package/dist/browser/{KioskStore-CVRSdBbM.js → KioskStore-Da8gyZzb.js} +3 -3
  8. package/dist/browser/{Mapbox-prEgeqtQ.js → Mapbox-DbzVLM2d.js} +8 -8
  9. package/dist/browser/{SetKioskMode-TNLvZAWm.js → SetKioskMode-keUVRfe-.js} +7 -7
  10. package/dist/browser/{ShowKiosk-CnnLBsr0.js → ShowKiosk-2pRbsBL3.js} +10 -10
  11. package/dist/browser/{ThreeComponent-BORSPsAL.js → ThreeComponent-CVgKj-gS.js} +9 -9
  12. package/dist/browser/{TouchHand-By609eDM.js → TouchHand-DiS2NfrZ.js} +4 -4
  13. package/dist/browser/{ViewerMenuPanel-Bken9w9L.js → ViewerMenuPanel-CVCNoXRk.js} +7 -7
  14. package/dist/browser/{add-debug-secret-listener-Cogpdw0z.js → add-debug-secret-listener-Dui11cLW.js} +1 -1
  15. package/dist/browser/{boolean-editor-C8yOM6gc.js → boolean-editor-CWiXvHKa.js} +10 -10
  16. package/dist/browser/{bootIntercom-CoTIFNrp.js → bootIntercom-X7Q0qJ8P.js} +1 -1
  17. package/dist/browser/{box-CDTEWyhk.js → box-DZckrsYm.js} +5 -5
  18. package/dist/browser/{browser-i2x06Taw.js → browser-mjnFK9ca.js} +2 -2
  19. package/dist/browser/bundle.json +53 -53
  20. package/dist/browser/{classnames-Cd3n4YpU.js → classnames-B4weq2Ty.js} +2 -2
  21. package/dist/browser/{client-C764iZSN.js → client-NJkFIlRf.js} +4 -4
  22. package/dist/browser/{data-Cr4kCufX.js → data-B0LDCr9E.js} +3 -3
  23. package/dist/browser/{debug-overlay-BTiy7adc.js → debug-overlay-CBaewbg-.js} +11 -11
  24. package/dist/browser/{debug-ui-1B-O-gkR.js → debug-ui-C5CQj4oF.js} +6 -6
  25. package/dist/browser/{dist-BkTYDcWj.js → dist-CAg6bo_9.js} +5 -5
  26. package/dist/browser/{dist-DQ2_5GNh.js → dist-DKWUThwo.js} +3 -3
  27. package/dist/browser/{dist-KUfLT3TG.js → dist-DtaqwcIk.js} +6 -6
  28. package/dist/browser/{efp-debug-init-BgUJd85n.js → efp-debug-init-CsStoKRb.js} +2 -2
  29. package/dist/browser/{enum-editor-sNO1uQI8.js → enum-editor-B6PFZoRZ.js} +11 -11
  30. package/dist/browser/{exports-C7rHdUj-.js → exports-CVRRKgWx.js} +1 -1
  31. package/dist/browser/{favicon-B_zFwxxh.js → favicon-DUYMhzqt.js} +1 -1
  32. package/dist/browser/{fetch-retry.umd-0dNy8QW_.js → fetch-retry.umd-DYkr3oJ8.js} +2 -2
  33. package/dist/browser/{flex-CqjtImsX.js → flex-BIK48-5b.js} +6 -6
  34. package/dist/browser/{flex.props-nEtxNVS6.js → flex.props-De2GuHrM.js} +2 -2
  35. package/dist/browser/{floorplan.loader-D79yVyYt.js → floorplan.loader-BlkC19U8.js} +22 -22
  36. package/dist/browser/{floorplan.ready-DKbBmNeQ.js → floorplan.ready-DV5Rehny.js} +15 -15
  37. package/dist/browser/{fuse-Cp0r9jDo.js → fuse-DW0EmQwO.js} +2 -2
  38. package/dist/browser/index.js +12 -12
  39. package/dist/browser/{is-debug-DukrtRMA.js → is-debug-bXQ-_ZFu.js} +647 -639
  40. package/dist/browser/{jsx-runtime-BIGAPFGy.js → jsx-runtime-Dwqsy2SF.js} +2 -2
  41. package/dist/browser/{lib-DEQ5HkJU.js → lib-QAlhuFMi.js} +4 -4
  42. package/dist/browser/{main-BVC2ZP7O.js → main-BGOSuQXG.js} +1 -1
  43. package/dist/browser/{mobx-BG_Oieyv.js → mobx-JlhCeSfI.js} +4 -4
  44. package/dist/browser/{particles.min-9JyrSnxE.js → particles.min-B8JVoWiC.js} +2 -2
  45. package/dist/browser/{prop-types-CfA0wnDd.js → prop-types-B79OvOGn.js} +2 -2
  46. package/dist/browser/{react-BanOPiQr.js → react-4sXQr-K3.js} +2 -2
  47. package/dist/browser/{react-dom-8FN3trc4.js → react-dom-DUqtXrhB.js} +3 -3
  48. package/dist/browser/{reset-all-settings-B65-H1In.js → reset-all-settings-BJ-mpqBY.js} +7 -7
  49. package/dist/browser/{rolldown-runtime-CJulXBpQ.js → rolldown-runtime-r2RAXlih.js} +1 -1
  50. package/dist/browser/{settings-BF7tQpXy.js → settings-BbED0LMr.js} +2 -2
  51. package/dist/browser/{settings-item-DeGIeTFU.js → settings-item-B7vBwblm.js} +6 -6
  52. package/dist/browser/{store-CajkKGHG.js → store-lLHC57GH.js} +982 -982
  53. package/dist/browser/{string-editor-DTh4109K.js → string-editor-DiAnwUbd.js} +8 -8
  54. package/dist/browser/{theme-CDTiXq4t.js → theme-CPrp516O.js} +8 -8
  55. package/dist/browser/{ui-CqtN1zR0.js → ui-4Pe0LAdA.js} +8 -8
  56. package/dist/esm/components/Map/Map.js +1 -1
  57. package/dist/esm/constants.d.ts +1 -0
  58. package/dist/esm/constants.js +1 -1
  59. package/dist/esm/tools/handleDebugMode.js +1 -1
  60. package/dist/esm/utils/is-debug.d.ts +11 -0
  61. package/dist/esm/utils/is-debug.js +1 -1
  62. package/package.json +3 -3
@@ -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.1.13" };
4
+ e.SENTRY_RELEASE = { id: "3.1.14" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "ad0b7429-2216-49bc-b4c2-a2d12f366be7", e._sentryDebugIdIdentifier = "sentry-dbid-ad0b7429-2216-49bc-b4c2-a2d12f366be7");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CJulXBpQ.js";
10
- import { t } from "./react-BanOPiQr.js";
11
- import { t as n } from "./jsx-runtime-BIGAPFGy.js";
12
- import { E as r, c as i, l as a, o, r as s, v as c } from "./box-CDTEWyhk.js";
13
- import { t as l } from "./classnames-Cd3n4YpU.js";
14
- import { t as u } from "./flex.props-nEtxNVS6.js";
15
- import { t as d } from "./settings-item-DeGIeTFU.js";
9
+ import { r as e } from "./rolldown-runtime-r2RAXlih.js";
10
+ import { t } from "./react-4sXQr-K3.js";
11
+ import { t as n } from "./jsx-runtime-Dwqsy2SF.js";
12
+ import { E as r, c as i, l as a, o, r as s, v as c } from "./box-DZckrsYm.js";
13
+ import { t as l } from "./classnames-B4weq2Ty.js";
14
+ import { t as u } from "./flex.props-De2GuHrM.js";
15
+ import { t as d } from "./settings-item-B7vBwblm.js";
16
16
  //#region ../../node_modules/.pnpm/@radix-ui+themes@3.3.0_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@19.2._c0b9fed6e211d5c83adcfe1ae3769049/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.js
17
17
  var f = {
18
18
  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.1.13" };
4
+ e.SENTRY_RELEASE = { id: "3.1.14" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "90d0766a-2911-4661-88ef-a6bc95ba851f", e._sentryDebugIdIdentifier = "sentry-dbid-90d0766a-2911-4661-88ef-a6bc95ba851f");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CJulXBpQ.js";
10
- import { t } from "./react-BanOPiQr.js";
11
- import { t as n } from "./jsx-runtime-BIGAPFGy.js";
12
- import { t as r } from "./react-dom-8FN3trc4.js";
13
- import { C as i, D as a, S as o, T as s, _ as c, a as l, g as u, w as d } from "./box-CDTEWyhk.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-KUfLT3TG.js";
15
- import { t as y } from "./classnames-Cd3n4YpU.js";
9
+ import { r as e } from "./rolldown-runtime-r2RAXlih.js";
10
+ import { t } from "./react-4sXQr-K3.js";
11
+ import { t as n } from "./jsx-runtime-Dwqsy2SF.js";
12
+ import { t as r } from "./react-dom-DUqtXrhB.js";
13
+ import { C as i, D as a, S as o, T as s, _ as c, a as l, g as u, w as d } from "./box-DZckrsYm.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-DtaqwcIk.js";
15
+ import { t as y } from "./classnames-B4weq2Ty.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.14__@ty_e810030844e1cfedd403eda403a3d8c6/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.1.13" };
4
+ e.SENTRY_RELEASE = { id: "3.1.14" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "859b3b6e-97b0-4a1c-9184-8f896e683c8b", e._sentryDebugIdIdentifier = "sentry-dbid-859b3b6e-97b0-4a1c-9184-8f896e683c8b");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CJulXBpQ.js";
10
- import { i as t, r as n } from "./reset-all-settings-B65-H1In.js";
11
- import { t as r } from "./jsx-runtime-BIGAPFGy.js";
12
- import "./settings-BF7tQpXy.js";
13
- import { t as i } from "./browser-i2x06Taw.js";
14
- import { t as a } from "./add-debug-secret-listener-Cogpdw0z.js";
9
+ import { r as e } from "./rolldown-runtime-r2RAXlih.js";
10
+ import { i as t, r as n } from "./reset-all-settings-BJ-mpqBY.js";
11
+ import { t as r } from "./jsx-runtime-Dwqsy2SF.js";
12
+ import "./settings-BbED0LMr.js";
13
+ import { t as i } from "./browser-mjnFK9ca.js";
14
+ import { t as a } from "./add-debug-secret-listener-Dui11cLW.js";
15
15
  //#region ../debug/src/lib/ui/render-debug-ui.tsx
16
16
  var o = /* @__PURE__ */ e(i(), 1), s = r(), c = !1;
17
17
  function l() {
@@ -30,7 +30,7 @@ function l() {
30
30
  }
31
31
  });
32
32
  let i = async (t) => {
33
- let { DebugUi: n } = await import("./debug-ui-1B-O-gkR.js"), { createRoot: i } = await import("./client-C764iZSN.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
33
+ let { DebugUi: n } = await import("./debug-ui-C5CQj4oF.js"), { createRoot: i } = await import("./client-NJkFIlRf.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
34
34
  document.body.appendChild(a), i(a).render(/* @__PURE__ */ (0, s.jsx)(n, {
35
35
  useDebugButtonState: r.useState,
36
36
  open: t
@@ -1 +1 @@
1
- import{jsx as S,jsxs as _,Fragment as K}from"react/jsx-runtime";import{useObserver as U}from"mobx-react-lite";import Y from"classnames";import{useEffect as q,useMemo as J,useRef as z,useState as Q}from"react";import{observable as ee}from"mobx";import i,{boothStore as oe,layersStore as R,uiState as e}from"../../store";import te from"./drawing/config/config-all";import{useReaction as d}from"../../utils/mobx";import{LayerMode as g}from"../../store/LayerStore";import p from"../../tools/settings";import{Rect as x}from"./drawing/config/Rect";import C from"../../core/Rect";import{Exhibitor as F}from"../../store/ExhibitorStore";import{BoothBase as re}from"../../store/BoothStore";import{CurrentPosition as ne,Route as ie}from"../../store/RouteStore";import{Category as ae}from"../../store/CategoryStore";import T from"../../tools/logger";import{svgArea as D}from"../../data/svg";import{configMarkers as se,getMarkerFromClick as le}from"./drawing/config/config-markers";import me from"color";import ce from"./drawing/config/config-wf";import{createSceneDef as fe}from"../../renderer";import{convertGpsToLocal as de}from"../../utils/gps";import{fpGeo as ue}from"../../data/fpGeo";import v from"../../utils/is-debug";import{Draggable as pe}from"../Draggable";import{useBuildRoute as he}from"./traffic/useBuildRoute";import{useManageTraffic as ve}from"./traffic/useManageTraffic";import{PATHWAY_KEY as G}from"../../constants";import N from"./booth-by-xy";import{mapRollSetting as O}from"../../renderer";import{loadLayersImages as be}from"./drawing/config/loadBoothsImages";import{areLayersEnabled as ye}from"../../utils/areLayersEnabled";import{pickDefaultScene as X,pickDefaultScenePoint as ge}from"../../renderer/engine-core/defs";const j=Number.isFinite(p.maxZoom);export default function xe(){let k={};const A="#ebebeb",h=z(),b=J(()=>ee({moving:!1,prevLevel:i.layerStore.layers.find(o=>!o.frozen&&o.visible)}),[]),s=i.rendererService;let l;const L=z(null);let M=null,B=null;const[V,W]=Q(()=>typeof window<"u"&&window.localStorage?localStorage.getItem("debug")!=="0":!0);d(()=>i.routeStore.currentRouteLayer,()=>{if(!s.scene||b.prevLevel===i.routeStore.currentRouteLayer)return;const o=s.scene.rootLayer.children.filter(r=>i.layerStore.floors.some(n=>r.name.includes(n.name)));let t=i.routeStore.currentRouteLayer.name;if(!o.find(r=>r.name===t))return;const a=o?.map(r=>(r.name===t&&(r.hidden=!1),r.name===b.prevLevel?.name&&(r.hidden=!0),r));b.prevLevel=i.routeStore.currentRouteLayer,s.update(...a)}),d(()=>e.centerMap,()=>{!e.centerMap||i.mapboxStore.showMapbox||(l.controls.resetCamera({zoom:!!(e.list.type==="search"&&e.list.text)}),e.centerMap=!1)}),q(()=>{if(!h.current)return;async function o(){let t={};try{if(v){const r=document.createElement("canvas").getContext("webgl2"),n=r&&r.getExtension("EXT_disjoint_timer_query_webgl2"),m=(await import("stats-gl")).default,f=new m({trackGPU:n,horizontal:!0}),u=L.current;if(!u)throw new Error("memoryInfoPanel not found.");f.dom.style.position="relative",u.style.width=`${90*(n?3:2)}px`,u.style.height="48px",u.appendChild(f.dom),t={stats:f,memoryInfoPanel:u}}}catch(a){console.error(a)}l=s.create({canvas:h.current,ui:t}),e.canvasVisibleRectPx&&(l.visibleRect=x.fromCoreRect(e.canvasVisibleRectPx)),te(s).then(a=>{v&&console.log("Renderer settings",l);const r=me(p.backgroundColor==="none"?A:p.backgroundColor).string("rgba");k=fe(a,x.fromCoreRect(D),r),s.start(k),O(l,i.fp.enableRotation?1:0),j&&l.viewport.setMaxZoom(p.maxZoom),R.layersLoaded=!0,i.fp.onFpConfigured&&i.fp?.onFpConfigured(),M=ce(s),B=se(s),be(s)}),l.events.addEventListener("pointer:move",({data:a})=>{if(e.setKioskModeEnabled)return;const{point:r,defs:n}=X(a),c=N(r.x,r.y),m=P(n[0]);e.hoveredBooth=c||m}),l.events.addEventListener("pointer:out",()=>{e.setKioskModeEnabled||(e.hoveredBooth=null)}),l.events.addEventListener("pointer:click",({data:a})=>{if(!e?.rootElement)return;window.__resett&&window.__resett(),e.overlayPosition==="bottom"&&e.overlaySize==="full"&&i.showMap();const{point:r,defs:n}=X(a),{x:c,y:m}=r;if(e.onGetCoordsClick){const y=i.layerStore.layers.find(w=>w.visible&&(w.mode===g.TurnedOn||w.mode===g.TurnedOff));e.onGetCoordsClick({x:c,y:m,z:y?.name||null})}if(e.setKioskModeEnabled)return;if(e.onMarkerClick){const y=le(c,m,s.scale);v&&console.log("marker",y),e.onMarkerClick(y)}const f=N(r.x,r.y),u=P(n[0]);v&&console.log("boothIdFromClientXy",f,"boothByShape",u,"pointer:click point",r),i.clickBooth(f||u)}),l.events.addEventListener("navigation:change",()=>window.__resett&&window.__resett())}return o(),i.fp.getCenterCoordinates=$,()=>Z()},[]);function Z(){M?.(),B?.(),s.dispose()}function $(){const o=h.current;if(!h.current)throw new Error("Canvas not ready");const t=ge(l.viewport.canvasToSvg({x:o.clientWidth/2,y:o.clientHeight/2})),r=i.layerStore.visible.find(n=>n.mode===g.TurnedOff||n.mode===g.TurnedOn)?.name||null;return{...t,z:r}}function P(o){return!o||!o.shape?null:oe.booths.find(t=>t.shapes?.find(a=>a.shape==o.shape))}d(()=>e.zoomBy,()=>{if(!e.zoomBy||i.mapboxStore.showMapbox)return;const o=e.zoomBy;l.controls.zoomBy(o),e.zoomBy=null}),d(()=>e.dimmed,o=>{if(!s.scene)return;const t=s.scene.rootLayer;t.dim!==o&&(t.dim=o,s.update(t))}),d(()=>e.details,()=>{if(!e.onDetails)return;if(!e.details){e.onDetails(null);return}var o=e.details;if(p.EXPO==="wineparis"&&(o instanceof F&&(o=o.booths[0]),!o))return;let t=null,a=[];o instanceof F?(t="exhibitor",a=o.booths.map(n=>n.name).sort((n,c)=>n==i.routeStore.tempToBooth?.name?-1:c==i.routeStore.tempToBooth?.name?1:0)):o instanceof re?(t="booth",a=[o.name]):o instanceof ie?(t="route",a=[o.from?.name,o.to?.name].filter(n=>!!n)):o instanceof ae&&(t="category",a=o.exhibitors.map(n=>n.booths.map(c=>c.name)).flat());var r={type:t,name:o?.name,id:o?.id,externalId:o?.externalId,boothsNames:a};e.onDetails({...r,...t==="route"?{routeInfo:i.routeStore.routeInfo}:{}})}),d(()=>e.canvasVisibleRectPx,()=>{s.renderer&&(s.renderer.visibleRect=x.fromCoreRect(e.canvasVisibleRectPx))},{fireImmediately:!0}),d(()=>e.moveToRect,()=>{!e.moveToRect||i.mapboxStore.showMapbox||(e.moveToRect&&e.moveToRect.h!==1/0&&e.moveToRect.w!==1/0&&e.moveToRect.h>0&&e.moveToRect.w>0&&I(e.moveToRect),e.moveToRect=null)}),d(()=>e.rollReset,o=>{o&&(l.controls.resetCamera({roll:!0}),e.rollReset=!1)}),d(()=>e.moveToBooths,()=>{if(T.log("this.moveToBooths",e.moveToBooths),!e.moveToBooths||i.mapboxStore.showMapbox)return;T.log("watched moveToBooths",e.moveToBooths);const o=e.moveToBooths.filter(t=>t.rect).map(t=>t.rect);o.length!==0&&(I(C.fromMultiple(o)),e.moveToBooths=null)}),d(()=>e.mapSettings,({zoomtime:o,center:t,centerxy:a,bearing:r,roll:n,z:c})=>{if(!(i.mapboxStore.showMapbox||!s.renderer))try{o&&o!==e.defaultMapSettings.zoomtime&&s.renderer.controls.configure({zoomTime:o/1e3}),i.fp.enableRotation&&O(l,n);let m;if(t){const f=t.split(",").map(Number),u=new ne(void 0,void 0,void 0,void 0,f[0],f[1]);m=de(u,ue.properties.config)}else if(a){const f=a.split(",").map(Number);m={x:f[0],y:f[1]}}c&&i.fp.activateFloor({name:c}),(m?.x||m?.y)&&s.renderer.controls.panTo(m.x,m.y),Number.isFinite(r)&&s.renderer.controls.rollTo(r)}catch(m){T.error("Error in mapSettings reaction",m)}}),he({enabled:R.layersLoaded&&e.buildRoute,rendererService:s});const E="routes-api.expofp.com";ve({permission:R.layersLoaded,rendererService:s,dataJsonUrl:`https://${E}/v1/routes?expo=${p.EXPO}`,websocketUrl:`wss://${E}/locations?expo=${p.EXPO}`}),d(()=>i.layerStore.visible,o=>{if(!s.scene)return;const t=o.filter(n=>n.name.toLowerCase().includes(G)),r=s.scene.rootLayer.children.filter(n=>n.name.toLowerCase().includes(G));r.forEach(n=>{n.hidden=!t.find(c=>c.name===n.name)}),s.update(...r)});function I(o){let t=o;const a=H(o,D);e.kioskData&&(!ye()||i.routeStore.defaultFrom?.layer?.name===i.routeStore.currentRouteLayer?.name)&&(t=C.fromMultiple([o,C.fromXywh(e.kioskData.x,e.kioskData.y,1,1)]));const r=x.fromCoreRect(t),n={paddingPercent:a,maxZoom:j?void 0:10};if(e.shouldShiftMapRect){l.visibleRect.min={...l.visibleRect.min,x:l.visibleRect.min.x+e.overlayWidthPx};try{l.controls.zoomTo(r,n)}finally{l.visibleRect.min={...l.visibleRect.min,x:l.visibleRect.min.x-e.overlayWidthPx}}}else l.controls.zoomTo(r,n)}function H(o,t){return!o||!t?0:(o.w*o.h/(t.h*t.w)>.1?15:25)/100}return U(()=>_(K,{children:[S("canvas",{style:{width:"100%",height:"100%"},ref:h,className:Y({map:!0,moving:b.moving,hidden:i.mapboxStore.showMapbox}),children:"ExpoFP.com"}),v&&V&&_(pe,{className:"debug-fps",children:[S("div",{ref:L}),S("button",{onClick:()=>{typeof window<"u"&&window.localStorage&&localStorage.setItem("debug","0"),W(!1)},style:{padding:"4px 8px",fontSize:"11px",cursor:"pointer",backgroundColor:"#333",color:"#fff",border:"1px solid #555",width:"100%"},children:"Hide debug"})]})]}))}
1
+ import{jsx as S,jsxs as I,Fragment as H}from"react/jsx-runtime";import{useObserver as Y}from"mobx-react-lite";import q from"classnames";import{useEffect as J,useMemo as Q,useRef as z,useState as ee}from"react";import{observable as oe}from"mobx";import i,{boothStore as te,layersStore as R,uiState as e}from"../../store";import re from"./drawing/config/config-all";import{useReaction as d}from"../../utils/mobx";import{LayerMode as g}from"../../store/LayerStore";import p from"../../tools/settings";import{Rect as x}from"./drawing/config/Rect";import C from"../../core/Rect";import{Exhibitor as F}from"../../store/ExhibitorStore";import{BoothBase as ne}from"../../store/BoothStore";import{CurrentPosition as ie,Route as ae}from"../../store/RouteStore";import{Category as se}from"../../store/CategoryStore";import T from"../../tools/logger";import{svgArea as D}from"../../data/svg";import{configMarkers as le,getMarkerFromClick as me}from"./drawing/config/config-markers";import ce from"color";import fe from"./drawing/config/config-wf";import{createSceneDef as de}from"../../renderer";import{convertGpsToLocal as ue}from"../../utils/gps";import{fpGeo as pe}from"../../data/fpGeo";import v from"../../utils/is-debug";import{Draggable as he}from"../Draggable";import{useBuildRoute as ve}from"./traffic/useBuildRoute";import{useManageTraffic as be}from"./traffic/useManageTraffic";import{DEBUG_STORAGE_KEY as G,PATHWAY_KEY as N}from"../../constants";import O from"./booth-by-xy";import{mapRollSetting as X}from"../../renderer";import{loadLayersImages as ye}from"./drawing/config/loadBoothsImages";import{areLayersEnabled as ge}from"../../utils/areLayersEnabled";import{pickDefaultScene as A,pickDefaultScenePoint as xe}from"../../renderer/engine-core/defs";const j=Number.isFinite(p.maxZoom);export default function we(){let k={};const K="#ebebeb",h=z(),b=Q(()=>oe({moving:!1,prevLevel:i.layerStore.layers.find(o=>!o.frozen&&o.visible)}),[]),s=i.rendererService;let l;const L=z(null);let B=null,M=null;const[U,V]=ee(()=>typeof window<"u"&&window.localStorage?localStorage.getItem(G)!=="false":!0);d(()=>i.routeStore.currentRouteLayer,()=>{if(!s.scene||b.prevLevel===i.routeStore.currentRouteLayer)return;const o=s.scene.rootLayer.children.filter(r=>i.layerStore.floors.some(n=>r.name.includes(n.name)));let t=i.routeStore.currentRouteLayer.name;if(!o.find(r=>r.name===t))return;const a=o?.map(r=>(r.name===t&&(r.hidden=!1),r.name===b.prevLevel?.name&&(r.hidden=!0),r));b.prevLevel=i.routeStore.currentRouteLayer,s.update(...a)}),d(()=>e.centerMap,()=>{!e.centerMap||i.mapboxStore.showMapbox||(l.controls.resetCamera({zoom:!!(e.list.type==="search"&&e.list.text)}),e.centerMap=!1)}),J(()=>{if(!h.current)return;async function o(){let t={};try{if(v){const r=document.createElement("canvas").getContext("webgl2"),n=r&&r.getExtension("EXT_disjoint_timer_query_webgl2"),m=(await import("stats-gl")).default,f=new m({trackGPU:n,horizontal:!0}),u=L.current;if(!u)throw new Error("memoryInfoPanel not found.");f.dom.style.position="relative",u.style.width=`${90*(n?3:2)}px`,u.style.height="48px",u.appendChild(f.dom),t={stats:f,memoryInfoPanel:u}}}catch(a){console.error(a)}l=s.create({canvas:h.current,ui:t}),e.canvasVisibleRectPx&&(l.visibleRect=x.fromCoreRect(e.canvasVisibleRectPx)),re(s).then(a=>{v&&console.log("Renderer settings",l);const r=ce(p.backgroundColor==="none"?K:p.backgroundColor).string("rgba");k=de(a,x.fromCoreRect(D),r),s.start(k),X(l,i.fp.enableRotation?1:0),j&&l.viewport.setMaxZoom(p.maxZoom),R.layersLoaded=!0,i.fp.onFpConfigured&&i.fp?.onFpConfigured(),B=fe(s),M=le(s),ye(s)}),l.events.addEventListener("pointer:move",({data:a})=>{if(e.setKioskModeEnabled)return;const{point:r,defs:n}=A(a),c=O(r.x,r.y),m=E(n[0]);e.hoveredBooth=c||m}),l.events.addEventListener("pointer:out",()=>{e.setKioskModeEnabled||(e.hoveredBooth=null)}),l.events.addEventListener("pointer:click",({data:a})=>{if(!e?.rootElement)return;window.__resett&&window.__resett(),e.overlayPosition==="bottom"&&e.overlaySize==="full"&&i.showMap();const{point:r,defs:n}=A(a),{x:c,y:m}=r;if(e.onGetCoordsClick){const y=i.layerStore.layers.find(w=>w.visible&&(w.mode===g.TurnedOn||w.mode===g.TurnedOff));e.onGetCoordsClick({x:c,y:m,z:y?.name||null})}if(e.setKioskModeEnabled)return;if(e.onMarkerClick){const y=me(c,m,s.scale);v&&console.log("marker",y),e.onMarkerClick(y)}const f=O(r.x,r.y),u=E(n[0]);v&&console.log("boothIdFromClientXy",f,"boothByShape",u,"pointer:click point",r),i.clickBooth(f||u)}),l.events.addEventListener("navigation:change",()=>window.__resett&&window.__resett())}return o(),i.fp.getCenterCoordinates=Z,()=>W()},[]);function W(){B?.(),M?.(),s.dispose()}function Z(){const o=h.current;if(!h.current)throw new Error("Canvas not ready");const t=xe(l.viewport.canvasToSvg({x:o.clientWidth/2,y:o.clientHeight/2})),r=i.layerStore.visible.find(n=>n.mode===g.TurnedOff||n.mode===g.TurnedOn)?.name||null;return{...t,z:r}}function E(o){return!o||!o.shape?null:te.booths.find(t=>t.shapes?.find(a=>a.shape==o.shape))}d(()=>e.zoomBy,()=>{if(!e.zoomBy||i.mapboxStore.showMapbox)return;const o=e.zoomBy;l.controls.zoomBy(o),e.zoomBy=null}),d(()=>e.dimmed,o=>{if(!s.scene)return;const t=s.scene.rootLayer;t.dim!==o&&(t.dim=o,s.update(t))}),d(()=>e.details,()=>{if(!e.onDetails)return;if(!e.details){e.onDetails(null);return}var o=e.details;if(p.EXPO==="wineparis"&&(o instanceof F&&(o=o.booths[0]),!o))return;let t=null,a=[];o instanceof F?(t="exhibitor",a=o.booths.map(n=>n.name).sort((n,c)=>n==i.routeStore.tempToBooth?.name?-1:c==i.routeStore.tempToBooth?.name?1:0)):o instanceof ne?(t="booth",a=[o.name]):o instanceof ae?(t="route",a=[o.from?.name,o.to?.name].filter(n=>!!n)):o instanceof se&&(t="category",a=o.exhibitors.map(n=>n.booths.map(c=>c.name)).flat());var r={type:t,name:o?.name,id:o?.id,externalId:o?.externalId,boothsNames:a};e.onDetails({...r,...t==="route"?{routeInfo:i.routeStore.routeInfo}:{}})}),d(()=>e.canvasVisibleRectPx,()=>{s.renderer&&(s.renderer.visibleRect=x.fromCoreRect(e.canvasVisibleRectPx))},{fireImmediately:!0}),d(()=>e.moveToRect,()=>{!e.moveToRect||i.mapboxStore.showMapbox||(e.moveToRect&&e.moveToRect.h!==1/0&&e.moveToRect.w!==1/0&&e.moveToRect.h>0&&e.moveToRect.w>0&&_(e.moveToRect),e.moveToRect=null)}),d(()=>e.rollReset,o=>{o&&(l.controls.resetCamera({roll:!0}),e.rollReset=!1)}),d(()=>e.moveToBooths,()=>{if(T.log("this.moveToBooths",e.moveToBooths),!e.moveToBooths||i.mapboxStore.showMapbox)return;T.log("watched moveToBooths",e.moveToBooths);const o=e.moveToBooths.filter(t=>t.rect).map(t=>t.rect);o.length!==0&&(_(C.fromMultiple(o)),e.moveToBooths=null)}),d(()=>e.mapSettings,({zoomtime:o,center:t,centerxy:a,bearing:r,roll:n,z:c})=>{if(!(i.mapboxStore.showMapbox||!s.renderer))try{o&&o!==e.defaultMapSettings.zoomtime&&s.renderer.controls.configure({zoomTime:o/1e3}),i.fp.enableRotation&&X(l,n);let m;if(t){const f=t.split(",").map(Number),u=new ie(void 0,void 0,void 0,void 0,f[0],f[1]);m=ue(u,pe.properties.config)}else if(a){const f=a.split(",").map(Number);m={x:f[0],y:f[1]}}c&&i.fp.activateFloor({name:c}),(m?.x||m?.y)&&s.renderer.controls.panTo(m.x,m.y),Number.isFinite(r)&&s.renderer.controls.rollTo(r)}catch(m){T.error("Error in mapSettings reaction",m)}}),ve({enabled:R.layersLoaded&&e.buildRoute,rendererService:s});const P="routes-api.expofp.com";be({permission:R.layersLoaded,rendererService:s,dataJsonUrl:`https://${P}/v1/routes?expo=${p.EXPO}`,websocketUrl:`wss://${P}/locations?expo=${p.EXPO}`}),d(()=>i.layerStore.visible,o=>{if(!s.scene)return;const t=o.filter(n=>n.name.toLowerCase().includes(N)),r=s.scene.rootLayer.children.filter(n=>n.name.toLowerCase().includes(N));r.forEach(n=>{n.hidden=!t.find(c=>c.name===n.name)}),s.update(...r)});function _(o){let t=o;const a=$(o,D);e.kioskData&&(!ge()||i.routeStore.defaultFrom?.layer?.name===i.routeStore.currentRouteLayer?.name)&&(t=C.fromMultiple([o,C.fromXywh(e.kioskData.x,e.kioskData.y,1,1)]));const r=x.fromCoreRect(t),n={paddingPercent:a,maxZoom:j?void 0:10};if(e.shouldShiftMapRect){l.visibleRect.min={...l.visibleRect.min,x:l.visibleRect.min.x+e.overlayWidthPx};try{l.controls.zoomTo(r,n)}finally{l.visibleRect.min={...l.visibleRect.min,x:l.visibleRect.min.x-e.overlayWidthPx}}}else l.controls.zoomTo(r,n)}function $(o,t){return!o||!t?0:(o.w*o.h/(t.h*t.w)>.1?15:25)/100}return Y(()=>I(H,{children:[S("canvas",{style:{width:"100%",height:"100%"},ref:h,className:q({map:!0,moving:b.moving,hidden:i.mapboxStore.showMapbox}),children:"ExpoFP.com"}),v&&U&&I(he,{className:"debug-fps",children:[S("div",{ref:L}),S("button",{onClick:()=>{typeof window<"u"&&window.localStorage&&localStorage.setItem(G,"false"),V(!1)},style:{padding:"4px 8px",fontSize:"11px",cursor:"pointer",backgroundColor:"#333",color:"#fff",border:"1px solid #555",width:"100%"},children:"Hide debug"})]})]}))}
@@ -12,6 +12,7 @@ export declare const SET_KIOSK_KEY = "setkiosk";
12
12
  export declare const BOOKMARK_PAINTER_MARKER = "booth-bookmark";
13
13
  export declare const MAP_SETTINGS_KEY = "expofp-map-settings";
14
14
  export declare const DEBUG_KEY = "debug";
15
+ export declare const DEBUG_STORAGE_KEY = "efp:debug";
15
16
  export declare const DEFAULT_UNITS = "ft";
16
17
  export declare const BUILD_ROUTE_KEY = "build-route";
17
18
  export declare const PLANNER_KEY = "planner";
@@ -1 +1 @@
1
- export const VISIBILITY_STORAGE_KEY="___visibility",PREVIEW_MODE_QUERY="previewMode",PREVIEW_MODE_STORAGE_KEY="___preview_mode",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",DEFAULT_UNITS="ft",BUILD_ROUTE_KEY="build-route",PLANNER_KEY="planner",PLANNER_SOURCE_KEY="source",PLANNER_FROM_KEY="from",PATHWAY_KEY="pathway",CACHE_DURATION=1e3,MOBILE_BREAKPOINT=768,LANG_KEY="lang",LANGUAGE_TYPE="language",UI_SCALE_PARAM_KEY="uiscale",UI_SCALE_RESET_PARAM_KEY="resetuiscale",UI_SCALE_STORAGE_KEY="___ui-scale",MAX_ROUTE_WAYPOINTS=8,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",VIEWER_MODE_QUERY="viewermode",VIEWER_MODE_STORAGE_KEY="___viewer_mode";
1
+ export const VISIBILITY_STORAGE_KEY="___visibility",PREVIEW_MODE_QUERY="previewMode",PREVIEW_MODE_STORAGE_KEY="___preview_mode",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:debug",DEFAULT_UNITS="ft",BUILD_ROUTE_KEY="build-route",PLANNER_KEY="planner",PLANNER_SOURCE_KEY="source",PLANNER_FROM_KEY="from",PATHWAY_KEY="pathway",CACHE_DURATION=1e3,MOBILE_BREAKPOINT=768,LANG_KEY="lang",LANGUAGE_TYPE="language",UI_SCALE_PARAM_KEY="uiscale",UI_SCALE_RESET_PARAM_KEY="resetuiscale",UI_SCALE_STORAGE_KEY="___ui-scale",MAX_ROUTE_WAYPOINTS=8,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",VIEWER_MODE_QUERY="viewermode",VIEWER_MODE_STORAGE_KEY="___viewer_mode";
@@ -1 +1 @@
1
- import{DEBUG_KEY as t}from"../constants";export function handleDebugMode(){try{const r=new URL(window.location.href);let o=null,l=null;for(const[e,a]of r.searchParams)if(e===t){o=a,l=e;break}else if(e.startsWith(t+"%3D")||e.startsWith(t+"=")){o=e.split("=")[1],l=e;break}if(o==="1")localStorage.setItem(t,"1");else if(o==="0")localStorage.setItem(t,"0");else return;l&&(r.searchParams.delete(l),window.history.replaceState(null,"",r.toString()),window.location.reload())}catch(r){console.error("Error in handleDebugMode:",r)}}
1
+ import{DEBUG_KEY as o,DEBUG_STORAGE_KEY as a}from"../constants";export function handleDebugMode(){try{const r=new URL(window.location.href);let t=null,l=null;for(const[e,n]of r.searchParams)if(e===o){t=n,l=e;break}else if(e.startsWith(o+"%3D")||e.startsWith(o+"=")){t=e.split("=")[1],l=e;break}if(t==="1")localStorage.setItem(a,"true");else if(t==="0")localStorage.setItem(a,"false");else return;l&&(r.searchParams.delete(l),window.history.replaceState(null,"",r.toString()),window.location.reload())}catch(r){console.error("Error in handleDebugMode:",r)}}
@@ -1,3 +1,14 @@
1
+ declare global {
2
+ interface Window {
3
+ efpDebug?: {
4
+ settings?: Record<string, {
5
+ type: "boolean";
6
+ label?: string;
7
+ default?: boolean;
8
+ }>;
9
+ };
10
+ }
11
+ }
1
12
  declare const isDebug: boolean;
2
13
  export default isDebug;
3
14
  //# sourceMappingURL=is-debug.d.ts.map
@@ -1 +1 @@
1
- import{isLocalStorageAvailable as e}from"./localStorage";const o=e&&localStorage.getItem("debug")==="1";export default o;
1
+ import{DEBUG_STORAGE_KEY as e}from"../constants";import{isLocalStorageAvailable as t}from"./localStorage";if(typeof window<"u"){const o=window.efpDebug??={};(o.settings??={})[e]={type:"boolean",label:"Debug Mode"}}const i=t&&localStorage.getItem(e)==="true";export default i;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/floorplan",
3
- "version": "3.1.13",
3
+ "version": "3.1.14",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/expofp/efp-app.git",
@@ -76,8 +76,8 @@
76
76
  "twgl.js": "^4.14.0",
77
77
  "uuid": "^9.0.1",
78
78
  "zod": "4.3.5",
79
- "@expofp/debug": "3.1.13",
80
- "@expofp/resolve": "3.1.13"
79
+ "@expofp/debug": "3.1.14",
80
+ "@expofp/resolve": "3.1.14"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@babel/plugin-proposal-decorators": "^7.29.0",