@expofp/floorplan 3.45.2 → 3.45.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 (96) hide show
  1. package/dist/browser/{Button-Crfda6Lz.js → Button-CftScIdx.js} +5 -5
  2. package/dist/browser/{CookieConsent-2RwTH-WJ.js → CookieConsent-ByS7cPh9.js} +7 -7
  3. package/dist/browser/{Debug-Kc7acuW6.js → Debug-CDb2j0OF.js} +7 -7
  4. package/dist/browser/{DebugTools-Bcy_rIA6.js → DebugTools-jdOEpl8C.js} +6 -6
  5. package/dist/browser/{Demo-DtKyfXaG.js → Demo-CTLfudbP.js} +9 -9
  6. package/dist/browser/{Free-DIldGHdP.js → Free-C5QMNYRI.js} +10 -10
  7. package/dist/browser/{GalleryContainer-BkkCj4Od.js → GalleryContainer-BUhs_oBk.js} +11 -11
  8. package/dist/browser/{GpsLoader-Ddbsa0Xv.js → GpsLoader-BSWIXvfs.js} +13 -13
  9. package/dist/browser/{KioskStore-l3coFOMN.js → KioskStore-BC-gl1wE.js} +9 -9
  10. package/dist/browser/{LayerStore-Clz_ooRC.js → LayerStore-CONC-3Gj.js} +25 -25
  11. package/dist/browser/{MaplibreAdapter-CcyHg1C8.js → MaplibreAdapter-BXKE5rxG.js} +28 -28
  12. package/dist/browser/{ModalContainer-BQgezeI0.js → ModalContainer-BpM9aPfz.js} +10 -10
  13. package/dist/browser/{PermissionNotice-CfNcWjwj.js → PermissionNotice-BM5kQYe7.js} +6 -6
  14. package/dist/browser/{RouteStore-DmI3xo6Y.js → RouteStore-C7okfu9_.js} +9 -9
  15. package/dist/browser/{SetKioskMode-CEKnGx3s.js → SetKioskMode-DabqQvMH.js} +11 -11
  16. package/dist/browser/{ShowKiosk-DX5_HdN1.js → ShowKiosk-DvOBEV0v.js} +10 -10
  17. package/dist/browser/{UIState-BtsQF4Qd.js → UIState-Ce9F8YFe.js} +229 -230
  18. package/dist/browser/{ViewerMenuPanel-DE1PS7On.js → ViewerMenuPanel-FsMuHE9m.js} +10 -10
  19. package/dist/browser/{add-debug-secret-listener-DrTVYjLv.js → add-debug-secret-listener-DEPSZS-A.js} +1 -1
  20. package/dist/browser/{adopt-global-settings-D3Ezjf-T.js → adopt-global-settings-ptJCSHgd.js} +9 -9
  21. package/dist/browser/{boolean-editor-BWZ5tP5I.js → boolean-editor-C_RdXFiI.js} +9 -9
  22. package/dist/browser/{bootIntercom-BYA7uJn4.js → bootIntercom-CnpSeS09.js} +2 -2
  23. package/dist/browser/bundle.json +85 -85
  24. package/dist/browser/{camera-events-JR26Hdcu.js → camera-events-BYUTGOGy.js} +1 -1
  25. package/dist/browser/{classnames-CCXT3oJS.js → classnames-I5odALD0.js} +2 -2
  26. package/dist/browser/{client-Dn9Zr5pe.js → client-TnBerOtS.js} +5 -5
  27. package/dist/browser/{components-xHw_gBa5.js → components-CEGOfvRn.js} +48 -48
  28. package/dist/browser/{create-live-plan-DDxPT-Pe.js → create-live-plan-msjLUPAb.js} +14 -14
  29. package/dist/browser/{debug-context-CcikkQPi.js → debug-context-8s7JYsHP.js} +5 -5
  30. package/dist/browser/{debug-overlay-BlVOrhsh.js → debug-overlay-BEEAevvE.js} +10 -10
  31. package/dist/browser/{debug-ui-ByJjooBA.js → debug-ui-BWDU1_DK.js} +6 -6
  32. package/dist/browser/{dist-zf4NxUGc.js → dist-B7taugxI.js} +5 -5
  33. package/dist/browser/{dist-Cf6IReKz.js → dist-BL9v1eQu.js} +3 -3
  34. package/dist/browser/{dist-D5tNj-0Y.js → dist-Dg8H-fF9.js} +6 -6
  35. package/dist/browser/{efp-debug-init-al55q10u.js → efp-debug-init-3uYSkVQl.js} +3 -3
  36. package/dist/browser/{enum-editor-BBB3sWCH.js → enum-editor-DiE-Q-gC.js} +4 -4
  37. package/dist/browser/{es5-CVG4aGRa.js → es5-D2KUWXXM.js} +2 -2
  38. package/dist/browser/{event-head-DyDtmXOE.js → event-head-DXLhGPVQ.js} +1 -1
  39. package/dist/browser/{event-not-found-DQhH655U.js → event-not-found-ClTL2wLx.js} +3 -3
  40. package/dist/browser/{event-scoped-cache-BRqlbRWj.js → event-scoped-cache-CcA_qeS6.js} +2 -2
  41. package/dist/browser/{expofpUrl-Cnkbj5KP.js → expofpUrl-BTeumhPB.js} +1 -1
  42. package/dist/browser/{exports-CriZf319.js → exports-BezdpCeZ.js} +1 -1
  43. package/dist/browser/{favicon-BN2jB3cD.js → favicon-eEoLTD6j.js} +1 -1
  44. package/dist/browser/{fetch-retry.umd-TufkXQUc.js → fetch-retry.umd-o-6hecKO.js} +2 -2
  45. package/dist/browser/{flex-Co7qWs_0.js → flex-DC-YFhOp.js} +5 -5
  46. package/dist/browser/{floorplan.loader-uU5jSX4L.js → floorplan.loader-BMR6104c.js} +12 -12
  47. package/dist/browser/{floorplan.ready-DpsnIaye.js → floorplan.ready-DxP00yOP.js} +23 -23
  48. package/dist/browser/{framing-rect-BR93grUW.js → framing-rect-B28m3lJd.js} +262 -245
  49. package/dist/browser/{freeBanner-oBXl72SS.js → freeBanner-CxeeG1v1.js} +2 -2
  50. package/dist/browser/{fuse-Dm-WhNtD.js → fuse-CM3BvYBC.js} +2 -2
  51. package/dist/browser/{i18n-Brp2h-sf.js → i18n-CyzfIlqQ.js} +6 -6
  52. package/dist/browser/index.js +17 -17
  53. package/dist/browser/{index.module-kQtZEvIK.js → index.module-D9cgjYhA.js} +4 -4
  54. package/dist/browser/{init-ui-CtgiMn-b.js → init-ui-7k8cHFZw.js} +9 -9
  55. package/dist/browser/{integrateKiosk-Ci0Kelz8.js → integrateKiosk-DUFIUi05.js} +5 -5
  56. package/dist/browser/{is-debug-Dl85G8le.js → is-debug-BAIQHfxq.js} +4 -4
  57. package/dist/browser/{is-own-domain-rn4zdSxw.js → is-own-domain-C_JX2ZHR.js} +1 -1
  58. package/dist/browser/{is-webview-BcPE_KnA.js → is-webview-BU0Pek8w.js} +1 -1
  59. package/dist/browser/{jsx-runtime-DjUvqNZ4.js → jsx-runtime-CtimPtPq.js} +2 -2
  60. package/dist/browser/{kiosk-mode-CgDJr0Cy.js → kiosk-mode-CV-M1Zz8.js} +3 -3
  61. package/dist/browser/{kiosk-record-DSAURYxo.js → kiosk-record-Du4IFKBR.js} +1 -1
  62. package/dist/browser/{kioskApi-BpS2oCDp.js → kioskApi-BVRzmuDX.js} +7 -7
  63. package/dist/browser/{lib-D722Pg4z.js → lib-n3_ONTp3.js} +3 -3
  64. package/dist/browser/{loadImage-7lVuG7mT.js → loadImage-DqAC23xl.js} +1 -1
  65. package/dist/browser/{logDeviceInfo-dGpUXc_1.js → logDeviceInfo-B47wOFn-.js} +9 -9
  66. package/dist/browser/{mobx-C7iTPB-l.js → mobx-BxS2198S.js} +4 -4
  67. package/dist/browser/{mobx.module-BnXrY7HW.js → mobx.module-DBXspHzN.js} +1 -1
  68. package/dist/browser/{optional-boolean-editor-BwkRtcEs.js → optional-boolean-editor-DusM7rb0.js} +3 -3
  69. package/dist/browser/{optional-enum-editor-DiYEddI4.js → optional-enum-editor-BKyAfZ8e.js} +4 -4
  70. package/dist/browser/{optional-string-editor-BRCJlGU6.js → optional-string-editor-sA0aHiGB.js} +4 -4
  71. package/dist/browser/{particles.min-Cyv2g1i1.js → particles.min-B7kv19nN.js} +2 -2
  72. package/dist/browser/{react-GM02QWsb.js → react-Cohf8rUU.js} +2 -2
  73. package/dist/browser/{react-dom-B8t0es6H.js → react-dom-tyj4-_-C.js} +3 -3
  74. package/dist/browser/{rolldown-runtime-BE0XSRfw.js → rolldown-runtime-Bcr_gA0_.js} +1 -1
  75. package/dist/browser/{scene-DWydbLeX.js → scene-BBPTWEUE.js} +38 -34
  76. package/dist/browser/{scheduler-DPogrQnC.js → scheduler-CrY9mG_c.js} +2 -2
  77. package/dist/browser/{select-hn9vWuOi.js → select-D19r5W1a.js} +10 -10
  78. package/dist/browser/{settings-CFSsnNiW.js → settings-D4-jxTxB.js} +2 -2
  79. package/dist/browser/{settings-item-B78SzeBC.js → settings-item-CIt7SQG4.js} +6 -6
  80. package/dist/browser/{store-_wn5u-g_.js → store-CjCKsoXy.js} +2 -2
  81. package/dist/browser/{string-editor-DG_fQEtF.js → string-editor-D8F1eTpQ.js} +4 -4
  82. package/dist/browser/{text-field-MkszrHMN.js → text-field-BYYweuSY.js} +5 -5
  83. package/dist/browser/{theme-GhRMjRAR.js → theme-q6cCoTLz.js} +8 -8
  84. package/dist/browser/{ui-R9Wb5JLi.js → ui-CYUl2cf1.js} +8 -8
  85. package/dist/browser/{useRenderTarget-CmmLzvq6.js → useRenderTarget-Bqdt8QZX.js} +4 -4
  86. package/dist/browser/{viewport-P1Fw2W4S.js → viewport-D4MnXYrN.js} +3 -3
  87. package/dist/browser/{wayfinding-CtfrReXU.js → wayfinding-CulSEPiv.js} +5 -5
  88. package/dist/esm/components/Map/drawing/config/config-booth-badge-scale.d.ts +20 -0
  89. package/dist/esm/components/Map/drawing/config/config-booth-badge-scale.js +1 -0
  90. package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +20 -11
  91. package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
  92. package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -1
  93. package/dist/esm/components/Map/pointer.js +1 -1
  94. package/dist/esm/components/Maplibre/usePoiMarkers.js +1 -1
  95. package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.d.ts +6 -6
  96. package/package.json +10 -10
