Skip to content

Documentation / @expofp/schema / Manifest

Interface: Manifest

Extends

Indexable

ts
[key: string]: unknown

Properties

allow3dView?

ts
optional allow3dView?: boolean;

Inherited from

ts
z.infer.allow3dView

allowConsent?

ts
optional allowConsent?: boolean;

Inherited from

ts
z.infer.allowConsent

alwaysShowSidebar?

ts
optional alwaysShowSidebar?: boolean;

Inherited from

ts
z.infer.alwaysShowSidebar

autoTrackingGps?

ts
optional autoTrackingGps?: boolean;

Inherited from

ts
z.infer.autoTrackingGps

booths?

ts
optional booths?: (
  | {
[key: string]: unknown;
  availColor?: string;
  buyUrl?: string;
  exhibitors?: number[];
  externalId?: string;
  holdColor?: string;
  id: number;
  labelColor?: string;
  meta?: Record<string, string>;
  name: string;
  poiTypeId?: number;
  price?: string;
  reserveUrl?: string;
  size?: string;
  soldColor?: string;
  status?: "onhold" | "reserved";
  title?: string;
  type?: string;
}
  | {
[key: string]: unknown;
  color?: string;
  description?: string;
  exhibitors?: number[];
  externalId?: string;
  id: number;
  meta?: Record<string, string>;
  name: string;
  poiTypeId?: number;
  special: true;
  title?: string;
})[];

Inherited from

ts
z.infer.booths

boothTerm?

ts
optional boothTerm?: string;

Inherited from

ts
z.infer.boothTerm

busRoutes?

ts
optional busRoutes?: boolean;

Enable live bus/transport routing on the floor plan.

Disabled by default: most plans have no transit routes, and probing for them issues an extra HTTP request on every load. Set to true only for plans that actually provide bus routes.

Inherited from

ts
z.infer.busRoutes

camera?

ts
optional camera?: object = CameraSchema;

The initial camera, applied once at boot (an empty object means "don't move"). The runtime counterpart is FloorPlan.setCamera / the setCamera intent; the legacy ?centerxy=/?center=/?z=/?bearing=/?zoomtime= URL params translate into this shape.

bearing?

ts
optional bearing?: number;

Map rotation in degrees (0–360).

floor?

ts
optional floor?: string;

Floor name to activate.

lat?

ts
optional lat?: number;

Center, GPS latitude (paired with lng).

lng?

ts
optional lng?: number;

Center, GPS longitude (paired with lat).

x?

ts
optional x?: number;

Center, floor-plan projected coordinates (paired with y).

y?

ts
optional y?: number;

Center, floor-plan projected coordinates (paired with x).

zoomTime?

ts
optional zoomTime?: number;

Camera movement animation duration in milliseconds.

Inherited from

ts
z.infer.camera

categories?

ts
optional categories?: object[];

Index Signature

ts
[key: string]: unknown

id

ts
id: number;

name

ts
name: string;

sponsorship?

ts
optional sponsorship?: boolean;

Inherited from

ts
z.infer.categories

ts
optional consent?: "ask" | "granted" | "denied" = ConsentSchema;

Inherited from

ts
z.infer.consent

customCss?

ts
optional customCss?: string;

Inherited from

ts
z.infer.customCss

customCssFonts?

ts
optional customCssFonts?: object[];

Index Signature

ts
[key: string]: unknown

style?

ts
optional style?: string;

url?

ts
optional url?: string;

weight?

ts
optional weight?: string | number;

Inherited from

ts
z.infer.customCssFonts

customKioskQrCodeUrl?

ts
optional customKioskQrCodeUrl?: string;

Inherited from

ts
z.infer.customKioskQrCodeUrl

customSetKiosk?

ts
optional customSetKiosk?: string;

Custom setkiosk phrase.

Inherited from

ts
z.infer.customSetKiosk

debugMode?

ts
optional debugMode?: boolean;

Debug mode: verbose logs, the in-map debug overlay, dev-leniency in error paths.

Inherited from

ts
z.infer.debugMode

debugPattern?

ts
optional debugPattern?: string;

Inherited from

ts
z.infer.debugPattern

