UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) • 4.99 kB
import{jsx as o,jsxs as x}from"react/jsx-runtime";import"@styles/main.scss";import"./Layout.scss";import{Spinner as R}from"@expofp/ui";import B from"classnames";import{observer as L}from"mobx-react-lite";import r,{Suspense as n,useEffect as G,useState as k}from"react";import t,{layersStore as f,uiState as e}from"../store";import{LayersMode as C}from"../store/LayerStore";import{checkUserIsGDPR as F,GaEventActions as d,hasUserConsent as T,sendEventToGa as s,setConsentSettings as S,setCookieConsent as b}from"../tools/gtag";import j from"../tools/settings";import u from"../tools/track-event";import{isWebGlSupported as A}from"../utils";import{t as P}from"../utils/i18n";import V from"../utils/is-debug";import{useReaction as l}from"../utils/mobx";import{CategoryFilterModal as H}from"./CategoryFilterModal";import I 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 ie=r.lazy(()=>import("./Demo")),re=r.lazy(()=>import("./Free")),ae=r.lazy(()=>import("./Debug")),ne=r.lazy(()=>import("./Maplibre/MaplibreAdapter")),le=r.lazy(()=>import("./ModalContainer")),se=r.lazy(()=>import("./CookieConsent")),me=r.lazy(()=>import("./GpsLoader")),de=r.lazy(()=>import("./Kiosk/SetKioskMode")),pe=r.lazy(()=>import("./Kiosk/ShowKiosk"));export default L(function({offHistory:w,consent:p}){const[y,c]=k(!1),[z,M]=k(!1),h=t.maplibreStore.showMaplibre,O=e.searchButtonsOverride!==!1&&(!e.noOverlay||e.overlayOnDemand),g=!e.noOverlay||e.overlayOnDemand&&(z||e.isOverlayOpen);let m=null;e.bannerType==="demo"?m=o(ie,{}):e.bannerType==="free"&&(m=o(re,{}));const E=()=>{b(!0),S(),t.uiState.hideCookieConsent=!0},D=()=>{b(!1),S(),t.uiState.hideCookieConsent=!0};G(()=>{async function i(){const a=await F();c(!!(a||a===null))}T(p)?c(!0):i()},[]),l(()=>e.isOverlayOpen,i=>i&&M(!0)),l(()=>e.selectedExhibitor,i=>{const a=t.heatmapStore.forceTrack;if(t.heatmapStore.forceTrack=null,a&&a.exhibitor===i){s(a.action,a.label);return}i&&(u("exview",i.id),s(d.ViewExhibitor,i.name))}),l(()=>e.selectedBooth,i=>i?.name&&s(d.ViewBooth,i.name)),l(()=>e.selectedCategory,i=>i?.name&&s(d.ViewCategory,i?.name)),l(()=>e.selectedEventItem,i=>{i?.name&&(u("sesview",i.name),s(d.ViewExhibitor,i.name))}),l(()=>e.selectedSpeaker,i=>{i?.name&&u("spkview",i.name)});const v=!e.hideCookieConsent&&!e.kiosk&&y&&p==="ask";return o("div",{id:"efp-layout",className:B("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:x("div",{className:`layout__fixed expo-${j.EXPO} overlay-${t.uiState.overlayPosition}`,children:[(f.mode===C.Radio||f.mode===C.CheckBox)&&!e.floorsControlHidden&&t.initialized&&o(_,{}),g&&t.initialized&&o(Y,{isGDPR:y,consent:p}),t.initialized&&o(U,{}),(!e.noOverlay||e.overlayOnDemand&&e.isOverlayOpen)&&t.initialized&&!(e.viewerMode&&e.menu)&&o(J,{}),O&&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:!v}),A&&!h&&o(W,{}),h&&o(I,{children:o(n,{fallback:o("div",{}),children:o(ne,{viewMode:t.maplibreStore.mapViewMode})})}),m&&!e.hideFreeOrDemo&&!e.heatmap?o(n,{fallback:null,children:m}):null,v&&o(n,{fallback:null,children:o(se,{link:"https://expofp.com/pages/viewer-cookie-consent",onAccept:E,onReject:D})}),V?o(n,{fallback:null,children:o(ae,{})}):null,e.modalActive.share?o(n,{fallback:null,children:o(le,{variant:"share",ariaLabel:P("Share"),open:e.modalActive.share,onClose:()=>t.toggleModal("share"),children:o(ee,{title:e.selectedExhibitor?.name||e.selectedEventItem?.name||"",url:w?`${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(R,{active:!f.layersLoaded}),o("div",{id:"fps"}),t.initialized&&o(H,{}),t.initialized&&o(Z,{store:t.sessionsFilterStore}),t.initialized&&o(oe,{store:t.speakerFilterStore}),o($,{}),t.initialized&&e.setKioskModeEnabled&&o(n,{fallback:null,children:o(de,{})}),t.initialized&&!e.setKioskModeEnabled&&o(n,{fallback:null,children:o(pe,{})})]})})});