Skip to content

Documentation / @expofp/schema / LocalStorageConfig

Type Alias: LocalStorageConfig

ts
type LocalStorageConfig = object;

The subset persisted per-user in localStorage.

viewerMode / previewMode / uiScale are schema-typed here (their keys are efp-viewerMode / efp-previewMode / efp-uiScale) but deliberately NOT merged into the effective config by loadConfig: the floor plan reads them from storage lazily, which is what keeps the legacy one-shot URL seeds (?viewermode= / ?previewMode= / ?uiscale=, which write these keys) effective within the same load — a frozen config value could not be revoked by a same-load disable seed.

Type Declaration

debugMode?

ts
optional debugMode?: boolean;

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

debugPattern?

ts
optional debugPattern?: string;

enableExperimentalMaplibre?

ts
optional enableExperimentalMaplibre?: boolean;

Enable experimental MapLibre GL JS support.

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.

previewMode?

ts
optional previewMode?: boolean;

showDebugButton?

ts
optional showDebugButton?: boolean;

uiScale?

ts
optional uiScale?: number;

Per-browser UI-scale preference (0.8–1.4), seeded by the legacy ?uiscale= param. Not a ConfigSchema field: nothing consumes a config-level uiScale — the floor plan UI reads the storage key directly. Tolerant (catch): a hand-edited or out-of-range stored value reads as absent instead of failing the whole storage layer at boot.

validateSchema?

ts
optional validateSchema?: boolean;

viewerMode?

ts
optional viewerMode?: boolean;