@expofp/floorplan 3.18.0 → 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/{Button-CR9X3hHB.js → Button-CSjGwCw8.js} +5 -5
- package/dist/browser/{CookieConsent-BWKzA_Db.js → CookieConsent-DoKq6i8L.js} +7 -7
- package/dist/browser/{Debug-CElPDJlB.js → Debug-5zEiNUyg.js} +7 -7
- package/dist/browser/{Demo-DpzdTNuZ.js → Demo-gYGSSAX-.js} +9 -9
- package/dist/browser/{Free-Dzj0kezR.js → Free-3I9CaGED.js} +9 -9
- package/dist/browser/{Gallery-BFh_yQY4.js → Gallery-DvczhcFU.js} +9 -9
- package/dist/browser/{GpsLoader-PkypWxTl.js → GpsLoader-CkmCme_P.js} +22 -22
- package/dist/browser/{KioskStore-Cwuze3X_.js → KioskStore-Dkc03BJk.js} +7 -7
- package/dist/browser/{MaplibreAdapter-CXm_wkcT.js → MaplibreAdapter-DRlvaZ7C.js} +2276 -2031
- package/dist/browser/{ModalContainer-qMMdrK2w.js → ModalContainer-h3TovgWF.js} +10 -10
- package/dist/browser/{PermissionNotice-zHHL-Tb1.js → PermissionNotice-B8j8TR_D.js} +6 -6
- package/dist/browser/{SetKioskMode-NJzx1LsZ.js → SetKioskMode-C4NKwotU.js} +11 -11
- package/dist/browser/{ShowKiosk-JTxQ22h-.js → ShowKiosk-BBmrToaF.js} +12 -12
- package/dist/browser/{TouchHand-B1_sEZ0y.js → TouchHand-DRif3YH_.js} +4 -4
- package/dist/browser/{ViewerMenuPanel-CStYkINl.js → ViewerMenuPanel-YpBiORHt.js} +10 -10
- package/dist/browser/{add-debug-secret-listener-CLwgmFlw.js → add-debug-secret-listener-CFqwaslU.js} +1 -1
- package/dist/browser/{adopt-global-settings-DNtTKtHp.js → adopt-global-settings-B0JmlKXZ.js} +9 -9
- package/dist/browser/{boolean-editor-DU3YVPQz.js → boolean-editor-XhzKDQsF.js} +9 -9
- package/dist/browser/{bootIntercom-C3p3aQE4.js → bootIntercom-CL4Wwt09.js} +2 -2
- package/dist/browser/booth-by-xy-CNodwywv.js +1130 -0
- package/dist/browser/bundle.json +66 -66
- package/dist/browser/{classnames-DsyabRET.js → classnames-D7bHkaTv.js} +2 -2
- package/dist/browser/{client-BtftV096.js → client-FmZunq3E.js} +4 -4
- package/dist/browser/{components-BWMM8EM8.js → components-BxYu3VSQ.js} +456 -452
- package/dist/browser/{debug-overlay-D3Y5V71i.js → debug-overlay-Col3kun-.js} +10 -10
- package/dist/browser/{debug-ui-DLVYgylj.js → debug-ui-DP-m_PQY.js} +6 -6
- package/dist/browser/{dist-DDo1tPsx.js → dist--UfxHNpB.js} +6 -6
- package/dist/browser/{dist-BXb1cx9e.js → dist-DKuVdnM1.js} +5 -5
- package/dist/browser/{dist-CfgFWfr7.js → dist-j_Dvhg_B.js} +3 -3
- package/dist/browser/{efp-debug-init-C07vji2o.js → efp-debug-init-DLVidU_L.js} +3 -3
- package/dist/browser/{enum-editor-CQB7Ql3U.js → enum-editor-Cl34zB7v.js} +4 -4
- package/dist/browser/{es5-ijKSUeQ7.js → es5-vcEukkmw.js} +2 -2
- package/dist/browser/{event-not-found-BwyzoaLT.js → event-not-found-ChZDmcvK.js} +1 -1
- package/dist/browser/{exports-Ci3Y-h6M.js → exports-BXJy6Kmw.js} +1 -1
- package/dist/browser/{favicon-BGu3h_Jd.js → favicon-_NCvfFvc.js} +1 -1
- package/dist/browser/{fetch-retry.umd-DPsRRR-2.js → fetch-retry.umd-3LUIAd6l.js} +2 -2
- package/dist/browser/{flex-pSz169Ur.js → flex-DzUPTjql.js} +5 -5
- package/dist/browser/{floorplan.loader-C6QTWa65.js → floorplan.loader-Cq6lnFlH.js} +10 -10
- package/dist/browser/{floorplan.ready-CAzapBXm.js → floorplan.ready-CVvdDLK9.js} +78 -78
- package/dist/browser/{fuse-DtxL2N-V.js → fuse-DFMgyIxf.js} +2 -2
- package/dist/browser/{i18n-DVyODyCY.js → i18n-DWMPMvpq.js} +729 -724
- package/dist/browser/index.js +28 -28
- package/dist/browser/{index.module-Cvt_te8N.js → index.module-CwWKL3qT.js} +4 -4
- package/dist/browser/{integrateKiosk-d8rib-aX.js → integrateKiosk-DDctkdW5.js} +4 -4
- package/dist/browser/{is-webview-DdTBb7TJ.js → is-webview-Dh3BOm5s.js} +1 -1
- package/dist/browser/{jsx-runtime-DaJp0rHj.js → jsx-runtime-BT-4UVZK.js} +2 -2
- package/dist/browser/{kiosk-record-CKAUCVLy.js → kiosk-record-DAkjgI5d.js} +1 -1
- package/dist/browser/{lib-DJccgJUD.js → lib-DSN5rncL.js} +3 -3
- package/dist/browser/{loadImage-x0VcWQVd.js → loadImage-6MtT3dR2.js} +4 -4
- package/dist/browser/{logDeviceInfo-D0W2-Idq.js → logDeviceInfo-C9v2HsL2.js} +9 -9
- package/dist/browser/{main-BPkzidEN.js → main-CGLB-evp.js} +1 -1
- package/dist/browser/{mobx-BhywMatw.js → mobx-Dykg-ki-.js} +4 -4
- package/dist/browser/{optional-boolean-editor-Mcny_JoC.js → optional-boolean-editor-Ds90tVAe.js} +3 -3
- package/dist/browser/{optional-enum-editor-DNJb-HlW.js → optional-enum-editor-DwpbJFlC.js} +4 -4
- package/dist/browser/{optional-string-editor-mXHbu-td.js → optional-string-editor-C_MgikTV.js} +4 -4
- package/dist/browser/{particles.min-h8plthOJ.js → particles.min-BrRwE_cB.js} +2 -2
- package/dist/browser/{react-BtNYeFCj.js → react-D3BZ05ZR.js} +2 -2
- package/dist/browser/{react-dom-Cpzv99hV.js → react-dom-hZlmCSGa.js} +3 -3
- package/dist/browser/{rolldown-runtime-DISrh_Iz.js → rolldown-runtime-BA6mgZXd.js} +1 -1
- package/dist/browser/{select-CUP0HHGg.js → select-D23T81nr.js} +10 -10
- package/dist/browser/{settings-vwUDDFWG.js → settings-Br2xGZpf.js} +2 -2
- package/dist/browser/{settings-item-EIedbjEy.js → settings-item-uLGrYZVO.js} +6 -6
- package/dist/browser/{store-CuOAVnMk.js → store-F1P0xfXS.js} +6605 -6466
- package/dist/browser/{string-editor-B5j-wOvD.js → string-editor-Cco_LbQO.js} +4 -4
- package/dist/browser/{text-field-C7hImOEM.js → text-field-rxoXlZbL.js} +5 -5
- package/dist/browser/{theme--eOt90dH.js → theme-teEFcmm4.js} +8 -8
- package/dist/browser/{ui-BbAFe1Un.js → ui-D6A9bSSx.js} +8 -8
- package/dist/browser/{useRenderTarget-tyvk_Tnj.js → useRenderTarget-CqdzcoGw.js} +4 -4
- package/dist/esm/components/Map/Map.js +1 -1
- package/dist/esm/components/Map/drawing/config/canvases.d.ts +9 -0
- package/dist/esm/components/Map/drawing/config/canvases.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-all.d.ts +6 -3
- package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +8 -4
- package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-outdoor-poi.d.ts +31 -0
- package/dist/esm/components/Map/drawing/config/config-outdoor-poi.js +1 -0
- package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
- package/dist/esm/components/Maplibre/useCameraReactions.js +1 -1
- package/dist/esm/components/Maplibre/useDimming.d.ts +9 -0
- package/dist/esm/components/Maplibre/useDimming.js +1 -1
- package/dist/esm/components/Maplibre/usePoiMarkers.d.ts +26 -0
- package/dist/esm/components/Maplibre/usePoiMarkers.js +1 -0
- package/dist/esm/components/Maplibre/useRendererEvents.js +1 -1
- package/dist/esm/components/Maplibre/utils/geo-config.d.ts +2 -0
- package/dist/esm/components/Maplibre/utils/geo-config.js +1 -1
- package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.d.ts +16 -0
- package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.js +1 -0
- package/dist/esm/constants.d.ts +11 -0
- package/dist/esm/constants.js +1 -1
- package/dist/esm/store/PoiMarkerStore.d.ts +76 -0
- package/dist/esm/store/PoiMarkerStore.js +1 -0
- package/dist/esm/store/RootStore.d.ts +2 -0
- package/dist/esm/store/RootStore.js +1 -1
- package/dist/esm/store/outdoor-poi-filter.d.ts +21 -0
- package/dist/esm/store/outdoor-poi-filter.js +1 -0
- package/package.json +8 -8
- package/dist/browser/booth-by-xy-DSMmkHYp.js +0 -1077
package/dist/esm/constants.d.ts
CHANGED
|
@@ -2,6 +2,17 @@ export declare const VISIBILITY_STORAGE_KEY = "___visibility";
|
|
|
2
2
|
export declare const PREVIEW_MODE_ATTRIBUTE = "data-preview-mode";
|
|
3
3
|
export declare const BOOTHS_PAINTER_MARKER = "booths";
|
|
4
4
|
export declare const SEPARATOR = ":";
|
|
5
|
+
export declare const OUTDOOR_LAYER_PREFIX = "Outdoor";
|
|
6
|
+
export declare const POI_CLUSTER_RADIUS_PX = 50;
|
|
7
|
+
export declare const POI_CLUSTER_MIN_POINTS = 3;
|
|
8
|
+
export declare const POI_MARKER_PIN_WIDTH_PX = 42;
|
|
9
|
+
export declare const POI_SELECTED_PIN_WIDTH_PX = 36;
|
|
10
|
+
export declare const POI_PIN_DEFAULT_COLOR = "#ea4236";
|
|
11
|
+
export declare const POI_CLUSTER_SIZE_PX = 36;
|
|
12
|
+
export declare const POI_CLUSTER_COLOR = "rgba(234, 66, 54, 0.85)";
|
|
13
|
+
export declare const POI_CLUSTER_STROKE_COLOR = "#ffffff";
|
|
14
|
+
export declare const POI_CLUSTER_STROKE_WIDTH_PX = 2;
|
|
15
|
+
export declare const POI_CLUSTER_TEXT_SIZE_PX = 14;
|
|
5
16
|
export declare const LAYER_LOGOS_MARKER = "logos";
|
|
6
17
|
export declare const LAYER_ICONS_MARKER = "icons";
|
|
7
18
|
export declare const STRING_META_DELIMITER = "$$";
|
package/dist/esm/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VISIBILITY_STORAGE_KEY="___visibility",PREVIEW_MODE_ATTRIBUTE="data-preview-mode",BOOTHS_PAINTER_MARKER="booths",SEPARATOR=":",LAYER_LOGOS_MARKER="logos",LAYER_ICONS_MARKER="icons",STRING_META_DELIMITER="$$",KIOSK_ENABLE_KEY="kiosk",SET_KIOSK_KEY="setkiosk",BOOKMARK_PAINTER_MARKER="booth-bookmark",DEBUG_KEY="debug",DEBUG_STORAGE_KEY="efp-debugMode",DEFAULT_UNITS="ft",PATHWAY_KEY="pathway",CACHE_DURATION=1e3,MOBILE_BREAKPOINT=768,LANGUAGE_TYPE="language",MAX_ROUTE_WAYPOINTS=8,VIEWER_MODE_STORAGE_KEY="efp-viewerMode",LEGACY_VIEWER_MODE_STORAGE_KEY="___viewer_mode",PREVIEW_MODE_STORAGE_KEY="efp-previewMode",LEGACY_PREVIEW_MODE_STORAGE_KEY="___preview_mode",UI_SCALE_STORAGE_KEY="efp-uiScale",LEGACY_UI_SCALE_STORAGE_KEY="___ui-scale",FONT_FACE="--expofp-font-face",FONT_WEIGHT_PRIMARY_BOOTH="--expofp-booth-main-weight",FONT_WEIGHT_SECONDARY_BOOTH="--expofp-booth-details-weight",FONT_WEIGHT_PRIMARY_EXHIBITOR="--expofp-exhibitor-main-weight",FONT_WEIGHT_SECONDARY_EXHIBITOR="--expofp-exhibitor-details-weight",FONT_WEIGHT_PRIMARY_SPECIAL="--expofp-booth-special-weight",ORIENTATION_GRANTED_KEY="efp-compass-permission-granted";
|
|
1
|
+
export const VISIBILITY_STORAGE_KEY="___visibility",PREVIEW_MODE_ATTRIBUTE="data-preview-mode",BOOTHS_PAINTER_MARKER="booths",SEPARATOR=":",OUTDOOR_LAYER_PREFIX="Outdoor",POI_CLUSTER_RADIUS_PX=50,POI_CLUSTER_MIN_POINTS=3,POI_MARKER_PIN_WIDTH_PX=42,POI_SELECTED_PIN_WIDTH_PX=36,POI_PIN_DEFAULT_COLOR="#ea4236",POI_CLUSTER_SIZE_PX=36,POI_CLUSTER_COLOR="rgba(234, 66, 54, 0.85)",POI_CLUSTER_STROKE_COLOR="#ffffff",POI_CLUSTER_STROKE_WIDTH_PX=2,POI_CLUSTER_TEXT_SIZE_PX=14,LAYER_LOGOS_MARKER="logos",LAYER_ICONS_MARKER="icons",STRING_META_DELIMITER="$$",KIOSK_ENABLE_KEY="kiosk",SET_KIOSK_KEY="setkiosk",BOOKMARK_PAINTER_MARKER="booth-bookmark",DEBUG_KEY="debug",DEBUG_STORAGE_KEY="efp-debugMode",DEFAULT_UNITS="ft",PATHWAY_KEY="pathway",CACHE_DURATION=1e3,MOBILE_BREAKPOINT=768,LANGUAGE_TYPE="language",MAX_ROUTE_WAYPOINTS=8,VIEWER_MODE_STORAGE_KEY="efp-viewerMode",LEGACY_VIEWER_MODE_STORAGE_KEY="___viewer_mode",PREVIEW_MODE_STORAGE_KEY="efp-previewMode",LEGACY_PREVIEW_MODE_STORAGE_KEY="___preview_mode",UI_SCALE_STORAGE_KEY="efp-uiScale",LEGACY_UI_SCALE_STORAGE_KEY="___ui-scale",FONT_FACE="--expofp-font-face",FONT_WEIGHT_PRIMARY_BOOTH="--expofp-booth-main-weight",FONT_WEIGHT_SECONDARY_BOOTH="--expofp-booth-details-weight",FONT_WEIGHT_PRIMARY_EXHIBITOR="--expofp-exhibitor-main-weight",FONT_WEIGHT_SECONDARY_EXHIBITOR="--expofp-exhibitor-details-weight",FONT_WEIGHT_PRIMARY_SPECIAL="--expofp-booth-special-weight",ORIENTATION_GRANTED_KEY="efp-compass-permission-granted";
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type OutdoorPoiFilterState } from './outdoor-poi-filter';
|
|
2
|
+
import type RootStore from './RootStore';
|
|
3
|
+
/**
|
|
4
|
+
* A rendered outdoor PoI marker, shared between the place that creates it
|
|
5
|
+
* (`config-outdoor-poi`) and the consumer that renders it as native MapLibre
|
|
6
|
+
* symbol/cluster layers (`usePoiMarkers`).
|
|
7
|
+
*
|
|
8
|
+
* `icon` is the category pin — poiType glyph and Designer color baked in —
|
|
9
|
+
* rasterized once at devicePixelRatio and handed to `map.addImage`. (The
|
|
10
|
+
* selection pinhead is not per-marker: usePoiMarkers draws one shared image.)
|
|
11
|
+
* `center` is the PoI position in SVG/model coordinates (booth rect center);
|
|
12
|
+
* everything else about marker state (selection, filtering, clustering) is
|
|
13
|
+
* derived at render time from the stores, not stored here.
|
|
14
|
+
*/
|
|
15
|
+
export interface PoiMarker {
|
|
16
|
+
boothId: number;
|
|
17
|
+
center: {
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
};
|
|
21
|
+
icon: ImageData;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Domain store for the current outdoor PoI markers. `config-outdoor-poi`
|
|
25
|
+
* publishes the rasterized markers here; `usePoiMarkers` renders them as
|
|
26
|
+
* native MapLibre layers, and dimming/filtering read them via MobX.
|
|
27
|
+
*
|
|
28
|
+
* Selection is not stored: {@link selectedMarkerId} derives it from
|
|
29
|
+
* `uiState.selectedBooths` (the single selected booth, if it has a marker),
|
|
30
|
+
* so `RootStore.clickBooth` / search selection are the only writers.
|
|
31
|
+
*/
|
|
32
|
+
export default class PoiMarkerStore {
|
|
33
|
+
readonly rootStore: RootStore;
|
|
34
|
+
/**
|
|
35
|
+
* Backing box for {@link markers}, reference-observed (`deep: false`):
|
|
36
|
+
* PoiMarker holds raster data that must not be deep-observed. A box instead of
|
|
37
|
+
* an `@observable.ref` field because mobx 5's field-decorator typing
|
|
38
|
+
* predates TS standard decorators (the @-form fails to type-check), and the
|
|
39
|
+
* runtime `decorate()` alternative silently breaks under native class-field
|
|
40
|
+
* (define) semantics, which vitest's transform uses.
|
|
41
|
+
*/
|
|
42
|
+
private readonly markersBox;
|
|
43
|
+
/**
|
|
44
|
+
* Monotonic counter bumped by {@link clear}. Async marker producers capture
|
|
45
|
+
* it before awaiting and compare before {@link addMany}, so icon loads that
|
|
46
|
+
* outlive a scene teardown/rebuild cannot repopulate the store with stale
|
|
47
|
+
* markers.
|
|
48
|
+
*/
|
|
49
|
+
generation: number;
|
|
50
|
+
constructor(rootStore: RootStore);
|
|
51
|
+
/** The current markers; the array is replaced wholesale, never mutated. */
|
|
52
|
+
get markers(): readonly PoiMarker[];
|
|
53
|
+
/** Registers a batch of markers with a single change notification. */
|
|
54
|
+
addMany(newMarkers: readonly PoiMarker[]): void;
|
|
55
|
+
clear(): void;
|
|
56
|
+
/**
|
|
57
|
+
* The marker shown as the selection pinhead: the single selected booth, if
|
|
58
|
+
* exactly one booth is selected and it has an outdoor marker. Multi-select
|
|
59
|
+
* (routes, multi-booth exhibitors) shows no per-marker highlight.
|
|
60
|
+
*/
|
|
61
|
+
get selectedMarkerId(): number | null;
|
|
62
|
+
/** Whether an outdoor marker is selected — suppresses venue dimming. */
|
|
63
|
+
get selectionActive(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The active poiType filter narrowed to the markers it actually renders.
|
|
66
|
+
* Cached: it scans every booth, and the map reads it from several places
|
|
67
|
+
* (marker data, camera fit, dimming) on every selection or filter change.
|
|
68
|
+
*/
|
|
69
|
+
get outdoorFilter(): OutdoorPoiFilterState;
|
|
70
|
+
/**
|
|
71
|
+
* Dimming is suppressed while an outdoor PoI filter or marker selection is
|
|
72
|
+
* active — the whole point of both is to make those markers stand out.
|
|
73
|
+
*/
|
|
74
|
+
get dimSuppressed(): boolean;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=PoiMarkerStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__decorate as r}from"tslib";import{action as l,computed as s,observable as n}from"mobx";import{computeOutdoorPoiFilterState as d}from"./outdoor-poi-filter";export default class t{constructor(e){this.markersBox=n.box([],{deep:!1}),this.generation=0,this.rootStore=e}get markers(){return this.markersBox.get()}addMany(e){e.length&&this.markersBox.set([...this.markers,...e])}clear(){this.generation+=1,this.markersBox.set([])}get selectedMarkerId(){const e=[...this.rootStore.uiState.selectedBooths],o=e.length===1?e[0]:void 0;return o&&this.markers.some(i=>i.boothId===o.id)?o.id:null}get selectionActive(){return this.selectedMarkerId!==null}get outdoorFilter(){const{uiState:e,boothStore:o}=this.rootStore;return d(e.selectedPoiTypeFilters.map(i=>i.id),e.selectedCategoryFilters.length>0,o.booths,this.markers)}get dimSuppressed(){return this.outdoorFilter.active||this.selectionActive}}r([l],t.prototype,"addMany",null),r([l],t.prototype,"clear",null),r([s({keepAlive:!0})],t.prototype,"selectedMarkerId",null),r([s({keepAlive:!0})],t.prototype,"selectionActive",null),r([s({keepAlive:!0})],t.prototype,"outdoorFilter",null),r([s({keepAlive:!0})],t.prototype,"dimSuppressed",null);
|
|
@@ -12,6 +12,7 @@ import HeatmapStore from './HeatmapStore';
|
|
|
12
12
|
import IntercomStore from './IntercomStore';
|
|
13
13
|
import LayerStore from './LayerStore';
|
|
14
14
|
import MaplibreStore from './MaplibreStore';
|
|
15
|
+
import PoiMarkerStore from './PoiMarkerStore';
|
|
15
16
|
import PoiTypeStore from './PoiTypeStore';
|
|
16
17
|
import RoutePlannerStore from './RoutePlannerStore';
|
|
17
18
|
import RouteStore from './RouteStore';
|
|
@@ -38,6 +39,7 @@ export default class RootStore {
|
|
|
38
39
|
readonly intercomStore: IntercomStore;
|
|
39
40
|
readonly eventStore: EventStore;
|
|
40
41
|
readonly poiTypeStore: PoiTypeStore;
|
|
42
|
+
readonly poiMarkerStore: PoiMarkerStore;
|
|
41
43
|
readonly heatmapStore: HeatmapStore;
|
|
42
44
|
readonly fuzzySearchEngineStore: FuzzySearchEngineStore;
|
|
43
45
|
readonly categoryFilterStore: CategoryFilterStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate as i}from"tslib";import{action as s,computed as m,observable as u,runInAction as S}from"mobx";import{LANGUAGE_TYPE as d}from"../constants";import{RendererService as y}from"../renderer";import{URLFilterManager as b}from"../services/URLFilterManager";import{GaEventActions as w}from"../tools/gtag";import g from"../tools/logger";import{isWebGlSupported as v}from"../utils";import{resetLocale as k}from"../utils/i18n";import h from"../utils/is-mobile";import n from"../utils/is-webview";import{sanitizeSearch as x}from"../utils/sanitizeText";import B from"./BookmarksStore";import _,{BoothBase as c,RegularBooth as L}from"./BoothStore";import C from"./CategoryFilterStore";import E,{Category as T}from"./CategoryStore";import I,{EventItem as F}from"./EventStore";import M,{Exhibitor as p}from"./ExhibitorStore";import O from"./FuzzySearchEngineStore";import z from"./HeatmapStore";import R from"./IntercomStore";import A,{LayersMode as f}from"./LayerStore";import P from"./MaplibreStore";import V from"./PoiTypeStore";import{SearchShortcutProvider as G}from"./providers/SearchShortcutProvider";import{SessionsShortcutProvider as q}from"./providers/SessionsShortcutProvider";import{SpeakerShortcutProvider as N}from"./providers/SpeakerShortcutProvider";import U from"./RoutePlannerStore";import W from"./RouteStore";import j from"./SearchButtonsStore";import H from"./SearchStore";import K from"./SessionsFilterStore";import{ShortcutRegistry as Y}from"./ShortcutRegistry";import $ from"./SpeakerFilterStore";import D from"./SpeakerStore";import{SpeakerItem as J}from"./SpeakerStore";import Q from"./ToursStore";import X from"./UIState";export default class e{setResetCameraFn(t){this.resetCameraFn=t}constructor(){this.rendererService=new y,this.initialized=!1,this.categoryStore=new E(this),this.exhibitorStore=new M(this),this.boothStore=new _(this),this.routeStore=new W(this),this.routePlannerStore=new U(this),this.toursStore=new Q(this),this.uiState=new X(this),this.maplibreStore=new P(this),this.layerStore=new A,this.intercomStore=new R,this.eventStore=new I(this),this.heatmapStore=new z,this.poiTypeStore=new V(this),this.fuzzySearchEngineStore=new O(["name","title","fullName","booths.name"]),this.categoryFilterStore=new C(this),this.sessionsFilterStore=new K(this),this.speakerStore=new D(this),this.speakerFilterStore=new $(this),this.searchStore=new H(this),this.searchButtonsStore=new j(this),this.bookmarksStore=new B(this),this.urlFilterManager=new b(this),this.shortcutRegistry=new Y,this.registerShortcutProviders()}selectExhibitor(t,r=!0){this.uiState.hoveredExhibitor=null,this.uiState.details=t;var o=t.booths.filter(a=>a.visible),l=t.booths.filter(a=>!a.visible);!o.length&&l.length&&this.layerStore.updateVisibility(l[0].layer,!0),r&&setTimeout(()=>this.moveToList(t.booths.filter(a=>a.visible)),n||h?500:50)}selectBooth(t,r=!0){let o=Array.isArray(t)?t:[t];this.uiState.details=o[0],o.length===1&&o[0].schedule?.length&&(this.uiState.desiredOverlaySize="medium"),o.length===1&&o[0].layer&&!o[0].visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o[0].layer,!0),r&&setTimeout(()=>this.moveToList(o),n||h?500:50)}reset(){const t=window.__searchi;t&&t.querySelector&&t.querySelector("input[type=search]")&&t.querySelector("input[type=search]").blur&&t.querySelector("input[type=search]").blur(),window.setTimeout(()=>{this.uiState.setKioskModeEnabled||k().then(()=>{S(()=>{this.selectSearch(""),this.uiState.details=null,this.resetCameraFn?.(),this.uiState.menu=!1,this.searchStore.resetSearchBox(),this.searchButtonsStore.clearAllFilters()}),setTimeout(()=>{S(()=>{this.uiState.inIdle=!0})},100)})},1e3)}selectNone(){window.__resett&&window.__resett(),this.uiState.details=this.uiState.selectedCategory}selectBookmarks(){this.uiState.details=null,this.uiState.list={type:"bookmarks"}}selectVisited(){this.uiState.details=null,this.uiState.list={type:"visited"}}selectLanguage(){this.uiState.details=null,this.uiState.list={type:d}}selectCategory(t){window.__resett&&window.__resett(),this.uiState.details=t,this.uiState.list={type:"category",category:t},this.uiState.desiredOverlaySize="full",t.exhibitors.find(o=>o.booths.find(l=>l.visible))||this.layerStore.updateVisibility(t.exhibitors[0]?.booths[0]?.layer,!0),setTimeout(()=>{this.uiState.moveToBooths=t.exhibitors.filter(o=>o.booths.find(l=>l.visible)).flatMap(o=>o.booths)},200)}selectEventItem(t,r=!0){if(this.uiState.hoveredExhibitor=null,this.uiState.details=t,this.uiState.desiredOverlaySize="medium",t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&o.layer&&!o.visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o.layer,!0)}r&&setTimeout(()=>{if(t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&this.moveToList([o])}},n||h?500:50)}selectSearch(t){window.__resett&&window.__resett(),this.uiState.details=null,this.speakerStore.clearSelectedSpeaker(),this.uiState.list={type:"search",text:x(t,Object.keys(this.uiState.mapSettings).map(r=>`${r}=`)),focused:!1},this.uiState.activeListIndex=-1}clickBookmarks(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectBookmarks(),this.moveToList(),this.showMap()}clickVisited(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectVisited(),this.moveToList(),this.showMap()}clickLanguage(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectLanguage()}clickCategory(t){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectCategory(t),this.uiState.onCategoryClick&&this.uiState.onCategoryClick({id:t.id,name:t.name,exhibitors:t.exhibitors.map(r=>r.id)}),setTimeout(()=>{this.moveToList(),this.showMap()},100)}clickSeminars(){this.clickCategory(this.categoryStore.seminarsCategory)}clickBoothInList(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t),this.moveToList([t]),this.showMap()}clickBoothInList2(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t,!1),window.setTimeout(()=>{this.moveToList([t]),this.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}clickBooth(t){if(this.uiState.menu=!1,this.uiState.list.type==="sessions"&&this.searchStore.selectSearch(),this.uiState.list.type==="speakers"&&this.searchStore.selectSearch(),this.uiState.list.type==="tours"&&this.searchStore.selectSearch(),this.uiState.list.type==="multi-point-tour"&&this.searchStore.selectSearch(),!(this.uiState.selectedRoute?.from&&this.uiState.selectedRoute?.to)){if(this.uiState.selectedRoute?.to&&!this.uiState.selectedRoute?.from&&t){this.routeStore.setStartPoint(t);return}if(t)this.routeStore.tempToBooth=t;else{this.uiState.details=null,this.fp.hidePathways(),this.uiState.list={type:"search",text:"",focused:!1},this.uiState.onBoothClick&&this.uiState.onBoothClick({target:null});return}if(this.uiState.onBoothClick){const r={name:"",description:""},o={target:{...t,layer:t.layer||r}};this.uiState.onBoothClick(o)}t.exhibitors.length===1&&t instanceof L?(this.heatmapStore.forceTrack={action:w.ViewBooth,label:t.name},this.selectExhibitor(t.exhibitors[0],!1)):this.selectBooth(t,!1),this.showMap()}}clickExhibitor2(t){this.selectExhibitor(t,!0),this.showMap()}clickExhibitor(t){window.setTimeout(()=>{this.clickExhibitor2(t)},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}showMap(){this.uiState.overlayPosition==="bottom"&&v&&(this.uiState.desiredOverlaySize="medium")}showOverlay(){this.uiState.overlayPosition==="bottom"&&(this.uiState.desiredOverlaySize="full")}toggleMapOverlay(){this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize==="full"?this.uiState.desiredOverlaySize="medium":this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize!=="full"&&(this.uiState.desiredOverlaySize="full")}moveToList(t){t=t||this.uiState.listItems;const r=[];t.forEach(o=>{if(o instanceof p)r.push(...o.booths.filter(l=>l.visible));else if(o instanceof c)o.visible&&r.push(o);else if(o instanceof F&&o.boothId){const l=this.boothStore.boothById.get(o.boothId);l?.visible&&r.push(l)}else o instanceof J&&this.speakerStore.getEventsBySpeaker(o.id).forEach(l=>{if(!l.boothId)return;const a=this.boothStore.boothById.get(l.boothId);a?.visible&&r.push(a)})}),this.uiState.moveToBooths=r}moveToExhibitor(t){this.moveToList([t])}changeActiveListIndex(t){let r=this.uiState.activeListIndex+t;r=Math.max(0,Math.min(this.uiState.listItems.length-1,r)),this.uiState.activeListIndex=r}toggleModal(t){this.uiState.modalActive[t]=!this.uiState.modalActive[t]}openGallery(){this.uiState.galleryActive=!0}closeGallery(){this.uiState.galleryActive=!1}openActiveListItem(){const t=this.uiState.listItems[this.uiState.activeListIndex];t&&(g.log("Opening",t),t instanceof p?this.clickExhibitor(t):t instanceof T?this.clickCategory(t):t instanceof c&&this.clickBoothInList2(t))}toggleCategoryFilter(){this.uiState.categoryFilterOpen=!this.uiState.categoryFilterOpen}applyCategoryFilters(t){this.uiState.selectedCategoryFilters=t,this.uiState.categoryFilterOpen=!1}get filteredExhibitors(){return this.uiState.selectedCategoryFilters.length===0?this.exhibitorStore.exhibitors:this.exhibitorStore.exhibitors.filter(t=>this.uiState.selectedCategoryFilters.some(r=>t.categories.some(o=>o.id===r.id)))}selectSessions(){this.uiState.list={type:"sessions",text:"",focused:!1},this.uiState.menu=!1,this.uiState.selectedTrack=null,this.searchButtonsStore.setSubButtonId(null),this.searchButtonsStore.subButtonsEnabled&&this.searchButtonsStore.showSubButtons("sessions"),h&&(this.uiState.desiredOverlaySize="full")}selectExhibitors(){this.uiState.list={type:"exhibitors",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectTours(){this.uiState.list={type:"tours",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeakers(){this.uiState.list={type:"speakers",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeaker(t,r=!0){this.speakerStore.selectSpeaker(t,r)}resetFilters(){this.searchButtonsStore.clearAllFilters()}registerShortcutProviders(){this.shortcutRegistry.register(new q(this)),this.shortcutRegistry.register(new N(this)),this.shortcutRegistry.register(new G(this))}}i([u],e.prototype,"initialized",void 0),i([u],e.prototype,"resetCameraFn",void 0),i([s],e.prototype,"setResetCameraFn",null),i([s],e.prototype,"selectExhibitor",null),i([s],e.prototype,"selectBooth",null),i([s],e.prototype,"reset",null),i([s],e.prototype,"selectNone",null),i([s],e.prototype,"selectBookmarks",null),i([s],e.prototype,"selectVisited",null),i([s],e.prototype,"selectLanguage",null),i([s],e.prototype,"selectCategory",null),i([s],e.prototype,"selectEventItem",null),i([s],e.prototype,"selectSearch",null),i([s],e.prototype,"clickBookmarks",null),i([s],e.prototype,"clickVisited",null),i([s],e.prototype,"clickLanguage",null),i([s],e.prototype,"clickCategory",null),i([s],e.prototype,"clickSeminars",null),i([s],e.prototype,"clickBoothInList",null),i([s],e.prototype,"clickBoothInList2",null),i([s],e.prototype,"clickBooth",null),i([s],e.prototype,"clickExhibitor2",null),i([s],e.prototype,"clickExhibitor",null),i([s],e.prototype,"showMap",null),i([s],e.prototype,"showOverlay",null),i([s],e.prototype,"toggleMapOverlay",null),i([s],e.prototype,"moveToList",null),i([s],e.prototype,"moveToExhibitor",null),i([s],e.prototype,"changeActiveListIndex",null),i([s],e.prototype,"toggleModal",null),i([s],e.prototype,"openGallery",null),i([s],e.prototype,"closeGallery",null),i([s],e.prototype,"openActiveListItem",null),i([s],e.prototype,"toggleCategoryFilter",null),i([s],e.prototype,"applyCategoryFilters",null),i([m],e.prototype,"filteredExhibitors",null),i([s],e.prototype,"selectSessions",null),i([s],e.prototype,"selectExhibitors",null),i([s],e.prototype,"selectTours",null),i([s],e.prototype,"selectSpeakers",null),i([s],e.prototype,"selectSpeaker",null),i([s],e.prototype,"resetFilters",null);
|
|
1
|
+
import{__decorate as i}from"tslib";import{action as s,computed as m,observable as u,runInAction as S}from"mobx";import{LANGUAGE_TYPE as d}from"../constants";import{RendererService as y}from"../renderer";import{URLFilterManager as w}from"../services/URLFilterManager";import{GaEventActions as b}from"../tools/gtag";import g from"../tools/logger";import{isWebGlSupported as v}from"../utils";import{resetLocale as k}from"../utils/i18n";import h from"../utils/is-mobile";import n from"../utils/is-webview";import{sanitizeSearch as x}from"../utils/sanitizeText";import B from"./BookmarksStore";import _,{BoothBase as c,RegularBooth as L}from"./BoothStore";import C from"./CategoryFilterStore";import E,{Category as T}from"./CategoryStore";import I,{EventItem as F}from"./EventStore";import M,{Exhibitor as p}from"./ExhibitorStore";import O from"./FuzzySearchEngineStore";import z from"./HeatmapStore";import R from"./IntercomStore";import A,{LayersMode as f}from"./LayerStore";import P from"./MaplibreStore";import V from"./PoiMarkerStore";import G from"./PoiTypeStore";import{SearchShortcutProvider as q}from"./providers/SearchShortcutProvider";import{SessionsShortcutProvider as N}from"./providers/SessionsShortcutProvider";import{SpeakerShortcutProvider as U}from"./providers/SpeakerShortcutProvider";import W from"./RoutePlannerStore";import j from"./RouteStore";import H from"./SearchButtonsStore";import K from"./SearchStore";import Y from"./SessionsFilterStore";import{ShortcutRegistry as $}from"./ShortcutRegistry";import D from"./SpeakerFilterStore";import J from"./SpeakerStore";import{SpeakerItem as Q}from"./SpeakerStore";import X from"./ToursStore";import Z from"./UIState";export default class e{setResetCameraFn(t){this.resetCameraFn=t}constructor(){this.rendererService=new y,this.initialized=!1,this.categoryStore=new E(this),this.exhibitorStore=new M(this),this.boothStore=new _(this),this.routeStore=new j(this),this.routePlannerStore=new W(this),this.toursStore=new X(this),this.uiState=new Z(this),this.maplibreStore=new P(this),this.layerStore=new A,this.intercomStore=new R,this.eventStore=new I(this),this.heatmapStore=new z,this.poiTypeStore=new G(this),this.poiMarkerStore=new V(this),this.fuzzySearchEngineStore=new O(["name","title","fullName","booths.name"]),this.categoryFilterStore=new C(this),this.sessionsFilterStore=new Y(this),this.speakerStore=new J(this),this.speakerFilterStore=new D(this),this.searchStore=new K(this),this.searchButtonsStore=new H(this),this.bookmarksStore=new B(this),this.urlFilterManager=new w(this),this.shortcutRegistry=new $,this.registerShortcutProviders()}selectExhibitor(t,r=!0){this.uiState.hoveredExhibitor=null,this.uiState.details=t;var o=t.booths.filter(a=>a.visible),l=t.booths.filter(a=>!a.visible);!o.length&&l.length&&this.layerStore.updateVisibility(l[0].layer,!0),r&&setTimeout(()=>this.moveToList(t.booths.filter(a=>a.visible)),n||h?500:50)}selectBooth(t,r=!0){let o=Array.isArray(t)?t:[t];this.uiState.details=o[0],o.length===1&&o[0].schedule?.length&&(this.uiState.desiredOverlaySize="medium"),o.length===1&&o[0].layer&&!o[0].visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o[0].layer,!0),r&&setTimeout(()=>this.moveToList(o),n||h?500:50)}reset(){const t=window.__searchi;t&&t.querySelector&&t.querySelector("input[type=search]")&&t.querySelector("input[type=search]").blur&&t.querySelector("input[type=search]").blur(),window.setTimeout(()=>{this.uiState.setKioskModeEnabled||k().then(()=>{S(()=>{this.selectSearch(""),this.uiState.details=null,this.resetCameraFn?.(),this.uiState.menu=!1,this.searchStore.resetSearchBox(),this.searchButtonsStore.clearAllFilters()}),setTimeout(()=>{S(()=>{this.uiState.inIdle=!0})},100)})},1e3)}selectNone(){window.__resett&&window.__resett(),this.uiState.details=this.uiState.selectedCategory}selectBookmarks(){this.uiState.details=null,this.uiState.list={type:"bookmarks"}}selectVisited(){this.uiState.details=null,this.uiState.list={type:"visited"}}selectLanguage(){this.uiState.details=null,this.uiState.list={type:d}}selectCategory(t){window.__resett&&window.__resett(),this.uiState.details=t,this.uiState.list={type:"category",category:t},this.uiState.desiredOverlaySize="full",t.exhibitors.find(o=>o.booths.find(l=>l.visible))||this.layerStore.updateVisibility(t.exhibitors[0]?.booths[0]?.layer,!0),setTimeout(()=>{this.uiState.moveToBooths=t.exhibitors.filter(o=>o.booths.find(l=>l.visible)).flatMap(o=>o.booths)},200)}selectEventItem(t,r=!0){if(this.uiState.hoveredExhibitor=null,this.uiState.details=t,this.uiState.desiredOverlaySize="medium",t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&o.layer&&!o.visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o.layer,!0)}r&&setTimeout(()=>{if(t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&this.moveToList([o])}},n||h?500:50)}selectSearch(t){window.__resett&&window.__resett(),this.uiState.details=null,this.speakerStore.clearSelectedSpeaker(),this.uiState.list={type:"search",text:x(t,Object.keys(this.uiState.mapSettings).map(r=>`${r}=`)),focused:!1},this.uiState.activeListIndex=-1}clickBookmarks(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectBookmarks(),this.moveToList(),this.showMap()}clickVisited(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectVisited(),this.moveToList(),this.showMap()}clickLanguage(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectLanguage()}clickCategory(t){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectCategory(t),this.uiState.onCategoryClick&&this.uiState.onCategoryClick({id:t.id,name:t.name,exhibitors:t.exhibitors.map(r=>r.id)}),setTimeout(()=>{this.moveToList(),this.showMap()},100)}clickSeminars(){this.clickCategory(this.categoryStore.seminarsCategory)}clickBoothInList(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t),this.moveToList([t]),this.showMap()}clickBoothInList2(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t,!1),window.setTimeout(()=>{this.moveToList([t]),this.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}clickBooth(t){if(this.uiState.menu=!1,this.uiState.list.type==="sessions"&&this.searchStore.selectSearch(),this.uiState.list.type==="speakers"&&this.searchStore.selectSearch(),this.uiState.list.type==="tours"&&this.searchStore.selectSearch(),this.uiState.list.type==="multi-point-tour"&&this.searchStore.selectSearch(),!(this.uiState.selectedRoute?.from&&this.uiState.selectedRoute?.to)){if(this.uiState.selectedRoute?.to&&!this.uiState.selectedRoute?.from&&t){this.routeStore.setStartPoint(t);return}if(t)this.routeStore.tempToBooth=t;else{this.uiState.details=null,this.fp.hidePathways(),this.uiState.list={type:"search",text:"",focused:!1},this.uiState.onBoothClick&&this.uiState.onBoothClick({target:null});return}if(this.uiState.onBoothClick){const r={name:"",description:""},o={target:{...t,layer:t.layer||r}};this.uiState.onBoothClick(o)}t.exhibitors.length===1&&t instanceof L?(this.heatmapStore.forceTrack={action:b.ViewBooth,label:t.name},this.selectExhibitor(t.exhibitors[0],!1)):this.selectBooth(t,!1),this.showMap()}}clickExhibitor2(t){this.selectExhibitor(t,!0),this.showMap()}clickExhibitor(t){window.setTimeout(()=>{this.clickExhibitor2(t)},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}showMap(){this.uiState.overlayPosition==="bottom"&&v&&(this.uiState.desiredOverlaySize="medium")}showOverlay(){this.uiState.overlayPosition==="bottom"&&(this.uiState.desiredOverlaySize="full")}toggleMapOverlay(){this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize==="full"?this.uiState.desiredOverlaySize="medium":this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize!=="full"&&(this.uiState.desiredOverlaySize="full")}moveToList(t){t=t||this.uiState.listItems;const r=[];t.forEach(o=>{if(o instanceof p)r.push(...o.booths.filter(l=>l.visible));else if(o instanceof c)o.visible&&r.push(o);else if(o instanceof F&&o.boothId){const l=this.boothStore.boothById.get(o.boothId);l?.visible&&r.push(l)}else o instanceof Q&&this.speakerStore.getEventsBySpeaker(o.id).forEach(l=>{if(!l.boothId)return;const a=this.boothStore.boothById.get(l.boothId);a?.visible&&r.push(a)})}),this.uiState.moveToBooths=r}moveToExhibitor(t){this.moveToList([t])}changeActiveListIndex(t){let r=this.uiState.activeListIndex+t;r=Math.max(0,Math.min(this.uiState.listItems.length-1,r)),this.uiState.activeListIndex=r}toggleModal(t){this.uiState.modalActive[t]=!this.uiState.modalActive[t]}openGallery(){this.uiState.galleryActive=!0}closeGallery(){this.uiState.galleryActive=!1}openActiveListItem(){const t=this.uiState.listItems[this.uiState.activeListIndex];t&&(g.log("Opening",t),t instanceof p?this.clickExhibitor(t):t instanceof T?this.clickCategory(t):t instanceof c&&this.clickBoothInList2(t))}toggleCategoryFilter(){this.uiState.categoryFilterOpen=!this.uiState.categoryFilterOpen}applyCategoryFilters(t){this.uiState.selectedCategoryFilters=t,this.uiState.categoryFilterOpen=!1}get filteredExhibitors(){return this.uiState.selectedCategoryFilters.length===0?this.exhibitorStore.exhibitors:this.exhibitorStore.exhibitors.filter(t=>this.uiState.selectedCategoryFilters.some(r=>t.categories.some(o=>o.id===r.id)))}selectSessions(){this.uiState.list={type:"sessions",text:"",focused:!1},this.uiState.menu=!1,this.uiState.selectedTrack=null,this.searchButtonsStore.setSubButtonId(null),this.searchButtonsStore.subButtonsEnabled&&this.searchButtonsStore.showSubButtons("sessions"),h&&(this.uiState.desiredOverlaySize="full")}selectExhibitors(){this.uiState.list={type:"exhibitors",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectTours(){this.uiState.list={type:"tours",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeakers(){this.uiState.list={type:"speakers",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeaker(t,r=!0){this.speakerStore.selectSpeaker(t,r)}resetFilters(){this.searchButtonsStore.clearAllFilters()}registerShortcutProviders(){this.shortcutRegistry.register(new N(this)),this.shortcutRegistry.register(new U(this)),this.shortcutRegistry.register(new q(this))}}i([u],e.prototype,"initialized",void 0),i([u],e.prototype,"resetCameraFn",void 0),i([s],e.prototype,"setResetCameraFn",null),i([s],e.prototype,"selectExhibitor",null),i([s],e.prototype,"selectBooth",null),i([s],e.prototype,"reset",null),i([s],e.prototype,"selectNone",null),i([s],e.prototype,"selectBookmarks",null),i([s],e.prototype,"selectVisited",null),i([s],e.prototype,"selectLanguage",null),i([s],e.prototype,"selectCategory",null),i([s],e.prototype,"selectEventItem",null),i([s],e.prototype,"selectSearch",null),i([s],e.prototype,"clickBookmarks",null),i([s],e.prototype,"clickVisited",null),i([s],e.prototype,"clickLanguage",null),i([s],e.prototype,"clickCategory",null),i([s],e.prototype,"clickSeminars",null),i([s],e.prototype,"clickBoothInList",null),i([s],e.prototype,"clickBoothInList2",null),i([s],e.prototype,"clickBooth",null),i([s],e.prototype,"clickExhibitor2",null),i([s],e.prototype,"clickExhibitor",null),i([s],e.prototype,"showMap",null),i([s],e.prototype,"showOverlay",null),i([s],e.prototype,"toggleMapOverlay",null),i([s],e.prototype,"moveToList",null),i([s],e.prototype,"moveToExhibitor",null),i([s],e.prototype,"changeActiveListIndex",null),i([s],e.prototype,"toggleModal",null),i([s],e.prototype,"openGallery",null),i([s],e.prototype,"closeGallery",null),i([s],e.prototype,"openActiveListItem",null),i([s],e.prototype,"toggleCategoryFilter",null),i([s],e.prototype,"applyCategoryFilters",null),i([m],e.prototype,"filteredExhibitors",null),i([s],e.prototype,"selectSessions",null),i([s],e.prototype,"selectExhibitors",null),i([s],e.prototype,"selectTours",null),i([s],e.prototype,"selectSpeakers",null),i([s],e.prototype,"selectSpeaker",null),i([s],e.prototype,"resetFilters",null);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type PoiMarker } from './PoiMarkerStore';
|
|
2
|
+
export interface OutdoorPoiFilterState {
|
|
3
|
+
active: boolean;
|
|
4
|
+
/** Stable key over the matching booth ids — the change signal for reactions. */
|
|
5
|
+
key: string;
|
|
6
|
+
matchingMarkers: PoiMarker[];
|
|
7
|
+
}
|
|
8
|
+
export declare const EMPTY_OUTDOOR_POI_FILTER_STATE: OutdoorPoiFilterState;
|
|
9
|
+
/** The subset of a booth the outdoor PoI filter looks at. */
|
|
10
|
+
export interface PoiFilterBooth {
|
|
11
|
+
id: number;
|
|
12
|
+
poiTypeId?: number | null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pure core of `PoiMarkerStore.outdoorFilter`. The filter targets the
|
|
16
|
+
* *rendered* outdoor markers: booths matching the selected poiType but without
|
|
17
|
+
* a marker (indoor booths sharing the type, or markers still rasterizing) are
|
|
18
|
+
* skipped, and the filter is inactive only when no marker matched at all.
|
|
19
|
+
*/
|
|
20
|
+
export declare function computeOutdoorPoiFilterState(selectedPoiTypeIds: readonly number[], hasCategoryFilters: boolean, booths: readonly PoiFilterBooth[], markers: readonly PoiMarker[]): OutdoorPoiFilterState;
|
|
21
|
+
//# sourceMappingURL=outdoor-poi-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const EMPTY_OUTDOOR_POI_FILTER_STATE={active:!1,key:"",matchingMarkers:[]};export function computeOutdoorPoiFilterState(n,r,i,c){if(!n.length||r)return EMPTY_OUTDOOR_POI_FILTER_STATE;const a=new Set(n),s=new Map(c.map(t=>[t.boothId,t])),e=[];for(const t of i){if(t.poiTypeId==null||!a.has(t.poiTypeId))continue;const o=s.get(t.id);o&&e.push(o)}return e.length?{active:!0,key:[...new Set(e.map(t=>t.boothId))].sort((t,o)=>t-o).join(","),matchingMarkers:e}:EMPTY_OUTDOOR_POI_FILTER_STATE}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expofp/floorplan",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.19.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/expofp/efp-app.git",
|
|
@@ -72,13 +72,13 @@
|
|
|
72
72
|
"tslib": "^2.3.0",
|
|
73
73
|
"uuid": "^9.0.1",
|
|
74
74
|
"zod": "4.4.3",
|
|
75
|
-
"@expofp/config": "3.
|
|
76
|
-
"@expofp/
|
|
77
|
-
"@expofp/
|
|
78
|
-
"@expofp/
|
|
79
|
-
"@expofp/schema": "3.
|
|
80
|
-
"@expofp/
|
|
81
|
-
"@expofp/wayfinding": "3.
|
|
75
|
+
"@expofp/config": "3.19.0",
|
|
76
|
+
"@expofp/debug": "3.19.0",
|
|
77
|
+
"@expofp/geometry": "3.19.0",
|
|
78
|
+
"@expofp/resolve": "3.19.0",
|
|
79
|
+
"@expofp/schema": "3.19.0",
|
|
80
|
+
"@expofp/utils": "3.19.0",
|
|
81
|
+
"@expofp/wayfinding": "3.19.0"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|