@expofp/floorplan 3.18.0 → 3.18.1
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.
- package/dist/browser/{Button-CR9X3hHB.js → Button-D24xOa4I.js} +5 -5
- package/dist/browser/{CookieConsent-BWKzA_Db.js → CookieConsent-BTzsoyoV.js} +7 -7
- package/dist/browser/{Debug-CElPDJlB.js → Debug-CqKhUi06.js} +7 -7
- package/dist/browser/{Demo-DpzdTNuZ.js → Demo-B3EOY0Xq.js} +9 -9
- package/dist/browser/{Free-Dzj0kezR.js → Free-pY7M8m4h.js} +9 -9
- package/dist/browser/{Gallery-BFh_yQY4.js → Gallery-A8cqqrTJ.js} +9 -9
- package/dist/browser/{GpsLoader-PkypWxTl.js → GpsLoader-DpJhUdzw.js} +22 -22
- package/dist/browser/{KioskStore-Cwuze3X_.js → KioskStore-DICU_c9W.js} +5 -5
- package/dist/browser/{MaplibreAdapter-CXm_wkcT.js → MaplibreAdapter-DDSPODNR.js} +130 -126
- package/dist/browser/{ModalContainer-qMMdrK2w.js → ModalContainer-DnwGQgDt.js} +10 -10
- package/dist/browser/{PermissionNotice-zHHL-Tb1.js → PermissionNotice-Gw1lUPnc.js} +6 -6
- package/dist/browser/{SetKioskMode-NJzx1LsZ.js → SetKioskMode-mh3piul9.js} +11 -11
- package/dist/browser/{ShowKiosk-JTxQ22h-.js → ShowKiosk-zkF-CXr8.js} +11 -11
- package/dist/browser/{TouchHand-B1_sEZ0y.js → TouchHand-DWec6Hd2.js} +4 -4
- package/dist/browser/{ViewerMenuPanel-CStYkINl.js → ViewerMenuPanel-C_wp1AsD.js} +10 -10
- package/dist/browser/{add-debug-secret-listener-CLwgmFlw.js → add-debug-secret-listener-DVLr6HP8.js} +1 -1
- package/dist/browser/{adopt-global-settings-DNtTKtHp.js → adopt-global-settings-Btj0VnLn.js} +9 -9
- package/dist/browser/{boolean-editor-DU3YVPQz.js → boolean-editor-BpIQdba3.js} +9 -9
- package/dist/browser/{bootIntercom-C3p3aQE4.js → bootIntercom-DSg-Cxkq.js} +2 -2
- package/dist/browser/{booth-by-xy-DSMmkHYp.js → booth-by-xy-BvNNTs6Q.js} +429 -376
- package/dist/browser/bundle.json +66 -66
- package/dist/browser/{classnames-DsyabRET.js → classnames-CFZOol_A.js} +2 -2
- package/dist/browser/{client-BtftV096.js → client-BSrj7kzz.js} +4 -4
- package/dist/browser/{components-BWMM8EM8.js → components-6Db-nRo5.js} +1544 -1540
- package/dist/browser/{debug-overlay-D3Y5V71i.js → debug-overlay-Bt6DNp-8.js} +10 -10
- package/dist/browser/{debug-ui-DLVYgylj.js → debug-ui-X9kyhrgx.js} +6 -6
- package/dist/browser/{dist-CfgFWfr7.js → dist-CSjEqv2k.js} +3 -3
- package/dist/browser/{dist-BXb1cx9e.js → dist-H1U2_uEE.js} +5 -5
- package/dist/browser/{dist-DDo1tPsx.js → dist-HS_i2V3o.js} +6 -6
- package/dist/browser/{efp-debug-init-C07vji2o.js → efp-debug-init-D0_xHeMm.js} +3 -3
- package/dist/browser/{enum-editor-CQB7Ql3U.js → enum-editor-Y3eY0GZN.js} +4 -4
- package/dist/browser/{es5-ijKSUeQ7.js → es5-Bnh-FuEf.js} +2 -2
- package/dist/browser/{event-not-found-BwyzoaLT.js → event-not-found-DaBAYGFy.js} +1 -1
- package/dist/browser/{exports-Ci3Y-h6M.js → exports-pRH9fRPj.js} +1 -1
- package/dist/browser/{favicon-BGu3h_Jd.js → favicon-eVAPrhqR.js} +1 -1
- package/dist/browser/{fetch-retry.umd-DPsRRR-2.js → fetch-retry.umd-CU86oApr.js} +2 -2
- package/dist/browser/{flex-pSz169Ur.js → flex-CBHNyrZ4.js} +5 -5
- package/dist/browser/{floorplan.loader-C6QTWa65.js → floorplan.loader-C2Uhu9rp.js} +10 -10
- package/dist/browser/{floorplan.ready-CAzapBXm.js → floorplan.ready-D1uAmP_v.js} +161 -161
- package/dist/browser/{fuse-DtxL2N-V.js → fuse-N8kU4K-S.js} +2 -2
- package/dist/browser/{i18n-DVyODyCY.js → i18n-BtP9mFz3.js} +5 -5
- package/dist/browser/index.js +14 -14
- package/dist/browser/{index.module-Cvt_te8N.js → index.module-BsJ6W9of.js} +4 -4
- package/dist/browser/{integrateKiosk-d8rib-aX.js → integrateKiosk-3pSiw3dQ.js} +4 -4
- package/dist/browser/{is-webview-DdTBb7TJ.js → is-webview-Cta8T4n3.js} +1 -1
- package/dist/browser/{jsx-runtime-DaJp0rHj.js → jsx-runtime-BEbKJk0I.js} +2 -2
- package/dist/browser/{kiosk-record-CKAUCVLy.js → kiosk-record-CqwMLWxV.js} +1 -1
- package/dist/browser/{lib-DJccgJUD.js → lib-I9l3N_qn.js} +3 -3
- package/dist/browser/{loadImage-x0VcWQVd.js → loadImage-Dss1EbV-.js} +4 -4
- package/dist/browser/{logDeviceInfo-D0W2-Idq.js → logDeviceInfo-C71JR2gm.js} +9 -9
- package/dist/browser/{main-BPkzidEN.js → main-CfBwT8A1.js} +1 -1
- package/dist/browser/{mobx-BhywMatw.js → mobx-BczBqzzL.js} +4 -4
- package/dist/browser/{optional-boolean-editor-Mcny_JoC.js → optional-boolean-editor-DzQfvreW.js} +3 -3
- package/dist/browser/{optional-enum-editor-DNJb-HlW.js → optional-enum-editor-CLMliNto.js} +4 -4
- package/dist/browser/{optional-string-editor-mXHbu-td.js → optional-string-editor-_KGdUVEY.js} +4 -4
- package/dist/browser/{particles.min-h8plthOJ.js → particles.min-B1MXziWd.js} +2 -2
- package/dist/browser/{react-BtNYeFCj.js → react-DGnrgmGu.js} +2 -2
- package/dist/browser/{react-dom-Cpzv99hV.js → react-dom-Cw00D2pA.js} +3 -3
- package/dist/browser/{rolldown-runtime-DISrh_Iz.js → rolldown-runtime-BwZ60izJ.js} +1 -1
- package/dist/browser/{select-CUP0HHGg.js → select-D1YJPbva.js} +10 -10
- package/dist/browser/{settings-vwUDDFWG.js → settings-Bi32JyQ7.js} +2 -2
- package/dist/browser/{settings-item-EIedbjEy.js → settings-item-SFeXQJg_.js} +6 -6
- package/dist/browser/{store-CuOAVnMk.js → store-D3AM4bNd.js} +13 -13
- package/dist/browser/{string-editor-B5j-wOvD.js → string-editor-CDi_Yy04.js} +4 -4
- package/dist/browser/{text-field-C7hImOEM.js → text-field-BtEculxh.js} +5 -5
- package/dist/browser/{theme--eOt90dH.js → theme-DDvtl3pp.js} +8 -8
- package/dist/browser/{ui-BbAFe1Un.js → ui-xJEwvFPJ.js} +8 -8
- package/dist/browser/{useRenderTarget-tyvk_Tnj.js → useRenderTarget-Cswo9eRB.js} +4 -4
- package/dist/esm/components/Map/Map.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-all.d.ts +6 -3
- package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +8 -4
- package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
- package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
- package/package.json +8 -8
|
@@ -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.18.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.18.1" };
|
|
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-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { t as n } from "./jsx-runtime-
|
|
12
|
-
import { t as r } from "./react-dom-
|
|
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-
|
|
14
|
-
import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-
|
|
15
|
-
import { t as y } from "./classnames-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-BwZ60izJ.js";
|
|
10
|
+
import { t } from "./react-DGnrgmGu.js";
|
|
11
|
+
import { t as n } from "./jsx-runtime-BEbKJk0I.js";
|
|
12
|
+
import { t as r } from "./react-dom-Cw00D2pA.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-CBHNyrZ4.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-HS_i2V3o.js";
|
|
15
|
+
import { t as y } from "./classnames-CFZOol_A.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.18.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.18.1" };
|
|
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-
|
|
10
|
-
import { a as t, i as n, s as r } from "./efp-debug-init-
|
|
11
|
-
import { a as i, i as a } from "./adopt-global-settings-
|
|
12
|
-
import { t as o } from "./jsx-runtime-
|
|
13
|
-
import "./settings-
|
|
14
|
-
import { t as s } from "./add-debug-secret-listener-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-BwZ60izJ.js";
|
|
10
|
+
import { a as t, i as n, s as r } from "./efp-debug-init-D0_xHeMm.js";
|
|
11
|
+
import { a as i, i as a } from "./adopt-global-settings-Btj0VnLn.js";
|
|
12
|
+
import { t as o } from "./jsx-runtime-BEbKJk0I.js";
|
|
13
|
+
import "./settings-Bi32JyQ7.js";
|
|
14
|
+
import { t as s } from "./add-debug-secret-listener-DVLr6HP8.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-
|
|
29
|
+
let { DebugUi: n } = await import("./debug-ui-X9kyhrgx.js"), { createRoot: i } = await import("./client-BSrj7kzz.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.18.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.18.1" };
|
|
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-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { c as n } from "./store-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-BwZ60izJ.js";
|
|
10
|
+
import { t } from "./react-DGnrgmGu.js";
|
|
11
|
+
import { c as n } from "./store-D3AM4bNd.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{Fragment as
|
|
1
|
+
import{Fragment as te,jsx as C,jsxs as O}from"react/jsx-runtime";import{Box as k}from"@expofp/geometry";import re from"classnames";import ne from"color";import{observable as ie,reaction as ae}from"mobx";import{useObserver as se}from"mobx-react-lite";import{useEffect as le,useMemo as me,useRef as S,useState as ce}from"react";import{DEBUG_STORAGE_KEY as X}from"../../constants";import fe from"../../data";import{fpGeo as de}from"../../data/fpGeo";import{svgArea as U}from"../../data/svg";import{boxToRenderer as L,createSceneDef as ue,mapRollSetting as j}from"../../renderer";import{pickDefaultScene as A,pickDefaultScenePoint as pe}from"../../renderer/engine-core/defs";import a,{boothStore as he,layersStore as h,uiState as o}from"../../store";import{BoothBase as Z}from"../../store/BoothStore";import{Category as ve}from"../../store/CategoryStore";import{Exhibitor as $}from"../../store/ExhibitorStore";import{LayerMode as R}from"../../store/LayerStore";import{CurrentPosition as ye,Route as be}from"../../store/RouteStore";import B from"../../tools/logger";import p from"../../tools/settings";import ge from"../../ui/Draggable";import{areLayersEnabled as we}from"../../utils/areLayersEnabled";import{applyVenueDimValue as Se,createDimmingAnimator as Re}from"../../utils/dimming";import{convertGpsToLocal as xe}from"../../utils/gps";import y from"../../utils/is-debug";import{isPathwayLayer as K}from"../../utils/is-pathway-layer";import{useReaction as d}from"../../utils/mobx";import{createWayfinding as Te}from"../../wayfinding";import V from"./booth-by-xy";import Ce from"./drawing/config/config-all";import{configMarkers as ke,getMarkerFromClick as Le}from"./drawing/config/config-markers";import{loadLayersImages as Be}from"./drawing/config/loadBoothsImages";import{useBuildRoute as Ee}from"./traffic/useBuildRoute";import{useManageTraffic as Me}from"./traffic/useManageTraffic";const W=Number.isFinite(p.maxZoom);export default function Pe(){let E={};const H="#ebebeb",v=S(),b=me(()=>ie({moving:!1,prevLevel:a.layerStore.layers.find(e=>!e.frozen&&e.visible)}),[]),l=a.rendererService,x=S(Re(e=>Se(l,e)));let s;const g=S(null),M=S(null);let P=null,z=null,I=null,_=!1;function D(){h.layers.forEach(e=>{e.configured=!1,e.children=[],e.loaded=!1})}const[q,J]=ce(()=>typeof window<"u"&&window.localStorage?localStorage.getItem(X)!=="false":!0);d(()=>a.routeStore.currentRouteLayer,()=>{if(!l.scene||b.prevLevel===a.routeStore.currentRouteLayer)return;const e=l.scene.rootLayer.children.filter(t=>a.layerStore.floors.some(r=>t.name.includes(r.name)));let n=a.routeStore.currentRouteLayer.name;if(!e.find(t=>t.name===n))return;const i=e?.map(t=>(t.name===n&&(t.hidden=!1),t.name===b.prevLevel?.name&&(t.hidden=!0),t));b.prevLevel=a.routeStore.currentRouteLayer,l.update(...i)}),d(()=>o.centerMap,()=>{!o.centerMap||a.maplibreStore.showMaplibre||(s.controls.resetCamera({zoom:!!(o.list.type==="search"&&o.list.text)}),o.centerMap=!1)}),le(()=>{if(!v.current)return;async function e(){D(),h.layersLoaded=!1;let n={};try{if(y){const t=document.createElement("canvas").getContext("webgl2"),r=t&&t.getExtension("EXT_disjoint_timer_query_webgl2"),m=(await import("stats-gl")).default,f=new m({trackGPU:r,horizontal:!0}),u=M.current;if(!u)throw new Error("memoryInfoPanel not found.");f.dom.style.position="relative",u.style.width=`${90*(r?3:2)}px`,u.style.height="48px",u.appendChild(f.dom),n={stats:f,memoryInfoPanel:u}}}catch(i){console.error(i)}s=l.create({canvas:v.current,ui:n}),g.current=s,ae(()=>o.canvasVisibleRectPx,(i,t)=>{i&&(s.visibleRect=L(i)),t.dispose()},{fireImmediately:!0}),Ce(l).then(({layers:i,cleanup:t})=>{if(_||g.current!==s){t();return}I=t,y&&console.log("Renderer settings",s);const r=ne(p.backgroundColor==="none"?H:p.backgroundColor).string();E=ue(i,U,r),l.start(E),x.current.setTarget(o.dimmed,{immediate:!0}),j(s,a.fp.enableRotation?1:0),W&&s.viewport.setMaxZoom(p.maxZoom),h.layersLoaded=!0,a.fp.onFpConfigured&&a.fp?.onFpConfigured(),P=Te(l,a),z=ke(l),Be(l)}),s.events.addEventListener("pointer:move",({data:i})=>{if(o.setKioskModeEnabled)return;const{point:t,defs:r}=A(i),c=V(t.x,t.y),m=F(r[0]);o.hoveredBooth=c||m}),s.events.addEventListener("pointer:out",()=>{o.setKioskModeEnabled||(o.hoveredBooth=null)}),s.events.addEventListener("pointer:click",({data:i})=>{if(!o?.rootElement)return;window.__resett&&window.__resett(),o.overlayPosition==="bottom"&&o.overlaySize==="full"&&a.showMap();const{point:t,defs:r}=A(i),{x:c,y:m}=t;if(o.onGetCoordsClick){const w=a.layerStore.layers.find(T=>T.visible&&(T.mode===R.TurnedOn||T.mode===R.TurnedOff));o.onGetCoordsClick({x:c,y:m,z:w?.name||null})}if(o.setKioskModeEnabled)return;if(o.onMarkerClick){const w=Le(c,m,l.scale);y&&console.log("marker",w),o.onMarkerClick(w)}const f=V(t.x,t.y),u=F(r[0]);y&&console.log("boothIdFromClientXy",f,"boothByShape",u,"pointer:click point",t),a.clickBooth(f||u)}),s.events.addEventListener("navigation:change",()=>window.__resett&&window.__resett())}return e(),a.fp.getCenterCoordinates=Y,()=>Q()},[]);function Q(){_=!0,x.current.stop(),P?.(),z?.(),I?.(),D(),h.layersLoaded=!1,l.disposeIfCurrent(g.current),g.current=null}function Y(){const e=v.current;if(!v.current)throw new Error("Canvas not ready");const n=pe(s.viewport.canvasToSvg({x:e.clientWidth/2,y:e.clientHeight/2})),t=a.layerStore.visible.find(r=>r.mode===R.TurnedOff||r.mode===R.TurnedOn)?.name||null;return{...n,z:t}}function F(e){return!e||!e.shape?null:he.booths.find(n=>n.shapes?.find(i=>i.shape==e.shape))}d(()=>o.zoomBy,()=>{if(!o.zoomBy||a.maplibreStore.showMaplibre)return;const e=o.zoomBy;s.controls.zoomBy(e),o.zoomBy=null}),d(()=>o.dimmed,e=>{x.current.setTarget(e)}),d(()=>o.details,()=>{if(!o.onDetails)return;if(!o.details){o.onDetails(null);return}var e=o.details;if(p.EXPO==="wineparis"&&(e instanceof $&&(e=e.booths[0]),!e))return;let n=null,i=[];e instanceof $?(n="exhibitor",i=e.booths.map(r=>r.name).sort((r,c)=>r==a.routeStore.tempToBooth?.name?-1:c==a.routeStore.tempToBooth?.name?1:0)):e instanceof Z?(n="booth",i=[e.name]):e instanceof be?(n="route",i=[e.from?.name,e.to?.name].filter(r=>!!r)):e instanceof ve&&(n="category",i=e.exhibitors.map(r=>r.booths.map(c=>c.name)).flat());var t={type:n,name:e?.name,id:e?.id,externalId:e?.externalId,boothsNames:i};o.onDetails({...t,...n==="route"?{routeInfo:a.routeStore.routeInfo}:{}})}),d(()=>o.canvasVisibleRectPx,e=>{l.renderer&&(l.renderer.visibleRect=L(e))},{fireImmediately:!0}),d(()=>o.moveToRect,()=>{!o.moveToRect||a.maplibreStore.showMaplibre||(o.moveToRect&&o.moveToRect.size.height!==1/0&&o.moveToRect.size.width!==1/0&&o.moveToRect.size.height>0&&o.moveToRect.size.width>0&&N(o.moveToRect),o.moveToRect=null)}),d(()=>o.rollReset,e=>{e&&(s.controls.resetCamera({roll:!0}),o.rollReset=!1)}),d(()=>o.moveToBooths,()=>{if(B.log("this.moveToBooths",o.moveToBooths),!o.moveToBooths||a.maplibreStore.showMaplibre)return;B.log("watched moveToBooths",o.moveToBooths);const e=o.moveToBooths.filter(n=>n.rect).map(n=>n.rect);e.length!==0&&(N(k.fromUnion(...e)),o.moveToBooths=null)}),d(()=>o.mapSettings,({zoomtime:e,center:n,centerxy:i,bearing:t,roll:r,z:c})=>{if(!(a.maplibreStore.showMaplibre||!l.renderer))try{e&&e!==o.defaultMapSettings.zoomtime&&l.renderer.controls.configure({zoomTime:e/1e3}),a.fp.enableRotation&&j(s,r);let m;if(n){const f=n.split(",").map(Number),u=new ye(void 0,void 0,void 0,void 0,f[0],f[1]);m=xe(u,de.properties.config)}else if(i){const f=i.split(",").map(Number);m={x:f[0],y:f[1]}}c&&a.fp.activateFloor({name:c}),(m?.x||m?.y)&&l.renderer.controls.panTo(m.x,m.y),Number.isFinite(t)&&l.renderer.controls.rollTo(t)}catch(m){B.error("Error in mapSettings reaction",m)}}),Ee({enabled:h.layersLoaded&&o.buildRoute,rendererService:l});const G="routes-api.expofp.com",ee=fe.busRoutes??!1;Me({permission:h.layersLoaded&&ee,rendererService:l,dataJsonUrl:`https://${G}/v1/routes?expo=${p.EXPO}`,websocketUrl:`wss://${G}/locations?expo=${p.EXPO}`}),d(()=>a.layerStore.visible,e=>{if(!l.scene)return;const n=e.filter(r=>K(r.name)),t=l.scene.rootLayer.children.filter(r=>K(r.name));t.forEach(r=>{r.hidden=!n.find(c=>c.name===r.name)}),l.update(...t)});function N(e){let n=e;const i=oe(e,U),t=o.selectedRoute?.from,r=t instanceof Z?t.layer?.name:t?.layer;o.kioskData&&(!we()||r===a.routeStore.currentRouteLayer?.name)&&(n=k.fromUnion(e,new k(o.kioskData.x,o.kioskData.y,1,1)));const c=L(n),m={paddingPercent:i,maxZoom:W?void 0:10};if(o.shouldShiftMapRect){s.visibleRect.min={...s.visibleRect.min,x:s.visibleRect.min.x+o.overlayWidthPx},s.visibleRect=s.visibleRect;try{s.controls.zoomTo(c,m)}finally{s.visibleRect.min={...s.visibleRect.min,x:s.visibleRect.min.x-o.overlayWidthPx}}}else s.controls.zoomTo(c,m)}function oe(e,n){return!e||!n?0:(e.area/n.area>.1?15:25)/100}return se(()=>O(te,{children:[C("canvas",{style:{width:"100%",height:"100%"},ref:v,className:re({map:!0,moving:b.moving,hidden:a.maplibreStore.showMaplibre}),children:"ExpoFP.com"}),y&&q&&O(ge,{className:"debug-fps",children:[C("div",{ref:M}),C("button",{onClick:()=>{typeof window<"u"&&window.localStorage&&localStorage.setItem(X,"false"),J(!1)},style:{padding:"4px 8px",fontSize:"11px",cursor:"pointer",backgroundColor:"#333",color:"#fff",border:"1px solid #555",width:"100%"},children:"Hide debug"})]})]}))}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { LayerDef } from '@expofp/renderer';
|
|
2
|
-
import { RendererService } from '../../../../renderer';
|
|
3
|
-
export default function configAll(rendererService: RendererService): Promise<
|
|
1
|
+
import { type LayerDef } from '@expofp/renderer';
|
|
2
|
+
import { type RendererService } from '../../../../renderer';
|
|
3
|
+
export default function configAll(rendererService: RendererService): Promise<{
|
|
4
|
+
layers: LayerDef[];
|
|
5
|
+
cleanup: () => void;
|
|
6
|
+
}>;
|
|
4
7
|
//# sourceMappingURL=config-all.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createLayerDef as r}from"../../../../renderer";import
|
|
1
|
+
import{createLayerDef as r}from"../../../../renderer";import i from"../../../../store";import{isPathwayLayer as d}from"../../../../utils/is-pathway-layer";import{WF_CURRENT_POSITION_LAYER_NAME as u,WF_LINES_ANIMATED_LAYER_NAME as N,WF_LINES_LAYER_NAME as R,WF_POINTS_LAYER_NAME as h,WF_TRAIL_LAYER_NAME as M}from"../../../../wayfinding/layers";import{createTrafficLayers as w}from"../../traffic/trafficLayers";import{configBoothsBadges as I}from"./config-booth-badge";import P from"./config-load-layer";import{MARKER_LAYER_NAME as T}from"./config-markers";export default function S(n){const{defaultLayer:a}=i.layerStore;let{layers:o}=i.layerStore;if(a){const e=[...o],s=o.indexOf(a);e.splice(s,1),o=[a,...e]}const L=o.filter(e=>!e.rootParent).map(e=>P(e,n));return Promise.all(L).then(e=>{const s=r(h,[],{dim:!1,interactive:!0}),c=r(R,[],{dim:!1}),y=r(T,[]),p=r(M,[],{dim:!1}),_=r(N,[],{dim:!1}),A=r(u,[],{dim:!1}),f=[],l=[];for(const t of e.flat())d(t.name)?(t.dim=!1,l.push(t)):f.push(t);const{layer:m,cleanup:E}=I(n,"root",i.boothStore.booths);return{layers:[...f,...m?[m]:[],...l,...w(),y,p,c,_,s,A],cleanup:E}})}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { LayerDef, ShapeDef, TextDef } from '@expofp/renderer';
|
|
2
|
-
import { RendererService } from '../../../../renderer';
|
|
3
|
-
import { Booth, RegularBooth } from '../../../../store/BoothStore';
|
|
1
|
+
import { type LayerDef, type ShapeDef, type TextDef } from '@expofp/renderer';
|
|
2
|
+
import { type RendererService } from '../../../../renderer';
|
|
3
|
+
import { type Booth, RegularBooth } from '../../../../store/BoothStore';
|
|
4
4
|
export declare function createBoothBadge(rendererService: RendererService, booth: RegularBooth): {
|
|
5
5
|
bg: ShapeDef;
|
|
6
6
|
text: TextDef;
|
|
7
|
+
dispose: () => void;
|
|
8
|
+
};
|
|
9
|
+
export declare function configBoothsBadges(rendererService: RendererService, layerName: string, booths: Booth[]): {
|
|
10
|
+
layer: LayerDef | null;
|
|
11
|
+
cleanup: () => void;
|
|
7
12
|
};
|
|
8
|
-
export declare function configBoothsBadges(rendererService: RendererService, layerName: string, booths: Booth[]): LayerDef | null;
|
|
9
13
|
//# sourceMappingURL=config-booth-badge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Box as
|
|
1
|
+
import{Box as v,pointRotate as S,Polygon as tt,Rect as nt}from"@expofp/geometry";import et from"color";import{reaction as W}from"mobx";import{SEPARATOR as $}from"../../../../constants";import N from"../../../../data";import{getTrianglesFromFpPaths as ot}from"../../../../data/svg";import{createShapeDef as st,createTextDef as it,createTextDefLines as rt,getRollValue as ct,getRotation as at,rectToRenderer as X}from"../../../../renderer";import{boothStore as lt,uiState as Z}from"../../../../store";import{RegularBooth as dt}from"../../../../store/BoothStore";import V from"../../../../tools/settings";import{getContrastTextColor as ft}from"../../../../utils/getContrastTextColor";import{getFont as ut}from"./canvases";import{isBoothBadgeEligible as gt}from"./config-booth-badge-eligibility";import{getBadgeFontWeight as ht,getFontUrlByWeight as mt}from"./config-booth-labels";const pt=.5,xt=.3,j=15,Bt=24,q=30,yt=12,At=12,J=.8,K=document.createElement("canvas").getContext("2d");function Et(t){return t.length<=j?t:t.slice(0,j-1)+"\u2026"}function Q(t){if(!t.paths?.length)return[];const n=t.layer?.name||"",s=[];for(const e of t.paths)for(const i of ot(e.index,n))s.push(i);return s}function Tt(t){const n=Q(t);return n.length?v.fromPoints(n.flat().map(([s,e])=>({x:s,y:e}))):null}function It(t){const n=[],s=[];for(const e of t){const i=n.length;n.push({x:e[0][0],y:e[0][1]}),n.push({x:e[1][0],y:e[1][1]}),n.push({x:e[2][0],y:e[2][1]}),s.push([i,i+1,i+2])}return new tt(n,s)}function H(t,n,s){return s.containsPoint({x:t,y:n})}function Rt(t,n,s,e,i,u,l,r){if(!t.length||!H(s,e,n))return l;const c={x:s,y:e};let d=0,B=l;const R=10;for(let p=0;p<R;p++){const g=(d+B)/2,I=i*g,x=u*g;[S({x:s+I,y:e},r,c),S({x:s,y:e+x},r,c),S({x:s+I,y:e+x},r,c)].every(y=>H(y.x,y.y,n))?d=g:B=g}return d}function _t(t){return Tt(t)??t.rect}function Dt(t,n,s,e,i,u){if(n.length){const d=_t(t),B={x:i>0?d.min.x:d.max.x,y:u>0?d.min.y:d.max.y},R=new Set;let p=null,g=1/0;for(const I of n)for(const x of I){const _=`${x[0]},${x[1]}`;if(R.has(_))continue;R.add(_);const A=x[0]+e*i,y=x[1]+e*u;if(H(A,y,s)){const E=Math.abs(A-B.x)+Math.abs(y-B.y);E<g&&(g=E,p={x:A,y})}}if(p)return p}const l=i>0?t.rect.min.x+e:t.rect.max.x-e,r=u>0?t.rect.min.y+e:t.rect.max.y-e,c=t.rotate??0;return c?S({x:l,y:r},c,t.rect.center):{x:l,y:r}}function F(t){return t&&t!=="none"?t:void 0}function St(t){const n=F(t.borderColor)||F(V.boothBorderColor)||V.colors.booths.default;return t.paths?.length>1&&F(t.paths[t.paths.length-1].color)||n}export function createBoothBadge(t,n){const s=Et(n.title||n.name),e=St(n),i=ft(et(e).hex()),u=window.devicePixelRatio||1,l=ht(),r=ut(q,l);K.font=r;const c=K.measureText(s).width,d=Math.ceil(c+yt*2),B=q+At*2,R=(n.borderWidth||lt.borderWidth)/2,p=d*J,g=B*J,I=n.rect.size.width,x=n.rect.size.height,_=o=>{const a=o?x:I,m=o?I:x;return Math.min(a>0?a*pt/p:1/0,m>0?m*xt/g:1/0)},A=Q(n),y=It(A);let E=n.rotate??0,T=0,P,C,M;const L=()=>{const m=Dt(n,A,y,R,T===0||T===3?1:-1,T===0||T===1?1:-1);P=m.x,C=m.y;const G=_(T===1||T===3);M=Rt(A,y,P,C,p,g,G,E)};L();const b=(o,a)=>{const m=o/2,G=a/2,Y=S({x:P+m,y:C+G},E,{x:P,y:C});return new nt(Y,{x:o,y:a},E)},O=o=>{const a=Math.min(o,M);return b(p*a,g*a)},w=mt(l,t.fontUrls),h=st(b(1,1),e);h.hidden=!0,h.dim=n.skipDim?!1:void 0;const f=it(rt([[s],[]],i,0,[w,w]),b(1,1),[0,0],{horizontal:"center",vertical:"center"});f.hidden=!0,f.dim=n.skipDim?!1:void 0;const U=()=>!!(n.layer&&!n.layer.visible),D=[];D.push(W(()=>n.skipDim,o=>{h.dim=o?!1:void 0,f.dim=o?!1:void 0,t.update(h,f)})),D.push(W(()=>n.layer?.visible??!0,o=>{h.hidden=!o,f.hidden=!o,t.update(h,f)}));const k=o=>{h.shape=X(O(o)),h.hidden=U()},z=o=>{const a=Math.min(o,M);f.lines[0].fontSize=Bt/u*a,f.bounds=X(O(o)),f.hidden=U()};return t.onPtScale(`badge-bg-${n.id}`,o=>(k(o),h)),t.onPtScale(`badge-text-${n.id}`,o=>(z(o),f)),D.push(W(()=>Z.mapSettings,({roll:o})=>{ct(o??0)&&t.onRoll(`badge-roll-${n.id}`,a=>{const m=at(a,E);m!==void 0&&(E+=m,T=(T+(m>0?1:3))%4,L(),k(t.scale),z(t.scale),t.update(h,f))})},{fireImmediately:!0})),{bg:h,text:f,dispose:()=>{D.forEach(o=>o()),D.length=0}}}export function configBoothsBadges(t,n,s){const e=[],i=[],u=[];for(const r of s)if(r instanceof dt&>({hideExhibitorBoothNumber:N.hideExhibitorBoothNumber,hideBoothBadges:N.hideBoothBadges,hideLogoInBooth:Z.hideLogoInBooth,noLabels:r.noLabels,hasExhibitors:r.exhibitors.length>0,hasLogoInBooth:r.exhibitors.some(c=>c.logoInBooth&&c.logo)})){const{bg:c,text:d,dispose:B}=createBoothBadge(t,r);e.push(c),i.push(d),u.push(B)}const l=()=>{u.forEach(r=>r()),u.length=0};return e.length?{layer:{name:`${n}${$}badges`,children:[{name:`${n}${$}badgeBgs`,children:e},{name:`${n}${$}badgeTexts`,children:i}]},cleanup:l}:{layer:null,cleanup:l}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as Z}from"react/jsx-runtime";import{degToRad as z}from"@expofp/geometry";import H from"color";import{runInAction as Q}from"mobx";import{observer as Y}from"mobx-react-lite";import{useCallback as F,useEffect as $,useMemo as p,useRef as m,useState as B}from"react";import q from"../../data";import{getLayerSvg as ee,svgArea as x,svgAreaExplicit as re}from"../../data/svg";import{createSceneDef as te}from"../../renderer";import a,{uiState as y}from"../../store";import D from"../../tools/settings";import{resolveVenueFitRect as oe}from"../../utils/scene-bounds";import ne from"../Map/drawing/config/config-all";import{loadLayersImages as ae}from"../Map/drawing/config/loadBoothsImages";import{useBuildRoute as ie}from"../Map/traffic/useBuildRoute";import{useManageTraffic as ce}from"../Map/traffic/useManageTraffic";import se from"./MaplibreWrapper";import{useCameraReactions as le}from"./useCameraReactions";import{useDimming as ue}from"./useDimming";import{useKioskIdleEvents as fe}from"./useKioskIdleEvents";import{useLayerVisibilitySync as me}from"./useLayerVisibilitySync";import{useRendererEvents as pe}from"./useRendererEvents";import{useWayfindingAndMarkers as de}from"./useWayfindingAndMarkers";import{deriveGeoConfig as ge,getLocalRectGeoBounds as Re,getVisibleRectFitPadding as be,INITIAL_FIT_ZOOM_ADJUSTMENT as ye}from"./utils/geo-config";import{applyMapOptions as j,DEFAULT_MAP_OPTIONS as Se,getTileSource as he,MAP_2D_OPTIONS as Ae}from"./utils/map-helpers";import{calculateTransformMatrix as Ce}from"./utils/solver";const w="routes-api.expofp.com",Me=800;function De(e,s,n){return{getCameraState:()=>{const t=e.getCenter();return{lng:t.lng,lat:t.lat,zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch()}},applyCameraState:t=>{e.easeTo({center:[t.lng,t.lat],zoom:t.zoom,bearing:t.bearing??s,pitch:t.pitch??n(),duration:Me,essential:!0})},resetPitch:()=>{const t=n();e.getPitch()!==t&&e.jumpTo({pitch:t})}}}function N(){Q(()=>{a.layerStore.layers.forEach(e=>{e.configured=!1,e.children=[],e.loaded=!1}),a.layerStore.layersLoaded=!1})}function U(e,s){const n=[];for(const t of e.rollRegistry.invoke(s))Array.isArray(t)?n.push(...t):n.push(t);n.length&&e.update(...n)}function ve(e){const s=Math.abs(e[0]??0),n=Math.hypot(e[0]??0,e[1]??0);return s<=0||n<=0?1:s/n}const Te=Y(function({viewMode:s}){const[n,t]=B(null),[v,_]=B(null),o=a.rendererService,T=m(null),u=m(null),S=m(null),P=m(null),I=m(null),h=m(null),r=p(()=>ge(),[]),k=p(()=>{const{rect:c}=oe({layerViewbox:a.layerStore.viewboxRectangle,explicitArea:re?x:null,layerRectangle:a.layerStore.rectangle,sceneDef:n,svgArea:x});return c},[n]),d=p(()=>r?{center:r.center,bearing:r.bearing,zoom:r.zoom,bounds:Re(k,r.gpsConfig),fitPadding:be(0),zoomAdjustment:ye}:null,[r,k]),g=p(()=>r?Ce(r.gpsConfig,ee()?.getAttribute("units")):null,[r]),R=p(()=>({...s==="map2d"?Ae:Se}),[s]),E=m(R),V=p(()=>he(),[]),{mapDimAnimatorRef:A,venueDimAnimatorRef:C,handleMapDimLayerReady:G}=ue(u,o);$(()=>{if(!r)return;let c=!1;N();const i=ne(o).then(({layers:l,cleanup:f})=>{if(c){f();return}P.current=f;const M=H(D.backgroundColor==="none"?"#ebebeb":D.backgroundColor).string(),O=te(l,x,M);t(O)}).catch(l=>{c||console.warn("Maplibre scene configuration failed.",l)}),L=A.current,b=C.current;return()=>{c=!0,N();const l=T.current;i.finally(()=>o.disposeIfCurrent(l)),S.current?.(),S.current=null,P.current?.(),P.current=null,h.current&&(a.maplibreStore.clearCameraPortIfCurrent(h.current),h.current=null),T.current=null,u.current=null,I.current=null,_(null),L?.stop(),b?.stop(),y.sceneDefReady=!1}},[r,A,o,C]);const X=F((c,i,L,b)=>{T.current=c,u.current=i,I.current=b,_(c),o.attach(c,L,b,g?ve(g):1),j(i,E.current);const l=De(i,r?.bearing??i.getBearing(),()=>E.current.pitch??0);h.current=l,a.maplibreStore.setCameraPort(l),A.current?.setTarget(y.dimmed,{immediate:!0}),C.current?.setTarget(y.dimmed,{immediate:!0}),S.current?.();const f=()=>{const O=i.getBearing()-(r?.bearing??0);U(o,z(O))};i.on("rotate",f),i.on("rotateend",f),S.current=()=>{i.off("rotate",f),i.off("rotateend",f)},ae(o);const M=o.ptScaleRegistry.invoke(o.scale||1);M.length&&o.update(...M),U(o,z(i.getBearing()-(r?.bearing??0))),a.layerStore.layersLoaded=!0,a.fp.onFpConfigured&&a.fp.onFpConfigured(),y.sceneDefReady=!0,b()},[o,A,g,C,r]);$(()=>{E.current=R,j(u.current,R,!0)},[R]),pe(v,o),fe(v,u),de(v,o),me(o,u,r),le(u,r,n),ie({enabled:a.layerStore.layersLoaded&&y.buildRoute,rendererService:o});const J=q.busRoutes??!1;ce({permission:a.layerStore.layersLoaded&&J,rendererService:o,dataJsonUrl:`https://${w}/v1/routes?expo=${D.EXPO}`,websocketUrl:`wss://${w}/locations?expo=${D.EXPO}`});const K=F(c=>{console.warn("Maplibre map failed to load; falling back to floorplan mode.",c),a.maplibreStore.deactivateMaplibre()},[]);if(!r||!d||!g||!n)return null;const W=`${d.center.join(",")}:${d.bearing}:${d.zoom}`;return Z(se,{sceneDef:n,geoConfig:d,staticTransform:g,tileSource:V,mapOptions:R,onRendererReady:X,onMapDimLayerReady:G,onMapLoadError:K},W)});export default Te;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expofp/floorplan",
|
|
3
|
-
"version": "3.18.
|
|
3
|
+
"version": "3.18.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/expofp/efp-app.git",
|
|
@@ -72,13 +72,13 @@
|
|
|
72
72
|
"tslib": "^2.3.0",
|
|
73
73
|
"uuid": "^9.0.1",
|
|
74
74
|
"zod": "4.4.3",
|
|
75
|
-
"@expofp/config": "3.18.
|
|
76
|
-
"@expofp/
|
|
77
|
-
"@expofp/
|
|
78
|
-
"@expofp/
|
|
79
|
-
"@expofp/schema": "3.18.
|
|
80
|
-
"@expofp/
|
|
81
|
-
"@expofp/
|
|
75
|
+
"@expofp/config": "3.18.1",
|
|
76
|
+
"@expofp/debug": "3.18.1",
|
|
77
|
+
"@expofp/geometry": "3.18.1",
|
|
78
|
+
"@expofp/resolve": "3.18.1",
|
|
79
|
+
"@expofp/schema": "3.18.1",
|
|
80
|
+
"@expofp/wayfinding": "3.18.1",
|
|
81
|
+
"@expofp/utils": "3.18.1"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|