@mappedin/react-sdk 6.0.1-beta.22 → 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.
@@ -315,6 +229,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
315
229
  */
316
230
  wallTopColor?: string;
317
231
  };
232
+ /**
233
+ * @experimental
234
+ * @internal
235
+ */
236
+ multiFloorView?: {
237
+ enabled?: boolean;
238
+ floorHeight?: number;
239
+ updateCameraElevationOnFloorChange?: boolean;
240
+ };
318
241
  };
319
242
  /**
320
243
  * @internal
@@ -387,19 +310,24 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
387
310
  * @experimental
388
311
  */
389
312
  export const createMapLibreOverlay: (mapData: MapData, showMapOptions?: TShow3DMapOptions) => MappedinMapLibreOverlay;
390
- export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
391
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>;
392
319
  export { parseMVF, unzipMVF, enableTestMode };
393
- 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, };
394
321
  export type * from 'geojson';
395
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';
396
323
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
397
324
  export type { Label, Marker, Path, Shape, CameraTransform, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
398
325
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
399
326
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
400
- 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';
401
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';
402
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';
403
331
  export type { Analytics, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics';
404
332
  }
405
333
 
@@ -716,13 +644,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
716
644
  import { Analytics } from '@mappedin/react-sdk/mappedin-js/src/analytics';
717
645
  import { PubSub } from '@packages/internal/common';
718
646
  import type { TSearchOptions } from '@packages/internal/mvf-utils';
719
- import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node } 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';
720
648
  import type EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
721
649
  import type EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
722
650
  import type EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
723
651
  import { Search } from '@mappedin/react-sdk/mappedin-js/src/search';
724
652
  import type { TNavigationTarget, TGetDirectionsOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
725
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';
726
655
  /**
727
656
  * A WeakMap to associate {@link MapData} instances with their internal representation.
728
657
  * We need a way to get the internal data object from the API
@@ -760,6 +689,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
760
689
  * console.log(suggestions);
761
690
  */
762
691
  Search: Search;
692
+ Query: Query;
763
693
  /**
764
694
  * Constructs a new instance of {@link MapData}.
765
695
  *
@@ -838,6 +768,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
838
768
  * const floorStacks = mapData.getByType('floor-stack');
839
769
  */
840
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[];
841
777
  /**
842
778
  * @returns The connections ({@link Connection}) on the map.
843
779
  * @example
@@ -862,6 +798,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
862
798
  * const annotations = mapData.getByType('annotation');
863
799
  */
864
800
  getByType(type: 'annotation'): Annotation[];
801
+ /**
802
+ * @returns The areas ({@link Area}) on the map.
803
+ * @example
804
+ * const areas = mapData.getByType('area');
805
+ */
806
+ getByType(type: 'area'): Area[];
865
807
  /**
866
808
  * @returns The nodes ({@link Node}) on the map.
867
809
  * @example
@@ -895,7 +837,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
895
837
  * @example
896
838
  * const space = mapData.getById('space', 'space-id');
897
839
  */
898
- 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 : 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;
899
841
  getById(type: string, id: string): object | undefined;
900
842
  /**
901
843
  * Changes the language of the map data.
@@ -945,7 +887,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
945
887
  * @param to The destination point.
946
888
  * @returns The distance between the start and destination points in meters.
947
889
  */
948
- getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
890
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area): number;
949
891
  /**
950
892
  * Creates a backup of the map data including language packs.
951
893
  * @internal
@@ -1113,6 +1055,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1113
1055
 
1114
1056
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1115
1057
  import Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
1058
+ import Area from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area';
1116
1059
  import Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
1117
1060
  import Space from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1118
1061
  import Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
@@ -1124,8 +1067,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1124
1067
  import Hyperlink from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink';
1125
1068
  import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
1126
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';
1127
1071
  import type { MapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
1128
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory, Language } from '@mappedin/mvf';
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';
1129
1073
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
1130
1074
  import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
1131
1075
  import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
@@ -1137,6 +1081,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1137
1081
  import type { TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
1138
1082
  import { type Directions, DirectionsInternal } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
1139
1083
  import { type THydrateMapDataBundle } from '@mappedin/react-sdk/mappedin-js/src';
1084
+ import { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
1140
1085
  /**
1141
1086
  * Internal class representing detailed map data.
1142
1087
  *
@@ -1150,6 +1095,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1150
1095
  }> {
1151
1096
  #private;
1152
1097
  Analytics: AnalyticsInternal;
1098
+ Query: Query;
1153
1099
  /**
1154
1100
  * Represents the parsed Mappedin Venue Format (MVF) data.
1155
1101
  */
@@ -1178,11 +1124,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1178
1124
  spacesById: MapDataRecords['spacesById'];
1179
1125
  floorsById: MapDataRecords['floorsById'];
1180
1126
  floorStacksById: MapDataRecords['floorStacksById'];
1127
+ facadesById: MapDataRecords['facadesById'];
1128
+ facadesBySpaceId: MapDataRecords['facadesBySpaceId'];
1181
1129
  connectionsById: MapDataRecords['connectionsById'];
1182
1130
  objectsById: MapDataRecords['objectsById'];
1183
1131
  doorsById: MapDataRecords['doorsById'];
1184
1132
  pointsOfInterestById: MapDataRecords['poisById'];
1185
1133
  annotationsById: MapDataRecords['annotationsById'];
1134
+ areasById: MapDataRecords['areasById'];
1186
1135
  locationsById: MapDataRecords['locationsById'];
1187
1136
  categoriesById: MapDataRecords['categoriesById'];
1188
1137
  doorsByNodeId: MapDataRecords['doorsByNodeId'];
@@ -1197,6 +1146,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1197
1146
  mvfSpacesById: MapDataRecords['mvfSpacesById'];
1198
1147
  mvfFloorsById: MapDataRecords['mvfFloorsById'];
1199
1148
  mvfFloorStacksById: MapDataRecords['mvfFloorStacksById'];
1149
+ mvfAreasById: MapDataRecords['mvfAreasById'];
1150
+ mvfNodesByFloorId: MapDataRecords['mvfNodesByFloorId'];
1151
+ mvfSpacesByFloorId: MapDataRecords['mvfSpacesByFloorId'];
1152
+ mvfPoisByFloorId: MapDataRecords['mvfPoisByFloorId'];
1153
+ mvfEntrancesByFloorId: MapDataRecords['mvfEntrancesByFloorId'];
1154
+ mvfAnnotationsByFloorId: MapDataRecords['mvfAnnotationsByFloorId'];
1200
1155
  localePacksUrls: LocalePackUrls;
1201
1156
  currentLanguage?: Language;
1202
1157
  /**
@@ -1250,6 +1205,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1250
1205
  */
1251
1206
  get floors(): Floor[];
1252
1207
  get floorStacks(): FloorStack[];
1208
+ get facades(): Facade[];
1253
1209
  /**
1254
1210
  * Retrieves all doors in the map.
1255
1211
  *
@@ -1270,6 +1226,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1270
1226
  * @returns {Annotation[]} An array of Annotation objects.
1271
1227
  */
1272
1228
  get annotations(): Annotation[];