dimensionless?

ts
optional dimensionless?: boolean;

Inherited from

ts
z.infer.dimensionless

disableBookmarked?

ts
optional disableBookmarked?: boolean;

Disable adding entities to bookmarks.

Inherited from

ts
z.infer.disableBookmarked

disableFeatured?

ts
optional disableFeatured?: boolean;

Drop the featured flag from every exhibitor (no featured view).

Inherited from

ts
z.infer.disableFeatured

disableGps?

ts
optional disableGps?: boolean;

Start with GPS tracking off.

Inherited from

ts
z.infer.disableGps

disableRuntimeAlerts?

ts
optional disableRuntimeAlerts?: boolean;

Inherited from

ts
z.infer.disableRuntimeAlerts

enableExperimentalMaplibre?

ts
optional enableExperimentalMaplibre?: boolean;

Enable experimental MapLibre GL JS support.

Inherited from

ts
z.infer.enableExperimentalMaplibre

enableExperimentalOutdoorMarkers?

ts
optional enableExperimentalOutdoorMarkers?: boolean;

Enable experimental outdoor PoI markers: booths on an Outdoor* layer leave the renderer scene and draw as fixed-size native MapLibre markers with clustering.

Unset or false disables the feature outright — Outdoor layers then render like any other layer, exactly as they did before it existed. Unlike enableExperimentalMaplibre this is NOT tri-state: no drawing field opts a plan in, so there is nothing for undefined to defer to.

Inherited from

ts
z.infer.enableExperimentalOutdoorMarkers

enableIPS?

ts
optional enableIPS?: boolean;

Inherited from

ts
z.infer.enableIPS

enableRotation?

ts
optional enableRotation?: boolean;

Inherited from

ts
z.infer.enableRotation

endDate?

ts
optional endDate?: string;

Inherited from

ts
z.infer.endDate

events?

ts
optional events?: object[];

Index Signature

ts
[key: string]: unknown

boothId?

ts
optional boothId?: number;

description?

ts
optional description?: string;

endDate?

ts
optional endDate?: string;

exhibitorId?

ts
optional exhibitorId?: number;

externalId?

ts
optional externalId?: string;

id

ts
id: number;
ts
optional link?: string;

logoFile?

ts
optional logoFile?: string;

name

ts
name: string;

speakers?

ts
optional speakers?: object[];
Index Signature
ts
[key: string]: unknown

startDate?

ts
optional startDate?: string;

tracks?

ts
optional tracks?: unknown[];

Inherited from

ts
z.infer.events

exhibitors?

ts
optional exhibitors?: object[];

Index Signature

ts
[key: string]: unknown

address?

ts
optional address?: string;

address2?

ts
optional address2?: string;
ts
optional advertise?: boolean;

categories?

ts
optional categories?: number[];

city?

ts
optional city?: string;

country?

ts
optional country?: string;

description?

ts
optional description?: string;

email?

ts
optional email?: string;

externalId?

ts
optional externalId?: string;

facebook?

ts
optional facebook?: string;
ts
optional featured?: boolean;
ts
optional gallery?: string[];

googlePlus?

ts
optional googlePlus?: string;

id

ts
id: number;

instagram?

ts
optional instagram?: string;

leadingImageUrl?

ts
optional leadingImageUrl?: string;

linkedin?

ts
optional linkedin?: string;
ts
optional logo?: 
  | string
  | {
  smallUrl?: string;
  tinyUrl?: string;
  url: string;
} = ExhibitorLogoSchema;

logoInBooth?

ts
optional logoInBooth?: boolean;

Paint the logo inside the exhibitor's booth shape on the drawing.

marketMaterials?

ts
optional marketMaterials?: object[];
Index Signature
ts
[key: string]: unknown

name

ts
name: string;

order?

ts
optional order?: number;

phone1?

ts
optional phone1?: string;

privateEmail?

ts
optional privateEmail?: string;

rebookingNote?

ts
optional rebookingNote?: string;

rebookingState?

ts
optional rebookingState?: number;

state?

ts
optional state?: string;

twitter?

ts
optional twitter?: string;

videoUrl?

ts
optional videoUrl?: string;

website?

