UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) • 1.74 kB
import{jsx as c}from"react/jsx-runtime";import{MapControls as p}from"@expofp/ui";import u from"classnames";import{observer as b,useLocalStore as y}from"mobx-react-lite";import i,{layersStore as a,uiState as o}from"../store";import{LayerMode as m,LayersMode as f}from"../store/LayerStore";import{remsToPixels as s}from"../utils";import{t}from"../utils/i18n";function n(r){window.__resett?.(),r()}const L=b(()=>{const r=y(()=>({get className(){return u({controls:!0,container:!0,"-ready":!0,[o.responsiveClass]:!0})},get style(){return{[o.rtl?"left":"right"]:o.overlayPosition==="left"?o.overlayCollapsed?s(.9):(o.kiosk?10:0)+s(.7)+"px":"10px",bottom:o.kiosk?s(4):s(9.6)}},get layers(){return a.layers.filter(e=>e.mode!==m.AlwaysHidden&&e.mode!==m.AlwaysVisible).map(e=>({id:e.name,name:e.description})).concat([]).reverse()},get visible(){return a.layers.filter(e=>e.visible).map(e=>e.name)}}));return c(p,{className:r.className,style:r.style,title:t("Map controls"),findLocationLabel:t("Find your location"),zoomInLabel:t("Zoom In"),zoomOutLabel:t("Zoom Out"),viewModeLabel:t("View switch"),fitToScreenLabel:t("Fit to screen"),layersLabel:t("Layers"),onFindLocation:()=>i.routeStore.findLocation(),onZoomIn:()=>n(()=>o.zoomIn()),onZoomOut:()=>n(()=>o.zoomOut()),onFitToScreen:()=>n(()=>o.fitBounds()),onViewModeSwitch:()=>i.maplibreStore.activateMaplibre(),showModeSwitch:i.maplibreStore.maplibreEnabled&&!i.maplibreStore.hideModeSwitchButton,isMap3d:i.maplibreStore.isMap3d,showFindLocation:i.routeStore.canFindLocation&&!o.setKioskModeEnabled,layersActiveItems:r.visible,layersList:a.mode===f.CheckBox?r.layers:void 0,onChangeLayers:e=>{const l=a.layers.find(d=>d.name===e);l&&a.updateVisibility(e,!l.visible)}})});export default L;