1229
+ get areas(): Area[];
1273
1230
  /**
1274
1231
  * Retrieves all nodes in the map.
1275
1232
  *
@@ -1280,6 +1237,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1280
1237
  get categories(): EnterpriseCategory[];
1281
1238
  get mvfFloors(): MVFFloor[];
1282
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[];
1283
1255
  /**
1284
1256
  * Retrieves an object by its type and ID.
1285
1257
  *
@@ -1287,17 +1259,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1287
1259
  * @param id The ID of the object.
1288
1260
  * @returns {Space | Door | Floor | Connection | MapObject | undefined} The requested object, or undefined if not found.
1289
1261
  */
1290
- getById(type: 'node', id: string): Node | undefined;
1291
- getById(type: 'space', id: string): Space | undefined;
1292
- getById(type: 'door', id: string): Door | undefined;
1293
- getById(type: 'floor', id: string): Floor | undefined;
1294
- getById(type: 'floor-stack', id: string): FloorStack | undefined;
1295
- getById(type: 'connection', id: string): Connection | undefined;
1296
- getById(type: 'object', id: string): MapObject | undefined;
1297
- getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
1298
- getById(type: 'annotation', id: string): Annotation | undefined;
1299
- getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
1300
- 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;
1301
1264
  getMapDataById(id: string): Places | undefined;
1302
1265
  /**
1303
1266
  * Retrieves a feature by its type and ID from the Mappedin Venue Format (MVF) data.
@@ -1314,6 +1277,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1314
1277
  getMVFFeatureById(type: 'connection', id: string): MVFConnection | undefined;
1315
1278
  getMVFFeatureById(type: 'entrance', id: string): EntranceCollection['features'][number] | undefined;
1316
1279
  getMVFFeatureById(type: 'annotation', id: string): AnnotationCollection['features'][number] | undefined;
1280
+ getMVFFeatureById(type: 'area', id: string): AreaCollection['features'][number] | undefined;
1317
1281
  getMVFFeatureById(type: string, id: string): object | undefined;
1318
1282
  getMVFFeatureByNodeId(type: 'connection', id: string): MVFConnection | undefined;
1319
1283
  /**
@@ -1330,7 +1294,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1330
1294
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], opt?: TGetDirectionsOptions & {
1331
1295
  multiDestination?: true;
1332
1296
  }) => Directions | Directions[] | undefined;
1333
- getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
1297
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area): number;
1334
1298
  toJSONBundle({ downloadLanguagePacks, }?: {
1335
1299
  downloadLanguagePacks?: boolean;
1336
1300
  }): Promise<THydrateMapDataBundle>;
@@ -1344,7 +1308,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1344
1308
  */
1345
1309
  destroy(): void;
1346
1310
  }
1347
- export { Node, 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, };
1348
1312
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1349
1313
  export type { Places };
1350
1314
  }
@@ -1424,9 +1388,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1424
1388
  */
1425
1389
  Outdoor: Outdoor;
1426
1390
  /**
1427
- * Controls for the stacked maps.
1391
+ * Controls for Stacked Maps.
1428
1392
  */
1429
1393
  get StackedMaps(): StackedMaps;
1394
+ /**
1395
+ * @internal
1396
+ * @experimental
1397
+ */
1398
+ get DynamicFocus(): import("./api-geojson/dynamic-focus").DynamicFocus;
1430
1399
  /**
1431
1400
  * @internal
1432
1401
  */
@@ -1745,7 +1714,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1745
1714
 
