UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

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