Skip to content

Documentation / @expofp/schema

@expofp/schema ​

Interfaces ​

InterfaceDescription
Camera-
Config-
Filters-
Heatmap-
Kiosk-
Manifest-
Options-
Visibility-

Type Aliases ​

Type AliasDescription
ConsentThe cookie-consent decision for analytics. 'granted' / 'denied' apply a pre-made decision — no consent prompt, analytics on/off accordingly. 'ask' (the default) leaves the decision to the visitor: GDPR visitors get the consent prompt, everyone else falls back to the regional gtag defaults.
CurrentPositionThe selectCurrentPosition point — see CurrentPositionSchema.
DataThe expo data document — the __data global of the legacy data.js: every config field optional, plus the deprecated nested flags.
DataJsThe evaluated data.js payload. Like fp.svg.js, the file is a classic window-assigning browser script (window.__data = …) that resolve (@expofp/resolve) evaluates to its globals; the expo data document rides on __data.
FontUrl-
FpGeoThe full __fpGeo block.
FpGeoAnchorA plan point pinned to a map coordinate — geo-references the drawing.
FpGeoConfig__fpGeo.properties.config: corner anchors, map orientation, and palette.
FpGeoImageA georeferenced overlay image (__fpGeo.images[]).
FpLayerOne __fpLayers entry (consumed by store/init/init-layers.ts). name also derives the layer's file and global names: fp.svg.<name>.js, __fp<name>, __fpPaths<name>. mode is the numeric LayerMode enum (0 Unset, 1 AlwaysVisible, 2 AlwaysHidden, 3 TurnedOn, 4 TurnedOff — store/LayerStore.ts).
FpPathOne __fpPaths entry: a shape outline triangulated for the WebGL renderer, indexed by the SVG paths' data-index. Matches the renderer's MeshType (renderer/engine-core/types.ts) — whose positions are 3D vertices, the shape the V2 converter emits (see PositionSchema).
FpRectA min/max rectangle in the legacy core/Rect shape.
FpSettings__fpSettings: renderer style overrides, deep-merged into the FpSettings singleton (tools/settings.ts).
FpStat__fpStat: converter output stats. dataSize is in bytes.
FpSvgJsThe evaluated fp.svg.js payload — the default layer's drawing plus plan-wide metadata.
FpSvgJsRefA $ref to the expo's fp.svg.js — resolves to a FpSvgJsSchema payload. Set explicitly (e.g. by an offline copy pointing at a resolved fp.svg.json) to override the <legacyDataUrlBase>fp.svg.js derivation.
FpSvgLayerJsThe evaluated fp.svg.<layerName>.js payload — one drawing layer, loaded on demand when a multi-floor plan shows a layer whose paths are not present yet (components/Map/drawing/config/config-load-layer.ts).
FpSvgLayerJsRefA $ref to one layer's fp.svg.<layerName>.js. The layer's data is not loaded eagerly: resolve() (@expofp/resolve) evaluates a .js ref on demand and returns its assigned globals as JSON — a FpSvgLayerJsSchema payload.
FpViewbox__viewbox: the author-drawn initial view rectangle — the fit-to-screen reference, taking precedence over the drawing's own bounds.
IntentOne imperative floor-plan action — a member of IntentsSchema.
ListPanelA list panel the showList intent can open — a member of ListPanelSchema.
LocalStorageConfigThe subset persisted per-user in localStorage.
LogoThe object logo form, carrying pre-scaled variant URLs. The variants are minted from the full URL without an existence check (optionalAsset), so the platform may never have produced the files — consumers fall back to url, and the offline generator skips a missing variant instead of failing.
MaplibreOptionsMapLibre options — the inferred type of MapLibreConfigSchema.
MapThemeBasemap palette — the inferred type of MapThemeSchema.
MarketMaterialA marketing asset an exhibitor uploads — an entry in marketMaterials.
PlannerOptionsOptions of the openPlanner intent — see PlannerOptionsSchema.
RawBooth-
RawCategoryAn exhibitor category — an entry in the config's categories list.
RawExhibitor-
RawPoiTypeA point-of-interest type — an entry in the config's poiTypes list. parentId nests them into a shallow tree.
RawRegularBoothA standard sellable booth.
RawSpecialBoothA non-sellable special area (entrance, lounge, …), tagged special: true.
ScheduleItemOne agenda/session entry — an entry in the config's events list.
SpeakerA session speaker — an entry in a ScheduleItemSchema's speakers.
UrlConfigThe subset tunable from the page URL query.
WfData__wfData: the wayfinding graph.
WfDataJsThe evaluated wf.data.js payload.
WfDataJsRefA $ref to the expo's wf.data.js. The graph is not loaded eagerly: resolve() evaluates the ref on demand into a WfDataJsSchema payload.
WfLineOne wayfinding graph edge — the raw form of GraphLine (wayfinding/core/types.ts); omitted booleans read as false and an omitted weight as the default line weight.
WfPointA wayfinding graph vertex. layer is omitted on some virtual endpoints.