ts
optional website?: string;

xing?

ts
optional xing?: string;

youtube?

ts
optional youtube?: string;

zip?

ts
optional zip?: string;

Inherited from

ts
z.infer.exhibitors

exhibitorTerm?

ts
optional exhibitorTerm?: string;

Inherited from

ts
z.infer.exhibitorTerm

exhibitorTermPlural?

ts
optional exhibitorTermPlural?: string;

Inherited from

ts
z.infer.exhibitorTermPlural

expo

ts
expo: string;

Inherited from

ts
z.infer.expo

expoFpAd?

ts
optional expoFpAd?: boolean;

Inherited from

ts
z.infer.expoFpAd

filterButtonsConfig?

ts
optional filterButtonsConfig?: object = FilterButtonsConfigSchema;

Index Signature

ts
[key: string]: unknown

isExplicit?

ts
optional isExplicit?: boolean;

searchButtons?

ts
optional searchButtons?: object[];
Index Signature
ts
[key: string]: unknown

sortType?

ts
optional sortType?: "custom" | "alphabetical";

Inherited from

ts
z.infer.filterButtonsConfig

filters?

ts
optional filters?: object = FiltersSchema;

Search filters applied once at boot by the URL filter manager (an empty object applies nothing). Canonical URL form ?filters[categories][0]=food; the legacy ?categories=/?poiType=/?poiTypes=/?exhibitors=true keys keep working — and remain the form the floor plan writes back to the URL as the visitor changes filters.

categories?

ts
optional categories?: string[];

Category names to pre-select; opens the category filter panel.

exhibitors?

ts
optional exhibitors?: boolean;

true opens the exhibitors list at boot.

poiType?

ts
optional poiType?: string;

A single POI type to pre-select; also activates its search filter button.

poiTypes?

ts
optional poiTypes?: string[];

POI type names to pre-select (no filter-button activation).

Inherited from

ts
z.infer.filters

fpSvgJsRef?

ts
optional fpSvgJsRef?: 
  | {
  $ref: string;
}
  | null;

fp.svg.js ref (the drawing); null derives <legacyDataUrlBase>fp.svg.js.

Inherited from

ts
z.infer.fpSvgJsRef

fpSvgLayerJsRefs?

ts
optional fpSvgLayerJsRefs?: Record<string, {
  $ref: string;
}>;

Per-layer fp.svg.<layerName>.js refs (by layer name), resolved on demand.

Inherited from

ts
z.infer.fpSvgLayerJsRefs

free?

ts
optional free?: boolean;

Inherited from

ts
z.infer.free

ts
optional gallery?: string[];

Inherited from

ts
z.infer.gallery

gtag?

ts
optional gtag?: string;

Inherited from

ts
z.infer.gtag

heatmap?

ts
optional heatmap?: object = HeatmapSchema;

Heatmap mode, engaged once at boot (an empty object — the default — means no heatmap). A non-empty node engages the mode unless enabled is explicitly false, so heatmap: { variant: 'yah' } implies enabled; variant picks the dataset (booths view stats by default, yah for "You are here" QR scans; kiosk: true narrows yah to kiosk positions). Heatmap mode freezes the page URL for the whole session (the legacy contract). The legacy ?heatmap=true&type=yah&subtype=kiosk links keep working as a translation; the access token ?t= stays a separate raw query param, not config.

enabled?

ts
optional enabled?: boolean;

Engage the heatmap explicitly; false vetoes an otherwise non-empty node.

kiosk?

ts
optional kiosk?: boolean;

Narrow the yah variant to kiosk positions (ignored for booths).

variant?

ts
optional variant?: "booths" | "yah";

The dataset shown: booths (the default) — booth/exhibitor view stats; yah — "You are here" QR-code scan counts, with a stripped-down monochrome presentation.

Inherited from

ts
z.infer.heatmap

hide3dMapDefault?

ts
optional hide3dMapDefault?: boolean;

Inherited from

ts
z.infer.hide3dMapDefault

hideBookmarks?

ts
optional hideBookmarks?: boolean;

Inherited from

ts
z.infer.hideBookmarks

ts
optional hideBookmarksLink?: boolean;

