@expofp/floorplan
Version:
Interactive floor plan library for expos and events
58 lines • 1.88 kB
TypeScript
import { Booth } from "./BoothStore";
import { EventItem } from "./EventStore";
import { Exhibitor } from "./ExhibitorStore";
import RootStore from "./RootStore";
export type PlannerSource = "bookmarks" | "custom";
export interface PlannerItem {
type: "exhibitor" | "event" | "booth";
entity: Exhibitor | EventItem | Booth;
booth: Booth | null;
}
export default class RoutePlannerStore {
rootStore: RootStore;
items: PlannerItem[];
startPoint: Booth | null;
source: PlannerSource | null;
excludedVisitedCount: number;
constructor(rootStore: RootStore);
get resolvedBooths(): Booth[];
get stopsCount(): number;
get startPointBoothOptions(): Booth[];
get startPointAutocompleteOptions(): {
value: string;
label: string;
}[];
get title(): string;
get subtitleParts(): {
stops: string;
from: string | undefined;
distance: string | undefined;
travelTime: string | undefined;
};
get routeFloors(): {
id: number;
name: string;
description?: string;
directionToNext?: "up" | "down";
}[];
get currentRouteFloor(): {
id: number;
name: string;
} | undefined;
setRouteFloor(floor: {
id: number;
name: string;
}): void;
launch(items: PlannerItem[], source?: PlannerSource, initialStartPoint?: Booth | null): void;
launchFromBookmarks(initialStartPoint?: Booth | null): void;
launchFromSlugs(slugs: string[], initialStartPoint?: Booth | null): void;
private resolveSlugs;
buildRoute(): void;
private reorderItemsByNames;
private detectStartPoint;
setStartPoint(booth: Booth | null): void;
removeItem(index: number): void;
reorderItems(fromIndex: number, toIndex: number): void;
close(): void;
}
//# sourceMappingURL=RoutePlannerStore.d.ts.map