1746
1715
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1747
1716
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1748
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node } 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';
1749
1718
  import type { Label, Marker, Model, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1750
1719
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1751
1720
  import type { InsetPaddingOption, Position } from '@mappedin/core-sdk';
@@ -2113,7 +2082,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2113
2082
  /**
2114
2083
  * A map element that can be focused on by the camera.
2115
2084
  */
2116
- export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node | EnterpriseLocation
2085
+ export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Area | Node | EnterpriseLocation | Facade
2117
2086
  /**
2118
2087
  * @experimental
2119
2088
  */
@@ -2148,7 +2117,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2148
2117
  /**
2149
2118
  * Defines the target for navigation operations.
2150
2119
  */
2151
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node;
2120
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node | Area | Facade;
2152
2121
  /**
2153
2122
  * Defines the special zone for navigation operations.
2154
2123
  */
@@ -2388,6 +2357,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2388
2357
  *
2389
2358
  * | Value | Description |
2390
2359
  * |--------|-----------------------------------------------------------------------------------------------------------------------------------------|
2360
+ * | low | Colliders with this ranking have a low visibility priority and will be hidden in favor of higher-ranked colliders in crowded areas. |
2391
2361
  * | medium | Colliders with this ranking have a standard visibility priority and may be hidden in favor of higher-ranked colliders in crowded areas. |
2392
2362
  * | high | These colliders are given higher visibility priority than 'medium' priority. |
2393
2363
  * | always-visible | Colliders with this ranking will not be hidden, ensuring their constant visibility regardless of crowding. |
@@ -3012,7 +2982,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
3012
2982
  import { type TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src';
3013
2983
  import type { Directions, GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
3014
2984
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
3015
- import type { FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2985
+ import type { Floor, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3016
2986
  import { Path, Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
3017
2987
  import type { RendererCore } from '@mappedin/core-sdk';
3018
2988
  /**
@@ -3207,6 +3177,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
3207
3177
  * The current list of floor stacks along the navigation paths.
3208
3178
  */
3209
3179
  get floorStacks(): FloorStack[];
3180
+ /**
3181
+ * The current list of floors along the navigation paths.
3182
+ */
3183
+ get floors(): Floor[];
3210
3184
  /**
3211
3185
  * Sets the active path by index.
3212
3186
  */
@@ -3258,6 +3232,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search' {
3258
3232
  export { Search } from '@mappedin/react-sdk/mappedin-js/src/search/external';
3259
3233
  }
3260
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
+
3261
3240
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics' {
3262
3241
  export { Analytics, AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
3263
3242
  export type { AnalyticsUpdateOptions, AnalyticState, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
@@ -3560,6 +3539,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
3560
3539
  mvfData: MVFEnterpriseLocation;
3561
3540
  categoryIds: string[];
3562
3541
  locationInstances?: EnterpriseLocation[];
3542
+ parentId?: string;
3563
3543
  });
3564
3544
  get categories(): EnterpriseCategory[];
3565
3545
  get coordinates(): Coordinate[];
@@ -3593,7 +3573,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
3593
3573
  * It can be accessed using the {@link MapData.getByType()} method as shown below.
3594
3574
  *
3595
3575
  * ```typescript
3596
- * const venue = mapData.getByType('venue');
3576
+ * const venue = mapData.getByType('enterprise-venue');
3597
3577
  * ```
3598
3578
  *
3599
3579
  * Refer to the [EnterpriseVenue Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-venue) for more information.
@@ -3901,6 +3881,93 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3901
3881
  export default Node;
3902
3882
  }
3903
3883
 
3884
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
3885
+ import type { AreaCollection } from '@mappedin/mvf';
3886
+ import { Coordinate, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3887
+ import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
3888
+ import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
3889
+ /**
3890
+ * An Area represents some grouping of multiple pieces of geometry, not
3891
+ * necessarily bounded by walls or any other physical feature of the map.
3892
+ *
3893
+ * Areas are currently in a preview state, and may have changes to existing
3894
+ * functionality or new features added in the future.
3895
+ */
3896
+ class Area extends BaseMapData {
3897
+ #private;
3898
+ /**
3899
+ * @internal
3900
+ */
3901
+ static readonly __type = "area";
3902
+ /**
3903
+ * @internal
3904
+ */
3905
+ readonly __type = "area";
3906
+ /**
3907
+ * Checks if the provided instance is of type Area.
3908
+ *
3909
+ * @param instance The instance to check.
3910
+ * @returns {boolean} True if the instance is a Area, false otherwise.
3911
+ */
3912
+ static is(instance: object): instance is Area;
3913
+ /**
3914
+ * @internal
3915
+ */
3916
+ constructor(data: MapDataInternal, options: {
3917
+ floorId: string;
3918
+ mvfData: AreaCollection['features'][number];
3919
+ });
3920
+ /**
3921
+ * Gets the name of the area.
3922
+ *
3923
+ * @returns {string} The name of the area.
3924
+ */
3925
+ get name(): string;
3926
+ /**
3927
+ * Gets the external identifier of the area.
3928
+ *
3929
+ * @returns {string} The external ID of the area, or an empty string if no external ID exists.
3930
+ */
3931
+ get externalId(): string;
3932
+ /**
3933
+ * Gets the description of the area.
3934
+ *
3935
+ * @returns {string} The description of the area, or an empty string if no description exists.
3936
+ */
3937
+ get description(): string;
3938
+ /**
3939
+ * Gets the center {@link Coordinate} of the area.
3940
+ *
3941
+ * @returns {Coordinate} The area's center coordinate.
3942
+ */
3943
+ get center(): Coordinate;
3944
+ /**
3945
+ * Gets the {@link Floor} object associated with the area.
3946
+ *
3947
+ * @returns {Floor} The floor object.
3948
+ * @throws Will throw an error if the floor is not found.
3949
+ */
3950
+ get floor(): Floor;
3951
+ /**
3952
+ * Serializes the space data to JSON.
3953
+ *
3954
+ * @returns An object representing the space.
3955
+ */
3956
+ toJSON(): {
3957
+ id: string;
3958
+ name: string;
3959
+ floor: string;
3960
+ };
3961
+ /**
3962
+ * Cleans up resources used by the instance.
3963
+ *
3964
+ * @internal
3965
+ */
3966
+ destroy(): void;
3967
+ }
3968
+ export default Area;
3969
+ }
3970
+
3904
3971
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
3905
3972
  import type { EntranceCollection } from '@mappedin/mvf';
3906
3973
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
@@ -4846,7 +4913,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image' {
4846
4913
 
4847
4914
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack' {
4848
4915
  import type { FloorStack as MVFFloorStack } from '@mappedin/mvf';
4849
- 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';
4850
4917
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4851
4918
  /**
4852
4919
  * A class representing floor stack data within the map.
@@ -4875,6 +4942,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
4875
4942
  */
4876
4943
  constructor(data: MapDataInternal, options: {
4877
4944
  mvfData: MVFFloorStack;
4945
+ facadeId?: string;
4878
4946
  });
4879
4947
  /**
4880
4948
  * Gets the type of FloorStack.
@@ -4895,7 +4963,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
4895
4963
  *
4896
4964
  * @returns {Floor[]} An array of Floor objects in this FloorStack.
4897
4965
  */
4898
- 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;
4899
4975
  /**
4900
4976
  * Serializes the FloorStack data to JSON.
4901
4977
  *
@@ -4917,20 +4993,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
4917
4993
  export default FloorStack;
4918
4994
  }
4919
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
+
4920
5036
  declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
4921
- 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 } 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';
4922
5038
  import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4923
- import { Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4924
- import Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
4925
- import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
4926
- import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
4927
- 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';
4928
5040
  export type MapDataRecords = {
4929
5041
  spacesById: Record<string, Space>;
4930
5042
  nodesById: Record<string, Node>;
4931
5043
  objectsById: Record<string, MapObject>;
4932
5044
  floorsById: Record<string, Floor>;
4933
5045
  floorStacksById: Record<string, FloorStack>;
5046
+ facadesById: Record<string, Facade>;
5047
+ facadesBySpaceId: Record<string, Facade>;
4934
5048
  connectionsById: Record<string, Connection>;
4935
5049
  doorsById: Record<string, Door>;
4936
5050
  doorsByNodeId: Record<string, Door>;
@@ -4939,6 +5053,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
4939
5053
  locationsById: Record<MVFEnterpriseLocationId, EnterpriseLocation>;
4940
5054
  categoriesById: Record<MVFEnterpriseCategoryId, EnterpriseCategory>;
4941
5055
  locationIdsByNodeId: Record<string, MVFEnterpriseLocationId[]>;
5056
+ areasById: Record<AreaId, Area>;
4942
5057
  venue: MVFEnterpriseVenue;
4943
5058
  spaceIdsByDestinationNodeId: Record<string, string[]>;
4944
5059
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
@@ -4956,9 +5071,26 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
4956
5071
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
4957
5072
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
4958
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
+ };
5089
+ mvfAreasById: Record<AreaId, AreaCollection['features'][number]>;
4959
5090
  };
4960
5091
  export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "mvfFloorsById">;
4961
- 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">;
5093
+ export const processMVFAreas: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "areasById" | "mvfAreasById">;
4962
5094
  /**
4963
5095
  * @internal
4964
5096
  */
@@ -4968,6 +5100,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
4968
5100
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
4969
5101
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
4970
5102
  locationsById: Record<string, EnterpriseLocation>;
5103
+ locationInstancesById: Record<string, EnterpriseLocationInstance>;
4971
5104
  categoriesById: Record<string, EnterpriseCategory>;
4972
5105
  venue: MVFEnterpriseVenue;
4973
5106
  };
@@ -4980,11 +5113,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
4980
5113
  objectsById: Record<string, MapObject>;
4981
5114
  floorsById: Record<string, Floor>;
4982
5115
  floorStacksById: Record<string, FloorStack>;
5116
+ facadesById: Record<string, Facade>;
5117
+ facadesBySpaceId: Record<string, Facade>;
4983
5118
  connectionsById: Record<string, Connection>;
4984
5119
  doorsById: Record<string, Door>;
4985
5120
  doorsByNodeId: Record<string, Door>;
4986
5121
  poisById: Record<string, PointOfInterest>;
4987
5122
  annotationsById: Record<string, Annotation>;
5123
+ areasById: Record<string, Area>;
4988
5124
  spaceIdsByDestinationNodeId: Record<string, string[]>;
4989
5125
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
4990
5126
  obstructionIdByEntranceId: Record<string, string>;
@@ -5002,10 +5138,31 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5002
5138
  geometry: Point;
5003
5139
  properties: import("@mappedin/mvf").AnnotationProperties;
5004
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
+ };
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
+ };
5005
5161
  };
5006
5162
  }
5007
5163
 
5008
5164
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
5165
+ import type Area from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area';
5009
5166
  import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
5010
5167
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
5011
5168
  import type Space from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