Inherited from

ts
z.infer.hideBookmarksLink

hideBoothBadges?

ts
optional hideBoothBadges?: boolean;

Hide booth number badges.

Inherited from

ts
z.infer.hideBoothBadges

ts
optional hideCategoriesLink?: boolean;

Inherited from

ts
z.infer.hideCategoriesLink

hideDirections?

ts
optional hideDirections?: boolean;

Inherited from

ts
z.infer.hideDirections

ts
optional hideDownloadPdfLink?: boolean;

Inherited from

ts
z.infer.hideDownloadPdfLink

ts
optional hideEventHomeLink?: boolean;

Inherited from

ts
z.infer.hideEventHomeLink

hideExhibitorBoothNumber?

ts
optional hideExhibitorBoothNumber?: boolean;

Inherited from

ts
z.infer.hideExhibitorBoothNumber

hideExhibitors?

ts
optional hideExhibitors?: boolean;

Inherited from

ts
z.infer.hideExhibitors

ts
optional hideHeaderLogo?: boolean;

Hide the header logo (and the ExpoFP logo).

Inherited from

ts
z.infer.hideHeaderLogo

hideLanguage?

ts
optional hideLanguage?: boolean;

Inherited from

ts
z.infer.hideLanguage

ts
optional hideLanguageLink?: boolean;

Inherited from

ts
z.infer.hideLanguageLink

hideLogoInBooth?

ts
optional hideLogoInBooth?: boolean;

Hide exhibitor logos inside booths.

Inherited from

ts
z.infer.hideLogoInBooth

hideModeSwitchButton?

ts
optional hideModeSwitchButton?: boolean;

Inherited from

ts
z.infer.hideModeSwitchButton

ts
optional hideRegisterToAttendLink?: boolean;

Inherited from

ts
z.infer.hideRegisterToAttendLink

hideShareButton?

ts
optional hideShareButton?: boolean;

Inherited from

ts
z.infer.hideShareButton

hideWayInformation?

ts
optional hideWayInformation?: boolean;

Inherited from

ts
z.infer.hideWayInformation

homeUrl?

ts
optional homeUrl?: string;

Inherited from

ts
z.infer.homeUrl

ignoreQuery?

ts
optional ignoreQuery?: boolean;

Inherited from

ts
z.infer.ignoreQuery

intents?

ts
optional intents?: (
  | {
  args: [string];
  name: "selectBooth";
}
  | {
  args: [string];
  name: "selectExhibitor";
}
  | {
  args: [string];
  name: "changeLanguage";
}
  | {
  args: [string];
  name: "selectCategory";
}
  | {
  args: [string];
  name: "select";
}
  | {
  args: [
     | "exhibitors"
     | "bookmarks"
     | "visited"
     | "sessions"
     | "speakers"
     | "tours"
    | "language"];
  name: "showList";
}
  | {
  args: [string];
  name: "selectTour";
}
  | {
  args: [{
     from?: string;
     fromBookmarks?: boolean;
     items?: string[];
  }];
  name: "openPlanner";
}
  | {
  args: [];
  name: "startBuildRoute";
}
  | {
  args: [{
     bearing?: number;
     floor?: string;
     lat?: number;
     lng?: number;
     x?: number;
     y?: number;
     zoomTime?: number;
  }];
  name: "setCamera";
}
  | {
  args: [{
     controls?: boolean;
     header?: boolean;
     levels?: boolean;
     overlay?: boolean;
     searchButtons?: boolean;
  }];
  name: "setVisibility";
}
  | {
  args: [string[]];
  name: "selectRoute";
}
  | {
  args: [string[]];
  name: "selectAccessibleRoute";
}
  | {
  args: [string, string[]];
  name: "showPathway";
}
  | {
  args: [{
     angle?: number;
     lat?: number;
     lng?: number;
     x: number;
     y: number;
     z?: string | number;
  }, boolean, number?];
  name: "selectCurrentPosition";
})[];

Inherited from

ts
z.infer.intents

isRebooking?

ts
optional isRebooking?: boolean;

Inherited from

ts
z.infer.isRebooking

isTrial?

ts
optional isTrial?: boolean;

