@expofp/floorplan
Version:
Interactive floor plan library for expos and events
56 lines • 1.92 kB
TypeScript
import type { AutocompleteOptionObject } from '../ui/Autocomplete';
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(): AutocompleteOptionObject[];
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