@expofp/floorplan 3.23.4 → 3.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/{Button-CMjW-Wfe.js → Button-Bw0hqT6o.js} +5 -5
- package/dist/browser/{CookieConsent-CW284IES.js → CookieConsent-DAoC1-xI.js} +7 -7
- package/dist/browser/{Debug-CnCFIYN7.js → Debug-3VToRuwQ.js} +7 -7
- package/dist/browser/{Demo-CYyNMvhs.js → Demo-BYUTTvOd.js} +9 -9
- package/dist/browser/{Free-facWfhIR.js → Free-CtdSA5bo.js} +9 -9
- package/dist/browser/{GalleryContainer-CN_T22CR.js → GalleryContainer-D7tIVZPr.js} +10 -10
- package/dist/browser/{GpsLoader-CbUgoSPS.js → GpsLoader-q-Mc4g77.js} +10 -10
- package/dist/browser/{KioskStore-ISJXu8M3.js → KioskStore-CAS07rsa.js} +8 -6
- package/dist/browser/{MaplibreAdapter-HozQALVd.js → MaplibreAdapter-CEgsHtMU.js} +16 -16
- package/dist/browser/{ModalContainer-TFMi7yPb.js → ModalContainer-gqVQe0mT.js} +10 -10
- package/dist/browser/{PermissionNotice-D8AsL3Rf.js → PermissionNotice-CNmf5lZ2.js} +6 -6
- package/dist/browser/{SetKioskMode-CMYbngGo.js → SetKioskMode-C2jN1b9b.js} +8 -8
- package/dist/browser/{ShowKiosk-Dz5ClbzP.js → ShowKiosk-8zZRT4DP.js} +10 -10
- package/dist/browser/{ViewerMenuPanel-DYWI-sVx.js → ViewerMenuPanel-CLYKOSWi.js} +9 -9
- package/dist/browser/{add-debug-secret-listener-BqoA69bT.js → add-debug-secret-listener-Dumma9XW.js} +1 -1
- package/dist/browser/{adopt-global-settings-gawg1AYH.js → adopt-global-settings-B2I-44tK.js} +9 -9
- package/dist/browser/{boolean-editor-D1Nenbcb.js → boolean-editor-BL-iAvZv.js} +9 -9
- package/dist/browser/{bootIntercom-D8Ovpvsf.js → bootIntercom-DNhRU_h3.js} +2 -2
- package/dist/browser/{booth-by-xy-CDILVq68.js → booth-by-xy-BPzI_I_r.js} +6 -6
- package/dist/browser/bundle.json +65 -65
- package/dist/browser/{classnames-AfOVHR26.js → classnames-BwuQCVfY.js} +2 -2
- package/dist/browser/{client-ssZKxczh.js → client-CkkTg10f.js} +4 -4
- package/dist/browser/{components-Dm6-yZm9.js → components-xW0xn4HR.js} +47 -46
- package/dist/browser/{debug-overlay-DAGK3p4l.js → debug-overlay-BY_f3k5v.js} +10 -10
- package/dist/browser/{debug-ui-C8LFrZdI.js → debug-ui-COPw_jJ2.js} +6 -6
- package/dist/browser/{dist-CiboCeGu.js → dist-CZOs6dlD.js} +3 -3
- package/dist/browser/{dist-DJvRIVfK.js → dist-CmtO-q5U.js} +6 -6
- package/dist/browser/{dist-YLJ6P_kD.js → dist-D6TtmmNR.js} +5 -5
- package/dist/browser/{efp-debug-init-CMVs44Ef.js → efp-debug-init-DbuQ2yZ4.js} +3 -3
- package/dist/browser/{enum-editor-DjmY5QZ2.js → enum-editor-ChCH_AbI.js} +4 -4
- package/dist/browser/{es5-C-OnPKvg.js → es5-CHdGSiQh.js} +2 -2
- package/dist/browser/{event-not-found-AA1zgSI7.js → event-not-found-BehJpGAv.js} +1 -1
- package/dist/browser/{exports-DXos-KW5.js → exports-D6Lf24yv.js} +1 -1
- package/dist/browser/{favicon-D6BF75VK.js → favicon-C6VPDk5V.js} +1 -1
- package/dist/browser/{fetch-retry.umd-BXpR-AMS.js → fetch-retry.umd-CAHs6cmO.js} +2 -2
- package/dist/browser/{flex-CHBAsz6k.js → flex-Dd2gfX5v.js} +5 -5
- package/dist/browser/{floorplan.loader-CtjpCpCn.js → floorplan.loader-DNDB13gB.js} +10 -10
- package/dist/browser/{floorplan.ready-BKDEkDPs.js → floorplan.ready-DdXVp9Bo.js} +14 -14
- package/dist/browser/{fuse-joM66oL4.js → fuse-DjbxK1_r.js} +2 -2
- package/dist/browser/{i18n-B2PKgaRM.js → i18n-DNHCTIl_.js} +5 -5
- package/dist/browser/index.js +14 -14
- package/dist/browser/{index.module-DyN0SG5D.js → index.module-BgjhhzkD.js} +4 -4
- package/dist/browser/{integrateKiosk-D-dpWpO-.js → integrateKiosk-DJW2dIlz.js} +4 -4
- package/dist/browser/{is-webview-D2trLq6x.js → is-webview-ymBXdDWY.js} +1 -1
- package/dist/browser/{jsx-runtime-DCjpnPcf.js → jsx-runtime-9dbUZslp.js} +2 -2
- package/dist/browser/{kiosk-record-CWYTS2rI.js → kiosk-record-C-ZbQR1P.js} +1 -1
- package/dist/browser/{lib-C13YwwrK.js → lib-CivfxMxt.js} +3 -3
- package/dist/browser/{loadImage-C7nbLFSF.js → loadImage-DOmtMmNj.js} +4 -4
- package/dist/browser/{logDeviceInfo-Caz-vsUM.js → logDeviceInfo-ZMWKzrjm.js} +9 -9
- package/dist/browser/{main-DDHimzO8.js → main-BQPKEs3u.js} +1 -1
- package/dist/browser/{mobx-CSyFeOkR.js → mobx-CmQWlos3.js} +4 -4
- package/dist/browser/{optional-boolean-editor-BRyOWGK-.js → optional-boolean-editor-DxUi2Auz.js} +3 -3
- package/dist/browser/{optional-enum-editor-C3IeVDSt.js → optional-enum-editor-DH_Sbb5_.js} +4 -4
- package/dist/browser/{optional-string-editor-BvQqzBEY.js → optional-string-editor-DjvpIPIy.js} +4 -4
- package/dist/browser/{particles.min-C_QMjnLe.js → particles.min-BPPTx23M.js} +2 -2
- package/dist/browser/{react-Ax95PQb6.js → react-DC0_Dc5U.js} +2 -2
- package/dist/browser/{react-dom-CzzHhy_E.js → react-dom-BvbU6dCN.js} +3 -3
- package/dist/browser/{rolldown-runtime-DLlrs9dD.js → rolldown-runtime-DhRBYm2e.js} +1 -1
- package/dist/browser/{select-DWSfj7cW.js → select-D0UxO-rY.js} +10 -10
- package/dist/browser/{settings-prb_Xydk.js → settings-DLUbCP3F.js} +2 -2
- package/dist/browser/{settings-item-D2stfzwD.js → settings-item-YF8fKRZY.js} +6 -6
- package/dist/browser/{store-Cm_lCLUY.js → store-Bn4GUIsw.js} +175 -147
- package/dist/browser/{string-editor-D-vFKE-L.js → string-editor-BTNVGDDd.js} +4 -4
- package/dist/browser/{text-field-hXSRrbCO.js → text-field-Dtzv6Odi.js} +5 -5
- package/dist/browser/{theme-1MLT_N2G.js → theme-BRK-tpxv.js} +8 -8
- package/dist/browser/{ui-_mJ4KCW6.js → ui-qNmuus3-.js} +8 -8
- package/dist/browser/{useRenderTarget-mdzSfUSx.js → useRenderTarget-FWd5uFIq.js} +4 -4
- package/dist/esm/components/Bookmarks.d.ts +1 -1
- package/dist/esm/components/Kiosk/KioskStore.d.ts +1 -1
- package/dist/esm/components/Kiosk/KioskStore.js +1 -1
- package/dist/esm/components/Kiosk/kioskUrlParam.d.ts +1 -1
- package/dist/esm/components/Map/Map.js +1 -1
- package/dist/esm/components/Maplibre/utils/geo-config.js +1 -1
- package/dist/esm/components/OverlayContainer.js +1 -1
- package/dist/esm/components/TourPoints.d.ts +2 -1
- package/dist/esm/components/Visited.d.ts +2 -1
- package/dist/esm/floorplan.loader.d.ts +1 -1
- package/dist/esm/store/LayerStore.d.ts +7 -6
- package/dist/esm/store/LayerStore.js +1 -1
- package/dist/esm/store/RouteStore.d.ts +16 -16
- package/dist/esm/store/RouteStore.js +1 -1
- package/dist/esm/store/UIState.d.ts +21 -22
- package/dist/esm/store/UIState.js +1 -1
- package/dist/esm/types.d.ts +21 -4
- package/dist/esm/wayfinding/index.d.ts +1 -0
- package/package.json +9 -9
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Box, Point } from '@expofp/geometry';
|
|
2
|
-
import { RawPoiType } from '@expofp/schema';
|
|
3
|
-
import { ReactNode } from 'react';
|
|
4
|
-
import { Kiosk } from '../components/Kiosk/SetKiosk';
|
|
5
|
-
import { Booth } from './BoothStore';
|
|
6
|
-
import { Category } from './CategoryStore';
|
|
7
|
-
import { EventItem, Track } from './EventStore';
|
|
2
|
+
import type { RawPoiType } from '@expofp/schema';
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
|
+
import type { Kiosk } from '../components/Kiosk/SetKiosk';
|
|
5
|
+
import { type Booth } from './BoothStore';
|
|
6
|
+
import type { Category } from './CategoryStore';
|
|
7
|
+
import { EventItem, type Track } from './EventStore';
|
|
8
8
|
import { Exhibitor } from './ExhibitorStore';
|
|
9
|
-
import { FuzzySearchResult } from './FuzzySearchEngineStore';
|
|
10
|
-
import RootStore from './RootStore';
|
|
9
|
+
import type { FuzzySearchResult } from './FuzzySearchEngineStore';
|
|
10
|
+
import type RootStore from './RootStore';
|
|
11
11
|
import { Route } from './RouteStore';
|
|
12
12
|
import { SpeakerItem } from './SpeakerStore';
|
|
13
13
|
import type { BannerType, InterfaceAction, ListItem, ListType, MapSettings, OverlaySize, Visibility } from './types';
|
|
@@ -30,8 +30,8 @@ export default class UIState {
|
|
|
30
30
|
private readonly rootStore;
|
|
31
31
|
private readonly interfaceMetadata;
|
|
32
32
|
list: ListType;
|
|
33
|
-
details: Booth | Exhibitor | Route | Category | EventItem | SpeakerItem;
|
|
34
|
-
hoveredExhibitor: Exhibitor;
|
|
33
|
+
details: Booth | Exhibitor | Route | Category | EventItem | SpeakerItem | null;
|
|
34
|
+
hoveredExhibitor: Exhibitor | null;
|
|
35
35
|
hoveredBooth: Booth | null;
|
|
36
36
|
zoomBy: number | null;
|
|
37
37
|
rollReset: boolean;
|
|
@@ -51,13 +51,13 @@ export default class UIState {
|
|
|
51
51
|
searchClearMode: boolean;
|
|
52
52
|
printingPdf: boolean;
|
|
53
53
|
screenSize: Point;
|
|
54
|
-
desiredOverlaySize
|
|
54
|
+
desiredOverlaySize?: OverlaySize;
|
|
55
55
|
overlayShowsAll: boolean;
|
|
56
56
|
centerMap: boolean;
|
|
57
57
|
zoomAfTransformK: number;
|
|
58
58
|
activeListIndex: number;
|
|
59
59
|
devicePixelRatio: number;
|
|
60
|
-
previewExhibitor: Exhibitor;
|
|
60
|
+
previewExhibitor: Exhibitor | null;
|
|
61
61
|
wsStarted: boolean;
|
|
62
62
|
canvasStarted: boolean;
|
|
63
63
|
kiosk: boolean;
|
|
@@ -76,7 +76,7 @@ export default class UIState {
|
|
|
76
76
|
monochrome: boolean;
|
|
77
77
|
heatmap: boolean;
|
|
78
78
|
heatmapYah: boolean;
|
|
79
|
-
rootElement: HTMLDivElement;
|
|
79
|
+
rootElement: HTMLDivElement | null;
|
|
80
80
|
debugCircles: {
|
|
81
81
|
x: number;
|
|
82
82
|
y: number;
|
|
@@ -94,7 +94,6 @@ export default class UIState {
|
|
|
94
94
|
selectedPoiTypeFilters: RawPoiType[];
|
|
95
95
|
selectedTrack: Track | null;
|
|
96
96
|
subButtonsVisible: boolean;
|
|
97
|
-
mapControlsDOMRect: DOMRect;
|
|
98
97
|
searchBoxMode: 'search' | 'details' | 'interface';
|
|
99
98
|
searchBoxTitle: string;
|
|
100
99
|
searchBoxSubtitle?: string;
|
|
@@ -140,7 +139,7 @@ export default class UIState {
|
|
|
140
139
|
get onBookmarkClick(): (e: import("..").FloorPlanBookmarkClickEvent) => void;
|
|
141
140
|
get onVisitedClick(): (e: import("..").FloorPlanVisitedClickEvent) => void;
|
|
142
141
|
get onCategoryClick(): (e: import("..").FloorPlanCategory) => void;
|
|
143
|
-
get onDirection(): (e: import("..").FloorPlanDirectionEvent) => void;
|
|
142
|
+
get onDirection(): (e: import("..").FloorPlanDirectionEvent | null) => void;
|
|
144
143
|
get onDetails(): (e: import("..").FloorPlanDetailsEvent) => void;
|
|
145
144
|
get onExhibitorCustomButtonClick(): (e: import("..").FloorPlanCustomButtonEvent) => void;
|
|
146
145
|
get onGetCoordsClick(): (e: import("..").FloorPlanGetCoordsEvent) => void;
|
|
@@ -155,8 +154,8 @@ export default class UIState {
|
|
|
155
154
|
get headerHeightRem(): number;
|
|
156
155
|
get headerHeightPx(): number;
|
|
157
156
|
get overlayPosition(): "bottom" | "left";
|
|
158
|
-
get overlayCollapsed():
|
|
159
|
-
get overlaySize(): OverlaySize;
|
|
157
|
+
get overlayCollapsed(): boolean;
|
|
158
|
+
get overlaySize(): OverlaySize | undefined;
|
|
160
159
|
get overlayBottom(): boolean;
|
|
161
160
|
get overlayLeft(): boolean;
|
|
162
161
|
get overlayWidthPx(): number;
|
|
@@ -171,11 +170,11 @@ export default class UIState {
|
|
|
171
170
|
get mapVisibleBottom(): number;
|
|
172
171
|
get mapVisibleStart(): number;
|
|
173
172
|
get searchActionsHeightPx(): number;
|
|
174
|
-
get shouldShowSearchButtons():
|
|
173
|
+
get shouldShowSearchButtons(): boolean;
|
|
175
174
|
get shouldShowMobileToggle(): boolean;
|
|
176
175
|
get mobileToggleIsListMode(): boolean;
|
|
177
176
|
get canvasVisibleRectPx(): Box;
|
|
178
|
-
get shouldShiftMapRect():
|
|
177
|
+
get shouldShiftMapRect(): boolean | Category | EventItem | Exhibitor | Route | SpeakerItem | Booth | null;
|
|
179
178
|
get hasAppliedFilters(): boolean;
|
|
180
179
|
get canvasVisibleRectPt(): Box;
|
|
181
180
|
get canvasSizePt(): Point;
|
|
@@ -187,7 +186,7 @@ export default class UIState {
|
|
|
187
186
|
get searchItems(): ListItem[];
|
|
188
187
|
get searchList(): ListItem[];
|
|
189
188
|
get foundInDescription(): ListItem[];
|
|
190
|
-
get foundInDescriptionStruct(): Record<
|
|
189
|
+
get foundInDescriptionStruct(): Record<string, string>;
|
|
191
190
|
get categoryFilteredSearchList(): ListItem[];
|
|
192
191
|
get fuzzySearchItems(): FuzzySearchResult<ListItem>[];
|
|
193
192
|
get listItems(): ListItem[];
|
|
@@ -249,11 +248,11 @@ export default class UIState {
|
|
|
249
248
|
private initializeUIScale;
|
|
250
249
|
minUIScale: number;
|
|
251
250
|
maxUIScale: number;
|
|
252
|
-
setUIScale(scale: number, saveToStorage?: boolean): void;
|
|
251
|
+
setUIScale(scale: number | undefined, saveToStorage?: boolean): void;
|
|
253
252
|
resetUIScale(): void;
|
|
254
253
|
setKioskModeEnabled: boolean;
|
|
255
254
|
enableSetKioskMode(enable: boolean): void;
|
|
256
|
-
kioskData: Kiosk;
|
|
255
|
+
kioskData: Kiosk | null;
|
|
257
256
|
setKioskData(kioskData: Kiosk | null): void;
|
|
258
257
|
}
|
|
259
258
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate as e}from"tslib";import{Box as it}from"@expofp/geometry";import{action as u,computed as n,observable as l}from"mobx";import{setKioskUrlParams as st}from"../components/Kiosk/kioskUrlParam";import{LANGUAGE_TYPE as E,LEGACY_PREVIEW_MODE_STORAGE_KEY as rt,LEGACY_UI_SCALE_STORAGE_KEY as N,LEGACY_VIEWER_MODE_STORAGE_KEY as lt,MOBILE_BREAKPOINT as at,PREVIEW_MODE_STORAGE_KEY as nt,UI_SCALE_STORAGE_KEY as U,VIEWER_MODE_STORAGE_KEY as ht,VISIBILITY_STORAGE_KEY as W}from"../constants";import C from"../data";import{svgArea as H,svgAreaExplicit as ct}from"../data/svg";import{readFreeBannerDismissed as pt}from"../tools/freeBanner";import{hasUserConsent as dt}from"../tools/gtag";import{hasHtmlTags as X}from"../tools/has-html-tags";import ut from"../tools/logger";import L from"../tools/settings";import{stripHtml as j}from"../tools/strip-html";import{remsToPixels as F}from"../utils";import Z from"../utils/browser";import{getLocale as ft,getLocales as yt,t as v}from"../utils/i18n";import{isLocalStorageAvailable as w}from"../utils/localStorage";import{getResponsiveClass as mt}from"../utils/responsiveClass";import{sanitizeStr as J}from"../utils/sanitizeText";import{fitRectIsFraming as gt,getVenueFitMarginPercent as St,resolveVenueFitRect as vt}from"../utils/scene-bounds";import{uiState as P}from".";import{BoothBase as I,RegularBooth as M,SpecialBooth as _}from"./BoothStore";import{EventItem as O}from"./EventStore";import{Exhibitor as x}from"./ExhibitorStore";import{findEntityByExternalId as bt,Route as R}from"./RouteStore";import{SpeakerItem as V}from"./SpeakerStore";const It=["dimensions25"];export default class t{setSelectedCategoryFilters(o){this.selectedCategoryFilters=o}resetCategoryFilter(){this.selectedCategoryFilters=[],this.categoryFilterOpen=!1}setSearchClearMode(o){this.searchClearMode=o}setRouteTitle(o){this.routeTitle=o}setRouteDescription(o){this.routeDescription=o}setIsMultiPointRoute(o){this.isMultiPointRoute=o}setTourTitle(o){this.tourTitle=o}setTourDescription(o){this.tourDescription=o}setIsMultiPointTour(o){this.isMultiPointTour=o}setPathwayOnlyMode(o){this.pathwayOnlyMode=o}setMultiPointTourList(o){this.list={type:"multi-point-tour",tourId:o}}get activePathwayLayers(){return this.list?.type==="multi-point-tour"?this.rootStore.toursStore.getTourById(this.list.tourId)?.layers?.map(a=>a.id)||[]:[]}get highlightedBooths(){const o=new Set(this.rootStore.exhibitorStore.highlightedByExternalIds),a=new Set(this.rootStore.boothStore.highlightedByExternalIds),s=new Set([this.rootStore.exhibitorStore.exhibitors.filter(i=>o.has(i.externalId)).flatMap(i=>i.booths.filter(r=>r instanceof M)).map(i=>i.id.toString()),this.rootStore.boothStore.booths.filter(i=>a.has(i.externalId)).map(i=>i.id.toString())].flat());if(this.list?.type==="search"&&this.list?.text?.trim().length){s.clear();const i=this.fuzzySearchItems.filter(r=>r.score===0).map(r=>r.item);i.length?D(i,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems).forEach(r=>s.add(r.id.toString())):this.listBooths.forEach(r=>s.add(r.id.toString()))}if(this.list?.type==="filter"&&(s.clear(),this.list.items.flatMap(i=>i.booths.filter(r=>r instanceof M)).forEach(i=>s.add(i.id.toString()))),this.categoryFilterOpen&&this.selectedCategoryFilters.length>0?(s.clear(),this.selectedCategoryFilters.forEach(i=>{i.exhibitors.flatMap(r=>r.booths).forEach(r=>s.add(r.id.toString()))})):this.list?.type==="category"&&(s.clear(),this.list.category.exhibitors.flatMap(i=>i.booths).forEach(i=>s.add(i.id.toString()))),this.list?.type==="bookmarks"&&(s.clear(),D(this.listItems,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems).forEach(i=>s.add(i.id.toString()))),this.list?.type==="visited"&&(s.clear(),D(this.listItems,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems).forEach(i=>s.add(i.id.toString()))),this.list?.type==="exhibitors"){s.clear();const i=this.list.text?.toLowerCase().trim();let r=this.rootStore.exhibitorStore.exhibitors;i&&(r=r.filter(d=>d.name.toLowerCase().includes(i))),r.flatMap(d=>d.booths.filter(f=>f instanceof M)).forEach(d=>s.add(d.id.toString()))}if(this.selectedPoiTypeFilters.length>0&&(s.clear(),this.selectedPoiTypeFilters.forEach(i=>{this.rootStore.boothStore.booths.filter(r=>r.poiTypeId===i.id).forEach(r=>s.add(r.id.toString()))})),this.details instanceof R&&(s.clear(),this.details.from instanceof I&&s.add(this.details.from.id.toString()),this.details.to instanceof I&&s.add(this.details.to.id.toString()),this.details.waypoints?.forEach(i=>s.add(i.id.toString()))),this.details instanceof I&&(s.clear(),s.add(this.details.id.toString())),this.details instanceof x&&(s.clear(),this.details.booths.filter(i=>i instanceof M).forEach(i=>s.add(i.id.toString()))),this.details instanceof O){const i=this.details;if(i.boothId){s.clear();const r=this.rootStore.boothStore.booths.find(d=>d.id===i.boothId);r&&s.add(r.id.toString())}}return s.delete(void 0),s.delete(null),s}constructor(o){this.interfaceMetadata=Object.freeze([{id:"menu",className:"efp-overlay-menu",priority:80,isActive:()=>this.menu,searchBoxConfig:()=>({mode:"interface",title:v("Menu")})},{id:"exhibitor",className:"efp-overlay-exhibitor",priority:70,isActive:()=>this.details instanceof x,searchBoxConfig:()=>({mode:"details",title:this.details.name})},{id:"booth",className:"efp-overlay-booth",priority:70,isActive:()=>this.details instanceof I,searchBoxConfig:()=>{const a=this.details;return{mode:"details",title:a.title||a.name}}},{id:"event",className:"efp-overlay-event",priority:70,isActive:()=>this.details instanceof O,searchBoxConfig:()=>({mode:"details",title:this.details.name})},{id:"route",className:"efp-overlay-route",priority:70,isActive:()=>this.details instanceof R,searchBoxConfig:()=>{const a=this.details;return{mode:"details",title:v("Directions")}}},{id:"search",className:"efp-overlay-search",priority:60,isActive:()=>!this.details&&!this.menu&&this.list.type==="search"&&(this.rootStore.fp.alwaysShowSidebar&&!this.overlayOnDemand||this.heatmap||this.searchFocused||this.list.text.length>0||this.searchClearMode),searchBoxConfig:()=>({mode:"search",title:v("Search")})},{id:"exhibitors",className:"efp-overlay-exhibitors",priority:50,isActive:()=>this.list.type==="exhibitors"&&!this.details,searchBoxConfig:()=>({mode:"search",title:v("Exhibitors")})},{id:"filter",className:"efp-overlay-filter",priority:50,isActive:()=>this.list.type==="filter"&&!this.details,searchBoxConfig:()=>({mode:"search",title:v("Filter")})},{id:"bookmarks",className:"efp-overlay-bookmarks",priority:50,isActive:()=>this.list.type==="bookmarks"&&!this.details,searchBoxConfig:()=>({mode:"interface",title:v("Bookmarks"),badge:this.rootStore.bookmarksStore.total})},{id:"visited",className:"efp-overlay-visited",priority:50,isActive:()=>this.list.type==="visited"&&!this.details,searchBoxConfig:()=>({mode:"interface",title:v("Visited"),badge:this.rootStore.exhibitorStore.visited.length})},{id:E,className:"efp-overlay-language",priority:50,isActive:()=>this.list.type===E,searchBoxConfig:()=>({mode:"interface",title:v("Language")})},{id:"category",className:"efp-overlay-category",priority:50,isActive:()=>!P.menu&&!!P.selectedCategory,searchBoxConfig:()=>({mode:"interface",title:this.list.type==="category"&&this.list.category?.name||v("Categories")})},{id:"sessions",className:"efp-overlay-sessions",priority:50,isActive:()=>this.list.type==="sessions"&&!this.details,searchBoxConfig:()=>({mode:"search",title:v("Sessions"),subtitle:this.selectedTrack?this.selectedTrack.name:void 0})},{id:"speakers",className:"efp-overlay-speakers",priority:50,isActive:()=>this.list.type==="speakers"&&!this.details,searchBoxConfig:()=>({mode:"search",title:v("Speakers")})},{id:"speaker",className:"efp-overlay-speaker",priority:50,isActive:()=>this.details instanceof V,searchBoxConfig:()=>({mode:"details",title:this.details.name})},{id:"tours",className:"efp-overlay-tours",priority:50,isActive:()=>this.list.type==="tours"&&!this.details,searchBoxConfig:()=>({mode:"search",title:v("Guided Tours")})},{id:"multi-point-wayfinding",className:"efp-overlay-multi-point",priority:75,isActive:()=>!!(this.isMultiPointRoute&&this.selectedRoute&&this.list.type!=="route-planner"),searchBoxConfig:()=>({mode:"interface",title:this.routeTitle||v("Multi-point route")})},{id:"multi-point-tour",className:"efp-overlay-multi-point-tour",priority:75,isActive:()=>this.list.type==="multi-point-tour"&&!this.details,searchBoxConfig:()=>({mode:"interface",title:this.tourTitle||v("Multi-point route")})},{id:"route-planner",className:"efp-overlay-route-planner",priority:76,isActive:()=>this.list.type==="route-planner"&&(!this.details||this.details instanceof R),searchBoxConfig:()=>({mode:"interface",title:v("Route planner")})}].sort((a,s)=>s.priority-a.priority)),this.list={type:"search",text:"",focused:!1},this.details=null,this.hoveredExhibitor=null,this.hoveredBooth=null,this.zoomBy=null,this.rollReset=!1,this.moveToBooths=null,this.moveToRect=null,this.moveToRectPaddingPercent=null,this.moveToLocation=!1,this.menu=!1,this.searchFocused=!1,this.searchClearMode=!1,this.printingPdf=!1,this.overlayShowsAll=!1,this.centerMap=!1,this.zoomAfTransformK=1,this.activeListIndex=-1,this.devicePixelRatio=window.devicePixelRatio,this.previewExhibitor=null,this.wsStarted=!1,this.canvasStarted=!1,this.kiosk=!1,this.inIdle=!1,this.modalActive={share:!1},this.galleryActive=!1,this.hideOverlay=!1,this.searchButtonsOverride=null,this.hideCookieConsent=!!dt(),this.hideHeaderLogo=!1,this.hideLogoInBooth=!1,this.disableBookmarked=!1,this.hideLanguage=!1,this.monochrome=!1,this.heatmap=!1,this.heatmapYah=!1,this.debugCircles=[],this.mapControlsHidden=!1,this.floorsControlHidden=!1,this.hideFreeOrDemo=!1,this.freeBannerDismissed=pt(sessionStorage),this.currentBanner=null,this.sceneDefReady=!1,this.categoryFilterOpen=!1,this.selectedCategoryFilters=[],this.selectedPoiTypeFilters=[],this.selectedTrack=null,this.subButtonsVisible=!1,this.searchBoxMode="search",this.searchBoxTitle="",this.isMultiPointRoute=!1,this.isMultiPointTour=!1,this.pathwayOnlyMode=!1,this.isOverlayScrolled=!1,this.listScrollTop=0,this.listScrollItemId=null,this.listScrollIndex=0,this.scrollPositions=new Map,this.scrollItemIds=new Map,this._customUIScale=null,this.searchFilterHeightPx=54,this.searchInputHeightPx=54,this.overlayUISizePx=390,this.overlayKioskSizePx=450,this.overlayMediumHeightRems=10,this.forceDim=!1,this.mapSettings={...this.defaultMapSettings},this.forceShowDetails=!1,this.buildRoute=!1,this.globalErrorMessages=[],this.minUIScale=.8,this.maxUIScale=1.4,this.setKioskModeEnabled=!1,this.rootStore=o,this.initializeUIScale()}get rtl(){const o=ft();return o==="ar"||o==="he"}get noOverlay(){return this.rootStore.fp.noOverlay||this.hideOverlay}get overlayOnDemand(){return this.noOverlay&&this.searchButtonsOverride===!0}get overlayHiddenNow(){return this.noOverlay&&!(this.overlayOnDemand&&this.isOverlayOpen)}get onBoothClick(){return this.rootStore.fp.onBoothClick}get onMarkerClick(){return this.rootStore.fp.onMarkerClick}get onBookmarkClick(){return this.rootStore.fp.onBookmarkClick}get onVisitedClick(){return this.rootStore.fp.onVisitedClick}get onCategoryClick(){return this.rootStore.fp.onCategoryClick}get onDirection(){return this.rootStore.fp.onDirection}get onDetails(){return this.rootStore.fp.onDetails}get onExhibitorCustomButtonClick(){return this.rootStore.fp.onExhibitorCustomButtonClick}get onGetCoordsClick(){return this.rootStore.fp.onGetCoordsClick}get selectedExhibitor(){return this.details instanceof x?this.details:null}get selectedBooth(){return this.details instanceof I?this.details:null}get selectedCategory(){return this.list.type==="category"?this.list.category:null}get selectedRoute(){return this.details instanceof R?this.details:null}get selectedSpeaker(){return this.details instanceof V?this.details:null}get uiScale(){return this._customUIScale!==null?this._customUIScale:this.kiosk?1.2:1}get isGuidedToursActive(){return this.rootStore.toursStore.isActive}get getRouteNextFloor(){const o=this.rootStore.routeStore.pathLayers,a=this.rootStore.routeStore.currentRouteLayer?.name;if(!a)return null;const s=o.findIndex(c=>c.layer?.name===a);return s===-1?null:o[s+1]?.layer?.name}get headerHeightRem(){return 0}get headerHeightPx(){return F(this.headerHeightRem)}get overlayPosition(){return!this.screenSize||this.screenSize.width>at||this.kiosk?"left":"bottom"}get overlayCollapsed(){return this.kiosk&&this.overlayPosition==="left"&&!this.searchFocused&&!this.menu&&!this.details&&!this.selectedCategory&&!this.selectedExhibitor&&this.list.type!=="bookmarks"&&this.list.type!==E&&!this.list.text?.length}get overlaySize(){return this.overlayLeft?"full":this.desiredOverlaySize}get overlayBottom(){return this.overlayPosition==="bottom"}get overlayLeft(){return this.overlayPosition==="left"}get overlayWidthPx(){return this.overlayHiddenNow?0:this.overlayLeft?this.kiosk?this.overlayKioskSizePx:this.overlayUISizePx:F(this.screenSize.width)}get wsImageHeightPx(){return 44}get wsPaddingPx(){return F(.25)}get wsOccupiedHeightPx(){return this.wsShown?this.wsImageHeightPx+this.wsPaddingPx*2:0}get wsShown(){return!this.hideHeaderLogo&&this.rootStore.exhibitorStore.advertised.length>0}get wsDesktopPosition(){return L.EXPO==="cbresupplypartner"?"bottom":"top"}get wsPosition(){return this.overlayBottom?"top":this.wsDesktopPosition}get responsiveClass(){return mt(this.screenSize.width)}get mapVisibleTop(){return(this.wsPosition==="top"?this.wsOccupiedHeightPx:0)+this.headerHeightPx}get mapVisibleBottom(){return this.overlayLeft||this.overlayHiddenNow?this.wsPosition==="bottom"?this.wsOccupiedHeightPx:0:F(this.overlayMediumHeightRems)}get mapVisibleStart(){return 0}get searchActionsHeightPx(){return this.overlayPosition==="bottom"?this.searchInputHeightPx+this.searchFilterHeightPx:this.searchInputHeightPx}get shouldShowSearchButtons(){return this.rootStore.searchButtonsStore.hasAnySearchButtons&&!this.details&&!this.menu&&![E,"filter"].includes(this.list.type)}get shouldShowMobileToggle(){const o=this.list.type==="route-planner";return this.overlayPosition==="bottom"&&(o||!this.details&&!this.menu&&this.list.type!==E&&this.list.type!=="bookmarks"&&this.list.type!=="sessions")}get mobileToggleIsListMode(){return!this.isOverlayOpen||this.overlaySize!=="full"}get canvasVisibleRectPx(){const o=this.screenSize;return it.fromMinMax({x:P.rtl?0:this.mapVisibleStart,y:this.mapVisibleTop+this.searchActionsHeightPx},{x:P.rtl?o.width-this.mapVisibleStart:o.width,y:o.height-this.mapVisibleBottom})}get shouldShiftMapRect(){return this.overlayPosition==="left"&&(this.details||this.hasAppliedFilters||this.selectedRoute)}get hasAppliedFilters(){return this.selectedCategoryFilters.length>0||this.selectedPoiTypeFilters.length>0}get canvasVisibleRectPt(){return this.canvasVisibleRectPx.scale(this.devicePixelRatio,{x:0,y:0})}get canvasSizePt(){return this.screenSize.multiply(this.devicePixelRatio)}get shouldUseBackdrop(){if(P.overlayCollapsed)return!1;if(w&&localStorage.getItem("forcebackdrop")==="1")return!0;if(this.overlayBottom||this.selectedExhibitor?.leadingImageUrl&&!this.selectedExhibitor?.leadingImageLinkUrl)return!1;const o=Z.satisfies({safari:">=13"}),a=Z.satisfies({chrome:">=77"});var s=/(android)/i.test(navigator.userAgent);return s?!1:o||a&&P.canvasSizePt.height*P.canvasSizePt.width<3e6}setForceDim(o){this.forceDim=o}get dimmed(){return this.forceDim||this.pathwayOnlyMode?!0:this.highlightedBooths.size>0||this.list?.type==="search"&&this.list?.text?.trim().length>0||this.list?.type==="exhibitors"}get defaultSearchItems(){const{exhibitorStore:o,categoryStore:a,boothStore:s,heatmapStore:c}=this.rootStore;let i=o.exhibitors;const r=a.categories.filter(y=>y.exhibitors.length),d=s.booths;this.selectedPoiTypeFilters.length>0&&(i=i.filter(y=>y.booths.some(m=>this.selectedPoiTypeFilters.some(S=>m.poiTypeId===S.id))));let f=[];const k=!this.selectedCategoryFilters.length&&C.showCategories?r.filter(y=>It.includes(L.EXPO)?!y.name.includes("/"):!0):[],T=d.filter(y=>y instanceof _);return this.selectedCategoryFilters.length>0?f=[...i]:(C.showCompaniesAndBooths&&(f=f.concat(i)),C.showOtherSpaces&&(f=f.concat(T))),this.heatmap?[...i,...d].sort((m,S)=>c.getClicksByType(S)-c.getClicksByType(m)):this.heatmapYah?c.heatmapData?.yah?.sort((y,m)=>c.getClicksByType(m)-c.getClicksByType(y))||[]:i.length===0?d:k.concat(f.sort((y,m)=>{const S=y instanceof x&&y.featured!==void 0,B=m instanceof x&&m.featured!==void 0;if(S!==B)return S?-1:1;const A=y instanceof _&&y.title?y.title:y.name,z=m instanceof _&&m.title?m.title:m.name;return A.localeCompare(z,void 0,{sensitivity:"base",numeric:!0})}))}get searchItems(){if(this.list.type!=="search")return[];let o=this.list.text?.trim().toLowerCase()||"";const{exhibitorStore:a,categoryStore:s,boothStore:c,eventStore:i,speakerStore:r,heatmapStore:d}=this.rootStore;let f=a.exhibitors;const k=s.categories.filter(h=>h.exhibitors.length),T=c.booths,y=i.eventItems,m=r.speakers;if(this.selectedCategoryFilters.length>0&&(f=f.filter(h=>this.selectedCategoryFilters.some(p=>h.categories.some(g=>g.id===p.id)))),this.selectedPoiTypeFilters.length>0&&(f=f.filter(h=>h.booths.some(p=>this.selectedPoiTypeFilters.some(g=>p.poiTypeId===g.id)))),!o)return this.defaultSearchItems;const S=[o.replace(/&[^&=]+=[^&]+/g,"")];if(this.heatmapYah)return d.heatmapData.yah.filter(p=>Number.isNaN(Number(o))?p:p.viewCount>=Number(o)).sort((p,g)=>d.getClicksByType(g)-d.getClicksByType(p));const B=[],A=new Set,z=new Set,G=new Set,q=new Set;function Y(h){return h?h.replace(/[!@#$%^*-\.,\(\)^#$%:?_+'"\/]/g," ").replace(/\s\s+/g," "):""}function b(h,p){return!h||!p?!1:Y(h).toLowerCase().includes(Y(p).toLowerCase())}function Q(h,p){return h?b(h,p)||b(C.levelTerm+" "+h,p):!1}f.forEach(h=>{S.some(p=>b(h.name,p)||h.booths.some(g=>!p&&b(g.name,p)||Q(g.layer?.name??null,p)))&&A.add(h)}),this.selectedCategoryFilters.length>0&&T.forEach(h=>{(this.heatmap||!(h instanceof M)||!Array.from(A).find(g=>g.booths.includes(h)))&&S.some(g=>b(h.title||"",g)||b(h.name,g)||b(h.fullName,g)||Q(h.layer?.name??null,g))&&z.add(h)});const tt=y,et=m;if(tt.forEach(h=>{S.some(p=>b(h.name||"",p)||b(h.description||"",p))&&G.add(h)}),et.forEach(h=>{S.some(p=>b(h.name,p)||b(h.company,p)||b(h.jobTitle,p))&&q.add(h)}),B.push(...G),B.push(...A),this.heatmap)return B.sort((h,p)=>d.getClicksByType(p)-d.getClicksByType(h));const ot=new Map(B.map(h=>[h.id,h]));return B.map(h=>{if(!h.name)return null;const p=J(h instanceof I&&h.fullName.toLowerCase()||h.name.toLowerCase()),g=p.indexOf(J(o));if(g===-1)return null;const $={id:h.id,position:g,lowerCaseName:p,featured:!1};return h instanceof x&&($.featured=h.featured),$}).filter(Boolean).sort((h,p)=>(h.featured||p.featured)&&h.featured!==p.featured?h.featured?-1:1:h.position!==p.position?h.position-p.position:h.lowerCaseName.localeCompare(p.lowerCaseName)||String(h.id).localeCompare(String(p.id))).map(({id:h})=>ot.get(h))}get searchList(){return[...this.rootStore.eventStore.eventItems,...this.rootStore.speakerStore.speakers,...this.rootStore.categoryStore.categories.filter(o=>o.exhibitors.length),...this.rootStore.exhibitorStore.exhibitors,...this.rootStore.boothStore.booths]}get foundInDescription(){if(this.list?.type!=="search")return[];const o=this.list?.text?.trim().toLowerCase();if(!o)return[];const a=this.fuzzySearchItems.map(({item:r})=>r),s=new Set(a.map(r=>r.name)),c=this.categoryFilteredSearchList.filter(r=>!s.has(r.name)),i=[];for(const r of c){const d=r.description;if(!d)continue;const k=(X(d)?j(d):d).toLowerCase().indexOf(o);k!==-1&&i.push({item:r,pos:k})}return i.sort((r,d)=>r.pos-d.pos),i.map(r=>r.item)}get foundInDescriptionStruct(){const o={};if(this.list?.type!=="search")return o;const a=this.list?.text?.trim().toLowerCase();return this.foundInDescription.forEach(s=>{let c=s.description;if(!c)return;X(c)&&(c=j(c));const i=c.toLowerCase().indexOf(a);if(i===-1)return;const r=3,d=i>r?i-r:0,f=c.substring(d).trim();o[s.id]=i>0?`...${f}`:f}),o}get categoryFilteredSearchList(){return this.selectedCategoryFilters.length===0?this.searchList:this.searchList.filter(o=>o instanceof x&&this.selectedCategoryFilters.some(a=>o.categories.some(s=>s.id===a.id)))}get fuzzySearchItems(){if(this.list?.type!=="search")return[];const o=this.list?.text?.trim().toLowerCase();if(!o)return this.defaultSearchItems.map(i=>({item:i,score:0,matches:[]}));const a=this.rootStore.fuzzySearchEngineStore.search(this.categoryFilteredSearchList,o),s=[],c=[];for(const i of a){const r=i.item,d=r.entity.type,f=d==="booth"?r:null,k=d==="exhibitor"?r:null,T=[r.name?.toLowerCase()??"",f?.title?.toLowerCase()??"",f?.fullName?.toLowerCase()??"",...k?.booths?.map(m=>m.name?.toLowerCase()??"")??[]];let y=1/0;for(const m of T){const S=m.indexOf(o);S!==-1&&S<y&&(y=S)}y!==1/0?s.push({result:{item:r,score:0},pos:y}):c.push(i)}return s.sort((i,r)=>i.pos-r.pos),[...s.map(i=>i.result),...c]}get listItems(){if(this.details instanceof R&&this.list.type!=="multi-point-tour")return[this.details.from,this.details.to].filter(o=>o instanceof I);switch(this.list.type){case"search":let o=!(this.heatmap||this.heatmapYah)&&this.rootStore.fuzzySearchEngineStore.engine?this.fuzzySearchItems.map(({item:i})=>i).concat(this.foundInDescription):this.searchItems;return o=o.filter(i=>i.entity.type==="booth"?!i.exhibitors.length:!0),this.hasAppliedFilters?o.filter(i=>{if(this.selectedCategoryFilters.length>0&&i instanceof x&&!this.selectedCategoryFilters.some(r=>i.categories.some(d=>d.id===r.id)))return!1;if(this.selectedPoiTypeFilters.length>0){if(i instanceof x&&!i.booths.some(r=>this.selectedPoiTypeFilters.some(d=>r.poiTypeId===d.id))||i instanceof I&&!this.selectedPoiTypeFilters.some(r=>i.poiTypeId===r.id))return!1;if(i instanceof O&&i.boothId){const r=this.rootStore.boothStore.booths.find(d=>d.id===i.boothId);if(!r||!this.selectedPoiTypeFilters.some(d=>r.poiTypeId===d.id))return!1}}return!0}):o;case"bookmarks":return[...this.rootStore.exhibitorStore.bookmarked,...this.rootStore.eventStore.bookmarked,...this.rootStore.speakerStore.bookmarked,...this.rootStore.boothStore.booths.filter(i=>i.exhibitors.length===0&&i.bookmarkedDirectly)];case"visited":return[...this.rootStore.exhibitorStore.visited,...this.rootStore.eventStore.visited];case"category":return this.list.category.exhibitors;case E:return yt();case"filter":return this.list.items;case"sessions":return this.rootStore.eventStore.eventItems;case"exhibitors":const a=this.rootStore.exhibitorStore.exhibitors,s=this.list.text?.toLowerCase().trim();return s?a.filter(i=>i.name.toLowerCase().includes(s)):a;case"multi-point-tour":const c=this.rootStore.toursStore.getTourById(this.list.tourId);return c?!c.points||c.points.length===0?[]:c.points.map(i=>{const r=parseInt(i);if(!isNaN(r)){const f=this.rootStore.boothStore.boothById.get(r);if(f)return f}return bt(i)?.entity||null}).filter(Boolean):[];case"route-planner":return this.rootStore.routePlannerStore.resolvedBooths}throw new Error("Unknown list.type")}get listBooths(){return D(this.listItems,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems)}get selectedBooths(){let o=[];this.selectedExhibitor?o=this.selectedExhibitor.booths:this.selectedBooth&&(o=[this.selectedBooth]);const a=this.selectedRoute,s=[a?.from,a?.to,...a?.waypoints??[]].filter(c=>c instanceof I);return o.push(...s),new Set(o)}get hoveredBooths(){let o;return this.hoveredBooth?o=[this.hoveredBooth]:this.hoveredExhibitor&&(o=this.hoveredExhibitor.booths),new Set(o)}get visibility(){return{controls:!this.mapControlsHidden,levels:!this.floorsControlHidden,header:this.wsShown,overlay:!this.hideOverlay,searchButtons:this.searchButtonsOverride??!this.hideOverlay}}setVisibility(o){const a=["controls","levels","header","overlay"],s={...a.reduce((i,r)=>({...i,[r]:!0}),{}),...Object.keys(o).filter(i=>a.includes(i)).reduce((i,r)=>({...i,[r]:o[r]}),{})},c=typeof o.searchButtons=="boolean"?o.searchButtons:null;w&&(Object.values(s).every(Boolean)&&c===null?localStorage.removeItem(W):localStorage.setItem(W,JSON.stringify(c===null?s:{...s,searchButtons:c}))),this.mapControlsHidden=!s.controls,this.floorsControlHidden=!s.levels,this.hideHeaderLogo=!s.header,this.hideFreeOrDemo=!s.header,this.hideOverlay=!s.overlay,this.searchButtonsOverride=c}toggleMapOverlay(){this.overlayPosition==="bottom"&&this.overlaySize==="full"?this.desiredOverlaySize="medium":this.overlayPosition==="bottom"&&this.overlaySize!=="full"&&(this.desiredOverlaySize="full")}changeZoom(o){this.zoomBy=o}zoomIn(){this.changeZoom(1.5)}zoomOut(){this.changeZoom(.66)}fitBounds(){const{rect:o,source:a}=vt({layerViewbox:this.rootStore.layerStore.viewboxRectangle,explicitArea:ct?H:null,layerRectangle:this.rootStore.layerStore.rectangle,sceneDef:this.rootStore.rendererService.scene,svgArea:H});this.moveToRect=o,this.moveToRectPaddingPercent=gt(a)?0:St(o,H),this.rollReset=!0}get previewMode(){const o=w?localStorage.getItem(nt)??localStorage.getItem(rt):null;return o==="true"||o==="1"||this.rootStore.fp.previewMode}get viewerMode(){const o=w?localStorage.getItem(ht)??localStorage.getItem(lt):null;return o==="true"||o==="1"||this.rootStore.fp.viewerMode}get selectedEventItem(){return this.details instanceof O?this.details:null}get defaultMapSettings(){return{zoomtime:500,center:void 0,centerxy:void 0,z:void 0,bearing:0,roll:1}}setMapSettings(o){const a={};for(const s in o)o[s]!=null&&(s==="zoomtime"?a[s]=Math.min(Math.max(o[s]||this.mapSettings.zoomtime,500),5e3):a[s]=o[s]);this.mapSettings={...this.mapSettings,...a}}resetMapSettings(){this.mapSettings={...this.defaultMapSettings}}get baseQRCodeUrl(){return`https://${L.EXPO}.expofp.com`}get viewMapOnPhoneQRCodeUrl(){if(C?.customKioskQrCodeUrl)return C.customKioskQrCodeUrl;const o=new URL(this.baseQRCodeUrl);o.search=window.location.search;const a=o.toString();return console.log("View Map On Phone QR Code Url",a),a}get routeQRCodeUrl(){const o=new URL(this.baseQRCodeUrl),a=this.selectedRoute?.from,s=this.selectedRoute?.to,c=a instanceof I?a.slug:"",i=s instanceof I?s.slug:"";o.search=`?route%3A${encodeURIComponent(i)}%3A${encodeURIComponent(c)}%3Afalse`,st(o.searchParams,this.kioskData,["x","y","z"]);const r=o.toString();return console.log("Route QR Code Url",r),r}get isFeaturedExhibitorActive(){return this.details instanceof x&&!!this.details.featured}get activeInterfaceData(){for(const o of this.interfaceMetadata)if(o.isActive())return o;return null}get searchBoxConfig(){const o=this.activeInterfaceData;return!o||!o.searchBoxConfig?{mode:"search",title:"",subtitle:void 0,badge:void 0,icon:void 0}:o.searchBoxConfig()||{mode:"search",title:"",subtitle:void 0,badge:void 0,icon:void 0}}get searchBoxActions(){return this.activeInterfaceData?.actions?.()??[]}get overlayInterfaceClasses(){const o=[],a=this.activeInterfaceData;return a&&(o.push(a.className),a.additionalClasses&&o.push(...a.additionalClasses())),this.details&&o.push("overlay-has-details"),this.list.type&&o.push(`overlay-list-${this.list.type}`),this.isFeaturedExhibitorActive&&o.push("overlay-exhibitor-featured"),o}get isOverlayOpen(){return this.noOverlay&&!this.overlayOnDemand?!1:this.activeInterfaceData!==null}setOverlayScrolled(o){this.isOverlayScrolled=o}setListScrollTop(o,a){this.listScrollTop=a,this.scrollPositions.set(o,a)}setListScrollItemId(o,a){this.listScrollItemId=a,this.scrollItemIds.set(o,a)}getListScrollTop(o){return this.scrollPositions.get(o)||0}getListScrollItemId(o){return this.scrollItemIds.get(o)||null}clearListScroll(o){this.scrollPositions.delete(o),this.scrollItemIds.delete(o),this.list.type===o&&(this.listScrollTop=0,this.listScrollItemId=null)}get bannerType(){return this.hideFreeOrDemo||this.heatmap?null:L.EXPO==="expo"?"demo":C.expoFpAd||C.isTrial?"free":null}get isBannerVisible(){return this.bannerType!==null}setCurrentBanner(o){this.currentBanner=o}setForceShowDetails(o){this.forceShowDetails=o}get showRouteInstantly(){return!!(this.kiosk&&!this.forceShowDetails)}startBuildRoute(){this.rootStore.selectSearch(""),this.mapControlsHidden=!0,this.floorsControlHidden=!0,this.hideHeaderLogo=!0,this.hideFreeOrDemo=!0,this.hideOverlay=!0,this.hideCookieConsent=!0,this.buildRoute=!0}setGlobalErrorMessage(o){this.globalErrorMessages.push(o)}popGlobalErrorMessage(){this.globalErrorMessages.pop()}initializeUIScale(){if(new URLSearchParams(window.location.search).get("kiosk")!=="0"&&w){const a=localStorage.getItem(U)??localStorage.getItem(N);if(a){const s=parseFloat(a);!isNaN(s)&&s>=.8&&s<=1.4&&(this._customUIScale=s)}}}setUIScale(o,a=!0){if(isNaN(o)||o<this.minUIScale||o>this.maxUIScale){ut.warn(`Invalid ui-scale value: ${o}. Must be between ${this.minUIScale} and ${this.maxUIScale}.`);return}this._customUIScale=o,a&&w&&(localStorage.setItem(U,o.toString()),localStorage.removeItem(N))}resetUIScale(){this._customUIScale=null,w&&(localStorage.removeItem(U),localStorage.removeItem(N))}enableSetKioskMode(o){this.setKioskModeEnabled=o}setKioskData(o){this.kioskData=o}}e([l.struct],t.prototype,"list",void 0),e([l.ref],t.prototype,"details",void 0),e([l.ref],t.prototype,"hoveredExhibitor",void 0),e([l.ref],t.prototype,"hoveredBooth",void 0),e([l],t.prototype,"zoomBy",void 0),e([l],t.prototype,"rollReset",void 0),e([l],t.prototype,"moveToBooths",void 0),e([l],t.prototype,"moveToRect",void 0),e([l],t.prototype,"moveToRectPaddingPercent",void 0),e([l],t.prototype,"moveToLocation",void 0),e([l],t.prototype,"menu",void 0),e([l],t.prototype,"searchFocused",void 0),e([l],t.prototype,"searchClearMode",void 0),e([l],t.prototype,"printingPdf",void 0),e([l.struct],t.prototype,"screenSize",void 0),e([l],t.prototype,"desiredOverlaySize",void 0),e([l],t.prototype,"overlayShowsAll",void 0),e([l],t.prototype,"centerMap",void 0),e([l],t.prototype,"zoomAfTransformK",void 0),e([l],t.prototype,"activeListIndex",void 0),e([l],t.prototype,"devicePixelRatio",void 0),e([l],t.prototype,"wsStarted",void 0),e([l],t.prototype,"canvasStarted",void 0),e([l],t.prototype,"kiosk",void 0),e([l],t.prototype,"inIdle",void 0),e([l],t.prototype,"modalActive",void 0),e([l],t.prototype,"galleryActive",void 0),e([l],t.prototype,"hideOverlay",void 0),e([l],t.prototype,"searchButtonsOverride",void 0),e([l],t.prototype,"hideCookieConsent",void 0),e([l],t.prototype,"hideHeaderLogo",void 0),e([l],t.prototype,"hideLogoInBooth",void 0),e([l],t.prototype,"disableBookmarked",void 0),e([l],t.prototype,"hideLanguage",void 0),e([l],t.prototype,"monochrome",void 0),e([l],t.prototype,"heatmap",void 0),e([l],t.prototype,"heatmapYah",void 0),e([l],t.prototype,"debugCircles",void 0),e([l],t.prototype,"mapControlsHidden",void 0),e([l],t.prototype,"floorsControlHidden",void 0),e([l],t.prototype,"hideFreeOrDemo",void 0),e([l],t.prototype,"freeBannerDismissed",void 0),e([l],t.prototype,"currentBanner",void 0),e([l],t.prototype,"sceneDefReady",void 0),e([l],t.prototype,"categoryFilterOpen",void 0),e([l],t.prototype,"selectedCategoryFilters",void 0),e([l],t.prototype,"selectedPoiTypeFilters",void 0),e([l],t.prototype,"selectedTrack",void 0),e([l],t.prototype,"subButtonsVisible",void 0),e([l],t.prototype,"mapControlsDOMRect",void 0),e([l],t.prototype,"searchBoxMode",void 0),e([l],t.prototype,"searchBoxTitle",void 0),e([l],t.prototype,"searchBoxSubtitle",void 0),e([l],t.prototype,"routeTitle",void 0),e([l],t.prototype,"routeDescription",void 0),e([l],t.prototype,"isMultiPointRoute",void 0),e([l],t.prototype,"tourTitle",void 0),e([l],t.prototype,"tourDescription",void 0),e([l],t.prototype,"isMultiPointTour",void 0),e([l],t.prototype,"pathwayOnlyMode",void 0),e([l],t.prototype,"isOverlayScrolled",void 0),e([l],t.prototype,"listScrollTop",void 0),e([l],t.prototype,"listScrollItemId",void 0),e([l],t.prototype,"listScrollIndex",void 0),e([l],t.prototype,"_customUIScale",void 0),e([u],t.prototype,"setSelectedCategoryFilters",null),e([u],t.prototype,"resetCategoryFilter",null),e([u],t.prototype,"setSearchClearMode",null),e([u],t.prototype,"setRouteTitle",null),e([u],t.prototype,"setRouteDescription",null),e([u],t.prototype,"setIsMultiPointRoute",null),e([u],t.prototype,"setTourTitle",null),e([u],t.prototype,"setTourDescription",null),e([u],t.prototype,"setIsMultiPointTour",null),e([u],t.prototype,"setPathwayOnlyMode",null),e([u],t.prototype,"setMultiPointTourList",null),e([n],t.prototype,"activePathwayLayers",null),e([n],t.prototype,"highlightedBooths",null),e([n],t.prototype,"rtl",null),e([n({keepAlive:!0})],t.prototype,"noOverlay",null),e([n],t.prototype,"overlayOnDemand",null),e([n],t.prototype,"overlayHiddenNow",null),e([n({keepAlive:!0})],t.prototype,"selectedExhibitor",null),e([n({keepAlive:!0})],t.prototype,"selectedBooth",null),e([n({keepAlive:!0})],t.prototype,"selectedCategory",null),e([n({keepAlive:!0})],t.prototype,"selectedRoute",null),e([n({keepAlive:!0})],t.prototype,"selectedSpeaker",null),e([n({keepAlive:!0})],t.prototype,"uiScale",null),e([n({keepAlive:!0})],t.prototype,"isGuidedToursActive",null),e([n({keepAlive:!0})],t.prototype,"getRouteNextFloor",null),e([n],t.prototype,"headerHeightRem",null),e([n],t.prototype,"headerHeightPx",null),e([n],t.prototype,"overlayPosition",null),e([n],t.prototype,"overlayCollapsed",null),e([n],t.prototype,"overlaySize",null),e([n],t.prototype,"overlayBottom",null),e([n],t.prototype,"overlayLeft",null),e([n],t.prototype,"overlayWidthPx",null),e([n({keepAlive:!0})],t.prototype,"wsImageHeightPx",null),e([n],t.prototype,"wsPaddingPx",null),e([n],t.prototype,"wsOccupiedHeightPx",null),e([n({keepAlive:!0})],t.prototype,"wsShown",null),e([n],t.prototype,"wsDesktopPosition",null),e([n],t.prototype,"wsPosition",null),e([n],t.prototype,"responsiveClass",null),e([n],t.prototype,"mapVisibleTop",null),e([n],t.prototype,"mapVisibleBottom",null),e([n],t.prototype,"mapVisibleStart",null),e([n],t.prototype,"searchActionsHeightPx",null),e([n],t.prototype,"shouldShowSearchButtons",null),e([n],t.prototype,"shouldShowMobileToggle",null),e([n],t.prototype,"mobileToggleIsListMode",null),e([n],t.prototype,"canvasVisibleRectPx",null),e([n],t.prototype,"shouldShiftMapRect",null),e([n],t.prototype,"hasAppliedFilters",null),e([n],t.prototype,"canvasVisibleRectPt",null),e([n],t.prototype,"canvasSizePt",null),e([n({keepAlive:!0})],t.prototype,"shouldUseBackdrop",null),e([l],t.prototype,"forceDim",void 0),e([u],t.prototype,"setForceDim",null),e([n],t.prototype,"dimmed",null),e([n],t.prototype,"defaultSearchItems",null),e([n],t.prototype,"searchItems",null),e([n],t.prototype,"searchList",null),e([n],t.prototype,"foundInDescription",null),e([n],t.prototype,"foundInDescriptionStruct",null),e([n],t.prototype,"categoryFilteredSearchList",null),e([n],t.prototype,"fuzzySearchItems",null),e([n],t.prototype,"listItems",null),e([n({keepAlive:!0})],t.prototype,"listBooths",null),e([n({keepAlive:!0})],t.prototype,"selectedBooths",null),e([n({keepAlive:!0})],t.prototype,"hoveredBooths",null),e([n],t.prototype,"visibility",null),e([u],t.prototype,"setVisibility",null),e([u],t.prototype,"toggleMapOverlay",null),e([u],t.prototype,"changeZoom",null),e([u],t.prototype,"zoomIn",null),e([u],t.prototype,"zoomOut",null),e([u],t.prototype,"fitBounds",null),e([n({keepAlive:!0})],t.prototype,"selectedEventItem",null),e([l],t.prototype,"mapSettings",void 0),e([u],t.prototype,"setMapSettings",null),e([u],t.prototype,"resetMapSettings",null),e([n],t.prototype,"baseQRCodeUrl",null),e([n],t.prototype,"viewMapOnPhoneQRCodeUrl",null),e([n],t.prototype,"routeQRCodeUrl",null),e([n],t.prototype,"isFeaturedExhibitorActive",null),e([n],t.prototype,"activeInterfaceData",null),e([n],t.prototype,"searchBoxConfig",null),e([n],t.prototype,"searchBoxActions",null),e([n],t.prototype,"overlayInterfaceClasses",null),e([n],t.prototype,"isOverlayOpen",null),e([u],t.prototype,"setOverlayScrolled",null),e([u],t.prototype,"setListScrollTop",null),e([u],t.prototype,"setListScrollItemId",null),e([u],t.prototype,"getListScrollTop",null),e([u],t.prototype,"getListScrollItemId",null),e([u],t.prototype,"clearListScroll",null),e([n],t.prototype,"bannerType",null),e([n],t.prototype,"isBannerVisible",null),e([u],t.prototype,"setCurrentBanner",null),e([l],t.prototype,"forceShowDetails",void 0),e([u],t.prototype,"setForceShowDetails",null),e([n],t.prototype,"showRouteInstantly",null),e([l],t.prototype,"buildRoute",void 0),e([u],t.prototype,"startBuildRoute",null),e([l],t.prototype,"globalErrorMessages",void 0),e([u],t.prototype,"setGlobalErrorMessage",null),e([u],t.prototype,"popGlobalErrorMessage",null),e([u],t.prototype,"initializeUIScale",null),e([u],t.prototype,"setUIScale",null),e([u],t.prototype,"resetUIScale",null),e([l],t.prototype,"setKioskModeEnabled",void 0),e([u],t.prototype,"enableSetKioskMode",null),e([l],t.prototype,"kioskData",void 0),e([u],t.prototype,"setKioskData",null);function D(K,o,a=[]){const s=[];return K.forEach(c=>{c instanceof x?s.push(...c.booths):c instanceof I?s.push(c):c instanceof O?c.boothId&&s.push(o.find(i=>i.id===c.boothId)):c instanceof V&&a.filter(i=>i.speakers.some(r=>r.id===c.id)&&i.boothId).forEach(i=>s.push(o.find(r=>r.id===i.boothId)))}),new Set(s.filter(Boolean))}
|
|
1
|
+
import{__decorate as e}from"tslib";import{Box as ot,Point as it}from"@expofp/geometry";import{action as d,computed as n,observable as a}from"mobx";import{setKioskUrlParams as st}from"../components/Kiosk/kioskUrlParam";import{LANGUAGE_TYPE as E,LEGACY_PREVIEW_MODE_STORAGE_KEY as rt,LEGACY_UI_SCALE_STORAGE_KEY as U,LEGACY_VIEWER_MODE_STORAGE_KEY as lt,MOBILE_BREAKPOINT as at,PREVIEW_MODE_STORAGE_KEY as nt,UI_SCALE_STORAGE_KEY as H,VIEWER_MODE_STORAGE_KEY as ht,VISIBILITY_STORAGE_KEY as $}from"../constants";import k from"../data";import{svgArea as _,svgAreaExplicit as ct}from"../data/svg";import{readFreeBannerDismissed as pt}from"../tools/freeBanner";import{hasUserConsent as dt}from"../tools/gtag";import{hasHtmlTags as W}from"../tools/has-html-tags";import ut from"../tools/logger";import L from"../tools/settings";import{stripHtml as j}from"../tools/strip-html";import{remsToPixels as F}from"../utils";import X from"../utils/browser";import{getLocale as ft,getLocales as yt,t as S}from"../utils/i18n";import{isLocalStorageAvailable as B}from"../utils/localStorage";import{getResponsiveClass as mt}from"../utils/responsiveClass";import{sanitizeStr as Z}from"../utils/sanitizeText";import{fitRectIsFraming as gt,getVenueFitMarginPercent as St,resolveVenueFitRect as vt}from"../utils/scene-bounds";import{uiState as w}from".";import{BoothBase as I,RegularBooth as A,SpecialBooth as V}from"./BoothStore";import{EventItem as O}from"./EventStore";import{Exhibitor as x}from"./ExhibitorStore";import{findEntityByExternalId as bt,Route as M}from"./RouteStore";import{SpeakerItem as K}from"./SpeakerStore";const It=["dimensions25"];export default class t{setSelectedCategoryFilters(o){this.selectedCategoryFilters=o}resetCategoryFilter(){this.selectedCategoryFilters=[],this.categoryFilterOpen=!1}setSearchClearMode(o){this.searchClearMode=o}setRouteTitle(o){this.routeTitle=o}setRouteDescription(o){this.routeDescription=o}setIsMultiPointRoute(o){this.isMultiPointRoute=o}setTourTitle(o){this.tourTitle=o}setTourDescription(o){this.tourDescription=o}setIsMultiPointTour(o){this.isMultiPointTour=o}setPathwayOnlyMode(o){this.pathwayOnlyMode=o}setMultiPointTourList(o){this.list={type:"multi-point-tour",tourId:o}}get activePathwayLayers(){return this.list?.type==="multi-point-tour"?this.rootStore.toursStore.getTourById(this.list.tourId)?.layers?.map(s=>s.id)||[]:[]}get highlightedBooths(){const o=new Set(this.rootStore.exhibitorStore.highlightedByExternalIds),s=new Set(this.rootStore.boothStore.highlightedByExternalIds),i=new Set([this.rootStore.exhibitorStore.exhibitors.filter(r=>o.has(r.externalId)).flatMap(r=>r.booths.filter(l=>l instanceof A)).map(r=>r.id.toString()),this.rootStore.boothStore.booths.filter(r=>s.has(r.externalId)).map(r=>r.id.toString())].flat());if(this.list?.type==="search"&&this.list?.text?.trim().length){i.clear();const r=this.fuzzySearchItems.filter(l=>l.score===0).map(l=>l.item);r.length?D(r,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems).forEach(l=>i.add(l.id.toString())):this.listBooths.forEach(l=>i.add(l.id.toString()))}if(this.list?.type==="filter"&&(i.clear(),this.list.items.flatMap(r=>r.booths.filter(l=>l instanceof A)).forEach(r=>i.add(r.id.toString()))),this.categoryFilterOpen&&this.selectedCategoryFilters.length>0?(i.clear(),this.selectedCategoryFilters.forEach(r=>{r.exhibitors.flatMap(l=>l.booths).forEach(l=>i.add(l.id.toString()))})):this.list?.type==="category"&&(i.clear(),this.list.category.exhibitors.flatMap(r=>r.booths).forEach(r=>i.add(r.id.toString()))),this.list?.type==="bookmarks"&&(i.clear(),D(this.listItems,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems).forEach(r=>i.add(r.id.toString()))),this.list?.type==="visited"&&(i.clear(),D(this.listItems,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems).forEach(r=>i.add(r.id.toString()))),this.list?.type==="exhibitors"){i.clear();const r=this.list.text?.toLowerCase().trim();let l=this.rootStore.exhibitorStore.exhibitors;r&&(l=l.filter(u=>u.name.toLowerCase().includes(r))),l.flatMap(u=>u.booths.filter(g=>g instanceof A)).forEach(u=>i.add(u.id.toString()))}if(this.selectedPoiTypeFilters.length>0&&(i.clear(),this.selectedPoiTypeFilters.forEach(r=>{this.rootStore.boothStore.booths.filter(l=>l.poiTypeId===r.id).forEach(l=>i.add(l.id.toString()))})),this.details instanceof M&&(i.clear(),this.details.from instanceof I&&i.add(this.details.from.id.toString()),this.details.to instanceof I&&i.add(this.details.to.id.toString()),this.details.waypoints?.forEach(r=>i.add(r.id.toString()))),this.details instanceof I&&(i.clear(),i.add(this.details.id.toString())),this.details instanceof x&&(i.clear(),this.details.booths.filter(r=>r instanceof A).forEach(r=>i.add(r.id.toString()))),this.details instanceof O){const r=this.details;if(r.boothId){i.clear();const l=this.rootStore.boothStore.booths.find(u=>u.id===r.boothId);l&&i.add(l.id.toString())}}return i}constructor(o){this.interfaceMetadata=Object.freeze([{id:"menu",className:"efp-overlay-menu",priority:80,isActive:()=>this.menu,searchBoxConfig:()=>({mode:"interface",title:S("Menu")})},{id:"exhibitor",className:"efp-overlay-exhibitor",priority:70,isActive:()=>this.details instanceof x,searchBoxConfig:()=>({mode:"details",title:this.details.name})},{id:"booth",className:"efp-overlay-booth",priority:70,isActive:()=>this.details instanceof I,searchBoxConfig:()=>{const s=this.details;return{mode:"details",title:s.title||s.name}}},{id:"event",className:"efp-overlay-event",priority:70,isActive:()=>this.details instanceof O,searchBoxConfig:()=>({mode:"details",title:this.details.name})},{id:"route",className:"efp-overlay-route",priority:70,isActive:()=>this.details instanceof M,searchBoxConfig:()=>({mode:"details",title:S("Directions")})},{id:"search",className:"efp-overlay-search",priority:60,isActive:()=>!this.details&&!this.menu&&this.list.type==="search"&&(this.rootStore.fp.alwaysShowSidebar&&!this.overlayOnDemand||this.heatmap||this.searchFocused||this.list.text.length>0||this.searchClearMode),searchBoxConfig:()=>({mode:"search",title:S("Search")})},{id:"exhibitors",className:"efp-overlay-exhibitors",priority:50,isActive:()=>this.list.type==="exhibitors"&&!this.details,searchBoxConfig:()=>({mode:"search",title:S("Exhibitors")})},{id:"filter",className:"efp-overlay-filter",priority:50,isActive:()=>this.list.type==="filter"&&!this.details,searchBoxConfig:()=>({mode:"search",title:S("Filter")})},{id:"bookmarks",className:"efp-overlay-bookmarks",priority:50,isActive:()=>this.list.type==="bookmarks"&&!this.details,searchBoxConfig:()=>({mode:"interface",title:S("Bookmarks"),badge:this.rootStore.bookmarksStore.total})},{id:"visited",className:"efp-overlay-visited",priority:50,isActive:()=>this.list.type==="visited"&&!this.details,searchBoxConfig:()=>({mode:"interface",title:S("Visited"),badge:this.rootStore.exhibitorStore.visited.length})},{id:E,className:"efp-overlay-language",priority:50,isActive:()=>this.list.type===E,searchBoxConfig:()=>({mode:"interface",title:S("Language")})},{id:"category",className:"efp-overlay-category",priority:50,isActive:()=>!w.menu&&!!w.selectedCategory,searchBoxConfig:()=>({mode:"interface",title:this.list.type==="category"&&this.list.category?.name||S("Categories")})},{id:"sessions",className:"efp-overlay-sessions",priority:50,isActive:()=>this.list.type==="sessions"&&!this.details,searchBoxConfig:()=>({mode:"search",title:S("Sessions"),subtitle:this.selectedTrack?this.selectedTrack.name:void 0})},{id:"speakers",className:"efp-overlay-speakers",priority:50,isActive:()=>this.list.type==="speakers"&&!this.details,searchBoxConfig:()=>({mode:"search",title:S("Speakers")})},{id:"speaker",className:"efp-overlay-speaker",priority:50,isActive:()=>this.details instanceof K,searchBoxConfig:()=>({mode:"details",title:this.details.name})},{id:"tours",className:"efp-overlay-tours",priority:50,isActive:()=>this.list.type==="tours"&&!this.details,searchBoxConfig:()=>({mode:"search",title:S("Guided Tours")})},{id:"multi-point-wayfinding",className:"efp-overlay-multi-point",priority:75,isActive:()=>!!(this.isMultiPointRoute&&this.selectedRoute&&this.list.type!=="route-planner"),searchBoxConfig:()=>({mode:"interface",title:this.routeTitle||S("Multi-point route")})},{id:"multi-point-tour",className:"efp-overlay-multi-point-tour",priority:75,isActive:()=>this.list.type==="multi-point-tour"&&!this.details,searchBoxConfig:()=>({mode:"interface",title:this.tourTitle||S("Multi-point route")})},{id:"route-planner",className:"efp-overlay-route-planner",priority:76,isActive:()=>this.list.type==="route-planner"&&(!this.details||this.details instanceof M),searchBoxConfig:()=>({mode:"interface",title:S("Route planner")})}].sort((s,i)=>i.priority-s.priority)),this.list={type:"search",text:"",focused:!1},this.details=null,this.hoveredExhibitor=null,this.hoveredBooth=null,this.zoomBy=null,this.rollReset=!1,this.moveToBooths=null,this.moveToRect=null,this.moveToRectPaddingPercent=null,this.moveToLocation=!1,this.menu=!1,this.searchFocused=!1,this.searchClearMode=!1,this.printingPdf=!1,this.screenSize=new it(window.innerWidth,window.innerHeight),this.overlayShowsAll=!1,this.centerMap=!1,this.zoomAfTransformK=1,this.activeListIndex=-1,this.devicePixelRatio=window.devicePixelRatio,this.previewExhibitor=null,this.wsStarted=!1,this.canvasStarted=!1,this.kiosk=!1,this.inIdle=!1,this.modalActive={share:!1},this.galleryActive=!1,this.hideOverlay=!1,this.searchButtonsOverride=null,this.hideCookieConsent=!!dt(),this.hideHeaderLogo=!1,this.hideLogoInBooth=!1,this.disableBookmarked=!1,this.hideLanguage=!1,this.monochrome=!1,this.heatmap=!1,this.heatmapYah=!1,this.rootElement=null,this.debugCircles=[],this.mapControlsHidden=!1,this.floorsControlHidden=!1,this.hideFreeOrDemo=!1,this.freeBannerDismissed=pt(sessionStorage),this.currentBanner=null,this.sceneDefReady=!1,this.categoryFilterOpen=!1,this.selectedCategoryFilters=[],this.selectedPoiTypeFilters=[],this.selectedTrack=null,this.subButtonsVisible=!1,this.searchBoxMode="search",this.searchBoxTitle="",this.isMultiPointRoute=!1,this.isMultiPointTour=!1,this.pathwayOnlyMode=!1,this.isOverlayScrolled=!1,this.listScrollTop=0,this.listScrollItemId=null,this.listScrollIndex=0,this.scrollPositions=new Map,this.scrollItemIds=new Map,this._customUIScale=null,this.searchFilterHeightPx=54,this.searchInputHeightPx=54,this.overlayUISizePx=390,this.overlayKioskSizePx=450,this.overlayMediumHeightRems=10,this.forceDim=!1,this.mapSettings={...this.defaultMapSettings},this.forceShowDetails=!1,this.buildRoute=!1,this.globalErrorMessages=[],this.minUIScale=.8,this.maxUIScale=1.4,this.setKioskModeEnabled=!1,this.kioskData=null,this.rootStore=o,this.initializeUIScale()}get rtl(){const o=ft();return o==="ar"||o==="he"}get noOverlay(){return this.rootStore.fp.noOverlay||this.hideOverlay}get overlayOnDemand(){return this.noOverlay&&this.searchButtonsOverride===!0}get overlayHiddenNow(){return this.noOverlay&&!(this.overlayOnDemand&&this.isOverlayOpen)}get onBoothClick(){return this.rootStore.fp.onBoothClick}get onMarkerClick(){return this.rootStore.fp.onMarkerClick}get onBookmarkClick(){return this.rootStore.fp.onBookmarkClick}get onVisitedClick(){return this.rootStore.fp.onVisitedClick}get onCategoryClick(){return this.rootStore.fp.onCategoryClick}get onDirection(){return this.rootStore.fp.onDirection}get onDetails(){return this.rootStore.fp.onDetails}get onExhibitorCustomButtonClick(){return this.rootStore.fp.onExhibitorCustomButtonClick}get onGetCoordsClick(){return this.rootStore.fp.onGetCoordsClick}get selectedExhibitor(){return this.details instanceof x?this.details:null}get selectedBooth(){return this.details instanceof I?this.details:null}get selectedCategory(){return this.list.type==="category"?this.list.category:null}get selectedRoute(){return this.details instanceof M?this.details:null}get selectedSpeaker(){return this.details instanceof K?this.details:null}get uiScale(){return this._customUIScale!==null?this._customUIScale:this.kiosk?1.2:1}get isGuidedToursActive(){return this.rootStore.toursStore.isActive}get getRouteNextFloor(){const o=this.rootStore.routeStore.pathLayers,s=this.rootStore.routeStore.currentRouteLayer?.name;if(!s)return null;const i=o.findIndex(c=>c.layer?.name===s);return i===-1?null:o[i+1]?.layer?.name??null}get headerHeightRem(){return 0}get headerHeightPx(){return F(this.headerHeightRem)}get overlayPosition(){return this.screenSize.width>at||this.kiosk?"left":"bottom"}get overlayCollapsed(){return this.kiosk&&this.overlayPosition==="left"&&!this.searchFocused&&!this.menu&&!this.details&&!this.selectedCategory&&!this.selectedExhibitor&&this.list.type!=="bookmarks"&&this.list.type!==E&&!this.list.text?.length}get overlaySize(){return this.overlayLeft?"full":this.desiredOverlaySize}get overlayBottom(){return this.overlayPosition==="bottom"}get overlayLeft(){return this.overlayPosition==="left"}get overlayWidthPx(){return this.overlayHiddenNow?0:this.overlayLeft?this.kiosk?this.overlayKioskSizePx:this.overlayUISizePx:F(this.screenSize.width)}get wsImageHeightPx(){return 44}get wsPaddingPx(){return F(.25)}get wsOccupiedHeightPx(){return this.wsShown?this.wsImageHeightPx+this.wsPaddingPx*2:0}get wsShown(){return!this.hideHeaderLogo&&this.rootStore.exhibitorStore.advertised.length>0}get wsDesktopPosition(){return L.EXPO==="cbresupplypartner"?"bottom":"top"}get wsPosition(){return this.overlayBottom?"top":this.wsDesktopPosition}get responsiveClass(){return mt(this.screenSize.width)}get mapVisibleTop(){return(this.wsPosition==="top"?this.wsOccupiedHeightPx:0)+this.headerHeightPx}get mapVisibleBottom(){return this.overlayLeft||this.overlayHiddenNow?this.wsPosition==="bottom"?this.wsOccupiedHeightPx:0:F(this.overlayMediumHeightRems)}get mapVisibleStart(){return 0}get searchActionsHeightPx(){return this.overlayPosition==="bottom"?this.searchInputHeightPx+this.searchFilterHeightPx:this.searchInputHeightPx}get shouldShowSearchButtons(){return this.rootStore.searchButtonsStore.hasAnySearchButtons&&!this.details&&!this.menu&&![E,"filter"].includes(this.list.type)}get shouldShowMobileToggle(){const o=this.list.type==="route-planner";return this.overlayPosition==="bottom"&&(o||!this.details&&!this.menu&&this.list.type!==E&&this.list.type!=="bookmarks"&&this.list.type!=="sessions")}get mobileToggleIsListMode(){return!this.isOverlayOpen||this.overlaySize!=="full"}get canvasVisibleRectPx(){const o=this.screenSize;return ot.fromMinMax({x:w.rtl?0:this.mapVisibleStart,y:this.mapVisibleTop+this.searchActionsHeightPx},{x:w.rtl?o.width-this.mapVisibleStart:o.width,y:o.height-this.mapVisibleBottom})}get shouldShiftMapRect(){return this.overlayPosition==="left"&&(this.details||this.hasAppliedFilters||this.selectedRoute)}get hasAppliedFilters(){return this.selectedCategoryFilters.length>0||this.selectedPoiTypeFilters.length>0}get canvasVisibleRectPt(){return this.canvasVisibleRectPx.scale(this.devicePixelRatio,{x:0,y:0})}get canvasSizePt(){return this.screenSize.multiply(this.devicePixelRatio)}get shouldUseBackdrop(){if(w.overlayCollapsed)return!1;if(B&&localStorage.getItem("forcebackdrop")==="1")return!0;if(this.overlayBottom||this.selectedExhibitor?.leadingImageUrl&&!this.selectedExhibitor?.leadingImageLinkUrl)return!1;const o=X.satisfies({safari:">=13"}),s=X.satisfies({chrome:">=77"});return/(android)/i.test(navigator.userAgent)?!1:o||s&&w.canvasSizePt.height*w.canvasSizePt.width<3e6}setForceDim(o){this.forceDim=o}get dimmed(){return this.forceDim||this.pathwayOnlyMode?!0:this.highlightedBooths.size>0||this.list?.type==="search"&&this.list?.text?.trim().length>0||this.list?.type==="exhibitors"}get defaultSearchItems(){const{exhibitorStore:o,categoryStore:s,boothStore:i,heatmapStore:c}=this.rootStore;let r=o.exhibitors;const l=s.categories.filter(f=>f.exhibitors.length),u=i.booths;this.selectedPoiTypeFilters.length>0&&(r=r.filter(f=>f.booths.some(y=>this.selectedPoiTypeFilters.some(v=>y.poiTypeId===v.id))));let g=[];const C=!this.selectedCategoryFilters.length&&k.showCategories?l.filter(f=>It.includes(L.EXPO)?!f.name.includes("/"):!0):[],T=u.filter(f=>f instanceof V);return this.selectedCategoryFilters.length>0?g=[...r]:(k.showCompaniesAndBooths&&(g=g.concat(r)),k.showOtherSpaces&&(g=g.concat(T))),this.heatmap?[...r,...u].sort((y,v)=>c.getClicksByType(v)-c.getClicksByType(y)):this.heatmapYah?c.heatmapData?.yah?.sort((f,y)=>c.getClicksByType(y)-c.getClicksByType(f))||[]:r.length===0?u:[...C,...g.sort((f,y)=>{const v=f instanceof x&&f.featured!==void 0,z=y instanceof x&&y.featured!==void 0;if(v!==z)return v?-1:1;const R=f instanceof V&&f.title?f.title:f.name,N=y instanceof V&&y.title?y.title:y.name;return R.localeCompare(N,void 0,{sensitivity:"base",numeric:!0})})]}get searchItems(){if(this.list.type!=="search")return[];const o=this.list.text?.trim().toLowerCase()||"",{exhibitorStore:s,boothStore:i,eventStore:c,speakerStore:r,heatmapStore:l}=this.rootStore;let u=s.exhibitors;const g=i.booths,C=c.eventItems,T=r.speakers;if(this.selectedCategoryFilters.length>0&&(u=u.filter(h=>this.selectedCategoryFilters.some(p=>h.categories.some(m=>m.id===p.id)))),this.selectedPoiTypeFilters.length>0&&(u=u.filter(h=>h.booths.some(p=>this.selectedPoiTypeFilters.some(m=>p.poiTypeId===m.id)))),!o)return this.defaultSearchItems;const f=[o.replace(/&[^&=]+=[^&]+/g,"")];if(this.heatmapYah)return(l.heatmapData.yah??[]).filter(p=>Number.isNaN(Number(o))?p:p.viewCount>=Number(o)).sort((p,m)=>l.getClicksByType(m)-l.getClicksByType(p));const y=[],v=new Set,z=new Set,R=new Set,N=new Set;function G(h){return h?h.replace(/[!@#$%^*\-.,()^#$%:?_+'"/]/g," ").replace(/\s\s+/g," "):""}function b(h,p){return!h||!p?!1:G(h).toLowerCase().includes(G(p).toLowerCase())}function Y(h,p){return h?b(h,p)||b(k.levelTerm+" "+h,p):!1}u.forEach(h=>{f.some(p=>b(h.name,p)||h.booths.some(m=>!p&&b(m.name,p)||Y(m.layer?.name??null,p)))&&v.add(h)}),this.selectedCategoryFilters.length>0&&g.forEach(h=>{(this.heatmap||!(h instanceof A)||!Array.from(v).find(m=>m.booths.includes(h)))&&f.some(m=>b(h.title||"",m)||b(h.name,m)||b(h.fullName,m)||Y(h.layer?.name??null,m))&&z.add(h)});const q=C,tt=T;if(q.forEach(h=>{f.some(p=>b(h.name||"",p)||b(h.description||"",p))&&R.add(h)}),tt.forEach(h=>{f.some(p=>b(h.name,p)||b(h.company,p)||b(h.jobTitle,p))&&N.add(h)}),y.push(...R),y.push(...v),this.heatmap)return y.sort((h,p)=>l.getClicksByType(p)-l.getClicksByType(h));const et=new Map(y.map(h=>[h.id,h]));return y.map(h=>{if(!h.name)return null;const p=Z(h instanceof I&&h.fullName.toLowerCase()||h.name.toLowerCase()),m=p.indexOf(Z(o));if(m===-1)return null;const Q={id:h.id,position:m,lowerCaseName:p,featured:!1};return h instanceof x&&(Q.featured=h.featured),Q}).filter(h=>!!h).sort((h,p)=>(h.featured||p.featured)&&h.featured!==p.featured?h.featured?-1:1:h.position!==p.position?h.position-p.position:h.lowerCaseName.localeCompare(p.lowerCaseName)||String(h.id).localeCompare(String(p.id))).map(({id:h})=>et.get(h)).filter(h=>!!h)}get searchList(){return[...this.rootStore.eventStore.eventItems,...this.rootStore.speakerStore.speakers,...this.rootStore.categoryStore.categories.filter(o=>o.exhibitors.length),...this.rootStore.exhibitorStore.exhibitors,...this.rootStore.boothStore.booths]}get foundInDescription(){if(this.list?.type!=="search")return[];const o=this.list?.text?.trim().toLowerCase();if(!o)return[];const s=this.fuzzySearchItems.map(({item:l})=>l),i=new Set(s.map(l=>l.name)),c=this.categoryFilteredSearchList.filter(l=>!i.has(l.name)),r=[];for(const l of c){const u=J(l);if(!u)continue;const C=(W(u)?j(u):u).toLowerCase().indexOf(o);C!==-1&&r.push({item:l,pos:C})}return r.sort((l,u)=>l.pos-u.pos),r.map(l=>l.item)}get foundInDescriptionStruct(){const o={};if(this.list?.type!=="search")return o;const s=this.list?.text?.trim().toLowerCase();return this.foundInDescription.forEach(i=>{let c=J(i);if(!c)return;W(c)&&(c=j(c));const r=c.toLowerCase().indexOf(s);if(r===-1)return;const l=3,u=r>l?r-l:0,g=c.substring(u).trim();o[i.id]=r>0?`...${g}`:g}),o}get categoryFilteredSearchList(){return this.selectedCategoryFilters.length===0?this.searchList:this.searchList.filter(o=>o instanceof x&&this.selectedCategoryFilters.some(s=>o.categories.some(i=>i.id===s.id)))}get fuzzySearchItems(){if(this.list?.type!=="search")return[];const o=this.list?.text?.trim().toLowerCase();if(!o)return this.defaultSearchItems.map(r=>({item:r,score:0,matches:[]}));const s=this.rootStore.fuzzySearchEngineStore.search(this.categoryFilteredSearchList,o),i=[],c=[];for(const r of s){const l=r.item,u=l.entity.type,g=u==="booth"?l:null,C=u==="exhibitor"?l:null,T=[l.name?.toLowerCase()??"",g?.title?.toLowerCase()??"",g?.fullName?.toLowerCase()??"",...C?.booths?.map(y=>y.name?.toLowerCase()??"")??[]];let f=1/0;for(const y of T){const v=y.indexOf(o);v!==-1&&v<f&&(f=v)}f!==1/0?i.push({result:{item:l,score:0},pos:f}):c.push(r)}return i.sort((r,l)=>r.pos-l.pos),[...i.map(r=>r.result),...c]}get listItems(){if(this.details instanceof M&&this.list.type!=="multi-point-tour")return[this.details.from,this.details.to].filter(o=>o instanceof I);switch(this.list.type){case"search":{let o=!(this.heatmap||this.heatmapYah)&&this.rootStore.fuzzySearchEngineStore.engine?this.fuzzySearchItems.map(({item:s})=>s).concat(this.foundInDescription):this.searchItems;return o=o.filter(s=>s.entity.type==="booth"?!s.exhibitors.length:!0),this.hasAppliedFilters?o.filter(s=>{if(this.selectedCategoryFilters.length>0&&s instanceof x&&!this.selectedCategoryFilters.some(i=>s.categories.some(c=>c.id===i.id)))return!1;if(this.selectedPoiTypeFilters.length>0){if(s instanceof x&&!s.booths.some(i=>this.selectedPoiTypeFilters.some(c=>i.poiTypeId===c.id))||s instanceof I&&!this.selectedPoiTypeFilters.some(i=>s.poiTypeId===i.id))return!1;if(s instanceof O&&s.boothId){const i=this.rootStore.boothStore.booths.find(c=>c.id===s.boothId);if(!i||!this.selectedPoiTypeFilters.some(c=>i.poiTypeId===c.id))return!1}}return!0}):o}case"bookmarks":return[...this.rootStore.exhibitorStore.bookmarked,...this.rootStore.eventStore.bookmarked,...this.rootStore.speakerStore.bookmarked,...this.rootStore.boothStore.booths.filter(o=>o.exhibitors.length===0&&o.bookmarkedDirectly)];case"visited":return[...this.rootStore.exhibitorStore.visited,...this.rootStore.eventStore.visited];case"category":return this.list.category.exhibitors;case E:return yt();case"filter":return this.list.items;case"sessions":return this.rootStore.eventStore.eventItems;case"exhibitors":{const o=this.rootStore.exhibitorStore.exhibitors,s=this.list.text?.toLowerCase().trim();return s?o.filter(i=>i.name.toLowerCase().includes(s)):o}case"multi-point-tour":{const o=this.rootStore.toursStore.getTourById(this.list.tourId);return o?!o.points||o.points.length===0?[]:o.points.map(s=>{const i=parseInt(s);if(!isNaN(i)){const r=this.rootStore.boothStore.boothById.get(i);if(r)return r}return bt(s)?.entity||null}).filter(s=>!!s):[]}case"route-planner":return this.rootStore.routePlannerStore.resolvedBooths}throw new Error("Unknown list.type")}get listBooths(){return D(this.listItems,this.rootStore.boothStore.booths,this.rootStore.eventStore.eventItems)}get selectedBooths(){let o=[];this.selectedExhibitor?o=this.selectedExhibitor.booths:this.selectedBooth&&(o=[this.selectedBooth]);const s=this.selectedRoute,i=[s?.from,s?.to,...s?.waypoints??[]].filter(c=>c instanceof I);return o.push(...i),new Set(o)}get hoveredBooths(){let o=[];return this.hoveredBooth?o=[this.hoveredBooth]:this.hoveredExhibitor&&(o=this.hoveredExhibitor.booths),new Set(o)}get visibility(){return{controls:!this.mapControlsHidden,levels:!this.floorsControlHidden,header:this.wsShown,overlay:!this.hideOverlay,searchButtons:this.searchButtonsOverride??!this.hideOverlay}}setVisibility(o){const s=["controls","levels","header","overlay"],i={...s.reduce((r,l)=>({...r,[l]:!0}),{}),...s.filter(r=>r in o).reduce((r,l)=>({...r,[l]:o[l]}),{})},c=typeof o.searchButtons=="boolean"?o.searchButtons:null;B&&(Object.values(i).every(Boolean)&&c===null?localStorage.removeItem($):localStorage.setItem($,JSON.stringify(c===null?i:{...i,searchButtons:c}))),this.mapControlsHidden=!i.controls,this.floorsControlHidden=!i.levels,this.hideHeaderLogo=!i.header,this.hideFreeOrDemo=!i.header,this.hideOverlay=!i.overlay,this.searchButtonsOverride=c}toggleMapOverlay(){this.overlayPosition==="bottom"&&this.overlaySize==="full"?this.desiredOverlaySize="medium":this.overlayPosition==="bottom"&&this.overlaySize!=="full"&&(this.desiredOverlaySize="full")}changeZoom(o){this.zoomBy=o}zoomIn(){this.changeZoom(1.5)}zoomOut(){this.changeZoom(.66)}fitBounds(){const{rect:o,source:s}=vt({layerViewbox:this.rootStore.layerStore.viewboxRectangle,explicitArea:ct?_:null,layerRectangle:this.rootStore.layerStore.rectangle,sceneDef:this.rootStore.rendererService.scene,svgArea:_});this.moveToRect=o,this.moveToRectPaddingPercent=gt(s)?0:St(o,_),this.rollReset=!0}get previewMode(){const o=B?localStorage.getItem(nt)??localStorage.getItem(rt):null;return o==="true"||o==="1"||this.rootStore.fp.previewMode}get viewerMode(){const o=B?localStorage.getItem(ht)??localStorage.getItem(lt):null;return o==="true"||o==="1"||this.rootStore.fp.viewerMode}get selectedEventItem(){return this.details instanceof O?this.details:null}get defaultMapSettings(){return{zoomtime:500,center:void 0,centerxy:void 0,z:void 0,bearing:0,roll:1}}setMapSettings(o){const s={};for(const i of Object.keys(o)){const c=o[i];c!=null&&(i==="zoomtime"?s.zoomtime=Math.min(Math.max(o.zoomtime||this.mapSettings.zoomtime||0,500),5e3):Object.assign(s,{[i]:c}))}this.mapSettings={...this.mapSettings,...s}}resetMapSettings(){this.mapSettings={...this.defaultMapSettings}}get baseQRCodeUrl(){return`https://${L.EXPO}.expofp.com`}get viewMapOnPhoneQRCodeUrl(){if(k?.customKioskQrCodeUrl)return k.customKioskQrCodeUrl;const o=new URL(this.baseQRCodeUrl);o.search=window.location.search;const s=o.toString();return console.log("View Map On Phone QR Code Url",s),s}get routeQRCodeUrl(){const o=new URL(this.baseQRCodeUrl),s=this.selectedRoute?.from,i=this.selectedRoute?.to,c=s instanceof I?s.slug:"",r=i instanceof I?i.slug:"";o.search=`?route%3A${encodeURIComponent(r)}%3A${encodeURIComponent(c)}%3Afalse`,st(o.searchParams,this.kioskData);const l=o.toString();return console.log("Route QR Code Url",l),l}get isFeaturedExhibitorActive(){return this.details instanceof x&&!!this.details.featured}get activeInterfaceData(){for(const o of this.interfaceMetadata)if(o.isActive())return o;return null}get searchBoxConfig(){const o=this.activeInterfaceData;return!o||!o.searchBoxConfig?{mode:"search",title:"",subtitle:void 0,badge:void 0,icon:void 0}:o.searchBoxConfig()||{mode:"search",title:"",subtitle:void 0,badge:void 0,icon:void 0}}get searchBoxActions(){return this.activeInterfaceData?.actions?.()??[]}get overlayInterfaceClasses(){const o=[],s=this.activeInterfaceData;return s&&(o.push(s.className),s.additionalClasses&&o.push(...s.additionalClasses())),this.details&&o.push("overlay-has-details"),this.list.type&&o.push(`overlay-list-${this.list.type}`),this.isFeaturedExhibitorActive&&o.push("overlay-exhibitor-featured"),o}get isOverlayOpen(){return this.noOverlay&&!this.overlayOnDemand?!1:this.activeInterfaceData!==null}setOverlayScrolled(o){this.isOverlayScrolled=o}setListScrollTop(o,s){this.listScrollTop=s,this.scrollPositions.set(o,s)}setListScrollItemId(o,s){this.listScrollItemId=s,this.scrollItemIds.set(o,s)}getListScrollTop(o){return this.scrollPositions.get(o)||0}getListScrollItemId(o){return this.scrollItemIds.get(o)||null}clearListScroll(o){this.scrollPositions.delete(o),this.scrollItemIds.delete(o),this.list.type===o&&(this.listScrollTop=0,this.listScrollItemId=null)}get bannerType(){return this.hideFreeOrDemo||this.heatmap?null:L.EXPO==="expo"?"demo":k.expoFpAd||k.isTrial?"free":null}get isBannerVisible(){return this.bannerType!==null}setCurrentBanner(o){this.currentBanner=o}setForceShowDetails(o){this.forceShowDetails=o}get showRouteInstantly(){return!!(this.kiosk&&!this.forceShowDetails)}startBuildRoute(){this.rootStore.selectSearch(""),this.mapControlsHidden=!0,this.floorsControlHidden=!0,this.hideHeaderLogo=!0,this.hideFreeOrDemo=!0,this.hideOverlay=!0,this.hideCookieConsent=!0,this.buildRoute=!0}setGlobalErrorMessage(o){this.globalErrorMessages.push(o)}popGlobalErrorMessage(){this.globalErrorMessages.pop()}initializeUIScale(){if(new URLSearchParams(window.location.search).get("kiosk")!=="0"&&B){const s=localStorage.getItem(H)??localStorage.getItem(U);if(s){const i=parseFloat(s);!isNaN(i)&&i>=.8&&i<=1.4&&(this._customUIScale=i)}}}setUIScale(o,s=!0){if(o===void 0||isNaN(o)||o<this.minUIScale||o>this.maxUIScale){ut.warn(`Invalid ui-scale value: ${o}. Must be between ${this.minUIScale} and ${this.maxUIScale}.`);return}this._customUIScale=o,s&&B&&(localStorage.setItem(H,o.toString()),localStorage.removeItem(U))}resetUIScale(){this._customUIScale=null,B&&(localStorage.removeItem(H),localStorage.removeItem(U))}enableSetKioskMode(o){this.setKioskModeEnabled=o}setKioskData(o){this.kioskData=o}}e([a.struct],t.prototype,"list",void 0),e([a.ref],t.prototype,"details",void 0),e([a.ref],t.prototype,"hoveredExhibitor",void 0),e([a.ref],t.prototype,"hoveredBooth",void 0),e([a],t.prototype,"zoomBy",void 0),e([a],t.prototype,"rollReset",void 0),e([a],t.prototype,"moveToBooths",void 0),e([a],t.prototype,"moveToRect",void 0),e([a],t.prototype,"moveToRectPaddingPercent",void 0),e([a],t.prototype,"moveToLocation",void 0),e([a],t.prototype,"menu",void 0),e([a],t.prototype,"searchFocused",void 0),e([a],t.prototype,"searchClearMode",void 0),e([a],t.prototype,"printingPdf",void 0),e([a.struct],t.prototype,"screenSize",void 0),e([a],t.prototype,"desiredOverlaySize",void 0),e([a],t.prototype,"overlayShowsAll",void 0),e([a],t.prototype,"centerMap",void 0),e([a],t.prototype,"zoomAfTransformK",void 0),e([a],t.prototype,"activeListIndex",void 0),e([a],t.prototype,"devicePixelRatio",void 0),e([a],t.prototype,"wsStarted",void 0),e([a],t.prototype,"canvasStarted",void 0),e([a],t.prototype,"kiosk",void 0),e([a],t.prototype,"inIdle",void 0),e([a],t.prototype,"modalActive",void 0),e([a],t.prototype,"galleryActive",void 0),e([a],t.prototype,"hideOverlay",void 0),e([a],t.prototype,"searchButtonsOverride",void 0),e([a],t.prototype,"hideCookieConsent",void 0),e([a],t.prototype,"hideHeaderLogo",void 0),e([a],t.prototype,"hideLogoInBooth",void 0),e([a],t.prototype,"disableBookmarked",void 0),e([a],t.prototype,"hideLanguage",void 0),e([a],t.prototype,"monochrome",void 0),e([a],t.prototype,"heatmap",void 0),e([a],t.prototype,"heatmapYah",void 0),e([a],t.prototype,"debugCircles",void 0),e([a],t.prototype,"mapControlsHidden",void 0),e([a],t.prototype,"floorsControlHidden",void 0),e([a],t.prototype,"hideFreeOrDemo",void 0),e([a],t.prototype,"freeBannerDismissed",void 0),e([a],t.prototype,"currentBanner",void 0),e([a],t.prototype,"sceneDefReady",void 0),e([a],t.prototype,"categoryFilterOpen",void 0),e([a],t.prototype,"selectedCategoryFilters",void 0),e([a],t.prototype,"selectedPoiTypeFilters",void 0),e([a],t.prototype,"selectedTrack",void 0),e([a],t.prototype,"subButtonsVisible",void 0),e([a],t.prototype,"searchBoxMode",void 0),e([a],t.prototype,"searchBoxTitle",void 0),e([a],t.prototype,"searchBoxSubtitle",void 0),e([a],t.prototype,"routeTitle",void 0),e([a],t.prototype,"routeDescription",void 0),e([a],t.prototype,"isMultiPointRoute",void 0),e([a],t.prototype,"tourTitle",void 0),e([a],t.prototype,"tourDescription",void 0),e([a],t.prototype,"isMultiPointTour",void 0),e([a],t.prototype,"pathwayOnlyMode",void 0),e([a],t.prototype,"isOverlayScrolled",void 0),e([a],t.prototype,"listScrollTop",void 0),e([a],t.prototype,"listScrollItemId",void 0),e([a],t.prototype,"listScrollIndex",void 0),e([a],t.prototype,"_customUIScale",void 0),e([d],t.prototype,"setSelectedCategoryFilters",null),e([d],t.prototype,"resetCategoryFilter",null),e([d],t.prototype,"setSearchClearMode",null),e([d],t.prototype,"setRouteTitle",null),e([d],t.prototype,"setRouteDescription",null),e([d],t.prototype,"setIsMultiPointRoute",null),e([d],t.prototype,"setTourTitle",null),e([d],t.prototype,"setTourDescription",null),e([d],t.prototype,"setIsMultiPointTour",null),e([d],t.prototype,"setPathwayOnlyMode",null),e([d],t.prototype,"setMultiPointTourList",null),e([n],t.prototype,"activePathwayLayers",null),e([n],t.prototype,"highlightedBooths",null),e([n],t.prototype,"rtl",null),e([n({keepAlive:!0})],t.prototype,"noOverlay",null),e([n],t.prototype,"overlayOnDemand",null),e([n],t.prototype,"overlayHiddenNow",null),e([n({keepAlive:!0})],t.prototype,"selectedExhibitor",null),e([n({keepAlive:!0})],t.prototype,"selectedBooth",null),e([n({keepAlive:!0})],t.prototype,"selectedCategory",null),e([n({keepAlive:!0})],t.prototype,"selectedRoute",null),e([n({keepAlive:!0})],t.prototype,"selectedSpeaker",null),e([n({keepAlive:!0})],t.prototype,"uiScale",null),e([n({keepAlive:!0})],t.prototype,"isGuidedToursActive",null),e([n({keepAlive:!0})],t.prototype,"getRouteNextFloor",null),e([n],t.prototype,"headerHeightRem",null),e([n],t.prototype,"headerHeightPx",null),e([n],t.prototype,"overlayPosition",null),e([n],t.prototype,"overlayCollapsed",null),e([n],t.prototype,"overlaySize",null),e([n],t.prototype,"overlayBottom",null),e([n],t.prototype,"overlayLeft",null),e([n],t.prototype,"overlayWidthPx",null),e([n({keepAlive:!0})],t.prototype,"wsImageHeightPx",null),e([n],t.prototype,"wsPaddingPx",null),e([n],t.prototype,"wsOccupiedHeightPx",null),e([n({keepAlive:!0})],t.prototype,"wsShown",null),e([n],t.prototype,"wsDesktopPosition",null),e([n],t.prototype,"wsPosition",null),e([n],t.prototype,"responsiveClass",null),e([n],t.prototype,"mapVisibleTop",null),e([n],t.prototype,"mapVisibleBottom",null),e([n],t.prototype,"mapVisibleStart",null),e([n],t.prototype,"searchActionsHeightPx",null),e([n],t.prototype,"shouldShowSearchButtons",null),e([n],t.prototype,"shouldShowMobileToggle",null),e([n],t.prototype,"mobileToggleIsListMode",null),e([n],t.prototype,"canvasVisibleRectPx",null),e([n],t.prototype,"shouldShiftMapRect",null),e([n],t.prototype,"hasAppliedFilters",null),e([n],t.prototype,"canvasVisibleRectPt",null),e([n],t.prototype,"canvasSizePt",null),e([n({keepAlive:!0})],t.prototype,"shouldUseBackdrop",null),e([a],t.prototype,"forceDim",void 0),e([d],t.prototype,"setForceDim",null),e([n],t.prototype,"dimmed",null),e([n],t.prototype,"defaultSearchItems",null),e([n],t.prototype,"searchItems",null),e([n],t.prototype,"searchList",null),e([n],t.prototype,"foundInDescription",null),e([n],t.prototype,"foundInDescriptionStruct",null),e([n],t.prototype,"categoryFilteredSearchList",null),e([n],t.prototype,"fuzzySearchItems",null),e([n],t.prototype,"listItems",null),e([n({keepAlive:!0})],t.prototype,"listBooths",null),e([n({keepAlive:!0})],t.prototype,"selectedBooths",null),e([n({keepAlive:!0})],t.prototype,"hoveredBooths",null),e([n],t.prototype,"visibility",null),e([d],t.prototype,"setVisibility",null),e([d],t.prototype,"toggleMapOverlay",null),e([d],t.prototype,"changeZoom",null),e([d],t.prototype,"zoomIn",null),e([d],t.prototype,"zoomOut",null),e([d],t.prototype,"fitBounds",null),e([n({keepAlive:!0})],t.prototype,"selectedEventItem",null),e([a],t.prototype,"mapSettings",void 0),e([d],t.prototype,"setMapSettings",null),e([d],t.prototype,"resetMapSettings",null),e([n],t.prototype,"baseQRCodeUrl",null),e([n],t.prototype,"viewMapOnPhoneQRCodeUrl",null),e([n],t.prototype,"routeQRCodeUrl",null),e([n],t.prototype,"isFeaturedExhibitorActive",null),e([n],t.prototype,"activeInterfaceData",null),e([n],t.prototype,"searchBoxConfig",null),e([n],t.prototype,"searchBoxActions",null),e([n],t.prototype,"overlayInterfaceClasses",null),e([n],t.prototype,"isOverlayOpen",null),e([d],t.prototype,"setOverlayScrolled",null),e([d],t.prototype,"setListScrollTop",null),e([d],t.prototype,"setListScrollItemId",null),e([d],t.prototype,"getListScrollTop",null),e([d],t.prototype,"getListScrollItemId",null),e([d],t.prototype,"clearListScroll",null),e([n],t.prototype,"bannerType",null),e([n],t.prototype,"isBannerVisible",null),e([d],t.prototype,"setCurrentBanner",null),e([a],t.prototype,"forceShowDetails",void 0),e([d],t.prototype,"setForceShowDetails",null),e([n],t.prototype,"showRouteInstantly",null),e([a],t.prototype,"buildRoute",void 0),e([d],t.prototype,"startBuildRoute",null),e([a],t.prototype,"globalErrorMessages",void 0),e([d],t.prototype,"setGlobalErrorMessage",null),e([d],t.prototype,"popGlobalErrorMessage",null),e([d],t.prototype,"initializeUIScale",null),e([d],t.prototype,"setUIScale",null),e([d],t.prototype,"resetUIScale",null),e([a],t.prototype,"setKioskModeEnabled",void 0),e([d],t.prototype,"enableSetKioskMode",null),e([a],t.prototype,"kioskData",void 0),e([d],t.prototype,"setKioskData",null);function J(P){return"description"in P&&typeof P.description=="string"?P.description:void 0}function D(P,o,s=[]){const i=[];return P.forEach(c=>{if(c instanceof x)i.push(...c.booths);else if(c instanceof I)i.push(c);else if(c instanceof O){const r=o.find(l=>l.id===c.boothId);c.boothId&&r&&i.push(r)}else c instanceof K&&s.filter(r=>r.speakers.some(l=>l.id===c.id)&&r.boothId).forEach(r=>{const l=o.find(u=>u.id===r.boothId);l&&i.push(l)})}),new Set(i.filter(Boolean))}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface FloorPlan {
|
|
|
24
24
|
* The onFpConfigured method is deprecated. Use onInit instead.
|
|
25
25
|
*/
|
|
26
26
|
onFpConfigured(): void;
|
|
27
|
-
onDirection(e: FloorPlanDirectionEvent): void;
|
|
27
|
+
onDirection(e: FloorPlanDirectionEvent | null): void;
|
|
28
28
|
onDetails(e: FloorPlanDetailsEvent): void;
|
|
29
29
|
onExhibitorCustomButtonClick(e: FloorPlanCustomButtonEvent): void;
|
|
30
30
|
onGetCoordsClick(e: FloorPlanGetCoordsEvent): void;
|
|
@@ -154,7 +154,7 @@ export interface FloorPlanOptions {
|
|
|
154
154
|
* The onFpConfigured method is deprecated. Use onInit instead.
|
|
155
155
|
*/
|
|
156
156
|
onFpConfigured?: () => void;
|
|
157
|
-
onDirection?: (e: FloorPlanDirectionEvent) => void;
|
|
157
|
+
onDirection?: (e: FloorPlanDirectionEvent | null) => void;
|
|
158
158
|
onDetails?: (e: FloorPlanDetailsEvent) => void;
|
|
159
159
|
onExhibitorCustomButtonClick?: (e: FloorPlanCustomButtonEvent) => void;
|
|
160
160
|
onMarkerClick?: (e: FloorPlanMarkerEvent | undefined) => void;
|
|
@@ -206,9 +206,25 @@ export interface FloorPlanVisitedClickEvent {
|
|
|
206
206
|
externalId: string;
|
|
207
207
|
}
|
|
208
208
|
type FloorPlanCategoryClickEvent = FloorPlanCategory;
|
|
209
|
+
/**
|
|
210
|
+
* A route endpoint as the direction event reports it. A booth carries its own layer and external
|
|
211
|
+
* id; a point picked on the map (the blue dot, a kiosk anchor) carries the layer name it snapped
|
|
212
|
+
* to, so both fields read as optional here.
|
|
213
|
+
*/
|
|
214
|
+
export interface FloorPlanDirectionEndpoint {
|
|
215
|
+
id: number;
|
|
216
|
+
externalId?: string;
|
|
217
|
+
name: string;
|
|
218
|
+
layer: {
|
|
219
|
+
name?: string;
|
|
220
|
+
description?: string;
|
|
221
|
+
};
|
|
222
|
+
}
|
|
209
223
|
export interface FloorPlanDirectionEvent {
|
|
210
|
-
|
|
211
|
-
|
|
224
|
+
/** The origin, `null` while the route has only a destination. */
|
|
225
|
+
from: FloorPlanDirectionEndpoint | null;
|
|
226
|
+
/** The destination, `null` while the route has only an origin. */
|
|
227
|
+
to: FloorPlanDirectionEndpoint | null;
|
|
212
228
|
/**
|
|
213
229
|
* Route polyline segments in walking order — from the origin (`from`) to the
|
|
214
230
|
* destination (`to`), each `p0 → p1` pointing forward along the route.
|
|
@@ -220,6 +236,7 @@ export interface FloorPlanDirectionEvent {
|
|
|
220
236
|
p0: Point;
|
|
221
237
|
p1: Point;
|
|
222
238
|
}[];
|
|
239
|
+
/** Length with units (`"120m"`), empty while the route length is still unknown. */
|
|
223
240
|
distance: string;
|
|
224
241
|
units: string;
|
|
225
242
|
time: number;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* (stores, mount points). Re-exports the bootstrap (`createWayfinding`), the
|
|
4
4
|
* runtime facade (`isWayfindingReady`), and the glue endpoint helpers.
|
|
5
5
|
*/
|
|
6
|
+
export type { ArbitraryPoint } from './adapters';
|
|
6
7
|
export { boothToEndpoint, CURRENT_LOCATION_NAME, CURRENT_POSITION_POINT_ID, KIOSK_ANCHOR_POINT_ID, toArbitraryPoint, } from './adapters';
|
|
7
8
|
export { buildRoute } from './createWayfinding';
|
|
8
9
|
export { createWayfinding, isWayfindingReady } from './createWayfinding';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expofp/floorplan",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.24.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/expofp/efp-app.git",
|
|
@@ -70,14 +70,14 @@
|
|
|
70
70
|
"tslib": "^2.3.0",
|
|
71
71
|
"uuid": "^9.0.1",
|
|
72
72
|
"zod": "4.4.3",
|
|
73
|
-
"@expofp/
|
|
74
|
-
"@expofp/
|
|
75
|
-
"@expofp/geometry": "3.
|
|
76
|
-
"@expofp/resolve": "3.
|
|
77
|
-
"@expofp/schema": "3.
|
|
78
|
-
"@expofp/
|
|
79
|
-
"@expofp/utils": "3.
|
|
80
|
-
"@expofp/
|
|
73
|
+
"@expofp/debug": "3.24.0",
|
|
74
|
+
"@expofp/config": "3.24.0",
|
|
75
|
+
"@expofp/geometry": "3.24.0",
|
|
76
|
+
"@expofp/resolve": "3.24.0",
|
|
77
|
+
"@expofp/schema": "3.24.0",
|
|
78
|
+
"@expofp/ui": "3.24.0",
|
|
79
|
+
"@expofp/utils": "3.24.0",
|
|
80
|
+
"@expofp/wayfinding": "3.24.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|