@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 4.91 kB
JavaScript
import{jsx as o,jsxs as D}from"react/jsx-runtime";import"../styles/main.scss";import"./Layout.scss";import x from"classnames";import{observer as R}from"mobx-react-lite";import i,{Suspense as a,useEffect as B,useState as v}from"react";import t,{layersStore as c,uiState as e}from"../store";import{LayersMode as k}from"../store/LayerStore";import{checkUserIsGDPR as L,GaEventActions as m,hasUserConsent as G,sendEventToGa as n,setConsentSettings as S,setCookieConsent as C}from"../tools/gtag";import T from"../tools/settings";import F from"../tools/track-event";import j from"../ui/Spinner";import{isWebGlSupported as A}from"../utils";import{t as I}from"../utils/i18n";import P from"../utils/is-debug";import{useReaction as l}from"../utils/mobx";import{CategoryFilterModal as V}from"./CategoryFilterModal";import H from"./ErrorBoundary";import $ from"./GlobalErrorMessage";import K from"./HeatmapLegendContainer";import N from"./IntercomLauncher";import _ from"./LevelSelectorContainer";import U from"./LogoOverlay";import W from"./Map/Map";import q from"./MapControlsContainer";import X from"./MobileToggleButtonContainer";import Y from"./OverlayContainer";import J from"./SearchBox";import Q from"./SearchButtons/SearchButtons";import Z from"./SessionsFiltersModal";import ee from"./ShareContainer";import oe from"./SpeakersFiltersModal";import te from"./Ws";const re=i.lazy(()=>import("./Demo")),ie=i.lazy(()=>import("./Free")),ae=i.lazy(()=>import("./Debug")),ne=i.lazy(()=>import("./Maplibre/MaplibreAdapter")),le=i.lazy(()=>import("./ModalContainer")),se=i.lazy(()=>import("./CookieConsent")),me=i.lazy(()=>import("./GpsLoader")),de=i.lazy(()=>import("./Kiosk/SetKioskMode")),pe=i.lazy(()=>import("./Kiosk/ShowKiosk"));export default R(function({offHistory:b,consent:d}){const[f,p]=v(!1),[w,z]=v(!1),u=t.maplibreStore.showMaplibre,M=e.searchButtonsOverride!==!1&&(!e.noOverlay||e.overlayOnDemand),O=!e.noOverlay||e.overlayOnDemand&&(w||e.isOverlayOpen);let s=null;e.bannerType==="demo"?s=o(re,{}):e.bannerType==="free"&&(s=o(ie,{}));const g=()=>{C(!0),S(),t.uiState.hideCookieConsent=!0},E=()=>{C(!1),S(),t.uiState.hideCookieConsent=!0};B(()=>{async function r(){const h=await L();p(!!(h||h===null))}G(d)?p(!0):r()},[]),l(()=>e.isOverlayOpen,r=>r&&z(!0)),l(()=>e.selectedExhibitor,r=>{t.heatmapStore.forceTrack?(n(t.heatmapStore.forceTrack.action,t.heatmapStore.forceTrack.label),t.heatmapStore.forceTrack=null):r&&(F("exview",r.id),n(m.ViewExhibitor,r.name))}),l(()=>e.selectedBooth,r=>r?.name&&n(m.ViewBooth,r.name)),l(()=>e.selectedCategory,r=>r?.name&&n(m.ViewCategory,r?.name)),l(()=>e.selectedEventItem,r=>r?.name&&n(m.ViewExhibitor,r.name));const y=!e.hideCookieConsent&&!e.kiosk&&f&&d==="ask";return o("div",{id:"efp-layout",className:x("layout",{"efp-kiosk":e.kiosk,"efp-kiosk-route-active":e.kiosk&&e.selectedRoute?.from&&e.selectedRoute?.to,"efp-layers-mode":t.layerStore.mode,"efp-ws-mode":e.wsShown,"efp-no-overlay":e.overlayHiddenNow,"efp-overlay-on-demand":e.overlayOnDemand,"efp-top-banner":e.bannerType==="free"&&!e.freeBannerDismissed,"efp-viewer-mode":e.viewerMode}),dir:e.rtl?"rtl":"ltr",style:{"--ui-scale":e.uiScale.toString()},children:D("div",{className:`layout__fixed expo-${T.EXPO} overlay-${t.uiState.overlayPosition}`,children:[(c.mode===k.Radio||c.mode===k.CheckBox)&&!e.floorsControlHidden&&t.initialized&&o(_,{}),O&&t.initialized&&o(Y,{isGDPR:f,consent:d}),t.initialized&&o(U,{}),(!e.noOverlay||e.overlayOnDemand&&e.isOverlayOpen)&&t.initialized&&!(e.viewerMode&&e.menu)&&o(J,{}),M&&t.initialized&&o(Q,{}),!e.noOverlay&&t.initialized&&o(X,{}),!e.mapControlsHidden&&t.initialized&&o(q,{}),o(N,{}),!e.hideHeaderLogo&&t.initialized&&o(te,{}),t.routeStore.gpsEnabled&&o(me,{requestCompassAllowed:!y}),A&&!u&&o(W,{}),u&&o(H,{children:o(a,{fallback:o("div",{}),children:o(ne,{viewMode:t.maplibreStore.mapViewMode})})}),s&&!e.hideFreeOrDemo&&!e.heatmap?o(a,{fallback:null,children:s}):null,y&&o(a,{fallback:null,children:o(se,{link:"https://expofp.com/pages/viewer-cookie-consent",onAccept:g,onReject:E})}),P?o(a,{fallback:null,children:o(ae,{})}):null,e.modalActive.share?o(a,{fallback:null,children:o(le,{variant:"share",ariaLabel:I("Share"),open:e.modalActive.share,onClose:()=>t.toggleModal("share"),children:o(ee,{title:e.selectedExhibitor?.name||e.selectedEventItem?.name||"",url:b?`${window.location.origin}?${encodeURI(e.selectedExhibitor?.slug||e.selectedEventItem?.slug)}`:window.location.href})})}):null,e.heatmap||e.heatmapYah?o(K,{style:{left:`calc(50% + ${t.uiState.mapVisibleStart/2}px)`},className:e.responsiveClass}):null,o(j,{active:!c.layersLoaded}),o("div",{id:"fps"}),t.initialized&&o(V,{}),t.initialized&&o(Z,{store:t.sessionsFilterStore}),t.initialized&&o(oe,{store:t.speakerFilterStore}),o($,{}),t.initialized&&e.setKioskModeEnabled&&o(a,{fallback:null,children:o(de,{})}),t.initialized&&!e.setKioskModeEnabled&&o(a,{fallback:null,children:o(pe,{})})]})})});