@@ -1 +1 @@
1
- import{Box as $}from"@expofp/geometry";import{reaction as h}from"mobx";import{useEffect as J}from"react";import{POI_CLUSTER_COLOR as Q,POI_CLUSTER_MIN_POINTS as ee,POI_CLUSTER_RADIUS_PX as te,POI_CLUSTER_SIZE_PX as oe,POI_CLUSTER_STROKE_COLOR as re,POI_CLUSTER_STROKE_WIDTH_PX as ie,POI_CLUSTER_TEXT_SIZE_PX as ne,POI_MARKER_PIN_WIDTH_PX as ce,POI_SELECTED_PIN_WIDTH_PX as C}from"../../constants";import c from"../../store";import se from"../../tools/settings";import{DIM_INTENSITY as ae}from"../../utils/dimming";import{convertLocalToGps as v}from"../../utils/gps";import{isOutdoorMarkersEnabled as le}from"../Map/drawing/config/config-outdoor-poi";import{createPoiPinheadImage as pe}from"../Map/drawing/config/poi-pin.js";import{getPoiPinLayout as A,POI_MARKER_PIN_SHAPE as fe,POI_SELECTED_PIN_SHAPE as ue}from"../Map/drawing/config/poi-pin-shape.js";import{getMapDimTarget as U}from"./useDimming";import{getLocalRectGeoBounds as de,getVisibleRectFitPadding as me,isLngLatInVisibleViewport as Ie}from"./utils/geo-config";import{poiMarkerHitTest as N}from"./utils/poi-marker-hit-test";const s="expofp-poi",a="expofp-poi-clusters",S="expofp-poi-cluster-count",I="expofp-poi-unclustered",y="expofp-poi-selected",E="expofp-poi-pinhead-image",w=[a,S,I,y],ye=w.filter(p=>p!==S),b=p=>`expofp-poi-icon-${p}`;export function usePoiMarkers(p,k,u){J(()=>{if(!le())return;const e=k.current;if(!p||!e||!u)return;const{gpsConfig:L}=u,l=new Set,_=window.devicePixelRatio||1,F=se.colors?.booths?.selected||"#3b6ef5",H=pe(C,_,F),B=A(fe,ce,_).tipOffset,X=A(ue,C,_).tipOffset,O=t=>v(t.center.x,t.center.y,L),T=(t,o)=>{e.hasImage(t)&&e.removeImage(t),e.addImage(t,o,{pixelRatio:_}),l.add(t)},Y=t=>{const o=c.poiMarkerStore.markers,i=new Set(o.map(r=>b(r.boothId)));i.add(E);for(const r of[...l])i.has(r)||(e.hasImage(r)&&e.removeImage(r),l.delete(r));for(const r of o){const n=b(r.boothId);(t||!l.has(n))&&T(n,r.icon)}l.has(E)||T(E,H)},z=()=>{const t=c.poiMarkerStore.selectedMarkerId,o=c.poiMarkerStore.outdoorFilter,i=!o.active;let r=c.poiMarkerStore.markers;return t!==null?r=r.filter(n=>n.boothId===t):o.active&&(r=o.matchingMarkers),{cluster:i,data:{type:"FeatureCollection",features:r.map(n=>({type:"Feature",geometry:{type:"Point",coordinates:O(n)},properties:{boothId:n.boothId,icon:b(n.boothId),pinhead:n.boothId===t}}))}}},V=()=>{let t=null;for(const o of e.getStyle()?.layers??[]){if(o.type!=="symbol")continue;const i=o.layout?.["text-font"];if(!(!Array.isArray(i)||!i.every(r=>typeof r=="string"))){if(!i.some(r=>/italic/i.test(r)))return i;t??=i}}return t??["Noto Sans Regular"]};let g=null;const R=()=>{for(const t of w)e.getLayer(t)&&e.removeLayer(t);e.getSource(s)&&e.removeSource(s),g=null},Z=(t,o)=>{if(g!==null&&g!==o&&R(),e.getSource(s)||(e.addSource(s,{type:"geojson",data:t,cluster:o,clusterRadius:te,clusterMinPoints:ee}),g=o),e.getLayer(a))return;const i=["!",["has","point_count"]],r=["==",["coalesce",["get","pinhead"],!1],!0];e.addLayer({id:a,type:"circle",source:s,filter:["has","point_count"],paint:{"circle-radius":oe/2,"circle-color":Q,"circle-stroke-color":re,"circle-stroke-width":ie,"circle-pitch-alignment":"viewport"}}),e.addLayer({id:S,type:"symbol",source:s,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],"text-font":V(),"text-size":ne,"text-allow-overlap":!0,"text-ignore-placement":!0},paint:{"text-color":"#ffffff"}}),e.addLayer({id:I,type:"symbol",source:s,filter:["all",i,["!",r]],layout:{"icon-image":["get","icon"],"icon-anchor":"bottom","icon-offset":[0,B],"icon-allow-overlap":!0,"icon-ignore-placement":!0}}),e.addLayer({id:y,type:"symbol",source:s,filter:["all",i,r],layout:{"icon-image":E,"icon-anchor":"bottom","icon-offset":[0,X],"icon-allow-overlap":!0,"icon-ignore-placement":!0}})},M=()=>{if(!e.getLayer(a))return;const t=U()?1-ae:1;e.setPaintProperty(a,"circle-opacity",t),e.setPaintProperty(a,"circle-stroke-opacity",t),e.setPaintProperty(S,"text-opacity",t),e.setPaintProperty(I,"icon-opacity",t),e.setPaintProperty(y,"icon-opacity",t)},d=(t=!1)=>{Y(t);const{cluster:o,data:i}=z();Z(i,o),e.getSource(s)?.setData(i),M()},K=t=>{if(!t.length)return;const o=me(50);if(t.every(m=>Ie(e,O(m),o)))return;const r=$.fromPoints(t.map(m=>m.center)),n=de(r,L),f=e.cameraForBounds(n,{padding:o,bearing:u.bearing});!f?.center||typeof f.zoom!="number"||e.easeTo({center:f.center,zoom:Math.min(e.getZoom(),f.zoom),bearing:u.bearing,duration:500,essential:!0})},P=t=>{const o=t.features?.[0]?.properties?.boothId;if(typeof o!="number")return;const i=c.boothStore.boothById.get(o);i&&c.clickBooth(i)},D=t=>{const o=t.features?.[0],i=o?.properties?.cluster_id,r=e.getSource(s);if(typeof i!="number"||!r||o?.geometry?.type!=="Point")return;const[n=0,f=0]=o.geometry.coordinates;r.getClusterExpansionZoom(i).then(m=>{e.easeTo({center:[n,f],zoom:Math.min(m,e.getMaxZoom()),duration:500})})};e.on("click",I,P),e.on("click",y,P),e.on("click",a,D),N.set((t,o)=>{const i=ye.filter(n=>!!e.getLayer(n));if(!i.length)return!1;const r=e.project(v(t,o,L));return e.queryRenderedFeatures([r.x,r.y],{layers:i}).length>0});const x=()=>{l.clear(),d(!0)};e.on("style.load",x);const G=h(()=>c.poiMarkerStore.markers,()=>d(!0)),W=h(()=>c.poiMarkerStore.selectedMarkerId,()=>d()),j=h(()=>c.poiMarkerStore.outdoorFilter.key,()=>{d(),K(c.poiMarkerStore.outdoorFilter.matchingMarkers)}),q=h(()=>U(),()=>M());return d(!0),()=>{G(),W(),j(),q(),N.set(null),e.off("style.load",x),e.off("click",I,P),e.off("click",y,P),e.off("click",a,D);try{R();for(const t of l)e.hasImage(t)&&e.removeImage(t)}catch{}}},[p,k,u])}
1
+ import{Box as q}from"@expofp/geometry";import{reaction as h}from"mobx";import{useEffect as $}from"react";import{POI_CLUSTER_COLOR as J,POI_CLUSTER_MIN_POINTS as Q,POI_CLUSTER_RADIUS_PX as ee,POI_CLUSTER_SIZE_PX as te,POI_CLUSTER_STROKE_COLOR as oe,POI_CLUSTER_STROKE_WIDTH_PX as re,POI_CLUSTER_TEXT_SIZE_PX as ie,POI_MARKER_PIN_WIDTH_PX as ne,POI_SELECTED_PIN_WIDTH_PX as x}from"../../constants";import c from"../../store";import ce from"../../tools/settings";import{DIM_INTENSITY as se}from"../../utils/dimming";import{convertLocalToGps as ae}from"../../utils/gps";import{isOutdoorMarkersEnabled as le}from"../Map/drawing/config/config-outdoor-poi";import{createPoiPinheadImage as pe}from"../Map/drawing/config/poi-pin.js";import{getPoiPinLayout as v,POI_MARKER_PIN_SHAPE as fe,POI_SELECTED_PIN_SHAPE as ue}from"../Map/drawing/config/poi-pin-shape.js";import{getMapDimTarget as A}from"./useDimming";import{getLocalRectGeoBounds as de,getVisibleRectFitPadding as me,isLngLatInVisibleViewport as Ie}from"./utils/geo-config";import{poiMarkerHitTest as U}from"./utils/poi-marker-hit-test";const s="expofp-poi",a="expofp-poi-clusters",S="expofp-poi-cluster-count",I="expofp-poi-unclustered",_="expofp-poi-selected",E="expofp-poi-pinhead-image",N=[a,S,I,_],_e=N.filter(p=>p!==S),L=p=>`expofp-poi-icon-${p}`;export function usePoiMarkers(p,b,u){$(()=>{if(!le())return;const e=b.current;if(!p||!e||!u)return;const{gpsConfig:k}=u,l=new Set,y=window.devicePixelRatio||1,w=ce.colors?.booths?.selected||"#3b6ef5",F=pe(x,y,w),B=v(fe,ne,y).tipOffset,H=v(ue,x,y).tipOffset,O=t=>ae(t.center.x,t.center.y,k),R=(t,o)=>{e.hasImage(t)&&e.removeImage(t),e.addImage(t,o,{pixelRatio:y}),l.add(t)},X=t=>{const o=c.poiMarkerStore.markers,i=new Set(o.map(r=>L(r.boothId)));i.add(E);for(const r of[...l])i.has(r)||(e.hasImage(r)&&e.removeImage(r),l.delete(r));for(const r of o){const n=L(r.boothId);(t||!l.has(n))&&R(n,r.icon)}l.has(E)||R(E,F)},Y=()=>{const t=c.poiMarkerStore.selectedMarkerId,o=c.poiMarkerStore.outdoorFilter,i=!o.active;let r=c.poiMarkerStore.markers;return t!==null?r=r.filter(n=>n.boothId===t):o.active&&(r=o.matchingMarkers),{cluster:i,data:{type:"FeatureCollection",features:r.map(n=>({type:"Feature",geometry:{type:"Point",coordinates:O(n)},properties:{boothId:n.boothId,icon:L(n.boothId),pinhead:n.boothId===t}}))}}},z=()=>{let t=null;for(const o of e.getStyle()?.layers??[]){if(o.type!=="symbol")continue;const i=o.layout?.["text-font"];if(!(!Array.isArray(i)||!i.every(r=>typeof r=="string"))){if(!i.some(r=>/italic/i.test(r)))return i;t??=i}}return t??["Noto Sans Regular"]};let g=null;const T=()=>{for(const t of N)e.getLayer(t)&&e.removeLayer(t);e.getSource(s)&&e.removeSource(s),g=null},V=(t,o)=>{if(g!==null&&g!==o&&T(),e.getSource(s)||(e.addSource(s,{type:"geojson",data:t,cluster:o,clusterRadius:ee,clusterMinPoints:Q}),g=o),e.getLayer(a))return;const i=["!",["has","point_count"]],r=["==",["coalesce",["get","pinhead"],!1],!0];e.addLayer({id:a,type:"circle",source:s,filter:["has","point_count"],paint:{"circle-radius":te/2,"circle-color":J,"circle-stroke-color":oe,"circle-stroke-width":re,"circle-pitch-alignment":"viewport"}}),e.addLayer({id:S,type:"symbol",source:s,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],"text-font":z(),"text-size":ie,"text-allow-overlap":!0,"text-ignore-placement":!0},paint:{"text-color":"#ffffff"}}),e.addLayer({id:I,type:"symbol",source:s,filter:["all",i,["!",r]],layout:{"icon-image":["get","icon"],"icon-anchor":"bottom","icon-offset":[0,B],"icon-allow-overlap":!0,"icon-ignore-placement":!0}}),e.addLayer({id:_,type:"symbol",source:s,filter:["all",i,r],layout:{"icon-image":E,"icon-anchor":"bottom","icon-offset":[0,H],"icon-allow-overlap":!0,"icon-ignore-placement":!0}})},M=()=>{if(!e.getLayer(a))return;const t=A()?1-se:1;e.setPaintProperty(a,"circle-opacity",t),e.setPaintProperty(a,"circle-stroke-opacity",t),e.setPaintProperty(S,"text-opacity",t),e.setPaintProperty(I,"icon-opacity",t),e.setPaintProperty(_,"icon-opacity",t)},d=(t=!1)=>{X(t);const{cluster:o,data:i}=Y();V(i,o),e.getSource(s)?.setData(i),M()},Z=t=>{if(!t.length)return;const o=me(50);if(t.every(m=>Ie(e,O(m),o)))return;const r=q.fromPoints(t.map(m=>m.center)),n=de(r,k),f=e.cameraForBounds(n,{padding:o,bearing:u.bearing});!f?.center||typeof f.zoom!="number"||e.easeTo({center:f.center,zoom:Math.min(e.getZoom(),f.zoom),bearing:u.bearing,duration:500,essential:!0})},P=t=>{const o=t.features?.[0]?.properties?.boothId;if(typeof o!="number")return;const i=c.boothStore.boothById.get(o);i&&c.clickBooth(i)},D=t=>{const o=t.features?.[0],i=o?.properties?.cluster_id,r=e.getSource(s);if(typeof i!="number"||!r||o?.geometry?.type!=="Point")return;const[n=0,f=0]=o.geometry.coordinates;r.getClusterExpansionZoom(i).then(m=>{e.easeTo({center:[n,f],zoom:Math.min(m,e.getMaxZoom()),duration:500})})};e.on("click",I,P),e.on("click",_,P),e.on("click",a,D),U.set((t,o)=>{const i=_e.filter(n=>!!e.getLayer(n));if(!i.length)return!1;const r=e.getCanvas().getBoundingClientRect();return e.queryRenderedFeatures([t-r.left,o-r.top],{layers:i}).length>0});const C=()=>{l.clear(),d(!0)};e.on("style.load",C);const K=h(()=>c.poiMarkerStore.markers,()=>d(!0)),G=h(()=>c.poiMarkerStore.selectedMarkerId,()=>d()),W=h(()=>c.poiMarkerStore.outdoorFilter.key,()=>{d(),Z(c.poiMarkerStore.outdoorFilter.matchingMarkers)}),j=h(()=>A(),()=>M());return d(!0),()=>{K(),G(),W(),j(),U.set(null),e.off("style.load",C),e.off("click",I,P),e.off("click",_,P),e.off("click",a,D);try{T();for(const t of l)e.hasImage(t)&&e.removeImage(t)}catch{}}},[p,b,u])}
@@ -1,16 +1,16 @@
1
- type PoiMarkerHitTest = (x: number, y: number) => boolean;
1
+ type PoiMarkerHitTest = (clientX: number, clientY: number) => boolean;
2
2
  /**
3
- * Model-space hit-test against the outdoor PoI symbol/cluster layers, set by
4
- * `usePoiMarkers` while active. The plan's click seam (`clickedPlan` in
5
- * Map/pointer.ts) consults it so a click handled by a native MapLibre layer
6
- * does not also select the booth underneath.
3
+ * Screen-space hit-test (viewport `clientX`/`clientY`) against the outdoor PoI
4
+ * symbol/cluster layers, set by `usePoiMarkers` while active. The plan's click
5
+ * seam (`clickedPlan` in Map/pointer.ts) consults it so a click handled by a
6
+ * native MapLibre layer does not also select the booth underneath.
7
7
  *
8
8
  * Deliberately a leaf module (no imports): it decouples the renderer click
9
9
  * pipeline from the Maplibre hook that owns the marker layers.
10
10
  */
