UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) • 1.34 kB
import n,{uiState as o}from"../../store";import{LayerMode as l}from"../../store/LayerStore";import{poiMarkerHitTest as a}from"../Maplibre/utils/poi-marker-hit-test";import d from"./booth-by-xy";export function setPlanClickListener(e){c=e}export function setMarkerResolver(e){u=e}export function rememberBoothShapes(e,t){for(const r of t)s.set(r,e)}export function boothOfShape(e){return s.get(e)??null}export function hoverBooth(e){o.setKioskModeEnabled||(o.hoveredBooth=i(e.point,e.def))}export function clearHoveredBooth(){o.setKioskModeEnabled||(o.hoveredBooth=null)}export function selectBooth(e){f(e.point)&&n.clickBooth(i(e.point,e.def))}export function clearSelection(e){f(e.point)&&n.clickBooth(i(e.point))}function i(e,t){const r=t?boothOfShape(t):null;return r||d(e.x,e.y)}function f(e){if(!o.rootElement)return!1;if(resetExternalOverlay(),c?.(e),o.overlayPosition==="bottom"&&o.overlaySize==="full"&&n.showMap(),o.onGetCoordsClick){const t=n.layerStore.layers.find(r=>r.visible&&(r.mode===l.TurnedOn||r.mode===l.TurnedOff));o.onGetCoordsClick({x:e.x,y:e.y,z:t?.name||null})}if(o.setKioskModeEnabled||a.test(e.x,e.y))return!1;if(o.onMarkerClick){const t=u?.(e.x,e.y)??null;o.onMarkerClick(t)}return!0}export function resetExternalOverlay(){if(typeof window>"u")return;const e=window.__resett;e?.()}const s=new WeakMap;let u,c;