UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2 lines (1 loc) 4.76 kB
import{jsx as o,jsxs as z}from"react/jsx-runtime";import"../styles/main.scss";import"./Layout.scss";import M from"classnames";import{observer as x}from"mobx-react-lite";import r,{Suspense as a,useEffect as E,useState as R}from"react";import t,{layersStore as c,uiState as e}from"../store";import{LayersMode as y}from"../store/LayerStore";import{checkUserIsGDPR as D,GaEventActions as s,hasUserConsent as L,sendEventToGa as l,setConsentSettings as S,setCookieConsent as v}from"../tools/gtag";import C from"../tools/settings";import O from"../tools/track-event";import B from"../ui/Spinner";import{isWebGlSupported as G}from"../utils";import T from"../utils/is-debug";import A from"../utils/is-iframe";import{useReaction as m}from"../utils/mobx";import{CategoryFilterModal as F}from"./CategoryFilterModal";import I from"./Controls";import j from"./ErrorBoundary";import P from"./GlobalErrorMessage";import V from"./HeatmapLegendContainer";import $ from"./IntercomLauncher";import H from"./LargeMessage";import K from"./LevelSelector";import _ from"./LogoOverlay";import N from"./Map/Map";import U from"./MobileToggleButton";import W from"./OverlayContainer";import q from"./SearchBox";import X from"./SearchButtons/SearchButtons";import Y from"./SessionsFiltersModal";import J from"./Share";import Q from"./SpeakersFiltersModal";import Z from"./Ws";const ee=r.lazy(()=>import("./Demo")),oe=r.lazy(()=>import("./Free")),te=r.lazy(()=>import("./Debug")),ie=r.lazy(()=>import("./Maplibre/MaplibreAdapter")),re=r.lazy(()=>import("./Modal")),ae=r.lazy(()=>import("./CookieConsent")),le=r.lazy(()=>import("./GpsLoader")),ne=r.lazy(()=>import("./Kiosk/SetKioskMode")),se=r.lazy(()=>import("./Kiosk/ShowKiosk"));export default x(function({offHistory:b,allowConsent:p}){const[f,d]=R(!1),u=t.maplibreStore.showMaplibre;let n=null;e.bannerType==="demo"?n=o(ee,{}):e.bannerType==="free"&&(n=o(oe,{}));const g=()=>{v(!0),S(),t.uiState.hideCookieConsent=!0},w=()=>{v(!1),S(),t.uiState.hideCookieConsent=!0};E(()=>{async function i(){const k=await D();d(!!(k||k===null))}L(p)?d(!0):i()},[]),m(()=>e.selectedExhibitor,i=>{t.heatmapStore.forceTrack?(l(t.heatmapStore.forceTrack.action,t.heatmapStore.forceTrack.label),t.heatmapStore.forceTrack=null):i&&(O("exview",i.id),l(s.ViewExhibitor,i.name))}),m(()=>e.selectedBooth,i=>i?.name&&l(s.ViewBooth,i.name)),m(()=>e.selectedCategory,i=>i?.name&&l(s.ViewCategory,i?.name)),m(()=>e.selectedEventItem,i=>i?.name&&l(s.ViewExhibitor,i.name));const h=!e.hideCookieConsent&&!e.kiosk&&f&&p===void 0;return o("div",{id:"efp-layout",className:M("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.noOverlay,"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:z("div",{className:`layout__fixed expo-${C.EXPO} overlay-${t.uiState.overlayPosition}`,children:[(c.mode===y.Radio||c.mode===y.CheckBox)&&!e.floorsControlHidden&&t.initialized&&o(K,{}),!e.noOverlay&&t.initialized&&o(W,{isGDPR:f,allowConsent:p}),t.initialized&&o(_,{}),!e.noOverlay&&t.initialized&&!(e.viewerMode&&e.menu)&&o(q,{}),!e.noOverlay&&t.initialized&&o(X,{}),!e.noOverlay&&t.initialized&&o(U,{}),!e.mapControlsHidden&&t.initialized&&o(I,{}),o($,{}),!e.hideHeaderLogo&&t.initialized&&o(Z,{}),t.routeStore.gpsEnabled&&o(le,{requestCompassAllowed:!h}),G&&!u&&o(N,{}),u&&o(j,{children:o(a,{fallback:o("div",{}),children:o(ie,{viewMode:t.maplibreStore.mapViewMode})})}),n&&!e.hideFreeOrDemo&&!e.heatmap?o(a,{fallback:null,children:n}):null,h&&o(a,{fallback:null,children:o(ae,{link:"https://expofp.com/pages/viewer-cookie-consent",onAccept:g,onReject:w})}),T?o(a,{fallback:null,children:o(te,{})}):null,A&&o(H,{}),e.modalActive.share?o(a,{fallback:null,children:o(re,{type:"share",open:e.modalActive.share,onClickClose:()=>t.toggleModal("share"),children:o(J,{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(V,{style:{left:`calc(50% + ${t.uiState.mapVisibleStart/2}px)`},className:e.responsiveClass,max:t.heatmapStore.minAndMaxClicks.max,min:t.heatmapStore.minAndMaxClicks.min,palette:C.heatmapColors}):null,o(B,{active:!c.layersLoaded}),o("div",{id:"fps"}),t.initialized&&o(F,{}),t.initialized&&o(Y,{store:t.sessionsFilterStore}),t.initialized&&o(Q,{store:t.speakerFilterStore}),o(P,{}),t.initialized&&e.setKioskModeEnabled&&o(a,{fallback:null,children:o(ne,{})}),t.initialized&&!e.setKioskModeEnabled&&o(a,{fallback:null,children:o(se,{})})]})})});