11
11
  export declare const poiMarkerHitTest: {
12
12
  set(fn: PoiMarkerHitTest | null): void;
13
- test(x: number, y: number): boolean;
13
+ test(clientX: number, clientY: number): boolean;
14
14
  };
15
15
  export {};
16
16
  //# sourceMappingURL=poi-marker-hit-test.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/floorplan",
3
- "version": "3.45.2",
3
+ "version": "3.45.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/expofp/efp-app.git",
@@ -69,15 +69,15 @@
69
69
  "tslib": "^2.3.0",
70
70
  "uuid": "^9.0.1",
71
71
  "zod": "4.4.3",
72
- "@expofp/config": "3.45.2",
73
- "@expofp/debug": "3.45.2",
74
- "@expofp/geometry": "3.45.2",
75
- "@expofp/renderer": "3.45.2",
76
- "@expofp/resolve": "3.45.2",
77
- "@expofp/schema": "3.45.2",
78
- "@expofp/ui": "3.45.2",
79
- "@expofp/utils": "3.45.2",
80
- "@expofp/wayfinding": "3.45.2"
72
+ "@expofp/config": "3.45.4",
73
+ "@expofp/debug": "3.45.4",
74
+ "@expofp/geometry": "3.45.4",
75
+ "@expofp/renderer": "3.45.4",
76
+ "@expofp/resolve": "3.45.4",
77
+ "@expofp/schema": "3.45.4",
78
+ "@expofp/ui": "3.45.4",
79
+ "@expofp/utils": "3.45.4",
80
+ "@expofp/wayfinding": "3.45.4"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@babel/plugin-proposal-decorators": "^8.0.2",