@mappedin/react-sdk 6.0.1-beta.23 → 6.0.1-beta.24

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.
@@ -89,92 +89,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
89
89
  */
90
90
  quality?: 'low' | 'medium' | 'high' | 'ultra';
91
91
  };
92
- /**
93
- * Represents all the available ambient occlusion options.
94
- */
95
- type TAmbientOcclusionOptions = {
96
- /**
97
- * Enable ambient occlusion. Only works in single buffer mode and when device supports WebGL2.
98
- *
99
- * @default false
100
- */
101
- enabled?: boolean;
102
- /**
103
- * Change the quality of ambient occlusion in the scene. Greater quality means less noise, but worse performance.
104
- *
105
- * The quality modes are as follows:
106
-
107
- *Temporal stability refers to how consistent the AO is from frame to frame - it's important for a smooth experience.*
108
- | Quality Mode | AO Samples | Denoise Samples | Denoise Radius | Best For
109
- |:---:|:---:|:---:|:---:|:---:|
110
- | Performance (Less temporal stability, a bit noisy) | 8 | 4 | 12 | Mobile, Low-end iGPUs and laptops |
111
- | Low (Temporally stable, but low-frequency noise) | 16 | 4 | 12 | High-End Mobile, iGPUs, laptops |
112
- | Medium (Temporally stable and barely any noise) | 16 | 8 | 12 | High-End Mobile, laptops, desktops |
113
- | High (Significantly sharper AO, barely any noise) | 64 | 8 | 6 | Desktops, dedicated GPUs |
114
- | Ultra (Sharp AO, No visible noise whatsoever) | 64 | 16 | 6 | Desktops, dedicated GPUs|
115
-
116
- Generally, half-res mode at "Ultra" quality is slightly slower than full-res mode at "Performance" quality, but produces significantly better results.
117
-
118
- If you wish to make entirely custom quality setup, you can manually change `aoSamples`, `denoiseSamples` and `denoiseRadius`.
119
- *
120
- * @default 'medium'
121
- */
122
- quality?: 'performance' | 'low' | 'medium' | 'high' | 'ultra';
123
- samples?: number;
124
- /**
125
- * Controls the radius/size of the ambient occlusion in world units. Should be set to how far you want the occlusion to extend from a given object.
126
- * Set it too low, and AO becomes an edge detector. Too high, and the AO becomes "soft" and might not highlight the details you want.
127
- */
128
- radius?: number;
129
- denoiseSamples?: number;
130
- denoiseRadius?: number;
131
- /**
132
- * A purely artistic control for the intensity of the AO has the effect of darkening areas with more ambient occlusion.
133
- * Useful to make the effect more pronounced. An intensity of 2 generally produces soft ambient occlusion that isn't too noticeable,
134
- * whereas one of 5 produces heavily prominent ambient occlusion.
135
- */
136
- intensity?: number;
137
- denoiseIterations?: number;
138
- renderMode?: number;
139
- /**
140
- * The color of the ambient occlusion. By default, it is black, but it can be changed to any color to offer a crude approximation of global illumination.
141
- * Recommended in scenes where bounced light has a uniform "color", for instance a scene that is predominantly lit by a blue sky.
142
- * The color is expected to be in the sRGB color space, and is automatically converted to linear space for you. Keep the color pretty dark for sensible results.
143
- *
144
- * Color formats:\
145
- * RGB String: `rgb(255, 0, 0)` or `rgb(100%, 0%, 0%)`\
146
- * HSL String: `hsl(0, 100%, 50%)`\
147
- * X11 color name - all 140 color names are supported. Note the lack of CamelCase in the name: `skyblue`
148
- */
149
- color?: string;
150
- /**
151
- * Should be automatically set to the correct value. If you are getting washed out colors, try setting `gammaCorrection` to false, and if you are getting dark colors, try setting it to true.
152
- */
153
- gammaCorrection?: boolean;
154
- logarithmicDepthBuffer?: boolean;
155
- /**
156
- * When screenSpaceRadius is set to true, the `aoRadius` parameter represents the size of the ambient occlusion effect in pixels (recommended to be set between 16 and 64).
157
- * The `distanceFalloff` parameter becomes a ratio, representing the percent of the screen space radius at which the AO should fade away - it should be set to 0.2 in most cases,
158
- * but it accepts any value between 0 and 1 (technically even higher than 1, though that is not recommended).
159
- */
160
- screenSpaceRadius?: boolean;
161
- /**
162
- * Use half-resolution" mode for performance-critical applications. This will cause the AO to be calculated at half the resolution of the screen, and then upscaled to the full resolution.
163
- * This is a great way to get a performance boost (generally 2x-4x) at the cost of some quality (the AO will lack fine details and temporal stability will be slightly reduced).
164
- * @default 'full'
165
- */
166
- resolution?: 'half' | 'full';
167
- /**
168
- * The half `aoResolution` mode uses depth-aware upscaling by default.
169
- * The AO effect looks bad without depth-aware upscaling, so it is not recommended to disable it.
170
- * However, if performance is truly that critical, you can do so by setting `depthAwareUpsampling` to false.
171
- */
172
- depthAwareUpsampling?: boolean;
173
- /**
174
- * It is recommended to not change this value, otherwise rendering issues may occur.
175
- */
176
- autoRenderBeauty?: boolean;
177
- };
178
92
  /**
179
93
  * @interface
180
94
  * Options for the watermark.
@@ -396,19 +310,24 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
396
310
  * @experimental
397
311
  */