@@ -5021,7 +5178,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
5021
5178
  /**
5022
5179
  * Places are the main objects that can be searched for.
5023
5180
  */
5024
- export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation;
5181
+ export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
5025
5182
  export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
5026
5183
  export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
5027
5184
  export type LanguagePack = {
@@ -5136,6 +5293,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5136
5293
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
5137
5294
  import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier';
5138
5295
  import { z } from 'zod';
5296
+ import { type PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5139
5297
  /**
5140
5298
  * State reprsenting a Marker
5141
5299
  */
@@ -5245,6 +5403,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5245
5403
  options: Required<AddMarkerOptions>;
5246
5404
  projection: Vector2;
5247
5405
  enabled: boolean;
5406
+ offscreen: boolean;
5248
5407
  activeStrategyIndex: number;
5249
5408
  strategyIndex: number;
5250
5409
  activeBoundingBox: {
@@ -5262,7 +5421,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5262
5421
  };
5263
5422
  dirty: boolean;
5264
5423
  collisionDirty: boolean;
5265
- visibilityNeedsUpdate: boolean;
5424
+ visibilityNeedsUpdate: 'show' | 'hide' | false;
5266
5425
  constructor(contentHtml: string, options?: AddMarkerOptions);
5267
5426
  updateDimensions(width?: number, height?: number): void;
5268
5427
  visible: boolean;
@@ -5273,16 +5432,13 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5273
5432
  name: MarkerAnchor;
5274
5433
  getBoundingBox: () => number[];
5275
5434
  }[];
5276
- toJSON(): {
5435
+ toPackedMessage(lockToCurrentStrategy?: boolean): {
5277
5436
  x: number;
5278
5437
  y: number;
5279
5438
  enabled: boolean;
5280
- id: string | number;
5281
5439
  rank: number;
5282
- bboxes: {
5283
- index: number;
5284
- boundingBox: any;
5285
- }[];
5440
+ bboxes: PackedBBoxes;
5441
+ lockedToStrategyIndex: number;
5286
5442
  shouldCollideWithScreenEdges: boolean;
5287
5443
  };
5288
5444
  destroy(): void;
@@ -5506,6 +5662,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5506
5662
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
5507
5663
  import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src';
5508
5664
  import { z } from 'zod';
5665
+ import type { PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5509
5666
  export const addLabelOptionsSchema: z.ZodObject<{
5510
5667
  rank: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["low", "medium", "high", "always-visible"]>, z.ZodNumber]>>;
5511
5668
  interactive: z.ZodOptional<z.ZodBoolean>;
@@ -5952,7 +6109,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5952
6109
  newStyle: TStyle;
5953
6110
  static testId: number;
5954
6111
  opacity: number;
5955
- visibilityNeedsUpdate: boolean;
6112
+ visibilityNeedsUpdate: 'show' | 'hide' | false;
5956
6113
  activeStrategyIndex: number;
5957
6114
  text: string;
5958
6115
  style: TStyle;
@@ -5962,6 +6119,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5962
6119
  options: LabelOptions;
5963
6120
  visible: boolean;
5964
6121
  enabled: boolean;
6122
+ offscreen: boolean;
5965
6123
  activeBoundingBox: {
5966
6124
  x: number;
5967
6125
  y: number;
@@ -5985,21 +6143,20 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5985
6143
  setEntity(): void;
5986
6144
  constructor(text: string, options: AddLabelOptions, state: RendererState);
5987
6145
  calculateMarkerSize(): void;
6146
+ get lowPriorityStrategyIndex(): 3 | -1;
5988
6147
  get strategies(): any[];
6148
+ animate: boolean;
5989
6149
  onStrategySelected: (strategyIndex: any) => void;
5990
6150
  updatePosition(): void;
5991
6151
  disable(): void;
5992
- toJSON(): {
6152
+ toPackedMessage(lockToCurrentStrategy?: boolean): {
5993
6153
  x: number;
5994
6154
  y: number;
5995
6155
  enabled: boolean;
5996
- id: string;
5997
6156
  rank: number;
5998
- bboxes: {
5999
- index: number;
6000
- boundingBox: any;
6001
- }[];
6157
+ bboxes: PackedBBoxes;
6002
6158
  shouldCollideWithScreenEdges: boolean;
6159
+ lockedToStrategyIndex: number;
6003
6160
  };
6004
6161
  destroy(): void;
6005
6162
  }
@@ -6124,6 +6281,10 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
6124
6281
  * altitude of the geometry group
6125
6282
  */
6126
6283
  altitude?: number;
6284
+ /**
6285
+ * height of the geometry group
6286
+ */
6287
+ height?: number;
6127
6288
  };
6128
6289
  export type ChildUpdatable<T> = T extends LineStyle ? Partial<Pick<LineStyle, 'color' | 'opacity' | 'visible'>> : Partial<Pick<PaintStyle, 'color' | 'opacity' | 'visible'>>;
6129
6290
  export class GeometryGroupObject3D extends Object3D {
@@ -6159,7 +6320,7 @@ declare module '@mappedin/react-sdk/geojson/src/types/geometry' {
6159
6320
  }
6160
6321
 
6161
6322
  declare module '@mappedin/react-sdk/geojson/src/types' {
6162
- import { Mesh, Object3D, InstancedMesh } from 'three';
6323
+ import { Mesh, Object3D, InstancedMesh, Camera } from 'three';
6163
6324
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
6164
6325
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
6165
6326
  import type { GeometryState } from '@mappedin/react-sdk/geojson/src/components/mesh';
@@ -6173,6 +6334,7 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6173
6334
  import type { ShapeState } from '@mappedin/react-sdk/geojson/src/components/custom';
6174
6335
  import type { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities';
6175
6336
  import type { Group as TweenGroup } from '@tweenjs/tween.js';
6337
+ import { MaterialSide } from '@mappedin/react-sdk/geojson/src/components/style';
6176
6338
  /**
6177
6339
  * The state of an entity, which can be a geometry, geometry group, group container, path, model, label, or marker.
6178
6340
  */
@@ -6227,6 +6389,7 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6227
6389
  outline?: boolean;
6228
6390
  showImage?: boolean;
6229
6391
  flipImageToFaceCamera?: boolean;
6392
+ side?: MaterialSide;
6230
6393
  };
6231
6394
  export type Shading = {
6232
6395
  start?: number;
@@ -6245,6 +6408,7 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6245
6408
  join?: 'round' | 'bevel' | 'miter';
6246
6409
  shading?: Shading;
6247
6410
  outline?: boolean;
6411
+ side?: MaterialSide;
6248
6412
  };
6249
6413
  export type Layer = {
6250
6414
  id: string;
@@ -6426,10 +6590,10 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6426
6590
  */
6427
6591
  'user-interaction-end': undefined;
6428
6592
  /**
6429
- * 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.
6430
6594
  * Geometries can be added to the focus listener via `mapView.setState(.., { focusable: true })`.
6431
6595
  */
6432
- 'geometry-in-focus': string | number | null;
6596
+ 'geometry-in-focus': string[];
6433
6597
  /**
6434
6598
  * Fired before the scene is rendered. Use this to modify the scene before it is rendered.
6435
6599
  */
@@ -6460,6 +6624,7 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6460
6624
  canvasHeight: number;
6461
6625
  /** Global group for all tweens */
6462
6626
  tweenGroup: TweenGroup;
6627
+ cameraObject: Camera;
6463
6628
  };
6464
6629
  }
6465
6630
 
@@ -7525,6 +7690,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
7525
7690
  export function cyrb53(str: string, seed?: number): number;
7526
7691
  export const linearEase: (t: number) => number;
7527
7692
  export const quadEaseIn: (t: number) => number;
7693
+ export const easeIn: (x: number) => number;
7528
7694
  export const quadEaseOut: (t: number) => number;
7529
7695
  export function interpolate(value: number, inputMin: number, inputMax: number, outputMin: number, outputMax: number, easeFunc?: (t: number) => number): number;
7530
7696
  export function interpolateMulti(value: number, inputRange: number[], outputRange: number[], easeFunc?: (t: number) => number): number;
@@ -7798,6 +7964,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7798
7964
  Shapes: Shapes;
7799
7965
  Style: Style;
7800
7966
  Images: Images;
7967
+ get DynamicFocus(): import("./dynamic-focus").DynamicFocus;
7801
7968
  get StackedMaps(): import("..").StackedMaps;
7802
7969
  constructor(rendererCore: RendererCore, mapView: MapView);
7803
7970
  updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
@@ -7841,6 +8008,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7841
8008
  import type { Space, Door, PointOfInterest, MapObject, Node, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7842
8009
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
7843
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';
8012
+ export const FLOOR_HEIGHT = 5;
7844
8013
  export class GeojsonApiMapObject extends PubSub<{
7845
8014
  'floor-change': {
7846
8015
  reason?: TFloorChangeReason;
@@ -7859,21 +8028,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7859
8028
  path: Path;
7860
8029
  };
7861
8030
  }> {
8031
+ #private;
7862
8032
  floorStacksById: Map<string, FloorStackObject>;
7863
8033
  floorsById: Map<string, FloorObject>;
7864
8034
  currentFloorId: string;
7865
8035
  currentFloorStackId: string;
8036
+ outdoorFloorStacks: Set<string>;
7866
8037
  id: string;
7867
8038
  renderer: RendererCore;
7868
8039
  api: GeoJsonApi;
7869
8040
  mvf: ParsedMVF;
7870
8041
  styleMap: AggregatedStyleMap;
7871
8042
  StackedMaps: StackedMaps;
8043
+ DynamicFocus: DynamicFocus;
7872
8044
  get currentFloorStack(): FloorStackObject;
7873
8045
  setFloorStack(floorStackId: string): void;
7874
8046
  get currentFloor(): FloorObject;
7875
8047
  /** @deprecated use `currentFloorStack.floorObjects` or `floorsById` instead */
7876
8048
  get floors(): FloorObject[];
8049
+ processFloorChange(floorId: string): void;
7877
8050
  setFloor(floorId: string, reason?: TFloorChangeReason): void;
7878
8051
  Models: {
7879
8052
  add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
@@ -7985,6 +8158,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7985
8158
  * Refer to the [Markers Guide](https://developer.mappedin.com/web-sdk/markers) for more information and interactive examples.
7986
8159
  */
7987
8160
  export class Marker {
8161
+ #private;
7988
8162
  /**
7989
8163
  * The marker's id
7990
8164
  */
@@ -7993,7 +8167,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7993
8167
  * @internal
7994
8168
  */
7995
8169
  static readonly __type = "Marker";
7996
- readonly target: Space | Door | Coordinate | Node;
8170
+ get target(): Coordinate | Space | Door | Node;
7997
8171
  /**
7998
8172
  * @internal
7999
8173
  */
@@ -8013,6 +8187,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
8013
8187
  * @internal
8014
8188
  */
8015
8189
  constructor(id: string, contentEl: HTMLElement, target: Space | Door | Coordinate | Node);
8190
+ /**
8191
+ * @internal
8192
+ */
8193
+ updateTarget(target: Space | Door | Coordinate | Node): void;
8016
8194
  }
8017
8195
  }
8018
8196
 
@@ -8622,7 +8800,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation/index' {
8622
8800
  import { type TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src';
8623
8801
  import type { Directions, GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
8624
8802
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
8625
- import type { FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8803
+ import type { Floor, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8626
8804
  import { Path, Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8627
8805
  import type { RendererCore } from '@mappedin/core-sdk';
8628
8806
  /**
@@ -8817,6 +8995,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation/index' {
8817
8995
  * The current list of floor stacks along the navigation paths.
8818
8996
  */
8819
8997
  get floorStacks(): FloorStack[];
8998
+ /**
8999
+ * The current list of floors along the navigation paths.
9000
+ */
9001
+ get floors(): Floor[];
8820
9002
  /**
8821
9003
  * Sets the active path by index.
8822
9004
  */
@@ -9035,7 +9217,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/images' {
9035
9217
 
9036
9218
  declare module '@mappedin/react-sdk/mappedin-js/src/search/internal' {
9037
9219
  import type { SearchResult as MiniSearchResult, Suggestion, MatchInfo } from 'minisearch';
9038
- 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';
9039
9222
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
9040
9223
  import { z } from 'zod';
9041
9224
  export class InternalSearch {
@@ -9390,6 +9573,52 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/external' {
9390
9573
  };
9391
9574
  }
9392
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
+
9393
9622
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
9394
9623
  /**
9395
9624
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
@@ -9601,6 +9830,90 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object
9601
9830
  }
9602
9831
  }
9603
9832
 
9833
+ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
9834
+ import { QuadTree } from '@packages/internal/quad-tree';
9835
+ import './style.scss';
9836
+ import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
9837
+ import type LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
9838
+ import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
9839
+ import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
9840
+ import type { TSerializedCollider, TSerializedColliderResponse } from '@mappedin/react-sdk/geojson/src/systems/collisions/collider-processor';
9841
+ import type { WatermarkPosition } from '@mappedin/react-sdk/geojson/src/systems/watermark/system';
9842
+ export type TMessageEvent = MessageEvent<{
9843
+ msgId: string;
9844
+ colliders: TSerializedColliderResponse[];
9845
+ debug: {
9846
+ x: number;
9847
+ y: number;
9848
+ w: number;
9849
+ h: number;
9850
+ }[];
9851
+ }>;
9852
+ export type TMessage = {
9853
+ msgId: string;
9854
+ totalWidth: number;
9855
+ totalHeight: number;
9856
+ watermarkWidth: number;
9857
+ watermarkHeight: number;
9858
+ watermarkPosition: WatermarkPosition;
9859
+ colliders: TSerializedCollider[];
9860
+ devicePixelRatio: number;
9861
+ };
9862
+ type TCollisionSystemEvent = {
9863
+ 'visibility-changed': undefined;
9864
+ };
9865
+ export type PackedBBox = [x: number, y: number, w: number, h: number, index: number];
9866
+ export type PackedBBoxes = PackedBBox[];
9867
+ export type PackedCollider = [
9868
+ bboxes: PackedBBoxes,
9869
+ enabled: 0 | 1,
9870
+ alwaysVisible: 0 | 1,
9871
+ x: number,
9872
+ y: number,
9873
+ shouldCollideWithScreenEdges?: 0 | 1,
9874
+ onlyExposeStrategyIndex?: number
9875
+ ];
9876
+ export type PackedMessage = [
9877
+ colliders: PackedCollider[],
9878
+ devicePixelRatio: number,
9879
+ totalHeight: number,
9880
+ totalWidth: number,
9881
+ watermarkWidth: number,
9882
+ watermarkHeight: number,
9883
+ watermarkPosition: WatermarkPosition
9884
+ ];
9885
+ export class CollisionSystem extends PubSub<TCollisionSystemEvent, keyof TCollisionSystemEvent> {
9886
+ collidersDirty: boolean;
9887
+ packedMessage: PackedMessage;
9888
+ visibleCollidersQTree: QuadTree<{
9889
+ entityId: string | number;
9890
+ }>;
9891
+ interactiveCollidersQTree: QuadTree<{
9892
+ entityId: string | number;
9893
+ }>;
9894
+ coreState: RendererState;
9895
+ constructor(debugCanvas: HTMLCanvasElement, coreState: RendererState, worker?: Worker);
9896
+ postMessage: () => void;
9897
+ showCollisionBoxes: () => void;
9898
+ hideCollisionBoxes: () => void;
9899
+ currentMsgId: string;
9900
+ working: boolean;
9901
+ componentArray: (MarkerComponent | LabelComponent)[];
9902
+ update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, useAllStrategies?: boolean) => void;
9903
+ resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
9904
+ /**
9905
+ * Resolve collisions
9906
+ */
9907
+ resolve: (e: MessageEvent<{
9908
+ msgId: string;
9909
+ colliders: TSerializedColliderResponse[];
9910
+ }>) => void;
9911
+ drawDebug: () => void;
9912
+ destroy: () => void;
9913
+ }
9914
+ export {};
9915
+ }
9916
+
9604
9917
  declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
9605
9918
  import { Object3D } from 'three';
9606
9919
  import type { Mesh, Object3DEventMap, ShaderMaterial, Texture, TubeGeometry, Color, Vector2 } from 'three';
@@ -9928,12 +10241,68 @@ declare module '@mappedin/react-sdk/geojson/src/components/image' {
9928
10241
  set visible(visible: boolean);
9929
10242
  position: Vector3;
9930
10243
  }
9931
- }
9932
-
9933
- declare module '@mappedin/react-sdk/geojson/src/entities' {
9934
- export { updateInteractivity } from '@mappedin/react-sdk/geojson/src/entities/utils';
9935
- export { Geometry2D, Geometry2DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
9936
- export { Geometry3D, Geometry3DComponents, type PathMesh, type PatMeshContainer, type PathMaterial, } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
10244
+ }
10245
+
10246
+ declare module '@mappedin/react-sdk/geojson/src/entities' {
10247
+ export { updateInteractivity } from '@mappedin/react-sdk/geojson/src/entities/utils';
10248
+ export { Geometry2D, Geometry2DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
10249
+ export { Geometry3D, Geometry3DComponents, type PathMesh, type PatMeshContainer, type PathMaterial, } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
10250
+ }
10251
+
10252
+ declare module '@mappedin/react-sdk/geojson/src/components/style' {
10253
+ import type { LineStyle } from '@mappedin/react-sdk/geojson/src/renderer';
10254
+ export const DEFAULT_COLOR = "#ffffff";
10255
+ export const DEFAULT_HEIGHT = 0.1;
10256
+ /**
10257
+ * Determines how a material is rendered, back face, front face or both (default)
10258
+ */
10259
+ export type MaterialSide = 'back' | 'front' | 'double';
10260
+ type Style = {
10261
+ color: string;
10262
+ width: number;
10263
+ opacity: number;
10264
+ visible: boolean;
10265
+ height: number;
10266
+ altitude: number;
10267
+ join: LineStyle['join'];
10268
+ cap: LineStyle['cap'];
10269
+ topColor?: string;
10270
+ texture?: string;
10271
+ topTexture?: string;
10272
+ outline: boolean;
10273
+ showImage: boolean;
10274
+ showTextLabel: boolean;
10275
+ flipImageToFaceCamera: boolean;
10276
+ flipTextToFaceCamera: boolean;
10277
+ url?: string;
10278
+ side?: MaterialSide;
10279
+ };
10280
+ export class StyleComponent implements Style {
10281
+ initialColor: string;
10282
+ color: string;
10283
+ topColor?: string;
10284
+ topTexture?: string;
10285
+ texture?: string;
10286
+ hoverColor?: string;
10287
+ dirty: boolean;
10288
+ visible: boolean;
10289
+ opacity: number;
10290
+ width: number;
10291
+ height: number;
10292
+ initialHeight: number;
10293
+ altitude: number;
10294
+ join: LineStyle['join'];
10295
+ cap: LineStyle['cap'];
10296
+ outline: boolean;
10297
+ showImage: boolean;
10298
+ showTextLabel: boolean;
10299
+ flipImageToFaceCamera: boolean;
10300
+ flipTextToFaceCamera: boolean;
10301
+ url?: string;
10302
+ side: MaterialSide;
10303
+ constructor(style?: Partial<Style>);
10304
+ }
10305
+ export {};
9937
10306
  }
9938
10307
 
9939
10308
  declare module '@mappedin/react-sdk/geojson/src/types/options' {
@@ -10064,82 +10433,6 @@ declare module '@mappedin/react-sdk/packages/common/pubsub' {
10064
10433
  }
10065
10434
  }
10066
10435
 
10067
- declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
10068
- import { QuadTree } from '@packages/internal/quad-tree';
10069
- import './style.scss';
10070
- import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
10071
- import type LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
10072
- import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
10073
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10074
- import type { TSerializedCollider, TSerializedColliderResponse } from '@mappedin/react-sdk/geojson/src/systems/collisions/collider-processor';
10075
- import type { WatermarkPosition } from '@mappedin/react-sdk/geojson/src/systems/watermark/system';
10076
- export type TMessageEvent = MessageEvent<{
10077
- msgId: string;
10078
- colliders: TSerializedColliderResponse[];
10079
- debug: {
10080
- x: number;
10081
- y: number;
10082
- w: number;
10083
- h: number;
10084
- }[];
10085
- }>;
10086
- export type TMessage = {
10087
- msgId: string;
10088
- totalWidth: number;
10089
- totalHeight: number;
10090
- watermarkWidth: number;
10091
- watermarkHeight: number;
10092
- watermarkPosition: WatermarkPosition;
10093
- colliders: TSerializedCollider[];
10094
- devicePixelRatio: number;
10095
- };
10096
- type TCollisionSystemEvent = {
10097
- 'visibility-changed': undefined;
10098
- };
10099
- export type PackedBBox = [x: number, y: number, w: number, h: number];
10100
- export type PackedBBoxes = PackedBBox[];
10101
- export type PackedCollider = [bboxes: PackedBBoxes, enabled: 0 | 1, alwaysVisible: 0 | 1, x: number, y: number];
10102
- export type PackedMessage = [
10103
- colliders: PackedCollider[],
10104
- devicePixelRatio: number,
10105
- totalHeight: number,
10106
- totalWidth: number,
10107
- watermarkWidth: number,
10108
- watermarkHeight: number,
10109
- watermarkPosition: WatermarkPosition
10110
- ];
10111
- export class CollisionSystem extends PubSub<TCollisionSystemEvent, keyof TCollisionSystemEvent> {
10112
- dirty: boolean;
10113
- packedMessage: PackedMessage;
10114
- visibleCollidersQTree: QuadTree<{
10115
- entityId: string | number;
10116
- }>;
10117
- interactiveCollidersQTree: QuadTree<{
10118
- entityId: string | number;
10119
- }>;
10120
- coreState: RendererState;
10121
- constructor(debugCanvas: HTMLCanvasElement, coreState: RendererState, worker?: Worker);
10122
- postMessage: () => void;
10123
- showCollisionBoxes: () => void;
10124
- hideCollisionBoxes: () => void;
10125
- currentMsgId: string;
10126
- working: boolean;
10127
- componentArray: (MarkerComponent | LabelComponent)[];
10128
- update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition) => void;
10129
- resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
10130
- /**
10131
- * Resolve collisions
10132
- */
10133
- resolve: (e: MessageEvent<{
10134
- msgId: string;
10135
- colliders: TSerializedColliderResponse[];
10136
- }>) => void;
10137
- drawDebug: () => void;
10138
- destroy: () => void;
10139
- }
10140
- export {};
10141
- }
10142
-
10143
10436
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions' {
10144
10437
  export { InteractionSystem } from '@mappedin/react-sdk/geojson/src/systems/interactions/system';
10145
10438
  }
@@ -10217,6 +10510,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-projection/system' {
10217
10510
  declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
10218
10511
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10219
10512
  import LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
10513
+ export const INACTIVE_MARKER_SIZE_NO_ICON = 3.5;
10220
10514
  enum TEXTALIGN {
10221
10515
  LEFT = "left",
10222
10516
  CENTER = "center",
@@ -10291,10 +10585,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-visibility/system' {
10291
10585
  }> {
10292
10586
  state: RendererState;
10293
10587
  constructor(state: RendererState);
10294
- animating: Map<LabelComponent, number>;
10588
+ animating: Map<LabelComponent, [number, number]>;
10295
10589
  isAnimating: boolean;
10296
10590
  startTime: number;
10297
- duration: number;
10591
+ showDuration: number;
10592
+ hideDuration: number;
10298
10593
  update: () => void;
10299
10594
  playAnimations: () => void;
10300
10595
  _playAnimations(): void;
@@ -10337,6 +10632,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/dom-draw/system' {
10337
10632
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10338
10633
  export const ANIMATION_DURATION = 300;
10339
10634
  export class DOMDrawSystem {
10635
+ #private;
10340
10636
  state: RendererState;
10341
10637
  constructor(state: RendererState);
10342
10638
  update(isUserInteracting: boolean): void;
@@ -10596,16 +10892,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/geometry-in-focus/system
10596
10892
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10597
10893
  import { type PerspectiveCamera } from 'three';
10598
10894
  export class GeometryInFocusSystem extends PubSub<{
10599
- '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[];
10600
10899
  }> {
10601
- #private;
10602
- cameraDirty: boolean;
10603
- focusablesDirty: boolean;
10604
- constructor(state: RendererState, camera: PerspectiveCamera);
10605
- resize(): void;
10606
- update: () => void;
10607
- updateRaf(): void;
10608
- 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;
10609
10908
  }
10610
10909
  }
10611
10910
 
@@ -10809,10 +11108,15 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
10809
11108
  }
10810
11109
 
10811
11110
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
10812
- import type { FloorProperties as MVFFloor, ParsedMVF } from '@mappedin/mvf';
11111
+ import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
10813
11112
  import type { RendererCore } from '@mappedin/core-sdk';
10814
11113
  import type { AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
10815
11114
  import type { TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
11115
+ class Layer {
11116
+ containerId: string;
11117
+ layers: Map<string, string>;
11118
+ constructor(containerId: string, layers?: Map<any, any>);
11119
+ }
10816
11120
  export class FloorObject implements MVFFloor {
10817
11121
  id: string;
10818
11122
  name?: string;
@@ -10822,11 +11126,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
10822
11126
  metadata?: Partial<Record<string, unknown>> | undefined;
10823
11127
  shortName?: string | undefined;
10824
11128
  subtitle?: string | undefined;
10825
- layers: Map<string, string>;
11129
+ layers: Map<string, Layer>;
11130
+ footprint?: Feature<Polygon | MultiPolygon | null, MVFFloor>;
10826
11131
  floorStackId: string;
10827
- constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
11132
+ constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, multiFloorView: Required<TShow3DMapOptions['multiFloorView']>, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
10828
11133
  load: () => this;
11134
+ get visible(): boolean;
11135
+ setVisible(visible: boolean): void;
10829
11136
  }
11137
+ export {};
10830
11138
  }
10831
11139
 
10832
11140
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
@@ -10868,78 +11176,66 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
10868
11176
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
10869
11177
  export const getTargetID: <T extends Space | Shape | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
10870
11178
  export function tweenToPromise(tween: Tween): Promise<void>;
11179
+ export function unique<T>(array: T[]): T[];
10871
11180
  }
10872
11181
 
10873
11182
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object' {
10874
11183
  import type { RendererCore } from '@mappedin/core-sdk';
10875
- import type { FloorId, FloorStack as MVFFloorStack } from '@mappedin/mvf';
11184
+ import type { FloorId, FloorStack as MVFFloorStack, Facade as MVFFacade } from '@mappedin/mvf';
10876
11185
  import type { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
10877
- export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors'> {
11186
+ export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors' | 'defaultFloor'> {
11187
+ #private;
10878
11188
  id: MVFFloorStack['id'];
10879
11189
  externalId: MVFFloorStack['externalId'];
10880
11190
  name: MVFFloorStack['name'];
10881
11191
  type: MVFFloorStack['type'];
10882
11192
  floorIds: FloorId[];
11193
+ defaultFloorId?: MVFFloorStack['defaultFloor'];
10883
11194
  /** Sorted floor objects by elevation */
10884
11195
  floorObjects: FloorObject[];
10885
11196
  floorObjectsByElevation: Map<number, FloorObject>;
10886
11197
  metadata?: MVFFloorStack['metadata'];
10887
11198
  footprint?: MVFFloorStack['footprint'];
10888
11199
  containerId: string;
10889
- constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore);
11200
+ facade?: MVFFacade;
11201
+ constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore, facade?: MVFFacade);
10890
11202
  get defaultFloor(): FloorObject;
10891
11203
  addFloor(floor: FloorObject): void;
11204
+ setFacadeVisible(visible: boolean): void;
10892
11205
  }
10893
11206
  }
10894
11207
 
10895
- declare module '@mappedin/react-sdk/geojson/src/components/style' {
10896
- import type { LineStyle } from '@mappedin/react-sdk/geojson/src/renderer';
10897
- export const DEFAULT_COLOR = "#ffffff";
10898
- export const DEFAULT_HEIGHT = 0.1;
10899
- type Style = {
10900
- color: string;
10901
- width: number;
10902
- opacity: number;
10903
- visible: boolean;
10904
- height: number;
10905
- altitude: number;
10906
- join: LineStyle['join'];
10907
- cap: LineStyle['cap'];
10908
- topColor?: string;
10909
- texture?: string;
10910
- topTexture?: string;
10911
- outline: boolean;
10912
- showImage: boolean;
10913
- showTextLabel: boolean;
10914
- flipImageToFaceCamera: boolean;
10915
- flipTextToFaceCamera: boolean;
10916
- url?: string;
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
+
11212
+ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-processor' {
11213
+ import { Rectangle } from '@packages/internal/quad-tree';
11214
+ export type TSerializedCollider = {
11215
+ rank: number;
11216
+ enabled: boolean;
11217
+ x: number;
11218
+ y: number;
11219
+ bboxes: {
11220
+ index: number;
11221
+ boundingBox: [number, number, number, number];
11222
+ boundingRect?: Rectangle;
11223
+ }[];
11224
+ shouldCollideWithScreenEdges?: boolean;
11225
+ lockedToStrategyIndex?: number;
11226
+ visible?: boolean;
11227
+ };
11228
+ export type TSerializedColliderResponse = [number, 1 | 0, Rectangle?];
11229
+ export function processColliders(colliders: TSerializedCollider[], totalWidth: any, totalHeight: any, watermarkWidth: any, watermarkHeight: any, watermarkPosition: any, msgId?: string): {
11230
+ msgId: string;
11231
+ colliders: TSerializedColliderResponse[];
11232
+ debug: {
11233
+ x: number;
11234
+ y: number;
11235
+ w: number;
11236
+ h: number;
11237
+ }[];
10917
11238
  };
10918
- export class StyleComponent implements Style {
10919
- initialColor: string;
10920
- color: string;
10921
- topColor?: string;
10922
- topTexture?: string;
10923
- texture?: string;
10924
- hoverColor?: string;
10925
- dirty: boolean;
10926
- visible: boolean;
10927
- opacity: number;
10928
- width: number;
10929
- height: number;
10930
- initialHeight: number;
10931
- altitude: number;
10932
- join: LineStyle['join'];
10933
- cap: LineStyle['cap'];
10934
- outline: boolean;
10935
- showImage: boolean;
10936
- showTextLabel: boolean;
10937
- flipImageToFaceCamera: boolean;
10938
- flipTextToFaceCamera: boolean;
10939
- url?: string;
10940
- constructor(style?: Partial<Style>);
10941
- }
10942
- export {};
10943
11239
  }
10944
11240
 
10945
11241
  declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
@@ -10957,7 +11253,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
10957
11253
  export function updateGroupColor(entity: GeometryGroupObject3D, state: RendererState, update: Partial<Pick<GeometryGroupState, 'color' | 'topColor'>>): boolean | undefined;
10958
11254
  export function updateGroupShading(entity: GeometryGroupObject3D, update?: GeometryGroupState['shading']): boolean;
10959
11255
  export function updateImageProps(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
10960
- export function updateHeight(entity: Geometry3D, update?: number): boolean;
11256
+ export function updateHeight(entity: Geometry3D | GeometryGroupObject3D, state: RendererState, update?: number): boolean;
10961
11257
  export function updateColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
10962
11258
  export function updatePosition(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Position | undefined, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): void;
10963
11259
  export function updateParent(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: GroupContainerObject3D | undefined): boolean;
@@ -10968,7 +11264,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
10968
11264
  export function updateHoverColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: string): void;
10969
11265
  export function updateFlipImageToFaceCamera(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): void;
10970
11266
  export function updateVisibility(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): boolean;
10971
- 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;
10972
11268
  export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
10973
11269
  export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
10974
11270
  export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
@@ -10978,33 +11274,6 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
10978
11274
  export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
10979
11275
  }
10980
11276
 
10981
- declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-processor' {
10982
- import { Rectangle } from '@packages/internal/quad-tree';
10983
- export type TSerializedCollider = {
10984
- rank: number;
10985
- enabled: boolean;
10986
- x: number;
10987
- y: number;
10988
- bboxes: {
10989
- index: number;
10990
- boundingBox: [number, number, number, number];
10991
- boundingRect?: Rectangle;
10992
- }[];
10993
- shouldCollideWithScreenEdges?: boolean;
10994
- };
10995
- export type TSerializedColliderResponse = [number, boolean, Rectangle?];
10996
- export function processColliders(colliders: TSerializedCollider[], totalWidth: any, totalHeight: any, watermarkWidth: any, watermarkHeight: any, watermarkPosition: any, msgId?: string): {
10997
- msgId: string;
10998
- colliders: TSerializedColliderResponse[];
10999
- debug: {
11000
- x: number;
11001
- y: number;
11002
- w: number;
11003
- h: number;
11004
- }[];
11005
- };
11006
- }
11007
-
11008
11277
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
11009
11278
  import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
11010
11279
  import { Raycaster } from 'three';
@@ -11056,7 +11325,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
11056
11325
  entityId: Geometry2D['id'];
11057
11326
  }>;
11058
11327
  _container: HTMLCanvasElement;
11059
- constructor(container: HTMLCanvasElement, coreState: RendererState, camera: PerspectiveCamera, cameraPlane: Mesh);
11328
+ constructor(container: HTMLCanvasElement, coreState: RendererState, camera: PerspectiveCamera, cameraPlane: Mesh, isUserInteracting: () => boolean);
11060
11329
  updateQuadtree(takeIT: QuadTree<{
11061
11330
  entityId: Geometry2D['id'];
11062
11331
  }>): void;
@@ -11136,6 +11405,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
11136
11405
  #private;
11137
11406
  dirty: boolean;
11138
11407
  zoomDirty: boolean;
11408
+ rotationDirty: boolean;
11139
11409
  /**
11140
11410
  * Factor that controls how fast zooming in and out happens in response to mouse wheel events
11141
11411
  *
@@ -19586,11 +19856,10 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator' {
19586
19856
 
19587
19857
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator' {
19588
19858
  import type { Position, Feature, MultiPolygon, Polygon } from 'geojson';
19589
- 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';
19590
19860
  import type { ObstructionCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/obstruction';
19591
19861
  import type { SpaceCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/space';
19592
19862
  import type { DirectionsCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/directions';
19593
- import type { CoordinateFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/coordinate';
19594
19863
  /**
19595
19864
  * Options for simplifying directions in the Navigator class.
19596
19865
  */
@@ -19634,7 +19903,6 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
19634
19903
  geojsonCollection?: ObstructionCollection | SpaceCollection;
19635
19904
  groupBy?: string;
19636
19905
  });
19637
- findNearestNode: (feature: CoordinateFeature) => NodeFeature | null;
19638
19906
  /**
19639
19907
  * Calculates and returns a set of directions from origin nodes to destination nodes, including detailed properties.
19640
19908
  *
@@ -19783,6 +20051,77 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/types/coordin
19783
20051
  export type CoordinateFeature = Feature<Point, CoordinateProperties>;
19784
20052
  }
19785
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
+
19786
20125
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/tap-controller' {
19787
20126
  export enum TapType {
19788
20127
  onefinger = 0,