@mappedin/mappedin-js 6.0.1-beta.19 → 6.0.1-beta.20

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.
@@ -8,6 +8,7 @@
8
8
  // ../mappedin-js/geojson
9
9
  // ../mappedin-js/@packages/internal/common
10
10
  // ../mappedin-js/@mappedin/core-sdk
11
+ // ../mappedin-js/@packages/internal/outdoor-context-v4
11
12
  // ../mappedin-js/@packages/internal/geojson-navigator
12
13
  // ../mappedin-js/@mappedin/mvf/dist/locale
13
14
  // ../mappedin-js/three
@@ -16,7 +17,6 @@
16
17
  // ../mappedin-js/@tweenjs/tween.js
17
18
  // ../mappedin-js/@turf/turf
18
19
  // ../mappedin-js/@packages/internal/quad-tree
19
- // ../mappedin-js/@packages/internal/outdoor-context-v4
20
20
  // ../mappedin-js/minisearch
21
21
  // ../mappedin-js/three/addons/loaders/GLTFLoader.js
22
22
  // ../mappedin-js/@mapbox/point-geometry
@@ -40,6 +40,7 @@ declare module '@mappedin/mappedin-js' {
40
40
  import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/mappedin-js/geojson/src';
41
41
  import { enableTestMode } from '@mappedin/mappedin-js/geojson/src';
42
42
  export type { PubSub } from '@packages/internal/common/pubsub';
43
+ import type { TMappedinMapLibreOverlayEvents } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
43
44
  import { MappedinMapLibreOverlay } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
44
45
  import type { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
45
46
  import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
@@ -351,14 +352,20 @@ declare module '@mappedin/mappedin-js' {
351
352
  */
352
353
  export const getMapDataEnterprise: (userOptions: TGetMapDataOptions) => Promise<MapData>;
353
354
  /**
354
- * Create a MapLibre overlay with a Map to render it within existing MapLibre projects.
355
+ * Mappedin JS makes use of MapLibre to render the outdoor portion of the map. Mappedin JS exposes this layer through {@link MapView.OutoorMap} and can be used to add additional layers as described in the [Outdoor Map Guide](https://developer.mappedin.com/web-sdk/outdoor-map).
356
+ *
357
+ * It is also possible to utilize the opposite architecture, by adding a MapView to a MapLibre Map.
358
+ * This is accomplished by using {@link MappedinMapLibreOverlay} class. It allows a developer to easily add a Mappedin indoor map to an existing MapLibre based app.
359
+ *
360
+ * Refer to the [Mappedin MapLibre Overlay](https://developer.mappedin.com/web-sdk/mappedin-maplibre-overlay) for more information and interactive examples.
361
+
355
362
  * @experimental
356
363
  */
357
364
  export const createMapLibreOverlay: (mapData: MapData, showMapOptions?: TShow3DMapOptions) => MappedinMapLibreOverlay;
358
365
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
359
366
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
360
367
  export { parseMVF, unzipMVF, enableTestMode };
361
- export type { MapView, MapData, MappedinMapLibreOverlay, 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, };
368
+ 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, };
362
369
  export type * from 'geojson';
363
370
  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/mappedin-js/mappedin-js/src/types';
364
371
  export { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
@@ -784,7 +791,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
784
791
  import Image from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image';
785
792
  import FloorStack from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor-stack';
786
793
  import type { MapDataRecords } from '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation';
787
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory, Language } from '@mappedin/mvf';
794
+ 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';
788
795
  import { AnalyticsInternal } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
789
796
  import EnterpriseLocation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
790
797
  import EnterpriseCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
@@ -936,6 +943,8 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
936
943
  get nodes(): Node[];
937
944
  get locations(): EnterpriseLocation[];
938
945
  get categories(): EnterpriseCategory[];
946
+ get mvfFloors(): MVFFloor[];
947
+ get mvfFloorStacks(): MVFFloorStack[];
939
948
  /**
940
949
  * Retrieves an object by its type and ID.
941
950
  *
@@ -965,12 +974,18 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
965
974
  getMVFFeatureById(type: 'space', id: string): SpaceCollection['features'][number] | undefined;
966
975
  getMVFFeatureById(type: 'node', id: string): NodeCollection['features'][number] | undefined;
967
976
  getMVFFeatureById(type: 'obstruction', id: string): ObstructionCollection['features'][number] | undefined;
968
- getMVFFeatureById(type: 'map', id: string): MVFFloor | undefined;
977
+ getMVFFeatureById(type: 'floor', id: string): MVFFloor | undefined;
978
+ getMVFFeatureById(type: 'floor-stack', id: string): MVFFloorStack | undefined;
969
979
  getMVFFeatureById(type: 'connection', id: string): MVFConnection | undefined;
970
980
  getMVFFeatureById(type: 'entrance', id: string): EntranceCollection['features'][number] | undefined;
971
981
  getMVFFeatureById(type: 'annotation', id: string): AnnotationCollection['features'][number] | undefined;
972
982
  getMVFFeatureById(type: string, id: string): object | undefined;
973
983
  getMVFFeatureByNodeId(type: 'connection', id: string): MVFConnection | undefined;
984
+ /**
985
+ * Retrieves all MVF features of a given type. Safer than referencing the mvf's deprecated collections directly.
986
+ */
987
+ getMVFFeatureByType(type: 'floor-stack'): MVFFloorStack[];
988
+ getMVFFeatureByType(type: 'floor'): MVFFloor[];
974
989
  getPropTranslation(type: 'enterprise-location' | 'enterprise-category', prop: string, id: string, fallback: MVFEnterpriseLocation[keyof MVFEnterpriseLocation] | MVFEnterpriseCategory[keyof MVFEnterpriseCategory]): unknown;
975
990
  /**
976
991
  * change the langauge of the data objects in mapdata
@@ -1007,13 +1022,20 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1007
1022
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
1008
1023
  import type { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1009
1024
  import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
1010
- import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1025
+ import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1011
1026
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates } from '@mappedin/mappedin-js/mappedin-js/src/types';
1012
1027
  import type { Label, Marker, Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
1013
1028
  import type { TEventPayload } from '@mappedin/mappedin-js/mappedin-js/src/events';
1014
1029
  import type { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
1015
1030
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1016
1031
  import type { InspectorOption } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/inspector/inspector';
1032
+ /**
1033
+ * The MapView class is the main class for rendering and interacting with the map.
1034
+ *
1035
+ * It provides a set of controls for manipulating the map's elements and state.
1036
+ *
1037
+ * For help getting started, refer to the [Getting Started Guide](https://developer.mappedin.com/web-sdk/getting-started).
1038
+ */
1017
1039
  export class MapView extends PubSub<TEvents> {
1018
1040
  #private;
1019
1041
  /**
@@ -1081,9 +1103,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1081
1103
  *
1082
1104
  * | target | state |
1083
1105
  * |-----------|----------------|
1106
+ * | {@link Door} | {@link TDoorsState} |
1084
1107
  * | {@link Label} | {@link TLabelState} |
1085
1108
  * | {@link MapObject} | {@link TGeometryState} |
1109
+ * | {@link Marker} | {@link TMarkerState} |
1086
1110
  * | {@link Space} | {@link TGeometryState} |
1111
+ * | {@link Shape} | {@link TShapeState} |
1112
+ * | {@link DOORS} | {@link TDoorsState} |
1113
+ * | {@link WALLS} | {@link TWallsState} |
1087
1114
  *
1088
1115
  * @param target The target to update.
1089
1116
  * @param state The new state to apply to the target.
@@ -1094,6 +1121,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1094
1121
  updateState<T extends Space | MapObject | Label | Marker | Shape | Door | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1095
1122
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1096
1123
  update: () => void;
1124
+ /**
1125
+ * Retrieves the map data for the current map.
1126
+ * @returns The {@link MapData} for the current map.
1127
+ */
1097
1128
  getMapData(): {
1098
1129
  [x: string]: MapData;
1099
1130
  };
@@ -1109,12 +1140,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1109
1140
  /**
1110
1141
  * @experimental
1111
1142
  */
1112
- expand(opts?: TExpandOptions): Promise<void> | undefined;
1143
+ expand(opts?: TExpandOptions): Promise<void>;
1113
1144
  /**
1114
1145
  * @experimental
1115
1146
  * @hidden
1116
1147
  */
1117
- collapse(opts?: TCollapseOptions): Promise<void> | undefined;
1148
+ collapse(opts?: TCollapseOptions): Promise<void>;
1118
1149
  /**
1119
1150
  * Adds a map to the MapView.
1120
1151
  * @param mapData The map data to add.
@@ -1127,6 +1158,15 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1127
1158
  * @param floor The floor or floor ID to set.
1128
1159
  */
1129
1160
  setFloor(floor: Floor | string): void;
1161
+ /**
1162
+ * Sets the current floor stack ({@link FloorStack}) of the map. The default floor of the stack will be set as the current floor.
1163
+ * @param floorStack The floor stack or floor stack ID to set.
1164
+ */
1165
+ setFloorStack(floorStack: FloorStack | string): void;
1166
+ /**
1167
+ * The current floor stack ({@link FloorStack}) of the map.
1168
+ */
1169
+ get currentFloorStack(): FloorStack;
1130
1170
  /**
1131
1171
  * The current floor ({@link Floor}) of the map.
1132
1172
  */
@@ -1254,7 +1294,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1254
1294
  destroy(): void;
1255
1295
  /**
1256
1296
  * @experimental
1257
- * Enable debug interface
1297
+ * Enable debug interface. Learn more about the debug interface in the [Debug Mode Guide](https://developer.mappedin.com/web-sdk/getting-started#debug-mode).
1258
1298
  */
1259
1299
  enableDebug(opitons?: InspectorOption): Promise<void>;
1260
1300
  }
@@ -1301,10 +1341,11 @@ declare module '@mappedin/mappedin-js/geojson/src' {
1301
1341
  declare module '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay' {
1302
1342
  import { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
1303
1343
  import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
1304
- import type { TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
1305
- import { MapLibreOverlay } from '@mappedin/mappedin-js/geojson/src/maplibre-overlay';
1344
+ import { type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
1306
1345
  import type { Position } from '@mappedin/core-sdk';
1307
- export class MappedinMapLibreOverlay extends MapLibreOverlay<{
1346
+ import type { IControl } from '@packages/internal/outdoor-context-v4';
1347
+ import { PubSub } from '@packages/internal/common';
1348
+ export type TMappedinMapLibreOverlayEvents = {
1308
1349
  /**
1309
1350
  * Event emitted when the MappedinMap is loaded
1310
1351
  */
@@ -1318,12 +1359,52 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay' {
1318
1359
  */
1319
1360
  mapData: MapData;
1320
1361
  };
1321
- }> {
1362
+ };
1363
+ /**
1364
+ * Mappedin JS makes use of MapLibre to render the outdoor portion of the map. Mappedin JSexposes this layer through {@link MapView.OutoorMap} and can be used to add additional layers as described in the [Outdoor Map Guide](https://developer.mappedin.com/web-sdk/outdoor-map).
1365
+ *
1366
+ * It is also possible to utilize the opposite architecture, by adding a MapView to a MapLibre Map.
1367
+ * This is accomplished by using this MappedinMapLibreOverlay class. It allows a developer to easily add a Mappedin indoor map to an existing MapLibre based app.
1368
+ *
1369
+ * Use {@link createMapLibreOverlay} to instantiate this class.
1370
+ *
1371
+ * Refer to the [Mappedin MapLibre Overlay](https://developer.mappedin.com/web-sdk/mappedin-maplibre-overlay) for more information and interactive examples.
1372
+ */
1373
+ export class MappedinMapLibreOverlay extends PubSub<TMappedinMapLibreOverlayEvents> implements IControl {
1322
1374
  #private;
1323
1375
  static instance: MappedinMapLibreOverlay;
1376
+ /** @internal */
1324
1377
  constructor(origin: Position | undefined, mapData: MapData, options?: TShow3DMapOptions);
1378
+ /** @internal */
1325
1379
  onAdd(map: any): HTMLDivElement;
1380
+ /** @internal */
1326
1381
  onRemove(): void;
1382
+ /**
1383
+ * Subscribe to an event.
1384
+ * @example
1385
+ * ```ts
1386
+ * const handler = ({ mapView, mapData }) => {
1387
+ * console.log('MapView loaded');
1388
+ * };
1389
+ * overlay.on('loaded', handler);
1390
+ * ```
1391
+ */
1392
+ on: <EventName extends keyof TMappedinMapLibreOverlayEvents>(eventName: EventName, fn: (payload: TMappedinMapLibreOverlayEvents[EventName] extends {
1393
+ data: null;
1394
+ } ? TMappedinMapLibreOverlayEvents[EventName]["data"] : TMappedinMapLibreOverlayEvents[EventName]) => void) => void;
1395
+ /**
1396
+ * Unsubscribe from an event.
1397
+ * @example
1398
+ * ```ts
1399
+ * const handler = ({ mapView, mapData }) => {
1400
+ * console.log('MapView loaded');
1401
+ * };
1402
+ * overlay.off('loaded', handler);
1403
+ * ```
1404
+ */
1405
+ off: <EventName extends keyof TMappedinMapLibreOverlayEvents>(eventName: EventName, fn: (payload: TMappedinMapLibreOverlayEvents[EventName] extends {
1406
+ data: null;
1407
+ } ? TMappedinMapLibreOverlayEvents[EventName]["data"] : TMappedinMapLibreOverlayEvents[EventName]) => void) => void;
1327
1408
  }
1328
1409
  }
1329
1410
 
@@ -1332,7 +1413,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1332
1413
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1333
1414
  import type { Label, Marker, Model, Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
1334
1415
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1335
- import { type InsetPaddingOption, Position } from '@mappedin/core-sdk';
1416
+ import type { InsetPaddingOption, Position } from '@mappedin/core-sdk';
1336
1417
  export type DeepRequired<T> = Required<{
1337
1418
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1338
1419
  }>;
@@ -1474,11 +1555,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1474
1555
  export type TDoorsState = {
1475
1556
  type: 'doors';
1476
1557
  /**
1477
- * Color of the walls.
1558
+ * Color of the doors.
1478
1559
  */
1479
1560
  color: string | 'initial';
1480
1561
  /**
1481
- * Color of the top of walls, if not set, defaults to the color.
1562
+ * Color of the top of doors, if not set, defaults to the color.
1482
1563
  */
1483
1564
  topColor?: string | 'initial';
1484
1565
  /**
@@ -1494,7 +1575,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1494
1575
  url?: string;
1495
1576
  };
1496
1577
  /**
1497
- * Visibility of the walls.
1578
+ * Visibility of the doors.
1498
1579
  */
1499
1580
  visible: boolean;
1500
1581
  /**
@@ -1614,7 +1695,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1614
1695
  /**
1615
1696
  * The type for updating the state of map elements (colors, texts, etc.).
1616
1697
  */
1617
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
1698
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Door ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
1618
1699
  export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
1619
1700
  export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
1620
1701
  /**
@@ -1697,7 +1778,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1697
1778
  /**
1698
1779
  * A map element that can be focused on by the camera.
1699
1780
  */
1700
- export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node
1781
+ export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node | EnterpriseLocation
1701
1782
  /**
1702
1783
  * @experimental
1703
1784
  */
@@ -2254,10 +2335,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
2254
2335
  */
2255
2336
  timeout?: number;
2256
2337
  /**
2257
- * Whether to watch the browser's position.
2338
+ * Whether to watch the device's position.
2258
2339
  * @default true
2259
2340
  */
2260
- watchBrowserPosition?: boolean;
2341
+ watchDevicePosition?: boolean;
2261
2342
  /**
2262
2343
  * Whether to log debug messages.
2263
2344
  * @default false
@@ -2357,6 +2438,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-
2357
2438
  };
2358
2439
  /**
2359
2440
  * @experimental
2441
+ *
2442
+ * Mappedin JS can use the location provided from an indoor positioning system to display a BlueDot on the map, indicating the user's position.
2443
+ *
2444
+ * This class is accessed using {@link MapView.BlueDot}.
2445
+ *
2446
+ * Further details and interactive examples can be found in the [BlueDot Guide](https://developer.mappedin.com/web-sdk/blue-dot).
2360
2447
  */
2361
2448
  export class BlueDot extends PubSub<TBlueDotEvents> {
2362
2449
  #private;
@@ -2417,11 +2504,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-
2417
2504
  follow: (mode: TFollowMode, cameraOptions?: TFollowCameraOptions) => void;
2418
2505
  }
2419
2506
  export type TFollowMode =
2420
- /** Camera follows only the position of the Blue Dot. Bearing is not updated. */
2507
+ /** Camera position follows the Blue Dot's position. */
2421
2508
  'position-only'
2422
- /** Camera follows both position and heading of the Blue Dot. */
2509
+ /** Camera position follows the Blue Dot's position. Camera bearing matches the Blue Dot's heading. */
2423
2510
  | 'position-and-heading'
2424
- /** Camera follows position and automatically rotates to match the direction of the navigation path */
2511
+ /** Camera position follows the Blue Dot's position. Camera bearing is calculated based on the Navigation path. */
2425
2512
  | 'position-and-path-direction'
2426
2513
  /** Disables follow mode */
2427
2514
  | false;
@@ -2514,6 +2601,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/s
2514
2601
  export type TCollapseOptions = TCameraAnimationOptions;
2515
2602
  type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
2516
2603
  /**
2604
+ * Stacked Maps enables multi floor visualization. It allows for multiple floors of a building to be shown together as a stack of floors in an accordion style view.
2605
+ *
2606
+ * This class is accessed using {@link MapView.StackedMaps}.
2607
+ *
2608
+ * Refer to the [Stacked Maps Guide](https://developer.mappedin.com/web-sdk/stacked-maps) for more information and interactive examples.
2609
+ *
2517
2610
  * @experimental
2518
2611
  */
2519
2612
  export class StackedMaps extends PubSub<TStackedMapsEvents> {
@@ -2552,7 +2645,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/s
2552
2645
  */
2553
2646
  setFloorVisiblityMode(mode: 'all-floors' | 'only-current-floor'): void;
2554
2647
  /**
2555
- * Set whether to listen to camera elevation changes to automatically change the floor.
2648
+ * Set whether to listen to camera elevation changes to automatically change the floor. When enabled, the `mapView.on('floor-change')` event is fired
2556
2649
  */
2557
2650
  changeFloorOnElevationChanges(value: boolean): void;
2558
2651
  /**
@@ -2724,6 +2817,17 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation' {
2724
2817
  destinationColor?: string;
2725
2818
  };
2726
2819
  };
2820
+ /**
2821
+ * When a user needs to get from point A to point B, drawing a path on the map helps them to navigate to their destination. It can help them to visualize the route they'll need to take, like a good treasure map.
2822
+
2823
+ * Navigation is a helper class to display wayfinding easily on the map. Functionality of Navigation could be replicated by drawing the paths using {@link Paths} and adding well designed tooltips at connection points.
2824
+ *
2825
+ * This class is accessed using {@link MapView.Navigation}.
2826
+ *
2827
+ * {@link Navigation.draw} allows for easily drawing multiple components that make up a wayfinding illustration. It shows a human figure to mark the start point, a path with animated directional arrows, pulses in the direction of travel and a pin to mark the destination. Each of these components can be customized to match an app's style.
2828
+ *
2829
+ * Refer to the [Drawing Navigation](https://developer.mappedin.com/web-sdk/wayfinding#drawing-navigation) in the Wayfinding Guide for more information and interactive examples.
2830
+ */
2727
2831
  export class Navigation {
2728
2832
  #private;
2729
2833
  /**
@@ -2829,8 +2933,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category'
2829
2933
  import type { MapDataInternal, EnterpriseLocation } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2830
2934
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2831
2935
  /**
2832
- * An EnterpriseCategory is a collection of similar EnterpriseLocations.
2936
+ * An EnterpriseCategory groups one or more EnterpriseLocation. These allow similar locations to be sorted in a logical fashion.
2937
+ * For example a mall may group locations into Food Court, Footwear and Women's Fashion. They can be accessed using the {@link MapData.getByType()} method as shown below.
2833
2938
  *
2939
+ * ```typescript
2940
+ * const categories = mapData.getByType('enterprise-category');
2941
+ * ```
2942
+ *
2943
+ * Refer to the [EnterpriseCategory Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-categories) for more information and interactive examples.
2834
2944
  */
2835
2945
  class EnterpriseCategory extends BaseMapData implements Omit<MVFEnterpriseCategory, 'children' | 'locations'> {
2836
2946
  #private;
@@ -2842,12 +2952,33 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category'
2842
2952
  * @internal
2843
2953
  */
2844
2954
  readonly __type = "enterprise-category";
2955
+ /**
2956
+ * The name of the category.
2957
+ */
2845
2958
  name: string;
2959
+ /**
2960
+ * The color of the category.
2961
+ */
2846
2962
  color?: string | undefined;
2963
+ /**
2964
+ * The external ID of the category.
2965
+ */
2847
2966
  externalId: string;
2967
+ /**
2968
+ * Extra properties of the category.
2969
+ */
2848
2970
  extra?: Record<string, unknown> | undefined;
2971
+ /**
2972
+ * A URL to the icon of the category.
2973
+ */
2849
2974
  icon?: string | undefined;
2975
+ /**
2976
+ * The icon from the default list of icons.
2977
+ */
2850
2978
  iconFromDefaultList?: string | null | undefined;
2979
+ /**
2980
+ * The sort order of the category.
2981
+ */
2851
2982
  sortOrder: number;
2852
2983
  /**
2853
2984
  * Checks if the provided instance is of type EnterpriseCategory.
@@ -2862,7 +2993,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category'
2862
2993
  constructor(data: MapDataInternal, options: {
2863
2994
  mvfData: MVFEnterpriseCategory;
2864
2995
  });
2996
+ /**
2997
+ * The child categories of the category.
2998
+ */
2865
2999
  get children(): EnterpriseCategory[];
3000
+ /**
3001
+ * The {@link EnterpriseLocation}s within this category.
3002
+ */
2866
3003
  get locations(): EnterpriseLocation[];
2867
3004
  /**
2868
3005
  * Serializes the EnterpriseCategory data to JSON.
@@ -2889,9 +3026,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location'
2889
3026
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2890
3027
  import type Node from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node';
2891
3028
  /**
2892
- * A class representing enterprise location data within the map.
3029
+ * An EnterpriseLocation contains metadata about a location, such as its name, description, logo, phone number, social medial links, hours of operation and more.
3030
+ * They can be accessed using the {@link MapData.getByType()} method as shown below.
3031
+ *
3032
+ * ```typescript
3033
+ * const allLocations = mapData.getByType('enterprise-location');
3034
+ * ```
2893
3035
  *
2894
- * An EnterpriseLocation is something like a store, or a washroom on a map.
3036
+ * Refer to the [EnterpriseLocation Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-locations) for more information and interactive examples.
2895
3037
  */
2896
3038
  class EnterpriseLocation extends BaseMapData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links'> {
2897
3039
  #private;
@@ -2903,36 +3045,139 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location'
2903
3045
  * @internal
2904
3046
  */
2905
3047
  readonly __type = "enterprise-location";
3048
+ /**
3049
+ * The description of the location.
3050
+ */
2906
3051
  description?: string | undefined;
3052
+ /**
3053
+ * The name of the location.
3054
+ */
2907
3055
  name: string;
3056
+ /**
3057
+ * The amenity of the location.
3058
+ */
2908
3059
  amenity?: string | undefined;
3060
+ /**
3061
+ * The external ID of the location.
3062
+ */
2909
3063
  externalId: string;
3064
+ /**
3065
+ * Extra properties of the location.
3066
+ */
2910
3067
  extra?: Record<string, unknown> | undefined;
3068
+ /**
3069
+ * The gallery of the location.
3070
+ */
2911
3071
  gallery?: {
2912
3072
  caption?: string | null;
2913
3073
  image: string;
2914
3074
  embeddedUrl?: string | null;
2915
3075
  }[] | undefined;
3076
+ /**
3077
+ * Specific instances of this location with different properties.
3078
+ * Typically, there will be at least one node or polygon defined,
3079
+ * plus one or more other properties that are different from the parent.
3080
+ * The remaining properties will be the same as the parent.
3081
+
3082
+ * For example, suppose there is a location like this:
3083
+ *
3084
+ * ```json
3085
+ * {
3086
+ * "id": "location-id-1",
3087
+ * "name": "Location 1",
3088
+ * "nodes": ["node-1", "node-2"],
3089
+ * "polygons": ["polygon-1", "polygon-2"],
3090
+ * "externalId": "externalId-1",
3091
+ * "description": "Description 1",
3092
+ * }
3093
+ * ```
3094
+ *
3095
+ * (Note that for clarity, we have put strings in for nodes and polygons, but in practice they would be objects.)
3096
+ *
3097
+ * Then suppose it had an `instances` array that contained an object that looked like this:
3098
+ *
3099
+ * ```json
3100
+ * {
3101
+ * "id": "instance-id-1",
3102
+ * "name": "Location 1 - A",
3103
+ * "nodes": ["node-1"],
3104
+ * "polygons": ["polygon-1"],
3105
+ * "externalId": "externalId-1-A",
3106
+ * "description": "Description 1",
3107
+ * }
3108
+ * ```
3109
+ * This says "Location 1" is the parent location, and "Location 1 - A" is an instance of it. The instance has a different name, and a different external ID, and it only applies to node `node-1` and polygon `polygon-1`.
3110
+ * The ID will always be different, but other properties (like the description) are the same as the parent.
3111
+ *
3112
+ * Example use cases:
3113
+ * - A Mall may have a location with two nodes and one polygon. It may then have an instance with one of the nodes, and operating hours
3114
+ * that are different from the parent. This indicates that this instance is an entrance for the location that is accessible at different times, perhaps for an interior mall entrance, when the main location (and other, exterior entrance) is open later than the rest of the mall.
3115
+ * - An aiport may have a location with several polygons and nodes, and an instance for each node (and corrisponding polygon, if any) with a different siblingGroup. The location in the sibling group may be the airport terminal, or airside vs landside.
3116
+ * This would allow an application to show the location once in a search result, but offer UX to select the instance that is in the right terminal.
3117
+ *
3118
+ * Note: Instances are actual EnterpriseLocations. This means they have all the properties of a normal EnterpriseLocation, including an `instances` property, that will always be undefined. They also do NOT have a parent proprty, or any other explicit reference to the parent location. These instances are
3119
+ * only referenced from their parent location, and will not show up in other places in the map data. However, they should otherwise behave like normal EnterpriseLocations, being targetable for things like navigation and focus.
3120
+ */
3121
+ instances?: EnterpriseLocation[] | undefined;
3122
+ /**
3123
+ * A URL to the logo of the location.
3124
+ */
2916
3125
  logo?: string | undefined;
3126
+ /**
3127
+ * The operation hours of the location.
3128
+ */
2917
3129
  operationHours?: OperationHours[] | undefined;
3130
+ /**
3131
+ * The phone number of the location.
3132
+ */
2918
3133
  phone?: {
2919
3134
  number: string;
2920
3135
  extension?: string;
2921
3136
  } | undefined;
3137
+ /**
3138
+ * A URL to the picture of the location.
3139
+ */
2922
3140
  picture?: string | undefined;
3141
+ /**
3142
+ * The short name of the location.
3143
+ */
2923
3144
  shortName?: string | undefined;
3145
+ /**
3146
+ * Whether to show the floating label when an image is present.
3147
+ */
2924
3148
  showFloatingLabelWhenImagePresent?: boolean | undefined;
3149
+ /**
3150
+ * Whether to show the logo.
3151
+ */
2925
3152
  showLogo?: boolean | undefined;
3153
+ /**
3154
+ * The sibling groups of the location.
3155
+ */
2926
3156
  siblingGroups?: SiblingGroup[] | undefined;
3157
+ /**
3158
+ * The social media links of the location.
3159
+ */
2927
3160
  social?: {
2928
3161
  facebook?: string;
2929
3162
  instagram?: string;
2930
3163
  twitter?: string;
2931
3164
  website?: string;
2932
3165
  } | undefined;
3166
+ /**
3167
+ * The sort order of the location.
3168
+ */
2933
3169
  sortOrder: number;
3170
+ /**
3171
+ * The {@link LocationState}s of the location.
3172
+ */
2934
3173
  states?: LocationState[] | undefined;
3174
+ /**
3175
+ * The tags of the location.
3176
+ */
2935
3177
  tags?: string[] | undefined;
3178
+ /**
3179
+ * The type of the location.
3180
+ */
2936
3181
  type: string;
2937
3182
  /**
2938
3183
  * Checks if the provided instance is of type EnterpriseLocation.
@@ -2947,6 +3192,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location'
2947
3192
  constructor(data: MapDataInternal, options: {
2948
3193
  mvfData: MVFEnterpriseLocation;
2949
3194
  categoryIds: string[];
3195
+ locationInstances?: EnterpriseLocation[];
2950
3196
  });
2951
3197
  get categories(): EnterpriseCategory[];
2952
3198
  get coordinates(): Coordinate[];
@@ -2976,7 +3222,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue' {
2976
3222
  import type { Hyperlink, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2977
3223
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2978
3224
  /**
2979
- * An EnterpriseVenue is a specific place (like a mall, office building, or stadium) with one or more Floors
3225
+ * The EnterpriseVenue class holds metadata bout the map, which includes the map name, supported languages, default language, top locations and more.
3226
+ * It can be accessed using the {@link MapData.getByType()} method as shown below.
3227
+ *
3228
+ * ```typescript
3229
+ * const venue = mapData.getByType('venue');
3230
+ * ```
3231
+ *
3232
+ * Refer to the [EnterpriseVenue Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-venue) for more information.
2980
3233
  */
2981
3234
  class EnterpriseVenue extends BaseMapData implements MVFEnterpriseVenue {
2982
3235
  #private;
@@ -2988,18 +3241,57 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue' {
2988
3241
  * @internal
2989
3242
  */
2990
3243
  readonly __type = "enterprise-venue";
3244
+ /**
3245
+ * The country code of the venue.
3246
+ */
2991
3247
  countrycode?: string | undefined;
3248
+ /**
3249
+ * The external ID of the venue.
3250
+ */
2992
3251
  externalId: string;
3252
+ /**
3253
+ * The default language of the venue.
3254
+ */
2993
3255
  defaultLanguage: Language;
3256
+ /**
3257
+ * The default map of the venue.
3258
+ */
2994
3259
  defaultMap?: string | undefined;
3260
+ /**
3261
+ * Extra properties of the venue.
3262
+ */
2995
3263
  extra?: Record<string, unknown> | undefined;
3264
+ /**
3265
+ * A URL to the icon of the venue.
3266
+ */
2996
3267
  icon?: string | undefined;
3268
+ /**
3269
+ * The languages supported by the venue.
3270
+ */
2997
3271
  languages: Language[];
3272
+ /**
3273
+ * The links of the venue.
3274
+ */
2998
3275
  links: Hyperlink[];
3276
+ /**
3277
+ * A URL to the logo of the venue.
3278
+ */
2999
3279
  logo?: string | undefined;
3280
+ /**
3281
+ * A URL to a web page with [Mappedin Web](https://developer.mappedin.com/docs/enterprise-apps/mappedin-web-v2) for this venue.
3282
+ */
3000
3283
  mappedinWebUrl?: string | undefined;
3284
+ /**
3285
+ * The slug of the venue.
3286
+ */
3001
3287
  slug: string;
3288
+ /**
3289
+ * The top locations of the venue.
3290
+ */
3002
3291
  topLocations?: string[] | undefined;
3292
+ /**
3293
+ * The timezone ID of the venue.
3294
+ */
3003
3295
  tzid?: string | undefined;
3004
3296
  /**
3005
3297
  * Checks if the provided instance is of type EnterpriseVenue.
@@ -3166,6 +3458,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
3166
3458
  import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/mappedin-js/geojson/src';
3167
3459
  import { enableTestMode } from '@mappedin/mappedin-js/geojson/src';
3168
3460
  export type { PubSub } from '@packages/internal/common/pubsub';
3461
+ import type { TMappedinMapLibreOverlayEvents } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
3169
3462
  import { MappedinMapLibreOverlay } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
3170
3463
  import type { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
3171
3464
  import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
@@ -3477,14 +3770,20 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
3477
3770
  */
3478
3771
  export const getMapDataEnterprise: (userOptions: TGetMapDataOptions) => Promise<MapData>;
3479
3772
  /**
3480
- * Create a MapLibre overlay with a Map to render it within existing MapLibre projects.
3773
+ * Mappedin JS makes use of MapLibre to render the outdoor portion of the map. Mappedin JS exposes this layer through {@link MapView.OutoorMap} and can be used to add additional layers as described in the [Outdoor Map Guide](https://developer.mappedin.com/web-sdk/outdoor-map).
3774
+ *
3775
+ * It is also possible to utilize the opposite architecture, by adding a MapView to a MapLibre Map.
3776
+ * This is accomplished by using {@link MappedinMapLibreOverlay} class. It allows a developer to easily add a Mappedin indoor map to an existing MapLibre based app.
3777
+ *
3778
+ * Refer to the [Mappedin MapLibre Overlay](https://developer.mappedin.com/web-sdk/mappedin-maplibre-overlay) for more information and interactive examples.
3779
+
3481
3780
  * @experimental
3482
3781
  */
3483
3782
  export const createMapLibreOverlay: (mapData: MapData, showMapOptions?: TShow3DMapOptions) => MappedinMapLibreOverlay;
3484
3783
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
3485
3784
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
3486
3785
  export { parseMVF, unzipMVF, enableTestMode };
3487
- export type { MapView, MapData, MappedinMapLibreOverlay, 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, };
3786
+ 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, };
3488
3787
  export type * from 'geojson';
3489
3788
  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/mappedin-js/mappedin-js/src/types';
3490
3789
  export { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
@@ -3593,7 +3892,30 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door' {
3593
3892
  /**
3594
3893
  * A class representing door data within the map.
3595
3894
  *
3596
- * This class provides details and operations related to a door.
3895
+ * Doors are hidden by default. Doors can be made visible by setting their `visible` property to `true`.
3896
+ *
3897
+ * ```typescript
3898
+ * //Make interior doors visible and brown.
3899
+ * mapView.updateState(DOORS.Interior, {
3900
+ * visible: true,
3901
+ * color: '#5C4033',
3902
+ * opacity: 0.6,
3903
+ * });
3904
+
3905
+ * //Make exterior doors visible and black.
3906
+ * mapView.updateState(DOORS.Exterior, {
3907
+ * visible: true,
3908
+ * color: 'black',
3909
+ * opacity: 0.6,
3910
+ * });
3911
+ * ```
3912
+ * Doors can also be made visible on an individual basis by passing in a {@link Door} object to {@link MapView.updateState}.
3913
+ *
3914
+ * Refer to the [Door Guide](https://developer.mappedin.com/web-sdk/spaces#doors) for more information and interactive examples.
3915
+ *
3916
+ * Door appearance can be customized by changing the color or adding a texture to the top or sides of a door.
3917
+ * Refer to the [Textures & Colors Guide](https://developer.mappedin.com/web-sdk/images-textures#textures--colors) for more information and interactive examples.
3918
+ *
3597
3919
  */
3598
3920
  class Door extends BaseMapData {
3599
3921
  #private;
@@ -3631,7 +3953,17 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door' {
3631
3953
  * @returns {string} The external ID of the door.
3632
3954
  */
3633
3955
  get externalId(): string;
3956
+ /**
3957
+ * Gets the description of the door.
3958
+ *
3959
+ * @returns {string} The description of the door.
3960
+ */
3634
3961
  get description(): string;
3962
+ /**
3963
+ * Gets the images of the door.
3964
+ *
3965
+ * @returns {Image[]} The images of the door.
3966
+ */
3635
3967
  get images(): Image[];
3636
3968
  /**
3637
3969
  * Gets the {@link Floor} object associated with the door.
@@ -3694,9 +4026,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space' {
3694
4026
  */
3695
4027
  export type TSpaceType = 'room' | 'hallway' | 'exterior' | 'void' | 'connection.stairs' | 'connection.elevator' | 'poi';
3696
4028
  /**
3697
- * A class representing space data within the map.
4029
+ * A Space represents an area enclosed by walls, such as a hall or room. Spaces can be Interactive and have Labels and Markers added to them.
4030
+ * Spaces can also be customized with a color, texture and hover color.
3698
4031
  *
3699
- * Spaces are used to represent different areas within a map, such as rooms, hallways, etc.
4032
+ * Refer to the [Spaces Guide](https://developer.mappedin.com/web-sdk/spaces) for more information and interactive examples.
3700
4033
  */
3701
4034
  class Space extends BaseMapData {
3702
4035
  #private;
@@ -3967,6 +4300,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/connectio
3967
4300
  get name(): string;
3968
4301
  get description(): string;
3969
4302
  get images(): Image[];
4303
+ /**
4304
+ * Whether the connection is accessible. For example elevators are accessible while stairs are not.
4305
+ *
4306
+ * @returns {boolean} Whether the connection is accessible.
4307
+ */
3970
4308
  get accessible(): boolean;
3971
4309
  /**
3972
4310
  * Gets the external ID of the connection.
@@ -4033,7 +4371,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/object' {
4033
4371
  /**
4034
4372
  * A class representing generic map object data within the map.
4035
4373
  *
4036
- * It could represent various objects on the map, such as desks, walls, etc.
4374
+ * It could represent various objects on the map, such as desks, chairs, etc.
4375
+ *
4376
+ * MapObject appearance can be customized by changing the color or adding a texture to its top or sides.
4377
+ * Refer to the [Textures & Colors Guide](https://developer.mappedin.com/web-sdk/images-textures#textures--colors) for more information and interactive examples.
4037
4378
  */
4038
4379
  export class MapObject extends BaseMapData {
4039
4380
  #private;
@@ -4302,6 +4643,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/annotatio
4302
4643
  *
4303
4644
  * Annotations are used to mark specific points or areas on the map with additional information.
4304
4645
  * It includes some details on a map that may be relevant to safety or accessibility (e.g. Fire Extinguishers).
4646
+ * Refer to the [Annotation Guide](https://developer.mappedin.com/web-sdk/annotations) for more information.
4305
4647
  */
4306
4648
  class Annotation extends BaseMapData {
4307
4649
  #private;
@@ -4708,6 +5050,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes' {
4708
5050
  import type { FeatureCollection, LineString, MultiPolygon, Polygon } from 'geojson';
4709
5051
  import type { LineStyle, PaintStyle } from '@mappedin/core-sdk';
4710
5052
  import type { Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
5053
+ /**
5054
+ * The Shapes class draws 3 dimensional shapes on top of a map. The shapes are created using GeoJSON geometry, which could be a {@link Polygon}, {@link MultiPolygon} (array of polygons) or a {@link LineString}.
5055
+ *
5056
+ * This class is accessed using {@link MapView.Shapes}.
5057
+ *
5058
+ * Refer to the [Shapes Guide](https://developer.mappedin.com/web-sdk/shapes) for more information and interactive examples.
5059
+ */
4711
5060
  export class Shapes {
4712
5061
  #private;
4713
5062
  /**
@@ -7397,29 +7746,13 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/html-controls/system'
7397
7746
  }
7398
7747
  }
7399
7748
 
7400
- declare module '@mappedin/mappedin-js/geojson/src/maplibre-overlay' {
7401
- import type { IControl, Map as MapLibreMap, CustomLayerInterface } from '@packages/internal/outdoor-context-v4';
7402
- import type { Position } from '@mappedin/mappedin-js/geojson/src/types';
7403
- import RendererCore from '@mappedin/mappedin-js/geojson/src/renderer';
7404
- import { PubSub } from '@packages/internal/common';
7405
- export class MapLibreOverlay<T> extends PubSub<T> implements IControl {
7406
- el: HTMLDivElement;
7407
- core: RendererCore;
7408
- origin?: Position;
7409
- map?: MapLibreMap;
7410
- layer?: CustomLayerInterface;
7411
- constructor(origin: Position | undefined);
7412
- onAdd(map: MapLibreMap): HTMLDivElement;
7413
- onRemove(): void;
7414
- }
7415
- }
7416
-
7417
7749
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
7418
7750
  import type { Position, RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
7419
7751
  import { type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
7420
7752
  import { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
7421
7753
  import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
7422
- import { Coordinate, MapObject, Space, Floor, type MapDataInternal, Door } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7754
+ import type { FloorStack, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7755
+ import { Coordinate, MapObject, Space, Floor, Door } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7423
7756
  import type { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
7424
7757
  import { Label, Marker, type Model, type Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
7425
7758
  import { Navigation } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
@@ -7439,14 +7772,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
7439
7772
  import Outdoor from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor';
7440
7773
  export class GeoJsonApi {
7441
7774
  core: RendererCore;
7442
- outdoors: GeojsonApiMapObject;
7443
7775
  mapObjects: GeojsonApiMapObject[];
7444
7776
  id: string;
7445
7777
  mapDataExternal: {
7446
7778
  [key in string]: MapData;
7447
7779
  };
7448
7780
  mapData?: MapData;
7449
- currentMap?: GeojsonApiMapObject;
7781
+ currentMap: GeojsonApiMapObject;
7450
7782
  hiddenOutdoorGeometries: [Position, layer: string[]][];
7451
7783
  mapView: MapView;
7452
7784
  Camera: Camera;
@@ -7469,7 +7801,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
7469
7801
  getMapData(): MapData | undefined;
7470
7802
  addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
7471
7803
  setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
7804
+ setFloorStack(floorStack: FloorStack | string): void;
7472
7805
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7806
+ get currentFloorStack(): FloorStack;
7473
7807
  get currentFloor(): Floor;
7474
7808
  getState<T extends Space | MapObject | Label | Marker | Shape | Model | Image | string>(target: T): TGetState<T> | undefined;
7475
7809
  setHoverColor(c: string): void;
@@ -7499,8 +7833,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7499
7833
  import { StackedMaps } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7500
7834
  import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
7501
7835
  import type { Path, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
7502
- import type { Space, Door, PointOfInterest, MapObject, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7836
+ import type { Space, Door, PointOfInterest, MapObject, Node, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7503
7837
  import { type GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
7838
+ import { FloorStackObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-object';
7504
7839
  export class GeojsonApiMapObject extends PubSub<{
7505
7840
  'floor-change': {
7506
7841
  reason?: TFloorChangeReason;
@@ -7519,18 +7854,21 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7519
7854
  path: Path;
7520
7855
  };
7521
7856
  }> {
7522
- /** Floors sorted in order of elevation */
7523
- floors: FloorObject[];
7524
- /** Map of floors by elevation. Floor elevation does not always match index or is not always contiguous. */
7525
- floorsByElevation: Map<number, FloorObject>;
7857
+ floorStacksById: Map<string, FloorStackObject>;
7858
+ floorsById: Map<string, FloorObject>;
7526
7859
  currentFloorId: string;
7860
+ currentFloorStackId: string;
7527
7861
  id: string;
7528
7862
  renderer: RendererCore;
7529
7863
  api: GeoJsonApi;
7530
7864
  mvf: ParsedMVF;
7531
7865
  styleMap: AggregatedStyleMap;
7532
7866
  StackedMaps: StackedMaps;
7867
+ get currentFloorStack(): FloorStackObject;
7868
+ setFloorStack(floorStackId: string): void;
7533
7869
  get currentFloor(): FloorObject;
7870
+ /** @deprecated use `currentFloorStack.floorObjects` or `floorsById` instead */
7871
+ get floors(): FloorObject[];
7534
7872
  setFloor(floorId: string, reason?: TFloorChangeReason): void;
7535
7873
  Models: {
7536
7874
  add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
@@ -7581,7 +7919,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7581
7919
  };
7582
7920
  remove: (entityIds: string[]) => void;
7583
7921
  };
7584
- constructor(id: string, mvf: any, styleMap: AggregatedStyleMap, options: TShow3DMapOptions | undefined, api: GeoJsonApi);
7922
+ constructor(id: string, mapDataInternal: MapDataInternal | undefined, options: TShow3DMapOptions | undefined, api: GeoJsonApi);
7585
7923
  }
7586
7924
  }
7587
7925
 
@@ -7590,14 +7928,26 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/label' {
7590
7928
  /**
7591
7929
  * Class representing a label on the {@link MapView}.
7592
7930
  *
7593
- * Labels are used to provide additional information on the map.
7931
+ * Labels contain text and an image that are anchored to a specific point on the map. They automatically rotate and show and hide based on priority and zoom level.
7932
+ * Use them to inform users about location names, points of interest and more!
7933
+ *
7934
+ * Effective use of labels allows an app to convey additional information to the user.
7935
+ * For example labels can be used to show room names, important points of interest, main entrances or any other piece of contextual information that is useful to the user.
7936
+ *
7937
+ * Refer to the [Labels Guide](https://developer.mappedin.com/web-sdk/labels) for more information and interactive examples.
7594
7938
  */
7595
7939
  export class Label {
7596
7940
  /**
7597
7941
  * The label's id
7598
7942
  */
7599
7943
  readonly id: string;
7944
+ /**
7945
+ * The label's text
7946
+ */
7600
7947
  readonly text: string;
7948
+ /**
7949
+ * The target object where the label is anchored.
7950
+ */
7601
7951
  readonly target: Space | Door | Coordinate | PointOfInterest | MapObject | Node;
7602
7952
  /**
7603
7953
  * @internal
@@ -7624,9 +7974,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/label' {
7624
7974
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/marker' {
7625
7975
  import type { Coordinate, Door, Node, Space } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7626
7976
  /**
7627
- * Class representing a marker on the {@link MapView}.
7977
+ * Mappedin JS allows adding and removing Markers on a map using the {@link Markers} class. Markers are elements containing HTML that Mappedin JS anchors to a {@link Door}, {@link Space}, {@link Coordinate} or {@link Node}.
7978
+ * They are automatically rotated and repositioned when the camera moves.
7628
7979
  *
7629
- * Markers are used to indicate a specific location on the map.
7980
+ * Refer to the [Markers Guide](https://developer.mappedin.com/web-sdk/markers) for more information and interactive examples.
7630
7981
  */
7631
7982
  export class Marker {
7632
7983
  /**
@@ -7704,6 +8055,18 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/image' {
7704
8055
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/model' {
7705
8056
  /**
7706
8057
  * Class representing a 3D model on the {@link MapView}.
8058
+ *
8059
+ * Adding 3D models to a map can be a great way to represent landmarks to help users find key locations. They could also be used to show the location of assets or represent furniture to provide a rich indoor layout.
8060
+
8061
+ * Mappedin JS supports models in Graphics Library Transmission Format (GLTF) and GL Transmission Format Binary (GLB) format. Models with nested meshes are not supported and should not be used.
8062
+ *
8063
+ * 3D Models can be added to a {@link Coordinate}, {@link Door} or {@link Space}.
8064
+ * When adding the same model to multiple locations at the same time always use an array instead of calling the add method multiple times.
8065
+ * This allows the SDK to re-use the same instance of the model to reduce RAM usage and rendering time, resulting in better performance.
8066
+ *
8067
+ * Models are added using {@link Models.add}.
8068
+ *
8069
+ * Refer to the [3D Models Guide](https://developer.mappedin.com/web-sdk/3d-models) for more information and interactive examples.
7707
8070
  */
7708
8071
  export class Model {
7709
8072
  /**
@@ -7741,7 +8104,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path' {
7741
8104
  /**
7742
8105
  * Class representing a path on the {@link MapView}.
7743
8106
  *
7744
- * Paths are used to indicate a route on the map.
8107
+ * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
7745
8108
  */
7746
8109
  export class Path {
7747
8110
  /**
@@ -7771,6 +8134,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/shape' {
7771
8134
  /**
7772
8135
  * Class representing GeoJSON shape on the {@link MapView}.
7773
8136
  *
8137
+ * Refer to the [Shapes Guide](https://developer.mappedin.com/web-sdk/shapes) for more information and interactive examples.
7774
8138
  */
7775
8139
  export class Shape {
7776
8140
  /**
@@ -7803,12 +8167,25 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7803
8167
  import type { TCameraAnimationOptions, TCameraFocusOnTarget, TCameraTarget, TFocusOnOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
7804
8168
  import type { InsetPadding, RendererCore } from '@mappedin/core-sdk';
7805
8169
  import { Coordinate } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8170
+ /**
8171
+ * The Camera class is used to control the camera's position, pitch, bearing, and zoom level. It can also be used to focus
8172
+ * on one or more locations on the map. The camera can be repositioned instantly or animated to a new position.
8173
+ *
8174
+ * This class is accessed using {@link MapView.Camera}
8175
+ *
8176
+ * Refer to the [Camera Guide](https://developer.mappedin.com/web-sdk/camera) for more information and interactive examples.
8177
+ */
7806
8178
  export class Camera {
7807
8179
  #private;
7808
8180
  /**
7809
8181
  * @internal
7810
8182
  */
7811
8183
  constructor(rendererCore: RendererCore);
8184
+ /**
8185
+ * Define an area of the screen that is safe for the camera. Anything outside the safe area is assumed to be covered in some way. The camera will not place any map elements there when calling {@link Camera.focusOn}.
8186
+ *
8187
+ * @param padding The padding in pixels.
8188
+ */
7812
8189
  setScreenOffsets(padding: InsetPadding): void;
7813
8190
  get screenOffsets(): InsetPadding;
7814
8191
  /**
@@ -7816,7 +8193,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7816
8193
  */
7817
8194
  get panMode(): "default" | "elevation";
7818
8195
  /**
7819
- * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan along the ground.
8196
+ * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan in all directions.
7820
8197
  * @experimental
7821
8198
  * @param panMode The new pan mode.
7822
8199
  */
@@ -7828,7 +8205,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7828
8205
  * @param options Optional settings for focusing the camera.
7829
8206
  * @example
7830
8207
  * // Focus on a single space
7831
- * map.Camera.focusOn(space, { minZoomLevel: 5, duration: 1000 });
8208
+ * mapView.Camera.focusOn(space, { minZoomLevel: 5, duration: 1000 });
7832
8209
  */
7833
8210
  focusOn(target: TCameraFocusOnTarget, options?: TFocusOnOptions): Promise<void>;
7834
8211
  /**
@@ -7836,14 +8213,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7836
8213
  * @param target The target configuration for the camera.
7837
8214
  * @param options Optional settings for the camera animation.
7838
8215
  * @example
7839
- * map.Camera.animateTo({ center: coordinate, zoomLevel: 10 }, { duration: 500 });
8216
+ * mapView.Camera.animateTo({ center: coordinate, zoomLevel: 10 }, { duration: 500 });
7840
8217
  */
7841
8218
  animateTo(target: TCameraTarget, options?: TCameraAnimationOptions): Promise<void>;
7842
8219
  /**
7843
8220
  * Sets the camera to a specified target without animation.
7844
8221
  * @param target The target configuration for the camera.
7845
8222
  * @example
7846
- * map.Camera.set({ center: coordinate, zoomLevel: 10 });
8223
+ * mapView.Camera.set({ center: coordinate, zoomLevel: 10 });
7847
8224
  */
7848
8225
  set(target: TCameraTarget): void;
7849
8226
  /**
@@ -7902,7 +8279,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7902
8279
  * Update the minimum zoom level of the camera in mercator zoom levels.
7903
8280
  * @param zoomLevel The new minimum zoom level.
7904
8281
  * @see https://wiki.openstreetmap.org/wiki/Zoom_levels
7905
- * @default 22
7906
8282
  */
7907
8283
  setMinZoomLevel: (zoomLevel: number) => void;
7908
8284
  /**
@@ -7915,7 +8291,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7915
8291
  * Update the maximum zoom level of the camera in mercator zoom levels.
7916
8292
  * @param zoomLevel The new maximum zoom level.
7917
8293
  * @see https://wiki.openstreetmap.org/wiki/Zoom_levels
7918
- * @default 12
8294
+ * @default 22
8295
+ * @max 24
8296
+ * @min 0
7919
8297
  */
7920
8298
  setMaxZoomLevel: (zoomLevel: number) => void;
7921
8299
  /**
@@ -7944,6 +8322,19 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels' {
7944
8322
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
7945
8323
  import type { PointOfInterest, MapObject } from '@mappedin/mappedin-js/mappedin-js/src';
7946
8324
  import type { Space, Door, Coordinate, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8325
+ /**
8326
+ * Class used to add and remove a {@link Label} on the {@link MapView}.
8327
+ *
8328
+ * Labels contain text and an image that are anchored to a specific point on the map. They automatically rotate and show and hide based on priority and zoom level.
8329
+ * Use them to inform users about location names, points of interest and more!
8330
+ *
8331
+ * Effective use of labels allows an app to convey additional information to the user.
8332
+ * For example labels can be used to show room names, important points of interest, main entrances or any other piece of contextual information that is useful to the user.
8333
+ *
8334
+ * This class is accessed using {@link MapView.Labels}.
8335
+ *
8336
+ * Refer to the [Labels Guide](https://developer.mappedin.com/web-sdk/labels) for more information and interactive examples.
8337
+ */
7947
8338
  export class Labels {
7948
8339
  #private;
7949
8340
  /**
@@ -7972,7 +8363,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels' {
7972
8363
  * @returns {Label | undefined} The created label, or undefined if creation failed.
7973
8364
  * @example
7974
8365
  *
7975
- * map.Labels.add(space, 'Welcome', { appearance: { color: 'blue' } });
8366
+ * mapView.Labels.add(space, 'Welcome', { appearance: { color: 'blue' } });
7976
8367
  */
7977
8368
  add(target: Space | Door | Coordinate | PointOfInterest | MapObject | Node, text: string, options?: TAddLabelOptions | undefined): Label;
7978
8369
  /**
@@ -7982,7 +8373,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels' {
7982
8373
  *
7983
8374
  * @example
7984
8375
  * // Add all the labels to the map
7985
- * map.Labels.all();
8376
+ * mapView.Labels.all();
7986
8377
  */
7987
8378
  all(): Label[];
7988
8379
  /**
@@ -7997,7 +8388,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels' {
7997
8388
  * Removes all the labels ({@link Label}) from the map.
7998
8389
  *
7999
8390
  * @example
8000
- * map.Labels.removeAll();
8391
+ * mapView.Labels.removeAll();
8001
8392
  */
8002
8393
  removeAll(): Label[];
8003
8394
  }
@@ -8010,6 +8401,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers' {
8010
8401
  import { Marker } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
8011
8402
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
8012
8403
  import type { Space, Door, Coordinate, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8404
+ /**
8405
+ * Mappedin JS allows adding and removing Markers on a map. Markers are elements containing HTML that Mappedin JS anchors to a {@link Door}, {@link Space}, {@link Coordinate} or {@link Node}.
8406
+ * They are automatically rotated and repositioned when the camera moves.
8407
+ *
8408
+ * This class is accessed using {@link MapView.Markers}.
8409
+ *
8410
+ * Refer to the [Markers Guide](https://developer.mappedin.com/web-sdk/markers) for more information and interactive examples.
8411
+ */
8013
8412
  export class Markers {
8014
8413
  #private;
8015
8414
  /**
@@ -8037,8 +8436,8 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers' {
8037
8436
  * @param options Optional additional options for the {@link Marker}.
8038
8437
  * @returns {Marker | undefined} The created {@link Marker}, or undefined if creation failed.
8039
8438
  * @example
8040
- * // Add an interactive {@link Marker} to the map with custom HTML content.
8041
- * map.Markers.add(coordinate, '<div>Marker Content</div>', { interactive: true });
8439
+ * // Add an interactive Marker to the map with custom HTML content.
8440
+ * mapView.Markers.add(coordinate, '<div>Marker Content</div>', { interactive: true });
8042
8441
  */
8043
8442
  add(target: Space | Door | Coordinate | Node, html: string, options?: TAddMarkerOptions): Marker;
8044
8443
  /**
@@ -8053,7 +8452,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers' {
8053
8452
  * Remove all the markers from the map.
8054
8453
  *
8055
8454
  * @example
8056
- * map.Markers.removeAll();
8455
+ * mapView.Markers.removeAll();
8057
8456
  */
8058
8457
  removeAll(): Marker[];
8059
8458
  /**
@@ -8061,7 +8460,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers' {
8061
8460
  * @param marker The {@link Marker} which should be removed.
8062
8461
  * @param target The new target object ({@link Space}, {@link Door}, or {@link Coordinate}) for the marker.
8063
8462
  * @example
8064
- * const marker = map.Markers.add(coordinate, '<div>Marker Content</div>');
8463
+ * const marker = mapView.Markers.add(coordinate, '<div>Marker Content</div>');
8065
8464
  * mapView.Markers.setPosition(marker, newCoordinate);
8066
8465
  */
8067
8466
  setPosition(marker: Marker, target: Space | Door | Coordinate | Node): void;
@@ -8072,7 +8471,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers' {
8072
8471
  * @param options Optional additional options for the animation.
8073
8472
  * @returns {Promise<void>} A promise that resolves when the animation is complete.
8074
8473
  * @example
8075
- * const marker = map.Markers.add(coordinate, '<div>Marker Content</div>');
8474
+ * const marker = mapView.Markers.add(coordinate, '<div>Marker Content</div>');
8076
8475
  * mapView.Markers.animateTo(marker, newCoordinate, { duration: 1000 });
8077
8476
  */
8078
8477
  animateTo(marker: Marker, target: Space | Door | Coordinate | Node, options?: TAnimationOptions): Promise<void>;
@@ -8085,6 +8484,19 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models' {
8085
8484
  import type { TAddModelOptions, TAddModel } from '@mappedin/mappedin-js/mappedin-js/src/types';
8086
8485
  import { Model } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
8087
8486
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
8487
+ /**
8488
+ * Adding 3D models to a map can be a great way to represent landmarks to help users find key locations. They could also be used to show the location of assets or represent furniture to provide a rich indoor layout.
8489
+
8490
+ * Mappedin JS supports models in Graphics Library Transmission Format (GLTF) and GL Transmission Format Binary (GLB) format. Models with nested meshes are not supported and should not be used.
8491
+ *
8492
+ * 3D Models can be added to a {@link Coordinate}, {@link Door} or {@link Space}.
8493
+ * When adding the same model to multiple locations at the same time always use an array instead of calling the add method multiple times.
8494
+ * This allows the SDK to re-use the same instance of the model to reduce RAM usage and rendering time, resulting in better performance.
8495
+ *
8496
+ * This class is accessed using {@link MapView.Models}.
8497
+ *
8498
+ * Refer to the [3D Models Guide](https://developer.mappedin.com/web-sdk/3d-models) for more information and interactive examples.
8499
+ */
8088
8500
  export class Models {
8089
8501
  #private;
8090
8502
  /**
@@ -8113,7 +8525,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models' {
8113
8525
  * @returns {Model | undefined} The created {@link Model}, or undefined if creation failed.
8114
8526
  * @example
8115
8527
  * // Add a {@link Model} to the map.
8116
- * map.Models.add(coordinate);
8528
+ * mapView.Models.add(coordinate);
8117
8529
  */
8118
8530
  add(models: TAddModel | TAddModel[], options: TAddModelOptions): Model[];
8119
8531
  /**
@@ -8128,7 +8540,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models' {
8128
8540
  * Remove all the models from the map.
8129
8541
  *
8130
8542
  * @example
8131
- * map.MOdels.removeAll();
8543
+ * mapView.Models.removeAll();
8132
8544
  */
8133
8545
  removeAll(): Model[];
8134
8546
  }
@@ -8141,6 +8553,19 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths' {
8141
8553
  import type { TAddPathOptions } from '@mappedin/mappedin-js/mappedin-js/src';
8142
8554
  import { Path } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
8143
8555
  import type { Coordinate } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8556
+ /**
8557
+ * While {@link Navigation} provides a complete start and end navigation illustration, it may be desired to draw just the path. This can be done using Paths.
8558
+ *
8559
+ * Paths is accessed using {@link MapView.Paths}.
8560
+ *
8561
+ * Paths can be drawn from one coordinate to another using {@link Paths.add}. If using just two coordinates, the path will be drawn straight between the two points.
8562
+ * This may work for some scenarios, but in most cases an app will need to show the user their walking path, going through doors and avoiding walls and other objects.
8563
+ * Such a path of coordinates can be created by calling the {@link MapData.getDirections()} method, passing in a start and end {@link TNavigationTarget}. Note that a Space requires an entrance to be used as a target.
8564
+ *
8565
+ * The width of the path is set using the {@link TAddPathOptions.nearRadius} and {@link TAddPathOptions.farRadius} parameters. These values are in meters. `nearRadius` is the path width used at the lowest zoom level closest to the ground and `farRadius` is used at the highest zoom level. Additional path styles are outlined later in this guide in the Path Styles section.
8566
+ *
8567
+ * Refer to the [Drawing a Path](https://developer.mappedin.com/web-sdk/wayfinding#drawing-a-path) in the Wayfinding Guide for more information and interactive examples.
8568
+ */
8144
8569
  export class Paths {
8145
8570
  #private;
8146
8571
  /**
@@ -8166,21 +8591,21 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths' {
8166
8591
  * @param options Optional additional option
8167
8592
  * @example
8168
8593
  * // Add a red path to the map
8169
- * map.Paths.add(coordinate, { color: '#ff0000' });
8594
+ * mapView.Paths.add(coordinate, { color: '#ff0000' });
8170
8595
  */
8171
8596
  add(coordinate: Coordinate[], options?: TAddPathOptions): Path;
8172
8597
  /**
8173
8598
  * Removes a specific path ({@link Path}) from the map.
8174
8599
  * @param path The path to be removed.
8175
8600
  * @example
8176
- * map.Paths.remove(path);
8601
+ * mapView.Paths.remove(path);
8177
8602
  */
8178
8603
  remove(path: Path): void;
8179
8604
  /**
8180
8605
  * Removes all paths ({@link Path}) from the map.
8181
8606
  *
8182
8607
  * @example
8183
- * map.Paths.removeAll();
8608
+ * mapView.Paths.removeAll();
8184
8609
  */
8185
8610
  removeAll(): Path[];
8186
8611
  }
@@ -8332,6 +8757,17 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation/index' {
8332
8757
  destinationColor?: string;
8333
8758
  };
8334
8759
  };
8760
+ /**
8761
+ * When a user needs to get from point A to point B, drawing a path on the map helps them to navigate to their destination. It can help them to visualize the route they'll need to take, like a good treasure map.
8762
+
8763
+ * Navigation is a helper class to display wayfinding easily on the map. Functionality of Navigation could be replicated by drawing the paths using {@link Paths} and adding well designed tooltips at connection points.
8764
+ *
8765
+ * This class is accessed using {@link MapView.Navigation}.
8766
+ *
8767
+ * {@link Navigation.draw} allows for easily drawing multiple components that make up a wayfinding illustration. It shows a human figure to mark the start point, a path with animated directional arrows, pulses in the direction of travel and a pin to mark the destination. Each of these components can be customized to match an app's style.
8768
+ *
8769
+ * Refer to the [Drawing Navigation](https://developer.mappedin.com/web-sdk/wayfinding#drawing-navigation) in the Wayfinding Guide for more information and interactive examples.
8770
+ */
8335
8771
  export class Navigation {
8336
8772
  #private;
8337
8773
  /**
@@ -8457,12 +8893,29 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style' {
8457
8893
 
8458
8894
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor' {
8459
8895
  import { type RendererCore, type Position } from '@mappedin/core-sdk';
8896
+ /**
8897
+ * The outdoor map shown around the Mappedin indoor map can be manipulated to show or hide additional information. It can be used to add GeoJSON based geometry, images, deck.gl layers and more.
8898
+ *
8899
+ * The outdoor map is accessed using {@link MapView.Outdoor.map}, which returns a maplibregl.Map object.
8900
+ * [MapLibre GL JS](https://maplibre.org/maplibre-gl-js/docs/) is a TypeScript library that uses WebGL to render interactive maps from vector tiles in a browser. The Mappedin SDK makes use of it to display the outdoor map.
8901
+ *
8902
+ * By providing access to the MapLibre map used to draw the outdoor map, the Mappedin SDK enables developers to draw on and manipulate the outdoor map.
8903
+ * Developers can use most capabilities of MapLibre GL JS with key exceptions being Interactivity and Camera, which are not available.
8904
+ *
8905
+ * User touch and click events are handled by Mappedin JS and are not propagated to the outdoor map layer. Camera movement is also handled by Mappedin JS and cannot be manipulated using MapLibre controls.
8906
+ *
8907
+ * Refer to the [Outdoor Map Guide](https://developer.mappedin.com/web-sdk/outdoor-map) for more information and interactive examples.
8908
+ */
8460
8909
  export default class Outdoor {
8461
8910
  #private;
8462
8911
  /**
8463
8912
  * @internal
8464
8913
  */
8465
8914
  constructor(core: RendererCore, hiddenOutdoorGeometry?: [Position, string[]][]);
8915
+ /**
8916
+ * Set the style of the outdoor map. Use one of [Mappedin's predefined styles](https://developer.mappedin.com/web-sdk/outdoor-map#styles) or link to a custom style.
8917
+ * @param style {any}
8918
+ */
8466
8919
  setStyle(style: any): void;
8467
8920
  /**
8468
8921
  * Returns a Maplibre map for advanced usage.
@@ -8470,8 +8923,8 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor' {
8470
8923
  * @returns {object} Maplibre map instance
8471
8924
  *
8472
8925
  * Limitations:
8473
- * - Maplibre interaction events are not supported; use SDK interaction events.
8474
- * - Maplibre markers and labels may overlap as they are not integrated with the SDK collision engine.
8926
+ * - Maplibre interaction events are not supported, use Mappedin JS interaction events.
8927
+ * - Maplibre markers and labels may overlap as they are not integrated with the Mappedin JS collision engine.
8475
8928
  */
8476
8929
  get map(): import("@packages/internal/outdoor-context-v4").Map | undefined;
8477
8930
  /**
@@ -8483,16 +8936,16 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor' {
8483
8936
  */
8484
8937
  get visible(): boolean;
8485
8938
  /**
8486
- * Show the outdoor view.
8939
+ * Show the outdoor map.
8487
8940
  */
8488
8941
  show(): void;
8489
8942
  /**
8490
- * Hide the outdoor view.
8943
+ * Hide the outdoor map.
8491
8944
  * @param excludedStyleLayerIds {string[]}
8492
8945
  */
8493
8946
  hide(excludedStyleLayerIds?: string[]): void;
8494
8947
  /**
8495
- * Set outdoor view opacity
8948
+ * Set outdoor view opacity.
8496
8949
  * @param targetOpacity {number | 'initial'}
8497
8950
  * @param excludedStyleLayerIds {string[]}
8498
8951
  */
@@ -8505,6 +8958,25 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images' {
8505
8958
  import { Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
8506
8959
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
8507
8960
  import type { Space, Door, Coordinate } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8961
+ /**
8962
+ * Images can enhance the fidelity of an indoor map. They can be used to add custom branding, highlight important features, or provide additional information to users.
8963
+ * Images can be placed on any {@link Door}, {@link Space}, or {@link Coordinate} on the map and given a verticalOffset to control the height at which the image is displayed.
8964
+ *
8965
+ * This class is accessed using {@link MapView.Images}.
8966
+ *
8967
+ * JPEG and PNG images are supported. It's important to consider the size of all unique image files displayed on a map at one time.
8968
+ * Using many unique images may cause instability on mobile devices with limited GPU memory. The Mappedin SDK will cache and reuse images that have the same URL, resulting in reduced memory usage.
8969
+ *
8970
+ * The following calculations illustrates how much memory is used for a given image:
8971
+ *
8972
+ * Formula: `width * height * 4 bytes/pixel = memory used`
8973
+ *
8974
+ * 512 x 512 Pixel Image: `512px * 512px * 4 bytes/pixel = 1MB`
8975
+ *
8976
+ * 4096 x 4096 Pixel Image: `4096px * 4096px * 4 bytes/pixel = 64MB`
8977
+ *
8978
+ * Refer to the [Images Guide](https://developer.mappedin.com/web-sdk/images-textures) for more information and interactive examples.
8979
+ */
8508
8980
  export class Images {
8509
8981
  #private;
8510
8982
  /**
@@ -8533,7 +9005,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images' {
8533
9005
  * @returns {Image | undefined} The created {@link Image}, or undefined if creation failed.
8534
9006
  * @example
8535
9007
  * // Add an interactive {@link Image} to the map with custom HTML content.
8536
- * map.Images.add(coordinate, '<div>Image Content</div>', { interactive: true });
9008
+ * mapView.Images.add(coordinate, '<div>Image Content</div>', { interactive: true });
8537
9009
  */
8538
9010
  add(target: Space | Door | Coordinate, url: string, options: TAddImageOptions): Image;
8539
9011
  /**
@@ -8548,7 +9020,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images' {
8548
9020
  * Remove all the images from the map.
8549
9021
  *
8550
9022
  * @example
8551
- * map.Images.removeAll();
9023
+ * mapView.Images.removeAll();
8552
9024
  */
8553
9025
  removeAll(): Image[];
8554
9026
  }
@@ -8849,6 +9321,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/search/external' {
8849
9321
  import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
8850
9322
  import type { InternalSearch, SearchOptions, SuggestOptions } from '@mappedin/mappedin-js/mappedin-js/src/search/internal';
8851
9323
  import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
9324
+ /**
9325
+ * Search allows users to search for locations, categories, and other points of interest within the venue.
9326
+ *
9327
+ * Refer to the [Search Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-search) for more information and interactive examples.
9328
+ */
8852
9329
  export class Search {
8853
9330
  #private;
8854
9331
  /**
@@ -8863,7 +9340,16 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/search/external' {
8863
9340
  enabled?: boolean;
8864
9341
  });
8865
9342
  /**
8866
- * Searches for places, locations, and categories.
9343
+ * Use query to search for locations based on a string input:
9344
+ *
9345
+ * - {@link EnterpriseLocation}: Specific places such as stores, restaurants, or washrooms.
9346
+ * - {@link EnterpriseCategory}: Groups of locations, such as "Food Court" or "Electronics."
9347
+ * - {@link Places}: Any main objects that can be searched for such as Space, Door, Point of Interest
9348
+ *
9349
+ * Search query returns a list of matching {@ link SearchResults} based on the input string.
9350
+ *
9351
+ * {@link SearchResults} include information about the type of match, the score (relevance), and detailed metadata about the matching items.
9352
+ *
8867
9353
  * @param term - The search term.
8868
9354
  * @param options - The search options.
8869
9355
  * @returns The search results.
@@ -8875,7 +9361,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/search/external' {
8875
9361
  */
8876
9362
  query(term: string, options?: SearchOptions): ReturnType<typeof InternalSearch.prototype.search>;
8877
9363
  /**
8878
- * Suggests the names of places, locations, and categories.
9364
+ * Suggests the names of places, locations, and categories based on partial input. This is useful for creating an autocomplete feature for a search bar.
8879
9365
  * @param term - The search term.
8880
9366
  * @param options - The suggest options.
8881
9367
  * @returns The search suggestions.
@@ -8979,7 +9465,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/analytics/customer' {
8979
9465
  /**
8980
9466
  * Captures an analytic event with a custom target and query payload.
8981
9467
  *
8982
- * @param target - The event name or target can be .
9468
+ * @param target - The event name or target can be one of: `$select-location`, `$select-category`, `$query-suggest`, `$query-search`
8983
9469
  * @param query - The payload associated with the event.
8984
9470
  * @returns A promise that resolves to the server response or void.
8985
9471
  */
@@ -10310,17 +10796,22 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/exporter/exporter' {
10310
10796
  }
10311
10797
 
10312
10798
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object' {
10313
- import type { ParsedMVF } from '@mappedin/mvf';
10799
+ import type { FloorProperties as MVFFloor, ParsedMVF } from '@mappedin/mvf';
10314
10800
  import type { RendererCore } from '@mappedin/core-sdk';
10315
10801
  import type { AggregatedStyleMap } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils';
10316
10802
  import type { TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
10317
- export class FloorObject {
10803
+ export class FloorObject implements MVFFloor {
10318
10804
  id: string;
10319
- name: string;
10805
+ name?: string;
10320
10806
  elevation: number;
10321
10807
  containerId: string;
10808
+ externalId: string;
10809
+ metadata?: Partial<Record<string, unknown>> | undefined;
10810
+ shortName?: string | undefined;
10811
+ subtitle?: string | undefined;
10322
10812
  layers: Map<string, string>;
10323
- constructor(parentId: string, floor: ParsedMVF['map.geojson'][0], renderer: RendererCore, options: TShow3DMapOptions, mvf: ParsedMVF, styleMap?: AggregatedStyleMap);
10813
+ floorStackId: string;
10814
+ constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
10324
10815
  load: () => this;
10325
10816
  }
10326
10817
  }
@@ -10366,6 +10857,28 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
10366
10857
  export function tweenToPromise(tween: Tween): Promise<void>;
10367
10858
  }
10368
10859
 
10860
+ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-object' {
10861
+ import type { RendererCore } from '@mappedin/core-sdk';
10862
+ import type { FloorId, FloorStack as MVFFloorStack } from '@mappedin/mvf';
10863
+ import type { FloorObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object';
10864
+ export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors'> {
10865
+ id: MVFFloorStack['id'];
10866
+ externalId: MVFFloorStack['externalId'];
10867
+ name: MVFFloorStack['name'];
10868
+ type: MVFFloorStack['type'];
10869
+ floorIds: FloorId[];
10870
+ /** Sorted floor objects by elevation */
10871
+ floorObjects: FloorObject[];
10872
+ floorObjectsByElevation: Map<number, FloorObject>;
10873
+ metadata?: MVFFloorStack['metadata'];
10874
+ footprint?: MVFFloorStack['footprint'];
10875
+ containerId: string;
10876
+ constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore);
10877
+ get defaultFloor(): FloorObject;
10878
+ addFloor(floor: FloorObject): void;
10879
+ }
10880
+ }
10881
+
10369
10882
  declare module '@mappedin/mappedin-js/geojson/src/components/style' {
10370
10883
  import type { LineStyle } from '@mappedin/mappedin-js/geojson/src/renderer';
10371
10884
  export const DEFAULT_COLOR = "#ffffff";
@@ -11173,7 +11686,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/camera/constants' {
11173
11686
  export const ZRANGE = 100;
11174
11687
  export const WHEEL_ZOOM_MULTIPLIER = 10000;
11175
11688
  export const MIN_MERCATOR_ZOOM_LEVEL = 0;
11176
- export const MAX_MERCATOR_ZOOM_LEVEL = 22;
11689
+ export const MAX_MERCATOR_ZOOM_LEVEL = 24;
11177
11690
  export const BLOCK_MERCATOR_ZOOM_LEVEL = 17;
11178
11691
  export const ROOM_MERCATOR_ZOOM_LEVEL = 20;
11179
11692
  export const EVENTS: readonly ["change", "pan-start", "pan-end", "rotate-start", "rotate-end", "zoom-start", "zoom-end", "multi-start", "multi-end", "multi-cancel", "pedestal-start", "pedestal-change", "pedestal-end", "user-pan-start", "user-pedestal-start", "user-rotate-start", "user-dolly-start", "user-zoom-start", "user-tilt-start", "user-pan-end", "user-pedestal-end", "user-rotate-end", "user-dolly-end", "user-zoom-end", "user-tilt-end", "position-updated", "zoom-updated", "tilt-updated", "rotation-updated"];