398
312
  export const createMapLibreOverlay: (mapData: MapData, showMapOptions?: TShow3DMapOptions) => MappedinMapLibreOverlay;
399
- export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
400
313
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
314
+ /**
315
+ * @internal
316
+ * @deprecated Use {@link show3dMap} instead.
317
+ */
318
+ export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
401
319
  export { parseMVF, unzipMVF, enableTestMode };
402
- export type { MapView, MapData, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, };
320
+ export type { MapView, MapData, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, };
403
321
  export type * from 'geojson';
404
322
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TFocusable, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/react-sdk/mappedin-js/src/types';
405
323
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
406
324
  export type { Label, Marker, Path, Shape, CameraTransform, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
407
325
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
408
326
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
409
- export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image as ImageData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
327
+ export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image as ImageData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Facade, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
410
328
  export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, StackedMaps, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
411
329
  export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/react-sdk/mappedin-js/src/search';
330
+ export type { TFindNearestOptions, TFindNearestResult, TQueriables, Query } from '@mappedin/react-sdk/mappedin-js/src/query';
412
331
  export type { Analytics, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics';
413
332
  }
414
333
 
@@ -725,13 +644,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
725
644
  import { Analytics } from '@mappedin/react-sdk/mappedin-js/src/analytics';
726
645
  import { PubSub } from '@packages/internal/common';
727
646
  import type { TSearchOptions } from '@packages/internal/mvf-utils';
728
- import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
647
+ import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node, Facade, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
729
648
  import type EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
730
649
  import type EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
731
650
  import type EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
732
651
  import { Search } from '@mappedin/react-sdk/mappedin-js/src/search';
733
652
  import type { TNavigationTarget, TGetDirectionsOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
734
653
  import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
654
+ import { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
735
655
  /**
736
656
  * A WeakMap to associate {@link MapData} instances with their internal representation.
737
657
  * We need a way to get the internal data object from the API
@@ -769,6 +689,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
769
689
  * console.log(suggestions);
770
690
  */
771
691
  Search: Search;
692
+ Query: Query;
772
693
  /**
773
694
  * Constructs a new instance of {@link MapData}.
774
695
  *
@@ -847,6 +768,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
847
768
  * const floorStacks = mapData.getByType('floor-stack');
848
769
  */
849
770
  getByType(type: 'floor-stack'): FloorStack[];
771
+ /**
772
+ * @returns The facades ({@link Facade}) within the map.
773
+ * @example
774
+ * const facades = mapData.getByType('facade');
775
+ */
776
+ getByType(type: 'facade'): Facade[];
850
777
  /**
851
778
  * @returns The connections ({@link Connection}) on the map.
852
779
  * @example
@@ -910,7 +837,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
910
837
  * @example
911
838
  * const space = mapData.getById('space', 'space-id');
912
839
  */
913
- getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'area' ? Area | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
840
+ getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'facade' ? Facade | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'area' ? Area | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
914
841
  getById(type: string, id: string): object | undefined;
915
842
  /**
916
843
  * Changes the language of the map data.
@@ -1140,6 +1067,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1140
1067
  import Hyperlink from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink';
1141
1068
  import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
1142
1069
  import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
1070
+ import Facade from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade';
1143
1071
  import type { MapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
1144
1072
  import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory, Language, AreaCollection } from '@mappedin/mvf';
1145
1073
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
@@ -1153,6 +1081,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1153
1081
  import type { TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
1154
1082
  import { type Directions, DirectionsInternal } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
1155
1083
  import { type THydrateMapDataBundle } from '@mappedin/react-sdk/mappedin-js/src';
1084
+ import { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
1156
1085
  /**
1157
1086
  * Internal class representing detailed map data.
1158
1087
  *
@@ -1166,6 +1095,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1166
1095
  }> {
1167
1096
  #private;
1168
1097
  Analytics: AnalyticsInternal;
1098
+ Query: Query;
1169
1099
  /**
1170
1100
  * Represents the parsed Mappedin Venue Format (MVF) data.
1171
1101
  */
@@ -1194,6 +1124,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1194
1124
  spacesById: MapDataRecords['spacesById'];
1195
1125
  floorsById: MapDataRecords['floorsById'];
1196
1126
  floorStacksById: MapDataRecords['floorStacksById'];
1127
+ facadesById: MapDataRecords['facadesById'];
1128
+ facadesBySpaceId: MapDataRecords['facadesBySpaceId'];
1197
1129
  connectionsById: MapDataRecords['connectionsById'];
1198
1130
  objectsById: MapDataRecords['objectsById'];
1199
1131
  doorsById: MapDataRecords['doorsById'];
@@ -1215,6 +1147,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1215
1147
  mvfFloorsById: MapDataRecords['mvfFloorsById'];
1216
1148
  mvfFloorStacksById: MapDataRecords['mvfFloorStacksById'];
1217
1149
  mvfAreasById: MapDataRecords['mvfAreasById'];
1150
+ mvfNodesByFloorId: MapDataRecords['mvfNodesByFloorId'];
1151
+ mvfSpacesByFloorId: MapDataRecords['mvfSpacesByFloorId'];
1152
+ mvfPoisByFloorId: MapDataRecords['mvfPoisByFloorId'];
1153
+ mvfEntrancesByFloorId: MapDataRecords['mvfEntrancesByFloorId'];
1154
+ mvfAnnotationsByFloorId: MapDataRecords['mvfAnnotationsByFloorId'];
1218
1155
  localePacksUrls: LocalePackUrls;
1219
1156
  currentLanguage?: Language;
1220
1157
  /**
@@ -1268,6 +1205,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1268
1205
  */
1269
1206
  get floors(): Floor[];
1270
1207
  get floorStacks(): FloorStack[];
1208
+ get facades(): Facade[];
1271
1209
  /**
1272
1210
  * Retrieves all doors in the map.
1273
1211
  *
@@ -1299,6 +1237,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1299
1237
  get categories(): EnterpriseCategory[];
1300
1238
  get mvfFloors(): MVFFloor[];
1301
1239
  get mvfFloorStacks(): MVFFloorStack[];
1240
+ getByType(type: string): object[];
1241
+ getByType(type: 'space'): Space[];
1242
+ getByType(type: 'area'): Area[];
1243
+ getByType(type: 'door'): Door[];
1244
+ getByType(type: 'floor'): Floor[];
1245
+ getByType(type: 'floor-stack'): FloorStack[];
1246
+ getByType(type: 'connection'): Connection[];
1247
+ getByType(type: 'object'): MapObject[];
1248
+ getByType(type: 'point-of-interest'): PointOfInterest[];
1249
+ getByType(type: 'annotation'): Annotation[];
1250
+ getByType(type: 'node'): Node[];
1251
+ getByType(type: 'enterprise-location'): EnterpriseLocation[];
1252
+ getByType(type: 'enterprise-category'): EnterpriseCategory[];
1253
+ getByType(type: 'enterprise-venue'): EnterpriseVenue | undefined;
1254
+ getByType(type: 'facade'): Facade[];
1302
1255
  /**
1303
1256
  * Retrieves an object by its type and ID.
1304
1257
  *
@@ -1306,18 +1259,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1306
1259
  * @param id The ID of the object.
1307
1260
  * @returns {Space | Door | Floor | Connection | MapObject | undefined} The requested object, or undefined if not found.
1308
1261
  */
1309
- getById(type: 'node', id: string): Node | undefined;
1310
- getById(type: 'space', id: string): Space | undefined;
1311
- getById(type: 'door', id: string): Door | undefined;
1312
- getById(type: 'floor', id: string): Floor | undefined;
1313
- getById(type: 'floor-stack', id: string): FloorStack | undefined;
1314
- getById(type: 'connection', id: string): Connection | undefined;
1315
- getById(type: 'object', id: string): MapObject | undefined;
1316
- getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
1317
- getById(type: 'annotation', id: string): Annotation | undefined;
1318
- getById(type: 'area', id: string): Area | undefined;
1319
- getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
1320
- getById(type: 'enterprise-category', id: string): EnterpriseCategory | undefined;
1262
+ getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : T extends 'area' ? Area | undefined : T extends 'facade' ? Facade | undefined : undefined;
1263
+ getById(type: string, id: string): object | undefined;
1321
1264
  getMapDataById(id: string): Places | undefined;
1322
1265
  /**
1323
1266
  * Retrieves a feature by its type and ID from the Mappedin Venue Format (MVF) data.
@@ -1365,7 +1308,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1365
1308
  */
1366
1309
  destroy(): void;
1367
1310
  }
1368
- export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1311
+ export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Facade, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1369
1312
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1370
1313
  export type { Places };
1371
1314
  }
@@ -1445,9 +1388,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1445
1388
  */
1446
1389
  Outdoor: Outdoor;
1447
1390
  /**
1448
- * Controls for the stacked maps.
1391
+ * Controls for Stacked Maps.
1449
1392
  */
1450
1393
  get StackedMaps(): StackedMaps;
1394
+ /**
1395
+ * @internal
1396
+ * @experimental
1397
+ */
1398
+ get DynamicFocus(): import("./api-geojson/dynamic-focus").DynamicFocus;
1451
1399
  /**
1452
1400
  * @internal
1453
1401
  */
@@ -1766,7 +1714,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1766
1714
 
1767
1715
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1768
1716
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1769
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1717
+ import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node, Area, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1770
1718
  import type { Label, Marker, Model, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1771
1719
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1772
1720
  import type { InsetPaddingOption, Position } from '@mappedin/core-sdk';
@@ -2134,7 +2082,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2134
2082
  /**
2135
2083
  * A map element that can be focused on by the camera.
2136
2084
  */
2137
- export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Area | Node | EnterpriseLocation
2085
+ export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Area | Node | EnterpriseLocation | Facade
2138
2086
  /**
2139
2087
  * @experimental
2140
2088
  */
@@ -2169,7 +2117,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2169
2117
  /**
2170
2118
  * Defines the target for navigation operations.
2171
2119
  */
2172
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node | Area;
2120
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node | Area | Facade;
2173
2121
  /**
2174
2122
  * Defines the special zone for navigation operations.
2175
2123
  */
@@ -3284,6 +3232,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search' {
3284
3232
  export { Search } from '@mappedin/react-sdk/mappedin-js/src/search/external';
3285
3233
  }
3286
3234
 
3235
+ declare module '@mappedin/react-sdk/mappedin-js/src/query' {
3236
+ export { Query } from '@mappedin/react-sdk/mappedin-js/src/query/external';
3237
+ export type { TFindNearestOptions, TFindNearestResult, TQueriables } from '@mappedin/react-sdk/mappedin-js/src/query/external';
3238
+ }
3239
+
3287
3240
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics' {
3288
3241
  export { Analytics, AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
3289
3242
  export type { AnalyticsUpdateOptions, AnalyticState, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
@@ -4960,7 +4913,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image' {
4960
4913
 
4961
4914
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack' {
4962
4915
  import type { FloorStack as MVFFloorStack } from '@mappedin/mvf';
4963
- import type { MapDataInternal, Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4916
+ import type { MapDataInternal, Floor, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4964
4917
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4965
4918
  /**
4966
4919
  * A class representing floor stack data within the map.
@@ -4989,6 +4942,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
4989
4942
  */
4990
4943
  constructor(data: MapDataInternal, options: {
4991
4944
  mvfData: MVFFloorStack;
4945
+ facadeId?: string;
4992
4946
  });
4993
4947
  /**
4994
4948
  * Gets the type of FloorStack.
@@ -5009,7 +4963,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5009
4963
  *
5010
4964
  * @returns {Floor[]} An array of Floor objects in this FloorStack.
5011
4965
  */
5012
- get floors(): Floor[];
4966
+ get floors(): [Floor, ...Floor[]];
4967
+ /**
4968
+ * Get the default floor for this floor stack
4969
+ */
4970
+ get defaultFloor(): Floor;
4971
+ /**
4972
+ * Gets the facade ({@link Facade}) representing this floor stack, if it exists.
4973
+ */
4974
+ get facade(): Facade | undefined;
5013
4975
  /**
5014
4976
  * Serializes the FloorStack data to JSON.
5015
4977
  *
@@ -5031,20 +4993,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5031
4993
  export default FloorStack;
5032
4994
  }
5033
4995
 
4996
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade' {
4997
+ import type { Space, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4998
+ import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4999
+ import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
5000
+ import type { Facade as MVFFacade } from '@mappedin/mvf';
5001
+ /**
5002
+ * A Facade is a collection of spaces that make up the exterior representation of a Floor Stack ({@link FloorStack}).
5003
+ */
5004
+ class Facade extends BaseMapData {
5005
+ #private;
5006
+ static readonly __type = "facade";
5007
+ readonly __type = "facade";
5008
+ /**
5009
+ * Checks if the provided instance is of type Floor.
5010
+ *
5011
+ * @param instance The instance to check.
5012
+ * @returns {boolean} True if the instance is a Floor, false otherwise.
5013
+ */
5014
+ static is(instance: object): instance is Facade;
5015
+ /** @internal */
5016
+ constructor(data: MapDataInternal, options: {
5017
+ mvfData: MVFFacade;
5018
+ floorStackId: string;
5019
+ });
5020
+ /**
5021
+ * Gets the floor stack that this Facade represents.
5022
+ */
5023
+ get floorStack(): import("./floor-stack").default;
5024
+ /**
5025
+ * Gets the collection of spaces that make up this Facade.
5026
+ */
5027
+ get spaces(): Space[];
5028
+ /**
5029
+ * Gets the center {@link Coordinate} of the Facade.
5030
+ */
5031
+ get center(): Coordinate;
5032
+ }
5033
+ export default Facade;
5034
+ }
5035
+
5034
5036
  declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5035
- import type { Feature, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, Point, SpaceCollection, SpaceProperties, Connection as MVFConnection, EntranceCollection, AnnotationCollection, ParsedMVF, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseVenue as MVFEnterpriseVenue, AreaCollection, AreaId, EnterpriseLocationInstance } from '@mappedin/mvf';
5037
+ import type { AnnotationCollection, EntranceCollection, Feature, FeatureCollection, Connection as MVFConnection, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseVenue as MVFEnterpriseVenue, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, ParsedMVF, Point, SpaceCollection, SpaceProperties, AreaCollection, AreaId, EnterpriseLocationInstance } from '@mappedin/mvf';
5036
5038
  import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5037
- import { Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5038
- import Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
5039
- import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
5040
- import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
5041
- import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
5039
+ import { Annotation, Area, Connection, Door, EnterpriseCategory, EnterpriseLocation, Facade, Floor, FloorStack, MapObject, Node, PointOfInterest, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5042
5040
  export type MapDataRecords = {
5043
5041
  spacesById: Record<string, Space>;
5044
5042
  nodesById: Record<string, Node>;
5045
5043
  objectsById: Record<string, MapObject>;
5046
5044
  floorsById: Record<string, Floor>;
5047
5045
  floorStacksById: Record<string, FloorStack>;
5046
+ facadesById: Record<string, Facade>;
5047
+ facadesBySpaceId: Record<string, Facade>;
5048
5048
  connectionsById: Record<string, Connection>;
5049
5049
  doorsById: Record<string, Door>;
5050
5050
  doorsByNodeId: Record<string, Door>;
@@ -5071,10 +5071,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5071
5071
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
5072
5072
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
5073
5073
  mvfLocationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
5074
+ mvfNodesByFloorId: {
5075
+ [floorId: string]: NodeCollection['features'][number][];
5076
+ };
5077
+ mvfSpacesByFloorId: {
5078
+ [floorId: string]: SpaceCollection['features'][number][];
5079
+ };
5080
+ mvfPoisByFloorId: {
5081
+ [floorId: string]: FeatureCollection<Point, SpaceProperties>['features'][number][];
5082
+ };
5083
+ mvfEntrancesByFloorId: {
5084
+ [floorId: string]: EntranceCollection['features'][number][];
5085
+ };
5086
+ mvfAnnotationsByFloorId: {
5087
+ [floorId: string]: AnnotationCollection['features'][number][];
5088
+ };
5074
5089
  mvfAreasById: Record<AreaId, AreaCollection['features'][number]>;
5075
5090
  };
5076
5091
  export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "mvfFloorsById">;
5077
- export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "mvfFloorStacksById">;
5092
+ export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "mvfFloorStacksById" | "facadesById" | "facadesBySpaceId">;
5078
5093
  export const processMVFAreas: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "areasById" | "mvfAreasById">;
5079
5094
  /**
5080
5095
  * @internal
@@ -5098,6 +5113,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5098
5113
  objectsById: Record<string, MapObject>;
5099
5114
  floorsById: Record<string, Floor>;
5100
5115
  floorStacksById: Record<string, FloorStack>;
5116
+ facadesById: Record<string, Facade>;
5117
+ facadesBySpaceId: Record<string, Facade>;
5101
5118
  connectionsById: Record<string, Connection>;
5102
5119
  doorsById: Record<string, Door>;
5103
5120
  doorsByNodeId: Record<string, Door>;
@@ -5121,7 +5138,26 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5121
5138
  geometry: Point;
5122
5139
  properties: import("@mappedin/mvf").AnnotationProperties;
5123
5140
  }>;
5141
+ mvfNodesByFloorId: {
5142
+ [floorId: string]: Feature<Point, import("@mappedin/mvf").NodeProperties>[];
5143
+ };
5144
+ mvfSpacesByFloorId: {
5145
+ [floorId: string]: Feature<Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, SpaceProperties>[];
5146
+ };
5147
+ mvfPoisByFloorId: {
5148
+ [floorId: string]: Feature<Point, SpaceProperties>[];
5149
+ };
5124
5150
  mvfAreasById: Record<string, import("@mappedin/mvf").Area>;
5151
+ mvfEntrancesByFloorId: {
5152
+ [floorId: string]: Feature<import("@mappedin/mvf").LineString, import("@mappedin/mvf").EntranceProperties>[];
5153
+ };
5154
+ mvfAnnotationsByFloorId: {
5155
+ [floorId: string]: {
5156
+ type: import("@mappedin/mvf").FeatureType;
5157
+ geometry: Point;
5158
+ properties: import("@mappedin/mvf").AnnotationProperties;
5159
+ }[];
5160
+ };
5125
5161
  };
5126
5162
  }
5127
5163
 
@@ -5257,7 +5293,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5257
5293
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
5258
5294
  import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier';
5259
5295
  import { z } from 'zod';
5260
- import type { PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5296
+ import { type PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5261
5297
  /**
5262
5298
  * State reprsenting a Marker
5263
5299
  */
@@ -6554,10 +6590,10 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6554
6590
  */
6555
6591
  'user-interaction-end': undefined;
6556
6592
  /**
6557
- * Fired when a geometry is in focus, meaning it occupies the area closest to the center of the screen. This will only be true for one geometry at a time.
6593
+ * Fired when a geometry is in focus, meaning it occupies the area closest to the center of the screen. Is an array of geometry IDs sorted by most likely to be in focus.
6558
6594
  * Geometries can be added to the focus listener via `mapView.setState(.., { focusable: true })`.
6559
6595
  */
6560
- 'geometry-in-focus': string | number | null;
6596
+ 'geometry-in-focus': string[];
6561
6597
  /**
6562
6598
  * Fired before the scene is rendered. Use this to modify the scene before it is rendered.
6563
6599
  */
@@ -7928,6 +7964,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7928
7964
  Shapes: Shapes;
7929
7965
  Style: Style;
7930
7966
  Images: Images;
7967
+ get DynamicFocus(): import("./dynamic-focus").DynamicFocus;
7931
7968
  get StackedMaps(): import("..").StackedMaps;
7932
7969
  constructor(rendererCore: RendererCore, mapView: MapView);
7933
7970
  updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
@@ -7971,6 +8008,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7971
8008
  import type { Space, Door, PointOfInterest, MapObject, Node, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7972
8009
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
7973
8010
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
8011
+ import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
7974
8012
  export const FLOOR_HEIGHT = 5;
7975
8013
  export class GeojsonApiMapObject extends PubSub<{
7976
8014
  'floor-change': {
@@ -7995,12 +8033,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7995
8033
  floorsById: Map<string, FloorObject>;
7996
8034
  currentFloorId: string;
7997
8035
  currentFloorStackId: string;
8036
+ outdoorFloorStacks: Set<string>;
7998
8037
  id: string;
7999
8038
  renderer: RendererCore;
8000
8039
  api: GeoJsonApi;
8001
8040
  mvf: ParsedMVF;
8002
8041
  styleMap: AggregatedStyleMap;
8003
8042
  StackedMaps: StackedMaps;
8043
+ DynamicFocus: DynamicFocus;
8004
8044
  get currentFloorStack(): FloorStackObject;
8005
8045
  setFloorStack(floorStackId: string): void;
8006
8046
  get currentFloor(): FloorObject;
@@ -9177,7 +9217,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/images' {
9177
9217
 
9178
9218
  declare module '@mappedin/react-sdk/mappedin-js/src/search/internal' {
9179
9219
  import type { SearchResult as MiniSearchResult, Suggestion, MatchInfo } from 'minisearch';
9180
- import { EnterpriseLocation, EnterpriseCategory, Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9220
+ import type { Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9221
+ import { EnterpriseLocation, EnterpriseCategory } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9181
9222
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
9182
9223
  import { z } from 'zod';
9183
9224
  export class InternalSearch {
@@ -9532,6 +9573,52 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/external' {
9532
9573
  };
9533
9574
  }
9534
9575
 
9576
+ declare module '@mappedin/react-sdk/mappedin-js/src/query/external' {
9577
+ import type { Annotation, Coordinate, Door, MapDataInternal, Node, PointOfInterest } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9578
+ /**
9579
+ * Query allows users to query for nodes, locations, categories, and other points of interest within the venue.
9580
+ */
9581
+ export class Query {
9582
+ #private;
9583
+ /**
9584
+ * @internal
9585
+ */
9586
+ constructor(mapDataInternal: MapDataInternal);
9587
+ /**
9588
+ * Find the nearest feature to the origin
9589
+ * @param origin - The origin object
9590
+ * @param options - The options for the query
9591
+ * @returns The nearest feature to the origin
9592
+ */
9593
+ nearest(origin: Coordinate | PointOfInterest | Door | Annotation | Node, options: TFindNearestOptions): TFindNearestResult | undefined;
9594
+ }
9595
+ export type TFindNearestResult = {
9596
+ distance: number;
9597
+ feature: TQueriables;
9598
+ }[];
9599
+ export type TFindNearestOptions = {
9600
+ /**
9601
+ * Limit query to a set of floors. Only applies if the origin has floor information. If it doesn't, it limits the query to all floor-stacks' default floors.
9602
+ *
9603
+ * @default 'same-floor'
9604
+ */
9605
+ limit?: 'same-floor'
9606
+ /**
9607
+ * Limit query to all floors at the same elevation as the origin
9608
+ */
9609
+ | 'same-elevation';
9610
+ /**
9611
+ * The radius to search for features within
9612
+ */
9613
+ radius?: number;
9614
+ /**
9615
+ * The types to query for
9616
+ */
9617
+ types: [TQueriables['__type'], ...TQueriables['__type'][]];
9618
+ };
9619
+ export type TQueriables = PointOfInterest | Door | Annotation | Node;
9620
+ }
9621
+
9535
9622
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
9536
9623
  /**
9537
9624
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
@@ -10805,16 +10892,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/geometry-in-focus/system
10805
10892
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10806
10893
  import { type PerspectiveCamera } from 'three';
10807
10894
  export class GeometryInFocusSystem extends PubSub<{
10808
- 'geometry-in-focus': string | number | null;
10895
+ /**
10896
+ * Returns the list of entities that are likely in focus, sorted by the weight of the raycast.
10897
+ */
10898
+ 'geometry-in-focus': string[];
10809
10899
  }> {
10810
- #private;
10811
- cameraDirty: boolean;
10812
- focusablesDirty: boolean;
10813
- constructor(state: RendererState, camera: PerspectiveCamera);
10814
- resize(): void;
10815
- update: () => void;
10816
- updateRaf(): void;
10817
- destroy(): void;
10900
+ #private;
10901
+ cameraDirty: boolean;
10902
+ focusablesDirty: boolean;
10903
+ constructor(state: RendererState, camera: PerspectiveCamera);
10904
+ resize(): void;
10905
+ update: () => void;
10906
+ updateRaf(): void;
10907
+ destroy(): void;
10818
10908
  }
10819
10909
  }
10820
10910
 
@@ -11041,6 +11131,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
11041
11131
  floorStackId: string;
11042
11132
  constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, multiFloorView: Required<TShow3DMapOptions['multiFloorView']>, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
11043
11133
  load: () => this;
11134
+ get visible(): boolean;
11135
+ setVisible(visible: boolean): void;
11044
11136
  }
11045
11137
  export {};
11046
11138
  }
@@ -11084,30 +11176,39 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
11084
11176
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
11085
11177
  export const getTargetID: <T extends Space | Shape | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
11086
11178
  export function tweenToPromise(tween: Tween): Promise<void>;
11179
+ export function unique<T>(array: T[]): T[];
11087
11180
  }
11088
11181
 
11089
11182
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object' {
11090
11183
  import type { RendererCore } from '@mappedin/core-sdk';
11091
- import type { FloorId, FloorStack as MVFFloorStack } from '@mappedin/mvf';
11184
+ import type { FloorId, FloorStack as MVFFloorStack, Facade as MVFFacade } from '@mappedin/mvf';
11092
11185
  import type { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
11093
- export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors'> {
11186
+ export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors' | 'defaultFloor'> {
11187
+ #private;
11094
11188
  id: MVFFloorStack['id'];
11095
11189
  externalId: MVFFloorStack['externalId'];
11096
11190
  name: MVFFloorStack['name'];
11097
11191
  type: MVFFloorStack['type'];
11098
11192
  floorIds: FloorId[];
11193
+ defaultFloorId?: MVFFloorStack['defaultFloor'];
11099
11194
  /** Sorted floor objects by elevation */
11100
11195
  floorObjects: FloorObject[];
11101
11196
  floorObjectsByElevation: Map<number, FloorObject>;
11102
11197
  metadata?: MVFFloorStack['metadata'];
11103
11198
  footprint?: MVFFloorStack['footprint'];
11104
11199
  containerId: string;
11105
- constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore);
11200
+ facade?: MVFFacade;
11201
+ constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore, facade?: MVFFacade);
11106
11202
  get defaultFloor(): FloorObject;
11107
11203
  addFloor(floor: FloorObject): void;
11204
+ setFacadeVisible(visible: boolean): void;
11108
11205
  }
11109
11206
  }
11110
11207
 
11208
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus' {
11209
+ export { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus/dynamic-focus';
11210
+ }
11211
+
11111
11212
  declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-processor' {
11112
11213
  import { Rectangle } from '@packages/internal/quad-tree';
11113
11214
  export type TSerializedCollider = {
@@ -11163,7 +11264,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
11163
11264
  export function updateHoverColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: string): void;
11164
11265
  export function updateFlipImageToFaceCamera(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): void;
11165
11266
  export function updateVisibility(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): boolean;
11166
- export function updateOpacity(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, state: RendererState, update?: number): void;
11267
+ export function updateOpacity(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, state: RendererState, update?: number): boolean;
11167
11268
  export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
11168
11269
  export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
11169
11270
  export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
@@ -19755,11 +19856,10 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator' {
19755
19856
 
19756
19857
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator' {
19757
19858
  import type { Position, Feature, MultiPolygon, Polygon } from 'geojson';
19758
- import type { NodeCollection, NodeFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
19859
+ import type { NodeCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
19759
19860
  import type { ObstructionCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/obstruction';
19760
19861
  import type { SpaceCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/space';
19761
19862
  import type { DirectionsCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/directions';
19762
- import type { CoordinateFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/coordinate';
19763
19863
  /**
19764
19864
  * Options for simplifying directions in the Navigator class.
19765
19865
  */
@@ -19803,7 +19903,6 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
19803
19903
  geojsonCollection?: ObstructionCollection | SpaceCollection;
19804
19904
  groupBy?: string;
19805
19905
  });
19806
- findNearestNode: (feature: CoordinateFeature) => NodeFeature | null;
19807
19906
  /**
19808
19907
  * Calculates and returns a set of directions from origin nodes to destination nodes, including detailed properties.
19809
19908
  *
@@ -19952,6 +20051,77 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/types/coordin
19952
20051
  export type CoordinateFeature = Feature<Point, CoordinateProperties>;
19953
20052
  }
19954
20053
 
20054
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus/dynamic-focus' {
20055
+ import { type RendererCore } from '@mappedin/core-sdk';
20056
+ import { PubSub } from '@packages/internal/common';
20057
+ import type { Floor, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
20058
+ import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
20059
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
20060
+ /**
20061
+ * @experimental
20062
+ * @internal
20063
+ */
20064
+ export type TDynamicFocusEvents = {
20065
+ 'focus-change': {
20066
+ facades: string[];
20067
+ spaces: string[];
20068
+ };
20069
+ };
20070
+ /**
20071
+ * @experimental
20072
+ * @internal
20073
+ */
20074
+ export type TDynamicFocusOptions = {
20075
+ /**
20076
+ * The minimum zoom level at which Dynamic Focus will detect a Facade and reveal the interior spaces.
20077
+ * @default 17
20078
+ */
20079
+ minZoomLevel?: number;
20080
+ };
20081
+ /**
20082
+ * @experimental
20083
+ * @internal
20084
+ */
20085
+ export class DynamicFocus extends PubSub<TDynamicFocusEvents> {
20086
+ #private;
20087
+ /** @internal */
20088
+ constructor(core: RendererCore, geoJSONApi: GeoJsonApi, { currentMapGetter }: {
20089
+ currentMapGetter: CurrentMapGetter;
20090
+ });
20091
+ /**
20092
+ * @experimental
20093
+ * Enables Dynamic Focus and allows the camera to automatically set the floor stack when a facade is hovered.
20094
+ */
20095
+ enable(options?: TDynamicFocusOptions): void;
20096
+ /**
20097
+ * @experimental
20098
+ * Disables Dynamic Focus and prevents the camera from automatically setting the floor stack when a facade is hovered.
20099
+ */
20100
+ disable(): void;
20101
+ /**
20102
+ * @experimental
20103
+ * Returns the enabled state of Dynamic Focus.
20104
+ */
20105
+ get enabled(): boolean;
20106
+ /**
20107
+ * @experimental
20108
+ * Sets the default floor for a floor stack. This is the floor that will be shown when the floor stack is in focus.
20109
+ * See {@link resetDefaultFloorForStack} to reset the default floor.
20110
+ * @param floorStack - The floor stack to set the default floor for.
20111
+ * @param floor - The floor to set as the default floor.
20112
+ */
20113
+ setDefaultFloorForStack(floorStack: FloorStack, floor: Floor): void;
20114
+ /**
20115
+ * @experimental
20116
+ * Resets the default floor for a floor stack to it's initial value.
20117
+ * @param floorStack - The floor stack to reset the default floor for.
20118
+ */
20119
+ resetDefaultFloorForStack(floorStack: FloorStack): void;
20120
+ }
20121
+ type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
20122
+ export {};
20123
+ }
20124
+
19955
20125
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/tap-controller' {
19956
20126
  export enum TapType {
19957
20127
  onefinger = 0,