Documentation / @expofp/schema
@expofp/schema
Interfaces
| Interface | Description |
|---|---|
| Camera | - |
| Config | - |
| Filters | - |
| Heatmap | - |
| Kiosk | - |
| Manifest | - |
| Options | - |
| Visibility | - |
Type Aliases
| Type Alias | Description |
|---|---|
| Consent | The 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. |
| CurrentPosition | The selectCurrentPosition point — see CurrentPositionSchema. |
| Data | The expo data document — the __data global of the legacy data.js: every config field optional, plus the deprecated nested flags. |
| DataJs | The 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 | - |
| FpGeo | The full __fpGeo block. |
| FpGeoAnchor | A plan point pinned to a map coordinate — geo-references the drawing. |
| FpGeoConfig | __fpGeo.properties.config: corner anchors, map orientation, and palette. |
| FpGeoImage | A georeferenced overlay image (__fpGeo.images[]). |
| FpLayer | One __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). |
| FpPath | One __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). |
| FpRect | A 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. |
| FpSvgJs | The evaluated fp.svg.js payload — the default layer's drawing plus plan-wide metadata. |
| FpSvgJsRef | A $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. |
| FpSvgLayerJs | The 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). |
| FpSvgLayerJsRef | A $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. |
| Intent | One imperative floor-plan action — a member of IntentsSchema. |
| ListPanel | A list panel the showList intent can open — a member of ListPanelSchema. |
| LocalStorageConfig | The subset persisted per-user in localStorage. |
| Logo | The 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. |
| MaplibreOptions | MapLibre options — the inferred type of MapLibreConfigSchema. |
| MapTheme | Basemap palette — the inferred type of MapThemeSchema. |
| MarketMaterial | A marketing asset an exhibitor uploads — an entry in marketMaterials. |
| PlannerOptions | Options of the openPlanner intent — see PlannerOptionsSchema. |
| RawBooth | - |
| RawCategory | An exhibitor category — an entry in the config's categories list. |
| RawExhibitor | - |
| RawPoiType | A point-of-interest type — an entry in the config's poiTypes list. parentId nests them into a shallow tree. |
| RawRegularBooth | A standard sellable booth. |
| RawSpecialBooth | A non-sellable special area (entrance, lounge, …), tagged special: true. |
| ScheduleItem | One agenda/session entry — an entry in the config's events list. |
| Speaker | A session speaker — an entry in a ScheduleItemSchema's speakers. |
| UrlConfig | The subset tunable from the page URL query. |
| WfData | __wfData: the wayfinding graph. |
| WfDataJs | The evaluated wf.data.js payload. |
| WfDataJsRef | A $ref to the expo's wf.data.js. The graph is not loaded eagerly: resolve() evaluates the ref on demand into a WfDataJsSchema payload. |
| WfLine | One 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. |
| WfPoint | A wayfinding graph vertex. layer is omitted on some virtual endpoints. |
Variables
| Variable | Description |
|---|---|
| CameraSchema | A 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. |
| ConfigDefaults | Complete 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 | - |
| ConsentSchema | The 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. |
| CurrentPositionSchema | The visitor position of the selectCurrentPosition intent / FloorPlan.selectCurrentPosition method — the floor plan's CurrentPosition interface, field for field. |
| DataJsSchema | The 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. |
| DataSchema | The expo data document — the __data global of the legacy data.js: every config field optional, plus the deprecated nested flags. |
| FilterButtonsConfigSchema | The config's filterButtonsConfig: the search/filter button set and its sort. |
| FiltersSchema | Boot-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. |
| FlagsSchema | Feature flags. Historically a nested flags object; now flattened onto the config root (...FlagsSchema.shape in ConfigSchema). The deprecated nested form still parses through DataJsonSchema. |
| FpGeoAnchorSchema | A plan point pinned to a map coordinate — geo-references the drawing. |
| FpGeoConfigSchema | __fpGeo.properties.config: corner anchors, map orientation, and palette. |
| FpGeoImageSchema | A georeferenced overlay image (__fpGeo.images[]). |
| FpGeoSchema | The full __fpGeo block. |
| FpLayerSchema | One __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). |
| FpPathSchema | One __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). |
| FpRectSchema | A 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. |
| FpSvgJsRefSchema | A $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. |
| FpSvgJsSchema | The evaluated fp.svg.js payload — the default layer's drawing plus plan-wide metadata. |
| FpSvgLayerJsRefSchema | A $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. |
| FpSvgLayerJsSchema | The 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. |
| HeatmapSchema | The 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). |
| IntentsSchema | Imperative 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. |
| KioskSchema | The 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. |
| LegacyLogoSchema | The legacy string logo form — a bare asset URL. |
| ListPanelSchema | The list panels the floor plan UI can open by name — the showList intent's argument. Mirrors the keyword deep links (?bookmarks, ?sessions, …). |
| LocalStorageConfigSchema | The subset persisted per-user in localStorage. |
| LogoSchema | The 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 | - |
| MapLibreConfigSchema | MapLibre GL JS integration settings — the config's maplibre field. |
| MapThemeSchema | Which basemap palette the map view uses. |
| MarketMaterialSchema | A marketing asset an exhibitor uploads — an entry in marketMaterials. |
| OptionsSchema | Caller-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. |
| PlannerOptionsSchema | Options of the openPlanner intent / FloorPlan.openPlanner method. |
| RawBoothSchema | - |
| RawCategorySchema | An exhibitor category — an entry in the config's categories list. |
| RawExhibitorSchema | - |
| RawPoiTypeSchema | A point-of-interest type — an entry in the config's poiTypes list. parentId nests them into a shallow tree. |
| RawRegularBoothSchema | A standard sellable booth. |
| RawSpecialBoothSchema | A non-sellable special area (entrance, lounge, …), tagged special: true. |
| ScheduleItemSchema | One agenda/session entry — an entry in the config's events list. |
| SearchButtonChildSchema | - |
| SearchButtonSchema | One search/filter button — an entry in filterButtonsConfig.searchButtons. |
| SpeakerSchema | A session speaker — an entry in a ScheduleItemSchema's speakers. |
| UrlConfigSchema | The subset tunable from the page URL query. |
| VisibilitySchema | A 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. |
| WfDataJsRefSchema | A $ref to the expo's wf.data.js. The graph is not loaded eagerly: resolve() evaluates the ref on demand into a WfDataJsSchema payload. |
| WfDataJsSchema | The evaluated wf.data.js payload. |
| WfDataSchema | __wfData: the wayfinding graph. |
| WfLineSchema | One 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. |
| WfPointSchema | A wayfinding graph vertex. layer is omitted on some virtual endpoints. |