@expofp/floorplan
Version:
Interactive floor plan library for expos and events
256 lines • 9.3 kB
TypeScript
import { ReactNode } from "react";
import { Kiosk } from "../components/Kiosk/SetKiosk";
import Rect from "../core/Rect";
import Size from "../core/Size";
import { RawPoiType } from "../data/Data";
import { Booth } from "./BoothStore";
import { Category } from "./CategoryStore";
import { EventItem, Track } from "./EventStore";
import { Exhibitor } from "./ExhibitorStore";
import { FuzzySearchResult } from "./FuzzySearchEngineStore";
import RootStore from "./RootStore";
import { Route } from "./RouteStore";
import { SpeakerItem } from "./SpeakerStore";
import type { BannerType, InterfaceAction, ListItem, ListType, MapSettings, OverlaySize, Visibility } from "./types";
interface InterfaceMetadata {
id: string;
className: string;
priority: number;
isActive: () => boolean;
additionalClasses?: () => string[];
searchBoxConfig?: () => {
mode: string;
title?: string;
subtitle?: string;
badge?: string | number;
icon?: string;
} | null;
actions?: () => InterfaceAction[];
}
export default class UIState {
private readonly rootStore;
private readonly interfaceMetadata;
list: ListType;
details: Booth | Exhibitor | Route | Category | EventItem | SpeakerItem;
hoveredExhibitor: Exhibitor;
hoveredBooth: Booth;
zoomBy: number;
rollReset: boolean;
moveToBooths: Booth[];
moveToRect: Rect;
moveToLocation: boolean;
menu: boolean;
searchFocused: boolean;
searchClearMode: boolean;
printingPdf: boolean;
largeMessage: string;
largeMessageLastSet: number;
screenSize: Size;
desiredOverlaySize: OverlaySize;
overlayShowsAll: boolean;
centerMap: boolean;
zoomAfTransformK: number;
activeListIndex: number;
devicePixelRatio: number;
previewExhibitor: Exhibitor;
wsStarted: boolean;
canvasStarted: boolean;
kiosk: boolean;
inIdle: boolean;
modalActive: {
share: boolean;
};
galleryActive: boolean;
hideOverlay: boolean;
hideCookieConsent: boolean;
hideHeaderLogo: boolean;
hideLogoInBooth: boolean;
disableBookmarked: boolean;
hideLanguage: boolean;
monochrome: boolean;
heatmap: boolean;
heatmapYah: boolean;
rootElement: HTMLDivElement;
debugCircles: {
x: number;
y: number;
radius: number;
color?: string;
}[];
mapControlsHidden: boolean;
floorsControlHidden: boolean;
hideFreeOrDemo: boolean;
freeBannerDismissed: boolean;
currentBanner: BannerType;
sceneDefReady: boolean;
categoryFilterOpen: boolean;
selectedCategoryFilters: Category[];
selectedPoiTypeFilters: RawPoiType[];
selectedTrack: Track | null;
subButtonsVisible: boolean;
mapControlsDOMRect: DOMRect;
searchBoxMode: "search" | "details" | "interface";
searchBoxTitle: string;
searchBoxSubtitle?: string;
routeTitle?: string;
routeDescription?: string;
isMultiPointRoute: boolean;
tourTitle?: string;
tourDescription?: string;
isMultiPointTour: boolean;
pathwayOnlyMode: boolean;
isOverlayScrolled: boolean;
listScrollTop: number;
listScrollItemId: string | number | null;
listScrollIndex: number;
private scrollPositions;
private scrollItemIds;
_customUIScale: number | null;
private readonly searchFilterHeightPx;
private readonly searchInputHeightPx;
private readonly overlayUISizePx;
private readonly overlayKioskSizePx;
private readonly overlayMediumHeightRems;
setSelectedCategoryFilters(categories: Category[]): void;
resetCategoryFilter(): void;
setSearchClearMode(value: boolean): void;
setRouteTitle(title: string): void;
setRouteDescription(description: string): void;
setIsMultiPointRoute(isMulti: boolean): void;
setTourTitle(title: string): void;
setTourDescription(description: string): void;
setIsMultiPointTour(isMulti: boolean): void;
setPathwayOnlyMode(value: boolean): void;
setMultiPointTourList(tourId: string): void;
get activePathwayLayers(): string[];
get highlightedBooths(): ReadonlySet<string>;
constructor(rootStore: RootStore);
get rtl(): boolean;
get noOverlay(): boolean;
get onBoothClick(): (e: FloorPlanBoothClickEvent) => void;
get onMarkerClick(): (e: import("..").FloorPlanMarkerEvent) => void;
get onBookmarkClick(): (e: FloorPlanBookmarkClickEvent) => void;
get onVisitedClick(): (e: FloorPlanVisitedClickEvent) => void;
get onCategoryClick(): (e: FloorPlanCategoryClickEvent) => void;
get onDirection(): (e: FloorPlanDirectionEvent) => void;
get onDetails(): (e: import("..").FloorPlanDetailsEvent) => void;
get onExhibitorCustomButtonClick(): (e: import("..").FloorPlanCustomButtonEvent) => void;
get onGetCoordsClick(): (e: import("..").FloorPlanGetCoordsEvent) => void;
get selectedExhibitor(): Exhibitor | null;
get selectedBooth(): Booth | null;
get selectedCategory(): Category | null;
get selectedRoute(): Route | null;
get selectedSpeaker(): SpeakerItem | null;
get uiScale(): number;
get isGuidedToursActive(): boolean;
get getRouteNextFloor(): string | null;
get headerHeightRem(): number;
get headerHeightPx(): number;
get overlayPosition(): "left" | "bottom";
get overlayCollapsed(): false;
get overlaySize(): OverlaySize;
get overlayBottom(): boolean;
get overlayLeft(): boolean;
get overlayWidthPx(): number;
get wsImageHeightPx(): number;
get wsPaddingPx(): number;
get wsOccupiedHeightPx(): number;
get wsShown(): boolean;
get wsDesktopPosition(): "bottom" | "top";
get wsPosition(): "bottom" | "top";
get responsiveClass(): string;
get mapVisibleTop(): number;
get mapVisibleBottom(): number;
get mapVisibleStart(): number;
get searchActionsHeightPx(): number;
get fullSizeOffset(): number;
get shouldShowSearchButtons(): false;
get canvasVisibleRectPx(): Rect;
get shouldShiftMapRect(): false | Booth | Exhibitor | Category | EventItem | SpeakerItem | Route;
get hasAppliedFilters(): boolean;
get canvasVisibleRectPt(): Rect;
get canvasSizePt(): Size;
get shouldUseBackdrop(): boolean | undefined;
forceDimm: boolean;
setForceDimm(forceDimm: boolean): void;
get dimmed(): boolean;
get defaultSearchItems(): ListItem[];
get searchItems(): ListItem[];
get searchList(): ListItem[];
get foundInDescription(): ListItem[];
get foundInDescriptionStruct(): Record<number, string>;
get categoryFilteredSearchList(): ListItem[];
get fuzzySearchItems(): FuzzySearchResult<ListItem>[];
get listItems(): ListItem[];
get listBooths(): Set<Booth>;
get selectedBooths(): Set<Booth>;
get hoveredBooths(): Set<Booth>;
get visibility(): Visibility;
setVisibility(visibility: Visibility): void;
toggleMapOverlay(): void;
changeZoom(zoom: number): void;
zoomIn(): void;
zoomOut(): void;
fitBounds(): void;
get previewMode(): boolean;
get viewerMode(): boolean;
get selectedEventItem(): EventItem | null;
/**
* @warning If the property is of a numeric type, set the default value to be numeric, otherwise they will be cast incorrectly.
* @see {@link src/services/routing.ts~setMapSettings}
* */
get defaultMapSettings(): MapSettings;
mapSettings: MapSettings;
saveMapSettings(settings: MapSettings): void;
setMapSettings(settings: MapSettings): void;
resetMapSettings(): void;
get baseQRCodeUrl(): string;
get viewMapOnPhoneQRCodeUrl(): string;
get routeQRCodeUrl(): string;
get isFeaturedExhibitorActive(): boolean;
get activeInterfaceData(): InterfaceMetadata | null;
get searchBoxConfig(): {
mode: string;
title?: string;
subtitle?: string;
badge?: string | number;
icon?: string;
};
get searchBoxActions(): InterfaceAction[];
get overlayInterfaceClasses(): string[];
get isOverlayOpen(): boolean;
setOverlayScrolled(isScrolled: boolean): void;
setListScrollTop(listType: string, scrollTop: number): void;
setListScrollItemId(listType: string, itemId: string | number): void;
getListScrollTop(listType: string): number;
getListScrollItemId(listType: string): string | number | null;
clearListScroll(listType: string): void;
get bannerType(): BannerType;
get isBannerVisible(): boolean;
setCurrentBanner(banner: BannerType): void;
forceShowDetails: boolean;
setForceShowDetails(flag: boolean): void;
get showRouteInstantly(): boolean;
buildRoute: boolean;
startBuildRoute(): void;
globalErrorMessages: {
title: string;
body?: ReactNode;
}[];
setGlobalErrorMessage(message: {
title: string;
body?: ReactNode;
}): void;
popGlobalErrorMessage(): void;
private initializeUIScale;
minUIScale: number;
maxUIScale: number;
setUIScale(scale: number, saveToStorage?: boolean): void;
resetUIScale(): void;
setKioskModeEnabled: boolean;
enableSetKioskMode(enable: boolean): void;
kioskData: Kiosk;
setKioskData(kioskData: Kiosk | null): void;
}
export {};
//# sourceMappingURL=UIState.d.ts.map