Inherited from

ts
z.infer.isTrial

kiosk?

ts
optional kiosk?: object = KioskSchema;

The kiosk anchor — where a kiosk device stands and how its camera is framed, applied at boot when the device has no locally-saved kiosk (the on-device SetKiosk flow wins; localStorage['kiosk']='0' disables both). Canonical URL form ?kiosk[x]=…; the legacy kiosk_* params stay the per-navigation translation and ?kiosk=1/0 keeps toggling kiosk mode.

heading?

ts
optional heading?: number;

Device heading in degrees — rotates the you-are-here marker.

iconSizePercent?

ts
optional iconSizePercent?: number;

You-are-here icon size, in percent.

lat?

ts
optional lat?: number;

GPS latitude (with lng, an alternative fix to x/y).

lng?

ts
optional lng?: number;

GPS longitude.

mapBearingDegrees?

ts
optional mapBearingDegrees?: number;

Map bearing at the home framing, degrees (map mode).

mapCenterLat?

ts
optional mapCenterLat?: number;

Home framing center latitude (map mode).

mapCenterLng?

ts
optional mapCenterLng?: number;

Home framing center longitude (map mode).

mapCenterX?

ts
optional mapCenterX?: number;

Home framing center x.

mapCenterY?

ts
optional mapCenterY?: number;

Home framing center y.

mapInitialPtScale?

ts
optional mapInitialPtScale?: number;

The pt-scale captured when the kiosk was set up (zoom reference).

mapPitch?

ts
optional mapPitch?: number;

Map pitch at the home framing, degrees.

mapPitchDegrees?

ts
optional mapPitchDegrees?: number;

Map pitch at the home framing, degrees (map mode).

mapPtScale?

ts
optional mapPtScale?: number;

The pt-scale of the saved framing.

mapRollDegrees?

ts
optional mapRollDegrees?: number;

Map roll at the kiosk's home framing, degrees.

mapZoom?

ts
optional mapZoom?: number;

Map zoom level at the home framing (map mode).

uiScale?

ts
optional uiScale?: number;

Per-device UI scale preference (the applied range is 0.8–1.4).

x?

ts
optional x?: number;

Anchor x in plan coordinates.

y?

ts
optional y?: number;

Anchor y in plan coordinates.

z?

ts
optional z?: string | number | null;

Floor: the level name (a numeric index is accepted and stringified). Nullable — the on-device SetKiosk flow writes null for a plan with no layers, and that record round-trips through localStorage.

Inherited from

ts
z.infer.kiosk

legacyDataUrlBase?

ts
optional legacyDataUrlBase?: string;

The legacy expo-data directory (data.js, fp.svg.js, …). Consumed by loadConfig to fetch the document and derive the payload refs — it is NOT carried on the effective config; nothing outside the config package ever sees it.

Inherited from

ts
z.infer.legacyDataUrlBase

levelTerm?

ts
optional levelTerm?: string;

Inherited from

ts
z.infer.levelTerm

locale?

ts
optional locale?: string;

Inherited from

ts
z.infer.locale

logo?

ts
optional logo?: string;

Inherited from

ts
z.infer.logo

maplibre?

ts
optional maplibre?: object = MapLibreConfigSchema;

Index Signature

ts
[key: string]: unknown

offline?

ts
optional offline?: boolean;

The style and everything it references (tiles, sprites, glyphs) are reachable without network — lets the map stay enabled while navigator.onLine is false.

style?

ts
optional style?: any;

Inline style object (takes precedence over styleUrl). With no style URL to resolve against, every URL inside it must already be full.

styleUrl?

ts
optional styleUrl?: string;

Full, rooted, or relative URL of a MapLibre style document, fetched by MapLibre GL itself. Its internal resources are resolved by the SDK before MapLibre consumes the loaded style.

Inherited from

ts
z.infer.maplibre

monochrome?

ts
optional monochrome?: boolean;

Render the plan in grayscale.

Inherited from

ts
z.infer.monochrome

noFeatured?

ts
optional noFeatured?: boolean;

Inherited from

ts
z.infer.noFeatured

noOverlay?

ts
optional noOverlay?: boolean;

