Skip to content

Documentation / @expofp/schema / Config

Interface: Config

Extends

Properties

allow3dView

ts
allow3dView: boolean;

Inherited from

ts
z.infer.allow3dView

alwaysShowSidebar

ts
alwaysShowSidebar: boolean;

Inherited from

ts
z.infer.alwaysShowSidebar

autoTrackingGps

ts
autoTrackingGps: boolean;

Inherited from

ts
z.infer.autoTrackingGps

booths

ts
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
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
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
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
consent: "ask" | "granted" | "denied" = ConsentSchema;

Inherited from

ts
z.infer.consent

customCss

ts
customCss: string;

Inherited from

ts
z.infer.customCss

customCssFonts

ts
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
customKioskQrCodeUrl: string;

Inherited from

ts
z.infer.customKioskQrCodeUrl

customSetKiosk?

ts
optional customSetKiosk?: string;

Custom setkiosk phrase.

Inherited from

ts
z.infer.customSetKiosk

debugMode

ts
debugMode: boolean;

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

Inherited from

ts
z.infer.debugMode

debugPattern

ts
debugPattern: string;

Inherited from

ts
z.infer.debugPattern

dimensionless

ts
dimensionless: boolean;

Inherited from

ts
z.infer.dimensionless

disableBookmarked

ts
disableBookmarked: boolean;

Disable adding entities to bookmarks.

Inherited from

ts
z.infer.disableBookmarked

disableFeatured

ts
disableFeatured: boolean;

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

Inherited from

ts
z.infer.disableFeatured

disableGps

ts
disableGps: boolean;

Start with GPS tracking off.

Inherited from

ts
z.infer.disableGps

disableRuntimeAlerts

ts
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
enableIPS: boolean;

Inherited from

ts
z.infer.enableIPS

enableRotation

ts
enableRotation: boolean;

Inherited from

ts
z.infer.enableRotation

endDate

ts
endDate: string;

Inherited from

ts
z.infer.endDate

events

ts
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
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
exhibitorTerm: string;

Inherited from

ts
z.infer.exhibitorTerm

exhibitorTermPlural

ts
exhibitorTermPlural: string;

Inherited from

ts
z.infer.exhibitorTermPlural

expo

ts
expo: string;

Inherited from

ts
z.infer.expo

expoFpAd

ts
expoFpAd: boolean;

Inherited from

ts
z.infer.expoFpAd

filterButtonsConfig

ts
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
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
fpSvgJsRef: 
  | {
  $ref: string;
}
  | null;

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

Inherited from

ts
z.infer.fpSvgJsRef

fpSvgLayerJsRefs

ts
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
free: boolean;

Inherited from

ts
z.infer.free

ts
gallery: string[];

Inherited from

ts
z.infer.gallery

gtag

ts
gtag: string;

Inherited from

ts
z.infer.gtag

heatmap

ts
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
hide3dMapDefault: boolean;

Inherited from

ts
z.infer.hide3dMapDefault

hideBookmarks

ts
hideBookmarks: boolean;

Inherited from

ts
z.infer.hideBookmarks

ts
hideBookmarksLink: boolean;

Inherited from

ts
z.infer.hideBookmarksLink

hideBoothBadges?

ts
optional hideBoothBadges?: boolean;

Hide booth number badges.

Inherited from

ts
z.infer.hideBoothBadges

ts
hideCategoriesLink: boolean;

Inherited from

ts
z.infer.hideCategoriesLink

hideDirections

ts
hideDirections: boolean;

Inherited from

ts
z.infer.hideDirections

ts
hideDownloadPdfLink: boolean;

Inherited from

ts
z.infer.hideDownloadPdfLink

ts
hideEventHomeLink: boolean;

Inherited from

ts
z.infer.hideEventHomeLink

hideExhibitorBoothNumber

ts
hideExhibitorBoothNumber: boolean;

Inherited from

ts
z.infer.hideExhibitorBoothNumber

hideExhibitors

ts
hideExhibitors: boolean;

Inherited from

ts
z.infer.hideExhibitors

ts
hideHeaderLogo: boolean;

Hide the header logo (and the ExpoFP logo).

Inherited from

ts
z.infer.hideHeaderLogo

hideLanguage

ts
hideLanguage: boolean;