Variables ​

VariableDescription
CameraSchemaA camera move request — the argument of FloorPlan.setCamera and the setCamera intent. Every field is optional with partial-merge semantics: only the fields present change the view, omitted ones keep their current values. x/y (floor-plan projected coordinates) and lat/lng (the GPS alternative) are pairs — a center moves only when both halves of a pair are given.
ConfigDefaultsComplete field defaults for the effective config — one value for every Config field — applied as the lowest-precedence layer in loadConfig so an explicit value from any source (manifest, options, localStorage, URL) wins.
ConfigSchema-
ConsentSchemaThe cookie-consent decision for analytics. 'granted' / 'denied' apply a pre-made decision — no consent prompt, analytics on/off accordingly. 'ask' (the default) leaves the decision to the visitor: GDPR visitors get the consent prompt, everyone else falls back to the regional gtag defaults.
CurrentPositionSchemaThe visitor position of the selectCurrentPosition intent / FloorPlan.selectCurrentPosition method — the floor plan's CurrentPosition interface, field for field.
DataJsSchemaThe evaluated data.js payload. Like fp.svg.js, the file is a classic window-assigning browser script (window.__data = …) that resolve (@expofp/resolve) evaluates to its globals; the expo data document rides on __data.
DataSchemaThe expo data document — the __data global of the legacy data.js: every config field optional, plus the deprecated nested flags.
FilterButtonsConfigSchemaThe config's filterButtonsConfig: the search/filter button set and its sort.
FiltersSchemaBoot-time search filters — the config.filters node, applied once by the floor plan's URL filter manager when the stores are ready. Values are plain catalog names (no URL encoding), matched case-insensitively; unknown names warn and drop, and categories win over POI types when both are given.
FlagsSchemaFeature flags. Historically a nested flags object; now flattened onto the config root (...FlagsSchema.shape in ConfigSchema). The deprecated nested form still parses through DataJsonSchema.
FpGeoAnchorSchemaA plan point pinned to a map coordinate — geo-references the drawing.
FpGeoConfigSchema__fpGeo.properties.config: corner anchors, map orientation, and palette.
FpGeoImageSchemaA georeferenced overlay image (__fpGeo.images[]).
FpGeoSchemaThe full __fpGeo block.
FpLayerSchemaOne __fpLayers entry (consumed by store/init/init-layers.ts). name also derives the layer's file and global names: fp.svg.<name>.js, __fp<name>, __fpPaths<name>. mode is the numeric LayerMode enum (0 Unset, 1 AlwaysVisible, 2 AlwaysHidden, 3 TurnedOn, 4 TurnedOff — store/LayerStore.ts).
FpPathSchemaOne __fpPaths entry: a shape outline triangulated for the WebGL renderer, indexed by the SVG paths' data-index. Matches the renderer's MeshType (renderer/engine-core/types.ts) — whose positions are 3D vertices, the shape the V2 converter emits (see PositionSchema).
FpRectSchemaA min/max rectangle in the legacy core/Rect shape.
FpSettingsSchema__fpSettings: renderer style overrides, deep-merged into the FpSettings singleton (tools/settings.ts).
FpStatSchema__fpStat: converter output stats. dataSize is in bytes.
FpSvgJsRefSchemaA $ref to the expo's fp.svg.js — resolves to a FpSvgJsSchema payload. Set explicitly (e.g. by an offline copy pointing at a resolved fp.svg.json) to override the <legacyDataUrlBase>fp.svg.js derivation.
FpSvgJsSchemaThe evaluated fp.svg.js payload — the default layer's drawing plus plan-wide metadata.
FpSvgLayerJsRefSchemaA $ref to one layer's fp.svg.<layerName>.js. The layer's data is not loaded eagerly: resolve() (@expofp/resolve) evaluates a .js ref on demand and returns its assigned globals as JSON — a FpSvgLayerJsSchema payload.
FpSvgLayerJsSchemaThe evaluated fp.svg.<layerName>.js payload — one drawing layer, loaded on demand when a multi-floor plan shows a layer whose paths are not present yet (components/Map/drawing/config/config-load-layer.ts).
FpViewboxSchema__viewbox: the author-drawn initial view rectangle — the fit-to-screen reference, taking precedence over the drawing's own bounds.
HeatmapSchemaThe heatmap-mode request — the config.heatmap node. An empty object (the default) means no heatmap; a non-empty node engages the mode unless switched off with an explicit enabled: false — presence implies intent, so ?heatmap[variant]=yah alone is enough, and ?heatmap[enabled]=false can veto a manifest-set node (config layers replace the node wholesale).
IntentsSchemaImperative actions a host requests on the floor plan after it loads — carried on the config's intents field and dispatched by applyIntents (@expofp/config) once the plan is ready. A discriminated union on name, each arm mirroring a FloorPlan method (same name, args matching its parameters), so adding an intent here extends the host interface automatically — and the applyIntents call site type-checks that every intent still names a real FloorPlan method.
KioskSchemaThe kiosk anchor — the config.kiosk node: where the physical 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 persists to localStorage and wins over the config; the localStorage['kiosk']='0' device switch disables both). ?kiosk=1/0 keeps toggling kiosk MODE — the mode and the anchor are independent inputs.
LegacyLogoSchemaThe legacy string logo form — a bare asset URL.
ListPanelSchemaThe list panels the floor plan UI can open by name — the showList intent's argument. Mirrors the keyword deep links (?bookmarks, ?sessions, …).
LocalStorageConfigSchemaThe subset persisted per-user in localStorage.
LogoSchemaThe object logo form, carrying pre-scaled variant URLs. The variants are minted from the full URL without an existence check (optionalAsset), so the platform may never have produced the files — consumers fall back to url, and the offline generator skips a missing variant instead of failing.
ManifestSchema-
MapLibreConfigSchemaMapLibre GL JS integration settings — the config's maplibre field.
MapThemeSchemaWhich basemap palette the map view uses.
MarketMaterialSchemaA marketing asset an exhibitor uploads — an entry in marketMaterials.
OptionsSchemaCaller-supplied overrides — the config fields a host may set when embedding the floor plan (load(manifest, options)). Deliberately EXPLICIT (a pick, not ConfigSchema.partial()): the expo data proper — booths, exhibitors, branding, feature flags — comes from the manifest / data.js, so loadConfig parses the options layer and strips anything outside this set. allowConsent is the deprecated alias for consent.
PlannerOptionsSchemaOptions of the openPlanner intent / FloorPlan.openPlanner method.
RawBoothSchema-
RawCategorySchemaAn exhibitor category — an entry in the config's categories list.
RawExhibitorSchema-
RawPoiTypeSchemaA point-of-interest type — an entry in the config's poiTypes list. parentId nests them into a shallow tree.
RawRegularBoothSchemaA standard sellable booth.
RawSpecialBoothSchemaA non-sellable special area (entrance, lounge, …), tagged special: true.
ScheduleItemSchemaOne agenda/session entry — an entry in the config's events list.
SearchButtonChildSchema-
SearchButtonSchemaOne search/filter button — an entry in filterButtonsConfig.searchButtons.
SpeakerSchemaA session speaker — an entry in a ScheduleItemSchema's speakers.
UrlConfigSchemaThe subset tunable from the page URL query.
VisibilitySchemaA map-chrome visibility request — the argument of FloorPlan.setVisibility and the setVisibility intent. Every field is optional, but the semantics are rebuild-not-merge (the legacy ?hide= contract): a field set to false hides its element, and every omitted field resets to visible.
WfDataJsRefSchemaA $ref to the expo's wf.data.js. The graph is not loaded eagerly: resolve() evaluates the ref on demand into a WfDataJsSchema payload.
WfDataJsSchemaThe evaluated wf.data.js payload.
WfDataSchema__wfData: the wayfinding graph.
WfLineSchemaOne wayfinding graph edge — the raw form of GraphLine (wayfinding/core/types.ts); omitted booleans read as false and an omitted weight as the default line weight.
WfPointSchemaA wayfinding graph vertex. layer is omitted on some virtual endpoints.