Inherited from

ts
z.infer.noOverlay

offHistory?

ts
optional offHistory?: boolean;

Inherited from

ts
z.infer.offHistory

onlyFeaturedExhibitors?

ts
optional onlyFeaturedExhibitors?: boolean;

Inherited from

ts
z.infer.onlyFeaturedExhibitors

poiTypes?

ts
optional poiTypes?: object[];

Index Signature

ts
[key: string]: unknown

iconUrl?

ts
optional iconUrl?: string;

Icon shown for this type; overrides the built-in glyph.

id

ts
id: number;

name

ts
name: string;

parentId?

ts
optional parentId?: number;

Inherited from

ts
z.infer.poiTypes

previewMode?

ts
optional previewMode?: boolean;

Inherited from

ts
z.infer.previewMode

registerUrl?

ts
optional registerUrl?: string;

Inherited from

ts
z.infer.registerUrl

reserveButtonTerm?

ts
optional reserveButtonTerm?: string;

Inherited from

ts
z.infer.reserveButtonTerm

reserveInstructions?

ts
optional reserveInstructions?: string;

Inherited from

ts
z.infer.reserveInstructions

searchText?

ts
optional searchText?: string;

Inherited from

ts
z.infer.searchText

sendLoginLinkUrl?

ts
optional sendLoginLinkUrl?: string;

Inherited from

ts
z.infer.sendLoginLinkUrl

shortLevelName?

ts
optional shortLevelName?: boolean;

Inherited from

ts
z.infer.shortLevelName

showCategories?

ts
optional showCategories?: boolean;

Inherited from

ts
z.infer.showCategories

showCompaniesAndBooths?

ts
optional showCompaniesAndBooths?: boolean;

Inherited from

ts
z.infer.showCompaniesAndBooths

showDebugButton?

ts
optional showDebugButton?: boolean;

Inherited from

ts
z.infer.showDebugButton

showLevelLabel?

ts
optional showLevelLabel?: boolean;

Inherited from

ts
z.infer.showLevelLabel

showOtherSpaces?

ts
optional showOtherSpaces?: boolean;

Inherited from

ts
z.infer.showOtherSpaces

startDate?

ts
optional startDate?: string;

Inherited from

ts
z.infer.startDate

subtitle?

ts
optional subtitle?: string;

Inherited from

ts
z.infer.subtitle

title?

ts
optional title?: string;

Inherited from

ts
z.infer.title

trackerUrl?

ts
optional trackerUrl?: string;

Inherited from

ts
z.infer.trackerUrl

trialExpiresAt?

ts
optional trialExpiresAt?: string;

Inherited from

ts
z.infer.trialExpiresAt

viewerMode?

ts
optional viewerMode?: boolean;

Inherited from

ts
z.infer.viewerMode

viewOptimizationLevel?

ts
optional viewOptimizationLevel?: number;

Inherited from

ts
z.infer.viewOptimizationLevel

visibility?

ts
optional visibility?: object = VisibilitySchema;

Visibility of the map chrome, applied once at boot (an empty object leaves the chrome untouched; a non-empty one resets every omitted element to visible — the legacy ?hide= list semantics). The runtime counterpart is FloorPlan.setVisibility / the setVisibility intent; the legacy ?hide=a,b deep link keeps its store-level translation.

controls?

ts
optional controls?: boolean;

The map controls (zoom buttons, …).

ts
optional header?: boolean;

The header bar — logos and the free/demo badge.

levels?

ts
optional levels?: boolean;

The floor selector.

overlay?

ts
optional overlay?: boolean;

The overlay panel — search, lists, entity details.

searchButtons?

ts
optional searchButtons?: boolean;

The search-filter buttons row. Omitted, it follows overlay; an explicit true keeps the buttons while the overlay is hidden — clicking one opens the overlay on demand (?visibility[overlay]=false&visibility[searchButtons]=true).

Inherited from

ts
z.infer.visibility

wfDataJsRef?

ts
optional wfDataJsRef?: 
  | {
  $ref: string;
}
  | null;

wf.data.js (wayfinding graph) ref; null without legacy data.

Inherited from

ts
z.infer.wfDataJsRef