Inherited from

ts
z.infer.hideLanguage

ts
hideLanguageLink: boolean;

Inherited from

ts
z.infer.hideLanguageLink

hideLogoInBooth

ts
hideLogoInBooth: boolean;

Hide exhibitor logos inside booths.

Inherited from

ts
z.infer.hideLogoInBooth

hideModeSwitchButton

ts
hideModeSwitchButton: boolean;

Inherited from

ts
z.infer.hideModeSwitchButton

ts
hideRegisterToAttendLink: boolean;

Inherited from

ts
z.infer.hideRegisterToAttendLink

hideShareButton

ts
hideShareButton: boolean;

Inherited from

ts
z.infer.hideShareButton

hideWayInformation

ts
hideWayInformation: boolean;

Inherited from

ts
z.infer.hideWayInformation

homeUrl

ts
homeUrl: string;

Inherited from

ts
z.infer.homeUrl

ignoreQuery

ts
ignoreQuery: boolean;

Inherited from

ts
z.infer.ignoreQuery

intents

ts
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
isRebooking: boolean;

Inherited from

ts
z.infer.isRebooking

isTrial

ts
isTrial: boolean;

Inherited from

ts
z.infer.isTrial

kiosk

ts
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

levelTerm

ts
levelTerm: string;

Inherited from

ts
z.infer.levelTerm

locale

ts
locale: string;

Inherited from

ts
z.infer.locale

logo

ts
logo: string;

Inherited from

ts
z.infer.logo

maplibre

ts
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
monochrome: boolean;

Render the plan in grayscale.

Inherited from

ts
z.infer.monochrome

noFeatured

ts
noFeatured: boolean;

Inherited from

ts
z.infer.noFeatured

noOverlay

ts
noOverlay: boolean;

Inherited from

ts
z.infer.noOverlay

offHistory

ts
offHistory: boolean;

Inherited from

ts
z.infer.offHistory

onlyFeaturedExhibitors

ts
onlyFeaturedExhibitors: boolean;

Inherited from

ts
z.infer.onlyFeaturedExhibitors

poiTypes

ts
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
previewMode: boolean;

Inherited from

ts
z.infer.previewMode

registerUrl

ts
registerUrl: string;

Inherited from

ts
z.infer.registerUrl

reserveButtonTerm

ts
reserveButtonTerm: string;

Inherited from

ts
z.infer.reserveButtonTerm

reserveInstructions

ts
reserveInstructions: string;

Inherited from

ts
z.infer.reserveInstructions

searchText

ts
searchText: string;

Inherited from

ts
z.infer.searchText

sendLoginLinkUrl

ts
sendLoginLinkUrl: string;

Inherited from

ts
z.infer.sendLoginLinkUrl

shortLevelName

ts
shortLevelName: boolean;

Inherited from

ts
z.infer.shortLevelName

showCategories

ts
showCategories: boolean;

Inherited from

ts
z.infer.showCategories

showCompaniesAndBooths

ts
showCompaniesAndBooths: boolean;

Inherited from

ts
z.infer.showCompaniesAndBooths

showDebugButton

ts
showDebugButton: boolean;

Inherited from

ts
z.infer.showDebugButton

showLevelLabel

ts
showLevelLabel: boolean;

Inherited from

ts
z.infer.showLevelLabel

showOtherSpaces

ts
showOtherSpaces: boolean;

Inherited from

ts
z.infer.showOtherSpaces

startDate

ts
startDate: string;

Inherited from

ts
z.infer.startDate

subtitle

ts
subtitle: string;

Inherited from

ts
z.infer.subtitle

title

ts
title: string;

Inherited from

ts
z.infer.title

trackerUrl

ts
trackerUrl: string;

Inherited from

ts
z.infer.trackerUrl

trialExpiresAt

ts
trialExpiresAt: string;

Inherited from

ts
z.infer.trialExpiresAt

viewerMode

ts
viewerMode: boolean;

Inherited from

ts
z.infer.viewerMode

viewOptimizationLevel

ts
viewOptimizationLevel: number;

Inherited from

ts
z.infer.viewOptimizationLevel

visibility

ts
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
wfDataJsRef: 
  | {
  $ref: string;
}
  | null;

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

Inherited from

ts
z.infer.wfDataJsRef