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). The legacy kiosk_* URL params stay the per-navigation translation of this same shape (QR-shared routes smuggle the anchor through them), and ?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.