UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

50 lines • 2.79 kB
import { type Config } from '@expofp/config'; import type UIState from '../../store/UIState'; /** * Whether this plan has room for the kiosk layout. * * Kiosk mode forces the left overlay, which is 450px wide — so it may only run * where that layout would have been chosen anyway. `UIState.overlayPosition` * asks this same question and calls this, which is what keeps the two answers * from drifting apart. * * The guard exists because kiosk mode reaches devices that never asked for it. * A route QR hands its `kiosk_x/y/z` anchor to every scanning phone, and * `uiState.kioskData` doubles as "this device IS a kiosk" (see `kioskUrlParam`), * so the phone adopts the whole kiosk boot: a left overlay wider than its screen, * which collapses the map's framing region to a sliver and leaves any route it * was opened for zoomed out to nothing. * * Measured off the width of the container the plan was handed, not the window — * that is what `screenSize` holds (`bindRootElement`), and the overlay lives in * the container. Width alone, as `overlayPosition` reads it: a phone held in * landscape passes, being as wide as a small desktop window and getting the same * layout, and every real kiosk panel passes in either orientation. */ export declare function screenFitsKiosk(uiState: UIState): boolean; /** * Toggle kiosk mode — the single meaning of `kiosk=1` / `kiosk=0` from either * channel (the `?kiosk=` URL param, the typed search-box command) — and store * that choice. Exit also resets the per-device UI scale. * * Turning it ON is refused where the kiosk layout does not fit * ({@link screenFitsKiosk}); turning it OFF always works, so the `kiosk=0` * opt-out can never be locked out by the size of the screen it is typed on. */ export declare function applyKioskMode(uiState: UIState, enabled: boolean): void; /** * Store-free kiosk check — the mode a load starts in: the `?kiosk=` param wins, then whatever the * device itself says. Used by the Intercom boot, which runs before the MobX stores exist, so the * screen rule above is the caller's to add. The direct `?kiosk` read is kiosk-semantic and migrates * with the kiosk config node (retirement plan §4.7). */ export declare function isKioskMode(data: Config): boolean; /** * The same check without the `?kiosk=` param: the mode init-ui and ShowKiosk settle on between * them, from the stored flag and the kiosks left — the enable flag, then a saved-kiosk object (a * provisioned device is a kiosk on first load, before the flag is set), then the config anchor. * What the setkiosk panel asks on close, since ShowKiosk remounts right after it and reads no * param. */ export declare function storedKioskMode(data: Config): boolean; //# sourceMappingURL=kiosk-mode.d.ts.map