@mappedin/react-sdk 6.0.1-beta.36 → 6.0.1-beta.38

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.
@@ -65,7 +65,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
65
65
  import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
66
66
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
67
67
  export type { Text3D as Text3DApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
68
- import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState } from '@mappedin/react-sdk/geojson/src';
68
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState, WatermarkUpdateOptions } from '@mappedin/react-sdk/geojson/src';
69
69
  import { enableTestMode, preloadFont } from '@mappedin/react-sdk/geojson/src';
70
70
  export type { PubSub } from '@packages/internal/common/pubsub';
71
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
@@ -76,6 +76,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
76
76
  import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
77
77
  import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
78
78
  export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
79
+ /**
80
+ * @internal
81
+ * @hidden
82
+ * Must be called before {@link show3dMap}
83
+ */
84
+ export function __setWatermarkOnClickFn(fn: () => void): void;
79
85
  /**
80
86
  * Represents all the available antialiasing options.
81
87
  */
@@ -97,7 +103,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
97
103
  * @interface
98
104
  * Options for the watermark.
99
105
  */
100
- export type TWatermarkOptions = Omit<WatermarkOptions, 'visible'>;
106
+ export type TWatermarkOptions = WatermarkUpdateOptions;
101
107
  /**
102
108
  * Options for showing a 3D map.
103
109
  *
@@ -152,6 +158,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
152
158
  * If it is not specified, it will default to the level that fits the map bounds.
153
159
  */
154
160
  zoomLevel?: number;
161
+ /**
162
+ * The screen offsets of the map, in screen pixels.
163
+ */
164
+ screenOffsets?: InsetPadding;
155
165
  /**
156
166
  * Whether or not to automatically add labels and interactivity to the map. Set to
157
167
  * false if you need finer control over what is labelled or interactive.
@@ -278,6 +288,43 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
278
288
  * @internal
279
289
  */
280
290
  imagePlacementOptions?: TImagePlacementOptions;
291
+ /**
292
+ * Enable or disable the flip of images to face the camera.
293
+ * @default true
294
+ */
295
+ flipImagesToFaceCamera?: boolean;
296
+ /**
297
+ * Automatically inject necessary styles into the document head. If `false`, the `index.css` file needs to be manually imported.
298
+ *
299
+ * ```ts
300
+ * import '@mappedin/mappedin-js/lib/index.css';
301
+ * ...
302
+ * await show3dMap(...);
303
+ * ```
304
+ *
305
+ * @default true
306
+ */
307
+ injectStyles?: boolean;
308
+ /**
309
+ * @hidden
310
+ * @internal
311
+ */
312
+ onWebGLContextCreationError?: (event: Event) => void;
313
+ /**
314
+ * @hidden
315
+ * @internal
316
+ */
317
+ onWebGLContextLost?: (event: Event) => void;
318
+ /**
319
+ * @hidden
320
+ * @internal
321
+ */
322
+ onWebGLContextRestored?: (event: Event) => void;
323
+ /**
324
+ * @hidden
325
+ * @internal
326
+ */
327
+ onWebGLRendererError?: (error: Error) => void;
281
328
  };
282
329
  /**
283
330
  * @internal
@@ -361,7 +408,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
361
408
  export type * from 'geojson';
362
409
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, } from '@mappedin/react-sdk/mappedin-js/src/types';
363
410
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
364
- export type { Label, Marker, Path, Shape, CameraTransform, Model, Image, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
411
+ export type { Label, Marker, Path, PathSegment, Shape, CameraTransform, Model, Image, Text3D, } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
365
412
  export type { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
366
413
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
367
414
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
@@ -750,6 +797,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
750
797
  readonly analyticsBaseUri: string;
751
798
  readonly tileServerUri: string;
752
799
  };
800
+ /**
801
+ * Get an access token for use with Mappedin's API.
802
+ *
803
+ * @returns {string} The current access token
804
+ */
805
+ getAccessToken(): Promise<string | undefined>;
806
+ /**
807
+ * Get a SAS token for fetching images on non-public maps.
808
+ *
809
+ * @returns {string} The SAS token
810
+ */
811
+ getSasToken(): Promise<string | undefined>;
753
812
  /**
754
813
  * The name of the map.
755
814
  *
@@ -939,7 +998,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
939
998
  * @param options Optional parameters for getting directions.
940
999
  * @returns Directions from the start to the destination point.
941
1000
  * @example
942
- * const directions = await map.getDirections(space1, space2);
1001
+ * const directions = map.getDirections(space1, space2);
943
1002
  */
944
1003
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
945
1004
  /**
@@ -950,7 +1009,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
950
1009
  * @param options Optional parameters for getting directions.
951
1010
  * @returns Directions from the start to the destination points.
952
1011
  * @example
953
- * const directions = await map.getDirections(space1, [space2, space3]);
1012
+ * const directions = map.getDirections(space1, [space2, space3]);
954
1013
  */
955
1014
  getDirectionsMultiDestination: (from: TNavigationTarget, to: (TNavigationTarget | TNavigationTarget[])[], options?: TGetDirectionsOptions) => Directions[] | undefined;
956
1015
  /**
@@ -988,7 +1047,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
988
1047
  import type { TBlueDotEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot';
989
1048
  import type { TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src/types';
990
1049
  import type { Directions } from '@mappedin/react-sdk/mappedin-js/src';
991
- export type TFloorChangeReason = '' | 'blue-dot-floor-change' | 'stacked-maps-elevation-change' | 'navigation-connection-click';
1050
+ export type TFloorChangeReason = '' | 'blue-dot-floor-change' | 'stacked-maps-elevation-change' | 'navigation-connection-click' | 'dynamic-focus';
992
1051
  export type TClickPayload = {
993
1052
  /**
994
1053
  * The coordinate of the interaction.
@@ -1030,8 +1089,26 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1030
1089
  * The interactive facades which the user interaction passed through.
1031
1090
  */
1032
1091
  facades: Facade[];
1092
+ /**
1093
+ * Whether the user clicked on the Blue Dot.
1094
+ */
1095
+ blueDot: boolean;
1033
1096
  };
1034
1097
  export type THoverPayload = Omit<TClickPayload, 'pointerEvent'>;
1098
+ export type TFloorChangePayload = {
1099
+ /**
1100
+ * The floor that is being changed to.
1101
+ */
1102
+ floor: Floor;
1103
+ /**
1104
+ * The floor that is being changed from.
1105
+ */
1106
+ previousFloor: Floor;
1107
+ /**
1108
+ * The reason for the floor change.
1109
+ */
1110
+ reason?: TFloorChangeReason;
1111
+ };
1035
1112
  /**
1036
1113
  * Defines the structure and types of events emitted in the context of the map.
1037
1114
  */
@@ -1051,21 +1128,22 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1051
1128
  'camera-change': CameraTransform;
1052
1129
  /**
1053
1130
  * Emitted when a floor change starts.
1054
- *
1055
- * @property {Floor} floor - The floor being changed to.
1056
1131
  */
1057
- 'floor-change-start': {
1058
- floor: Floor;
1059
- };
1132
+ 'floor-change-start': TFloorChangePayload;
1060
1133
  /**
1061
1134
  * Emitted after the floor change is complete.
1135
+ */
1136
+ 'floor-change': TFloorChangePayload;
1137
+ /**
1138
+ * Only emitted when dynamic focus is enabled. Emitted when a different facade recieves
1139
+ * focus due to the camera moving. This always occurs when the active floor changes to
1140
+ * a different floor stack, but may also occur when the camera moves without the active
1141
+ * floor changing.
1062
1142
  *
1063
- * @property {string} [reason] - The reason for the floor change.
1064
- * @property {Floor} floor - The new active floor.
1143
+ * @property {Facade[]} facades - The facades that are in focus.
1065
1144
  */
1066
- 'floor-change': {
1067
- reason?: TFloorChangeReason;
1068
- floor: Floor;
1145
+ 'dynamic-focus-change': {
1146
+ facades: Facade[];
1069
1147
  };
1070
1148
  /**
1071
1149
  * Emitted when the outdoor view is fully loaded and displayed.
@@ -1134,6 +1212,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1134
1212
  markers: Marker[];
1135
1213
  labels: Label[];
1136
1214
  floors: Floor[];
1215
+ blueDot: boolean;
1137
1216
  };
1138
1217
  };
1139
1218
  }
@@ -1154,13 +1233,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1154
1233
  import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
1155
1234
  import Facade from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade';
1156
1235
  import type { MapDataRecords, EnterpriseMapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
1157
- 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, TilesetStyle } from '@mappedin/mvf';
1236
+ import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, Language, AreaCollection, TilesetStyle } from '@mappedin/mvf';
1158
1237
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
1159
1238
  import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
1160
1239
  import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
1161
1240
  import EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
1162
1241
  import { PubSub } from '@packages/internal/common';
1163
- import type { LanguagePack, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1242
+ import type { LanguagePack, LanguagePackRecords, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1164
1243
  import { type LocalePackUrls } from '@packages/internal/mvf-utils';
1165
1244
  import type { EnvControl, TGetMapDataOptions } from '@packages/internal/mvf-utils/mvf-utils';
1166
1245
  import type { TMapDataObjectTypes, TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -1229,9 +1308,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1229
1308
  doorsByNodeId: MapDataRecords['doorsByNodeId'];
1230
1309
  mvfLocationsBySpaceId: EnterpriseMapDataRecords['mvfLocationsBySpaceId'];
1231
1310
  locationIdsByNodeId: EnterpriseMapDataRecords['locationIdsByNodeId'];
1311
+ spaceIdsByNodeId: EnterpriseMapDataRecords['spaceIdsByNodeId'];
1232
1312
  mvfAnnotationsById: MapDataRecords['mvfAnnotationsById'];
1233
1313
  mvfConnectionsById: MapDataRecords['mvfConnectionsById'];
1234
1314
  mvfConnectionsByNodeId: MapDataRecords['mvfConnectionsByNodeId'];
1315
+ mvfConnectionIdsByLatLon: MapDataRecords['mvfConnectionIdsByLatLon'];
1235
1316
  mvfEntrancesById: MapDataRecords['mvfEntrancesById'];
1236
1317
  mvfNodesById: MapDataRecords['mvfNodesById'];
1237
1318
  mvfObstructionById: MapDataRecords['mvfObstructionById'];
@@ -1349,6 +1430,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1349
1430
  get locationCategories(): LocationCategory[];
1350
1431
  get mvfFloors(): MVFFloor[];
1351
1432
  get mvfFloorStacks(): MVFFloorStack[];
1433
+ getAccessToken(): Promise<string | undefined>;
1434
+ getSasToken(): Promise<string | undefined>;
1352
1435
  getByType(type: string): object[];
1353
1436
  getByType(type: 'location-profile'): LocationProfile[];
1354
1437
  getByType(type: 'location-category'): LocationCategory[];
@@ -1399,7 +1482,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1399
1482
  */
1400
1483
  getMVFFeatureByType(type: 'floor-stack'): MVFFloorStack[];
1401
1484
  getMVFFeatureByType(type: 'floor'): MVFFloor[];
1402
- getPropTranslation(type: 'enterprise-location' | 'enterprise-category', prop: string, id: string, fallback: MVFEnterpriseLocation[keyof MVFEnterpriseLocation] | MVFEnterpriseCategory[keyof MVFEnterpriseCategory]): unknown;
1485
+ getPropTranslation<T extends keyof LanguagePackRecords, P extends keyof NonNullable<NonNullable<LanguagePackRecords[T]>[string]>>(type: T, prop: P, id: string, fallback: NonNullable<NonNullable<LanguagePackRecords[T]>[string]>[P]): string | NonNullable<NonNullable<LanguagePackRecords[T]>[string]>[P] | undefined;
1403
1486
  /**
1404
1487
  * change the langauge of the data objects in mapdata
1405
1488
  */
@@ -1438,15 +1521,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1438
1521
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images, DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
1439
1522
  import type { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1440
1523
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1441
- import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1524
+ import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1525
+ import type { Annotation, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1526
+ import type { TCoordinateParams } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
1442
1527
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/react-sdk/mappedin-js/src/types';
1443
- import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1528
+ import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1444
1529
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1445
1530
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1446
1531
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1447
1532
  import type { InspectorOption } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspector';
1448
1533
  import { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
1449
1534
  import type { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
1535
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
1450
1536
  /**
1451
1537
  * The MapView class is the main class for rendering and interacting with the map.
1452
1538
  *
@@ -1531,14 +1617,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1531
1617
  *
1532
1618
  * | target | state |
1533
1619
  * |-----------|----------------|
1534
- * | {@link Door} | {@link TDoorsState} |
1535
- * | {@link Label} | {@link TLabelState} |
1536
- * | {@link MapObject} | {@link TGeometryState} |
1537
- * | {@link Marker} | {@link TMarkerState} |
1538
- * | {@link Space} | {@link TGeometryState} |
1539
- * | {@link Shape} | {@link TShapeState} |
1540
- * | {@link DOORS} | {@link TDoorsState} |
1541
- * | {@link WALLS} | {@link TWallsState} |
1620
+ * | {@link Door} | {@link TDoorsState} |
1621
+ * | {@link Facade} | {@link TGeometryState} |
1622
+ * | {@link Label} | {@link TLabelState} |
1623
+ * | {@link MapObject} | {@link TGeometryState} |
1624
+ * | {@link Marker} | {@link TMarkerState} |
1625
+ * | {@link Model} | {@link UpdateModelState} |
1626
+ * | {@link Path} | {@link TGeometryState} |
1627
+ * | {@link PathSegment} | {@link TGeometryState} |
1628
+ * | {@link Space} | {@link TGeometryState} |
1629
+ * | {@link Shape} | {@link TShapeState} |
1630
+ * | {@link Text3DView} | {@link UpdatableText3DState} |
1631
+ * | {@link DOORS} | {@link TDoorsState} |
1632
+ * | {@link WALLS} | {@link TWallsState} |
1542
1633
  *
1543
1634
  * @param target The target to update.
1544
1635
  * @param state The new state to apply to the target.
@@ -1546,7 +1637,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1546
1637
  * // Update the color of a space to red.
1547
1638
  * map.updateState(space, { color: 'red' });
1548
1639
  */
1549
- updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model>(target: T, state: TUpdateState<T>): any;
1640
+ updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model | Path | PathSegment>(target: T, state: TUpdateState<T>): any;
1550
1641
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1551
1642
  /**
1552
1643
  * Update global state of the MapView
@@ -1614,7 +1705,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1614
1705
  * @hidden
1615
1706
  */
1616
1707
  updateWatermark(options: WatermarkUpdateOptions): void;
1617
- getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1708
+ getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | Path | PathSegment | string>(target: T): TGetState<T>;
1618
1709
  setHoverColor(c: string): void;
1619
1710
  getHoverColor(): string | undefined;
1620
1711
  /**
@@ -1644,7 +1735,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1644
1735
  * @param options Optional parameters for getting directions.
1645
1736
  * @returns Directions from the start to the destination point.
1646
1737
  * @example
1647
- * const directions = await map.getDirections(space1, space2);
1738
+ * const directions = map.getDirections(space1, space2);
1648
1739
  */
1649
1740
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
1650
1741
  /**
@@ -1670,13 +1761,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1670
1761
  * @param latitude The latitude of the coordinate.
1671
1762
  * @param longitude The longitude of the coordinate.
1672
1763
  * @param floor Optional floor information if applicable.
1673
- * @returns The created coordinate object.
1764
+ * @returns The created Coordinate object.
1674
1765
  * @example
1675
1766
  * // Create a coordinate at the CN Tower.
1676
1767
  * const coord = map.createCoordinate(43.642567, -79.387054);
1768
+ *
1769
+ * // Alternatively, you can directly use the Coordinate constructor:
1770
+ * import { Coordinate } from '@mappedin/mappedin-js';
1771
+ * const coord = new Coordinate(43.642567, -79.387054, floor?.id);
1677
1772
  */
1678
1773
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
1774
+ /**
1775
+ * Creates a {@link Coordinate} on the map using a params object.
1776
+ *
1777
+ * @param params An object containing the coordinate parameters.
1778
+ * @param params.latitude The latitude of the coordinate in decimal degrees.
1779
+ * @param params.longitude The longitude of the coordinate in decimal degrees.
1780
+ * @param params.floorId Optional ID of the floor this coordinate is on.
1781
+ * @param params.verticalOffset Optional vertical offset from the floor in meters.
1782
+ * @returns The created Coordinate object.
1783
+ * @example
1784
+ * // Create a coordinate at the CN Tower using params object.
1785
+ * const coord = map.createCoordinate({
1786
+ * latitude: 43.642567,
1787
+ * longitude: -79.387054
1788
+ * });
1789
+ *
1790
+ * // Alternatively, you can directly use the Coordinate constructor:
1791
+ * import { Coordinate } from '@mappedin/mappedin-js';
1792
+ * const coord = new Coordinate({
1793
+ * latitude: 43.642567,
1794
+ * longitude: -79.387054,
1795
+ * floorId: 'floor1',
1796
+ * verticalOffset: 10
1797
+ * });
1798
+ */
1799
+ createCoordinate(params: TCoordinateParams): Coordinate;
1800
+ /**
1801
+ * Create a {@link Coordinate} from an X and Y position measured in pixels from the top left
1802
+ * corner of the map canvas.
1803
+ *
1804
+ * @experimental
1805
+ */
1679
1806
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
1807
+ /**
1808
+ * Get the X and Y of a {@link Coordinate} measured from the top left corner of the map canvas.
1809
+ *
1810
+ * @experimental
1811
+ */
1812
+ getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
1813
+ x: number;
1814
+ y: number;
1815
+ };
1680
1816
  /**
1681
1817
  * @hidden
1682
1818
  * @experimental
@@ -1947,9 +2083,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1947
2083
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1948
2084
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1949
2085
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, EnterpriseLocation, Node, Area, Facade, FloorStack, Annotation, EnterpriseCategory, EnterpriseVenue, LocationCategory, LocationProfile } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1950
- import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
2086
+ import type { Label, Marker, Model, Image, Shape, Text3D, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1951
2087
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1952
- import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState, ImagePlacementOptions } from '@mappedin/react-sdk/geojson/src';
2088
+ import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState, ImagePlacementOptions, LabelAppearance } from '@mappedin/react-sdk/geojson/src';
2089
+ import { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
1953
2090
  export type DeepRequired<T> = Required<{
1954
2091
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1955
2092
  }>;
@@ -2123,6 +2260,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2123
2260
  */
2124
2261
  zIndex?: number;
2125
2262
  };
2263
+ export type TPathState = {
2264
+ type: 'path';
2265
+ /**
2266
+ * The color of the path.
2267
+ */
2268
+ color: string;
2269
+ };
2126
2270
  /**
2127
2271
  * Represents the state of a shape.
2128
2272
  */
@@ -2198,6 +2342,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2198
2342
  topTexture?: {
2199
2343
  url: string;
2200
2344
  };
2345
+ flipImageToFaceCamera?: boolean;
2201
2346
  };
2202
2347
  export enum WALLS {
2203
2348
  Exterior = "exterior-walls",
@@ -2210,9 +2355,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2210
2355
  /**
2211
2356
  * The type for updating the state of map elements (colors, texts, etc.).
2212
2357
  */
2213
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends string ? Record<string, any> : never;
2214
- export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
2215
- 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 Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2358
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends Path ? Partial<TPathState> : T extends PathSegment ? Partial<TPathState> : T extends string ? Record<string, any> : never;
2359
+ export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState> | Partial<TPathState>;
2360
+ 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 Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends Path ? TPathState | undefined : T extends PathSegment ? TPathState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | TPathState | undefined : never;
2216
2361
  /**
2217
2362
  * Options for {@link Camera} animations on the map.
2218
2363
  */
@@ -2454,113 +2599,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2454
2599
  };
2455
2600
  /**
2456
2601
  * Control how a {@link Label} looks
2602
+ * @interface
2457
2603
  */
2458
- export type TLabelAppearance = {
2459
- /**
2460
- * Margin around the label and marker in pixels. This will affect label density. Minimum is 6px.
2461
- * @default 6
2462
- */
2463
- margin?: number;
2464
- text?: {
2465
- /**
2466
- * Number of lines to display when text spans multiple lines.
2467
- */
2468
- numLines?: number;
2469
- /**
2470
- * Text size in pixels
2471
- */
2472
- size?: number;
2473
- /**
2474
- * Maxiumum width of text in pixels.
2475
- */
2476
- maxWidth?: number;
2477
- /**
2478
- * Line height sets the height of a line box. It's commonly used to set the distance between lines of text.
2479
- *
2480
- * @default 1.2
2481
- */
2482
- lineHeight?: number;
2483
- /**
2484
- * Text foreground color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2485
- */
2486
- foregroundColor?: string;
2487
- /**
2488
- * Text background color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2489
- */
2490
- backgroundColor?: string;
2491
- };
2492
- marker?: {
2493
- foregroundColor?: {
2494
- /**
2495
- * Foreground color of the marker when it is active. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2496
- */
2497
- active?: string;
2498
- /**
2499
- * Foreground color of the marker when it is inactive (grayed out due to being outranked by other labels around). Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2500
- */
2501
- inactive?: string;
2502
- };
2503
- backgroundColor?: {
2504
- /**
2505
- * Background color of the marker when it is active. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2506
- */
2507
- active?: string;
2508
- /**
2509
- * Background color of the marker when it is inactive (grayed out due to being outranked by other labels around). Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2510
- */
2511
- inactive?: string;
2512
- };
2513
- /**
2514
- * Size of bounding box of the icon in pixels
2515
- * @default 10
2516
- */
2517
- iconSize?: number;
2518
- /**
2519
- * Icon to be placed inside label. Supports SVG or a URL to png or jpeg.
2520
- *
2521
- * @example
2522
- * ```ts
2523
- * // SVG
2524
- * mapView.Labels.add(space, space.name, {
2525
- * appearance: {
2526
- * icon: `<svg>...</svg>`
2527
- * },
2528
- * });
2529
- * ```
2530
- *
2531
- * @example
2532
- * ```ts
2533
- * // Image URL
2534
- * mapView.Labels.add(space, space.name, {
2535
- * appearance: {
2536
- * icon: 'https://example.com/icon.png',
2537
- * },
2538
- * });
2539
- * ```
2540
- */
2541
- icon?: string;
2542
- /**
2543
- * How the icon should fit inside the marker.
2544
- * - `fill` will stretch the icon to fill the marker.
2545
- * - `cover` will maintain aspect ratio and fill the marker.
2546
- * - `contain` will maintain aspect ratio and fit the icon inside the marker.
2547
- * @default 'cover'
2548
- */
2549
- iconFit?: 'contain' | 'fill' | 'cover';
2550
- /**
2551
- * Padding around the icon, in pixels.
2552
- * @default 4
2553
- */
2554
- iconPadding?: number;
2555
- /**
2556
- * Defines when the icon becomes visible relative to the current zoom level
2557
- * anything below 0 will result in icons never showing up
2558
- * 0 ensures icons show up at maxZoom (fully zoomed in)
2559
- * 1 ensures they always show up
2560
- */
2561
- iconVisibilityThreshold?: number;
2562
- };
2563
- };
2604
+ export type TLabelAppearance = LabelAppearance;
2564
2605
  /**
2565
2606
  * Defines the priority levels for collider collision handling, allowing customization of collider visibility in congested areas.
2566
2607
  *
@@ -2973,6 +3014,20 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2973
3014
  * @internal
2974
3015
  */
2975
3016
  export type TImagePlacementOptions = ImagePlacementOptions;
3017
+ export type TCameraInteractionsSetOptions = {
3018
+ /**
3019
+ * Whether to enable panning.
3020
+ */
3021
+ pan?: boolean;
3022
+ /**
3023
+ * Whether to enable zooming.
3024
+ */
3025
+ zoom?: boolean;
3026
+ /**
3027
+ * Whether to enable bearing and pitch.
3028
+ */
3029
+ bearingAndPitch?: boolean;
3030
+ };
2976
3031
  }
2977
3032
 
2978
3033
  declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
@@ -2996,6 +3051,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
2996
3051
  imagePlacementOptions: {
2997
3052
  mode: "default";
2998
3053
  };
3054
+ flipImagesToFaceCamera: true;
2999
3055
  };
3000
3056
  export const EXTERIOR_WALLS_ID = "ExteriorWalls";
3001
3057
  export const WALLS_ID = "Walls";
@@ -3023,6 +3079,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
3023
3079
  import { Coordinate, type Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3024
3080
  import type { TBlueDotOptions, TBlueDotPositionUpdate } from '@mappedin/react-sdk/mappedin-js/src/types';
3025
3081
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
3082
+ export const GEOMETRY_ID = "blue-dot";
3026
3083
  export type TBlueDotEvents = {
3027
3084
  /**
3028
3085
  * Emitted when the Blue Dot's position is updated.
@@ -3348,7 +3405,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects' {
3348
3405
  export { Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker';
3349
3406
  export { Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image';
3350
3407
  export { Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model';
3351
- export { Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3408
+ export { Path, PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3352
3409
  export { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
3353
3410
  export { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape';
3354
3411
  export { Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d';
@@ -3379,6 +3436,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
3379
3436
  * @default true
3380
3437
  */
3381
3438
  setMapOnConnectionClick?: boolean;
3439
+ /**
3440
+ * Controls whether the map should be set to the floor of the departure point when the path is drawn.
3441
+ * @default true
3442
+ */
3443
+ setMapToDeparture?: boolean;
3382
3444
  /**
3383
3445
  * Controls whether markers are created for the departure, destination, and connection points.
3384
3446
  */
@@ -3735,9 +3797,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3735
3797
  * Get the node IDs that should be excluded from the navigation graph.
3736
3798
  *
3737
3799
  * @hidden
3800
+ * @param excludedConnections {Connection[]}
3801
+ */
3802
+ getExcludedNodeIds: (excludedConnections: Connection[]) => string[];
3803
+ /**
3804
+ * Get the node IDs of connections that do not match the accessibility setting provided.
3805
+ * A disabled connection node is a connection node that acts as a regular node
3806
+ * (ie. the edges that would cause a floor change are ignored).
3807
+ *
3808
+ * @hidden
3738
3809
  * @param accessible {boolean}
3739
3810
  */
3740
- getExcludedNodeIds: (accessible: boolean, excludedConnections: Connection[]) => string[];
3811
+ getDisabledConnectionNodeIds: (accessible: boolean) => string[];
3741
3812
  }
3742
3813
  /**
3743
3814
  * Get the nodes from the navigation target.
@@ -3758,7 +3829,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3758
3829
  import type Annotation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation';
3759
3830
  import type Connection from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection';
3760
3831
  import type MapObject from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object';
3761
- import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature } from '@mappedin/mvf';
3832
+ import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature, FloorStack as MvfFloorStack, FloorProperties as MvfFloor } from '@mappedin/mvf';
3762
3833
  import type { PartialExcept } from '@mappedin/mvf/dist/locale';
3763
3834
  import type { LocalePackUrls } from '@packages/internal/mvf-utils';
3764
3835
  import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -3769,19 +3840,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3769
3840
  export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
3770
3841
  export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
3771
3842
  export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
3843
+ export type FloorStackWithLocale = PartialExcept<MvfFloorStack, 'id'>;
3844
+ export type FloorWithLocale = PartialExcept<MvfFloor, 'id'>;
3845
+ export type LanguagePackRecords = {
3846
+ 'enterprise-location': Record<string, LocationWithLocale> | undefined;
3847
+ 'enterprise-category': Record<string, CategoryWithLocale> | undefined;
3848
+ 'floor-stack': Record<string, FloorStackWithLocale> | undefined;
3849
+ floor: Record<string, FloorWithLocale> | undefined;
3850
+ };
3772
3851
  export type LanguagePack = {
3773
3852
  type: 'downloaded';
3774
3853
  data: ParsedMVFLocalePack;
3775
- optimized: {
3776
- locations: Record<string, LocationWithLocale> | undefined;
3777
- categories: Record<string, CategoryWithLocale> | undefined;
3778
- };
3854
+ optimized: LanguagePackRecords;
3779
3855
  } | {
3780
3856
  type: 'initial';
3781
- optimized: {
3782
- locations: Record<string, MvfEnterpriseLocation>;
3783
- categories: Record<string, MvfEnterpriseCategory>;
3784
- };
3857
+ optimized: LanguagePackRecords;
3785
3858
  };
3786
3859
  export type TMapDataInternalOptions = {
3787
3860
  env?: EnvControl;
@@ -3850,7 +3923,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot' {
3850
3923
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3851
3924
  import type { NodeCollection } from '@mappedin/mvf';
3852
3925
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
3853
- import type { EnterpriseLocation, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3926
+ import type { EnterpriseLocation, MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3854
3927
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
3855
3928
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
3856
3929
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
@@ -3887,6 +3960,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3887
3960
  });
3888
3961
  /** @internal */
3889
3962
  get locations(): EnterpriseLocation[];
3963
+ /**
3964
+ * Gets the {@link Space} object associated with the node.
3965
+ */
3966
+ get space(): Space | undefined;
3890
3967
  /**
3891
3968
  * Gets the {@link Floor} associated with the node.
3892
3969
  *
@@ -3952,11 +4029,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3952
4029
 
3953
4030
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
3954
4031
  import type { AreaCollection } from '@mappedin/mvf';
3955
- import { Coordinate, LocationProfile, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4032
+ import { Coordinate, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3956
4033
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
3957
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
3958
4034
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
3959
4035
  import type { IAnchorable, IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4036
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
3960
4037
  /**
3961
4038
  * An Area represents some grouping of multiple pieces of geometry, not
3962
4039
  * necessarily bounded by walls or any other physical feature of the map.
@@ -3964,7 +4041,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
3964
4041
  * Areas are currently in a preview state, and may have changes to existing
3965
4042
  * functionality or new features added in the future.
3966
4043
  */
3967
- class Area extends BaseMapData implements IGeoJSONData, IFocusable, IAnchorable {
4044
+ class Area extends DetailedMapData<AreaCollection['features'][number]> implements IGeoJSONData, IFocusable, IAnchorable {
3968
4045
  #private;
3969
4046
  /**
3970
4047
  * @internal
@@ -3988,24 +4065,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
3988
4065
  floorId: string;
3989
4066
  mvfData: AreaCollection['features'][number];
3990
4067
  });
3991
- /**
3992
- * Gets the name of the area.
3993
- *
3994
- * @returns {string} The name of the area.
3995
- */
3996
- get name(): string;
3997
- /**
3998
- * Gets the external identifier of the area.
3999
- *
4000
- * @returns {string} The external ID of the area, or an empty string if no external ID exists.
4001
- */
4002
- get externalId(): string;
4003
- /**
4004
- * Gets the description of the area.
4005
- *
4006
- * @returns {string} The description of the area, or an empty string if no description exists.
4007
- */
4008
- get description(): string;
4009
4068
  /**
4010
4069
  * Gets the center {@link Coordinate} of the area.
4011
4070
  *
@@ -4019,12 +4078,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
4019
4078
  * @throws Will throw an error if the floor is not found.
4020
4079
  */
4021
4080
  get floor(): Floor;
4022
- /**
4023
- * Gets the {@link LocationProfile} objects attached to this area.
4024
- *
4025
- * @returns {LocationProfile[]} An array of location profile objects.
4026
- */
4027
- get locationProfiles(): LocationProfile[];
4028
4081
  /**
4029
4082
  * Gets the underlying GeoJSON Feature representation of this Area.
4030
4083
  */
@@ -4061,10 +4114,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4061
4114
  import type { EntranceCollection } from '@mappedin/mvf';
4062
4115
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4063
4116
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4064
- import type { LocationProfile, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4065
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4117
+ import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4066
4118
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4067
4119
  import type { IAnchorable, IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4120
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
4068
4121
  /**
4069
4122
  * A class representing door data within the map.
4070
4123
  *
@@ -4093,7 +4146,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4093
4146
  * Refer to the [Textures & Colors Guide](https://developer.mappedin.com/web-sdk/images-textures#textures--colors) for more information and interactive examples.
4094
4147
  *
4095
4148
  */
4096
- class Door extends BaseMapData implements IGeoJSONData, IFocusable, IAnchorable {
4149
+ class Door extends DetailedMapData<EntranceCollection['features'][number]> implements IGeoJSONData, IFocusable, IAnchorable {
4097
4150
  #private;
4098
4151
  /**
4099
4152
  * @internal
@@ -4117,24 +4170,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4117
4170
  floorId: string;
4118
4171
  mvfData: EntranceCollection['features'][number];
4119
4172
  });
4120
- /**
4121
- * Gets the name of the door.
4122
- *
4123
- * @returns {string} The name of the door.
4124
- */
4125
- get name(): string;
4126
- /**
4127
- * Gets the external ID of the door.
4128
- *
4129
- * @returns {string} The external ID of the door.
4130
- */
4131
- get externalId(): string;
4132
- /**
4133
- * Gets the description of the door.
4134
- *
4135
- * @returns {string} The description of the door.
4136
- */
4137
- get description(): string;
4138
4173
  /**
4139
4174
  * Gets the {@link Floor} object associated with the door.
4140
4175
  *
@@ -4152,12 +4187,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4152
4187
  * Gets whether this door is an exterior door.
4153
4188
  */
4154
4189
  get isExterior(): boolean;
4155
- /**
4156
- * Gets the {@link LocationProfile} objects attached to this door.
4157
- *
4158
- * @returns {LocationProfile[]} An array of location profile objects.
4159
- */
4160
- get locationProfiles(): LocationProfile[];
4161
4190
  /**
4162
4191
  * Gets the underlying GeoJSON Feature representation of this Door.
4163
4192
  */
@@ -4199,12 +4228,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4199
4228
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4200
4229
  import type { SpaceCollection } from '@mappedin/mvf';
4201
4230
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4202
- import type { EnterpriseLocation, LocationProfile, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4231
+ import type { EnterpriseLocation, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4203
4232
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4204
4233
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4205
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4206
4234
  import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
4207
4235
  import type { IAnchorable, IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4236
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
4208
4237
  /**
4209
4238
  * Represents the various types of spaces that can be defined within a map.
4210
4239
  * - 'room': A standard room or enclosed area.
@@ -4222,7 +4251,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4222
4251
  *
4223
4252
  * Refer to the [Spaces Guide](https://developer.mappedin.com/web-sdk/spaces) for more information and interactive examples.
4224
4253
  */
4225
- class Space extends BaseMapData implements IGeoJSONData, IFocusable, IAnchorable {
4254
+ class Space extends DetailedMapData<SpaceCollection['features'][number]> implements IGeoJSONData, IFocusable, IAnchorable {
4226
4255
  #private;
4227
4256
  /**
4228
4257
  * @internal
@@ -4236,7 +4265,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4236
4265
  * @internal
4237
4266
  * @hidden
4238
4267
  */
4239
- getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon | import("@mappedin/mvf").Point, import("@mappedin/mvf").SpaceProperties>;
4268
+ getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Point, import("@mappedin/mvf").SpaceProperties>;
4240
4269
  /**
4241
4270
  * Checks if the provided instance is of type Space.
4242
4271
  *
@@ -4251,30 +4280,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4251
4280
  floorId: string;
4252
4281
  mvfData: SpaceCollection['features'][number];
4253
4282
  });
4254
- /**
4255
- * Gets the name of the space.
4256
- *
4257
- * @returns {string} The name of the space.
4258
- */
4259
- get name(): string;
4260
4283
  /**
4261
4284
  * Gets the type/kind of the space.
4262
4285
  *
4263
4286
  * @returns {TSpaceType} The type of the space.
4264
4287
  */
4265
4288
  get type(): TSpaceType;
4266
- /**
4267
- * Gets the description of the space.
4268
- *
4269
- * @returns {string} The description of the space, or an empty string if no description exists.
4270
- */
4271
- get description(): string;
4272
- /**
4273
- * Gets the external identifier of the space.
4274
- *
4275
- * @returns {string} The external ID of the space, or an empty string if no external ID exists.
4276
- */
4277
- get externalId(): string;
4278
4289
  /**
4279
4290
  * @internal
4280
4291
  */
@@ -4298,19 +4309,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4298
4309
  * @returns {Coordinate} The space's center coordinate.
4299
4310
  */
4300
4311
  get center(): Coordinate;
4301
- /**
4302
- * Gets the {@link LocationProfile} objects attached to this space.
4303
- *
4304
- * @returns {LocationProfile[]} An array of location profile objects.
4305
- */
4306
- get locationProfiles(): LocationProfile[];
4307
4312
  /**
4308
4313
  * Gets the underlying GeoJSON Feature representation of this Space.
4309
4314
  */
4310
4315
  get geoJSON(): {
4311
4316
  properties: null;
4312
4317
  type: import("@mappedin/mvf").FeatureType;
4313
- geometry: import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon | import("@mappedin/mvf").Point;
4318
+ geometry: import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Point;
4314
4319
  };
4315
4320
  /** @internal */
4316
4321
  get focusTarget(): Coordinate | this;
@@ -4458,6 +4463,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
4458
4463
  toJSON(): {
4459
4464
  id: string;
4460
4465
  name: string;
4466
+ shortName: string;
4461
4467
  elevation: number;
4462
4468
  spaces: string[];
4463
4469
  objects: string[];
@@ -4481,14 +4487,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
4481
4487
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4482
4488
  import type Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
4483
4489
  import type { Floor, LocationProfile, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4484
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4485
4490
  import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4491
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
4486
4492
  /**
4487
4493
  * A class representing connection data within the map.
4488
4494
  *
4489
4495
  * Connections are used to represent pathways between different map nodes.
4490
4496
  */
4491
- class Connection extends BaseMapData implements IFocusable {
4497
+ class Connection extends DetailedMapData<Feature<Point, SpaceProperties> | Feature<Point, MVFConnection>> implements IFocusable {
4492
4498
  #private;
4493
4499
  /**
4494
4500
  * @internal
@@ -4512,32 +4518,24 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
4512
4518
  mvfDataByFloorId: Record<string, FeatureCollection<Point, SpaceProperties>['features'][number]> | Record<string, Feature<Point, MVFConnection>>;
4513
4519
  accessible?: boolean;
4514
4520
  });
4515
- /**
4516
- * Gets the name of the connection.
4517
- *
4518
- * @returns {string} The name of the connection.
4519
- */
4520
- get name(): string;
4521
- get description(): string;
4522
4521
  /**
4523
4522
  * Whether the connection is accessible. For example elevators are accessible while stairs are not.
4524
4523
  *
4525
4524
  * @returns {boolean} Whether the connection is accessible.
4526
4525
  */
4527
4526
  get accessible(): boolean;
4528
- /**
4529
- * Gets the external ID of the connection.
4530
- *
4531
- * @returns {string} The external ID of the connection.
4532
- */
4533
- get externalId(): string;
4534
- /**
4535
4527
  /**
4536
4528
  * Gets the type of the connection.
4537
4529
  *
4538
4530
  * @returns {string} The type of the connection.
4539
4531
  */
4540
4532
  get type(): string;
4533
+ /**
4534
+ * Extra properties of the connection.
4535
+ *
4536
+ * @returns {Record<string, unknown> | undefined} Extra properties of the connection.
4537
+ */
4538
+ get extra(): Record<string, unknown> | undefined;
4541
4539
  /**
4542
4540
  * Gets the coordinates ({@link Coordinate}) of the connection.
4543
4541
  *
@@ -4555,9 +4553,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
4555
4553
  */
4556
4554
  get floors(): Floor[];
4557
4555
  /**
4558
- * Gets the {@link LocationProfile} objects attached to this connection.
4559
- *
4560
- * @returns {LocationProfile[]} An array of location profile objects.
4556
+ * Gets the location profiles ({@link LocationProfile}) associated with the connection.
4561
4557
  */
4562
4558
  get locationProfiles(): LocationProfile[];
4563
4559
  /** @internal */
@@ -4579,6 +4575,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
4579
4575
  verticalOffset: number;
4580
4576
  }[];
4581
4577
  floors: string[];
4578
+ extra: Record<string, unknown> | undefined;
4582
4579
  };
4583
4580
  /**
4584
4581
  * Cleans up resources used by the instance.
@@ -4593,11 +4590,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
4593
4590
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4594
4591
  import type { ObstructionCollection } from '@mappedin/mvf';
4595
4592
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4596
- import type { LocationProfile, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4593
+ import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4597
4594
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4598
4595
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4599
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4600
4596
  import type { IAnchorable, IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4597
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
4601
4598
  /**
4602
4599
  * A class representing generic map object data within the map.
4603
4600
  *
@@ -4606,7 +4603,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4606
4603
  * MapObject appearance can be customized by changing the color or adding a texture to its top or sides.
4607
4604
  * Refer to the [Textures & Colors Guide](https://developer.mappedin.com/web-sdk/images-textures#textures--colors) for more information and interactive examples.
4608
4605
  */
4609
- export class MapObject extends BaseMapData implements IGeoJSONData, IFocusable, IAnchorable {
4606
+ export class MapObject extends DetailedMapData<ObstructionCollection['features'][number]> implements IGeoJSONData, IFocusable, IAnchorable {
4610
4607
  #private;
4611
4608
  /**
4612
4609
  * @internal
@@ -4630,24 +4627,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4630
4627
  floorId: string;
4631
4628
  mvfData: ObstructionCollection['features'][number];
4632
4629
  });
4633
- /**
4634
- * Gets the name of the MapObject.
4635
- *
4636
- * @returns {string} The name of the object.
4637
- */
4638
- get name(): string;
4639
- /**
4640
- * Gets the external ID of the MapObject.
4641
- *
4642
- * @returns {string} The external ID of the object.
4643
- */
4644
- get externalId(): string;
4645
- /**
4646
- * Gets the description of the MapObject.
4647
- *
4648
- * @returns {string} The description of the object.
4649
- */
4650
- get description(): string;
4651
4630
  /**
4652
4631
  * Gets the type of the MapObject.
4653
4632
  *
@@ -4667,19 +4646,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4667
4646
  * @returns {Coordinate} The object's center coordinate.
4668
4647
  */
4669
4648
  get center(): Coordinate;
4670
- /**
4671
- * Gets the {@link LocationProfile} objects attached to this object.
4672
- *
4673
- * @returns {LocationProfile[]} An array of location profile objects.
4674
- */
4675
- get locationProfiles(): LocationProfile[];
4676
4649
  /**
4677
4650
  * Gets the underlying GeoJSON Feature representation of this Object.
4678
4651
  */
4679
4652
  get geoJSON(): {
4680
4653
  properties: null;
4681
4654
  type: import("@mappedin/mvf").FeatureType;
4682
- geometry: import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon;
4655
+ geometry: import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString;
4683
4656
  };
4684
4657
  /** @internal */
4685
4658
  get anchorTarget(): Coordinate;
@@ -4714,10 +4687,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4714
4687
 
4715
4688
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate' {
4716
4689
  import type { IFocusable, IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
4717
- type TCoordinateParams = {
4690
+ /**
4691
+ * Parameters for creating a Coordinate.
4692
+ */
4693
+ export type TCoordinateParams = {
4694
+ /**
4695
+ * The latitude of the coordinate in decimal degrees.
4696
+ */
4718
4697
  latitude: number;
4698
+ /**
4699
+ * The longitude of the coordinate in decimal degrees.
4700
+ */
4719
4701
  longitude: number;
4702
+ /**
4703
+ * Optional ID of the floor this coordinate is on.
4704
+ */
4720
4705
  floorId?: string;
4706
+ /**
4707
+ * Optional vertical offset from the floor in meters.
4708
+ */
4721
4709
  verticalOffset?: number;
4722
4710
  };
4723
4711
  /**
@@ -4754,7 +4742,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4754
4742
  readonly floorId?: string;
4755
4743
  /**
4756
4744
  * The vertical position of the coordinate, offset from the floor.
4757
- * @internal
4758
4745
  */
4759
4746
  readonly verticalOffset: number;
4760
4747
  /**
@@ -4765,7 +4752,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4765
4752
  */
4766
4753
  static is(instance: object): instance is Coordinate;
4767
4754
  /**
4768
- * @internal
4755
+ * Creates a new Coordinate instance.
4756
+ *
4757
+ * @param latitudeOrParams Either a latitude number or a TCoordinateParams object containing coordinate details
4769
4758
  */
4770
4759
  constructor(latitudeOrParams: TCoordinateParams);
4771
4760
  /**
@@ -4811,18 +4800,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4811
4800
 
4812
4801
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4813
4802
  import type { FeatureCollection, Point, SpaceProperties } from '@mappedin/mvf';
4814
- import type { Floor, LocationProfile, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4803
+ import type { Floor, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4815
4804
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4816
4805
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4817
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4818
4806
  import type { IAnchorable, IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4807
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
4819
4808
  /**
4820
4809
  * A class representing point of interest data within the map.
4821
4810
  *
4822
4811
  * Points of interest are used to represent specific points
4823
4812
  * on the map with additional information(e.g. ATMs, Water Fountains).
4824
4813
  */
4825
- class PointOfInterest extends BaseMapData implements IGeoJSONData, IFocusable, IAnchorable {
4814
+ class PointOfInterest extends DetailedMapData<FeatureCollection<Point, SpaceProperties>['features'][number]> implements IGeoJSONData, IFocusable, IAnchorable {
4826
4815
  #private;
4827
4816
  /**
4828
4817
  * @internal
@@ -4843,21 +4832,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4843
4832
  * @internal
4844
4833
  */
4845
4834
  constructor(data: MapDataInternal, options: {
4846
- floorId: string;
4847
- mvfData: FeatureCollection<Point, SpaceProperties>['features'][number];
4848
- });
4849
- /**
4850
- * Gets the name of the POI.
4851
- *
4852
- * @returns {string} The name of the POI.
4853
- */
4854
- get name(): string;
4855
- /**
4856
- * Gets the description of the POI.
4857
- *
4858
- * @returns {string} The description of the POI.
4859
- */
4860
- get description(): string;
4835
+ floorId: string;
4836
+ mvfData: FeatureCollection<Point, SpaceProperties>['features'][number];
4837
+ });
4861
4838
  /**
4862
4839
  * Gets the {@link Floor} object associated with the POI.
4863
4840
  *
@@ -4871,18 +4848,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4871
4848
  * @returns {Coordinate} The POI's coordinate.
4872
4849
  */
4873
4850
  get coordinate(): Coordinate;
4874
- /**
4875
- * Gets the external ID of the POI.
4876
- *
4877
- * @returns {string} The external ID of the POI.
4878
- */
4879
- get externalId(): string;
4880
- /**
4881
- * Gets the {@link LocationProfile} objects attached to this POI.
4882
- *
4883
- * @returns {LocationProfile[]} An array of location profile objects.
4884
- */
4885
- get locationProfiles(): LocationProfile[];
4886
4851
  /**
4887
4852
  * Gets the underlying GeoJSON Feature representation of this PointOfInterest.
4888
4853
  */
@@ -4923,11 +4888,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4923
4888
 
4924
4889
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation' {
4925
4890
  import type { AnnotationCollection } from '@mappedin/mvf';
4926
- import type { Floor, LocationProfile, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4891
+ import type { Floor, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4927
4892
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4928
- import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4929
4893
  import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4930
4894
  import type { IAnchorable, IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
4895
+ import DetailedMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data';
4931
4896
  /**
4932
4897
  * A class representing annotation data within the map.
4933
4898
  *
@@ -4935,7 +4900,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4935
4900
  * It includes some details on a map that may be relevant to safety or accessibility (e.g. Fire Extinguishers).
4936
4901
  * Refer to the [Annotation Guide](https://developer.mappedin.com/web-sdk/annotations) for more information.
4937
4902
  */
4938
- class Annotation extends BaseMapData implements IGeoJSONData, IFocusable, IAnchorable {
4903
+ class Annotation extends DetailedMapData<AnnotationCollection['features'][number]> implements IGeoJSONData, IFocusable, IAnchorable {
4939
4904
  #private;
4940
4905
  /**
4941
4906
  * @internal
@@ -4971,12 +4936,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4971
4936
  * @returns {string} The annotation type.
4972
4937
  */
4973
4938
  get type(): string;
4974
- /**
4975
- * Gets the external ID of the annotation.
4976
- *
4977
- * @returns {string} The external ID of the annotation.
4978
- */
4979
- get externalId(): string;
4980
4939
  /**
4981
4940
  * Gets the center {@link Coordinate} of the annotation.
4982
4941
  *
@@ -4990,12 +4949,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4990
4949
  * @throws Will throw an error if the floor is not found.
4991
4950
  */
4992
4951
  get floor(): Floor;
4993
- /**
4994
- * Gets the {@link LocationProfile} objects attached to this annotation.
4995
- *
4996
- * @returns {LocationProfile[]} An array of location profile objects.
4997
- */
4998
- get locationProfiles(): LocationProfile[];
4999
4952
  /**
5000
4953
  * Gets the underlying GeoJSON Feature representation of this Annotation.
5001
4954
  */
@@ -5199,6 +5152,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5199
5152
  * @returns {string} The name of the FloorStack.
5200
5153
  */
5201
5154
  get name(): string;
5155
+ /**
5156
+ * Gets the short name of the FloorStack.
5157
+ *
5158
+ * @returns {string} The short name of the FloorStack.
5159
+ */
5160
+ get shortName(): string;
5202
5161
  /**
5203
5162
  * Gets the externalId of FloorStack
5204
5163
  */
@@ -5225,6 +5184,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5225
5184
  toJSON(): {
5226
5185
  id: string;
5227
5186
  name: string;
5187
+ shortName: string;
5228
5188
  type: "Building" | "Outdoor" | undefined;
5229
5189
  floors: string[];
5230
5190
  };
@@ -5284,7 +5244,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade' {
5284
5244
  }
5285
5245
 
5286
5246
  declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5287
- import type { AnnotationCollection, EntranceCollection, 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';
5247
+ import type { AnnotationCollection, EntranceCollection, 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, SpaceId } from '@mappedin/mvf';
5288
5248
  import { Annotation, Area, Connection, Door, EnterpriseCategory, EnterpriseLocation, Facade, Floor, FloorStack, MapObject, Node, PointOfInterest, Space, LocationCategory, LocationProfile, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5289
5249
  export type MapDataRecords = {
5290
5250
  spacesById: Record<string, Space>;
@@ -5317,6 +5277,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5317
5277
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
5318
5278
  obstructionIdByEntranceId: Record<string, string>;
5319
5279
  connectionIdsByLatLon: Record<string, string[]>;
5280
+ mvfConnectionIdsByLatLon: Record<string, string[]>;
5320
5281
  locationProfilesByAttachedFeatureId: Record<string, LocationProfile[]>;
5321
5282
  mvfSpacesById: Record<string, SpaceCollection['features'][number]>;
5322
5283
  mvfNodesById: Record<string, NodeCollection['features'][number]>;
@@ -5351,6 +5312,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5351
5312
  locationsById: Record<MVFEnterpriseLocationId, EnterpriseLocation>;
5352
5313
  categoriesById: Record<MVFEnterpriseCategoryId, EnterpriseCategory>;
5353
5314
  locationIdsByNodeId: Record<string, MVFEnterpriseLocationId[]>;
5315
+ spaceIdsByNodeId: Record<string, SpaceId[]>;
5354
5316
  locationInstancesById: Record<string, EnterpriseLocationInstance>;
5355
5317
  venue: MVFEnterpriseVenue;
5356
5318
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
@@ -5370,8 +5332,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5370
5332
  export const processMVFObstructions: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "objectsById" | "objectsByExternalId" | "mvfObstructionById" | "obstructionIdByEntranceId">;
5371
5333
  export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "floorsByExternalId" | "mvfFloorsById">;
5372
5334
  export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "floorStacksByExternalId" | "mvfFloorStacksById" | "facadesById" | "facadesBySpaceId">;
5373
- export const processMVFConnections: (mvf: ParsedMVF) => Pick<MapDataRecords, "mvfConnectionsById" | "mvfConnectionsByNodeId">;
5335
+ export const processMVFConnections: (mvf: ParsedMVF, mvfNodesById?: MapDataRecords["mvfNodesById"]) => Pick<MapDataRecords, "mvfConnectionsById" | "mvfConnectionsByNodeId" | "mvfConnectionIdsByLatLon">;
5374
5336
  export const processMVFEntrances: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "doorsById" | "doorsByExternalId" | "doorsByNodeId" | "mvfEntrancesById" | "mvfEntrancesByFloorId">;
5337
+ export const processMVFEnterpriseTextures: (mvf: ParsedMVF, spacesById: MapDataRecords["mvfSpacesById"], obstructionsById: MapDataRecords["mvfObstructionById"]) => void;
5375
5338
  export const processMVFAnnotations: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "annotationsById" | "mvfAnnotationsById" | "mvfAnnotationsByFloorId">;
5376
5339
  export const processMVFAreas: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "areasById" | "areasByExternalId" | "mvfAreasById">;
5377
5340
  /**
@@ -5392,7 +5355,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5392
5355
  import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
5393
5356
  /**
5394
5357
  * An EnterpriseLocation contains metadata about a location, such as its name, description, logo, phone number, social medial links, hours of operation and more.
5395
- * They can be accessed using the {@link MapData.getByType()} method as shown below.
5358
+ * They can be accessed using the {@link MapData.getByType} method as shown below.
5396
5359
  *
5397
5360
  * ```typescript
5398
5361
  * const allLocations = mapData.getByType('enterprise-location');
@@ -5400,7 +5363,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5400
5363
  *
5401
5364
  * Refer to the [EnterpriseLocation Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-locations) for more information and interactive examples.
5402
5365
  */
5403
- class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces'>, IFocusable {
5366
+ class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces' | 'categories'>, IFocusable {
5404
5367
  #private;
5405
5368
  /**
5406
5369
  * @internal
@@ -5591,7 +5554,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
5591
5554
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5592
5555
  /**
5593
5556
  * An EnterpriseCategory groups one or more EnterpriseLocation. These allow similar locations to be sorted in a logical fashion.
5594
- * 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.
5557
+ * 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.
5595
5558
  *
5596
5559
  * ```typescript
5597
5560
  * const categories = mapData.getByType('enterprise-category');
@@ -5687,7 +5650,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
5687
5650
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5688
5651
  /**
5689
5652
  * The EnterpriseVenue class holds metadata bout the map, which includes the map name, supported languages, default language, top locations and more.
5690
- * It can be accessed using the {@link MapData.getByType()} method as shown below.
5653
+ * It can be accessed using the {@link MapData.getByType} method as shown below.
5691
5654
  *
5692
5655
  * ```typescript
5693
5656
  * const venue = mapData.getByType('enterprise-venue');
@@ -5796,12 +5759,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
5796
5759
  }
5797
5760
 
5798
5761
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location-profile' {
5799
- import type { LocationId, LocationLink, LocationPicture, LocationSocial, Location as MVFLocation } from '@mappedin/mvf';
5762
+ import type { LocationId, LocationSocial, Location as MVFLocation } from '@mappedin/mvf';
5800
5763
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5801
- import type { Annotation, Connection, Door, LocationCategory, MapDataInternal, Space, MapObject, PointOfInterest } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5764
+ import type { Annotation, Connection, Door, LocationCategory, MapDataInternal, Space, MapObject, PointOfInterest, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5802
5765
  import type { TFocusTarget, TNavigationTarget, IFocusable, INavigatable } from '@mappedin/react-sdk/mappedin-js/src/types';
5803
5766
  import { OpeningHours } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/opening-hours';
5804
- class LocationProfile extends BaseMetaData implements Omit<MVFLocation, 'categories' | 'spaces' | 'obstructions' | 'entrances' | 'shapes' | 'connections' | 'annotations' | 'openingHoursSpecification'>, IFocusable, INavigatable {
5767
+ import Hyperlink from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink';
5768
+ import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
5769
+ type LocationData = Omit<MVFLocation, 'categories' | 'spaces' | 'obstructions' | 'entrances' | 'shapes' | 'connections' | 'annotations' | 'areas' | 'openingHoursSpecification' | 'links' | 'pictures' | 'website'> & {
5770
+ links: Hyperlink[];
5771
+ images: Image[];
5772
+ };
5773
+ class LocationProfile extends BaseMetaData implements LocationData, IFocusable, INavigatable {
5805
5774
  #private;
5806
5775
  /**
5807
5776
  * Checks if the provided instance is of type EnterpriseLocation.
@@ -5836,11 +5805,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location-pr
5836
5805
  /**
5837
5806
  * The location's pictures
5838
5807
  */
5839
- pictures: LocationPicture[];
5808
+ images: Image[];
5840
5809
  /**
5841
5810
  * Web links for the location
5842
5811
  */
5843
- links: LocationLink[];
5812
+ links: Hyperlink[];
5813
+ /**
5814
+ * The location's website
5815
+ */
5816
+ website?: Hyperlink;
5844
5817
  constructor(data: MapDataInternal, options: {
5845
5818
  mvfData: MVFLocation;
5846
5819
  });
@@ -5886,6 +5859,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location-pr
5886
5859
  * @returns {MapObject[]} The map objects array.
5887
5860
  */
5888
5861
  get mapObjects(): MapObject[];
5862
+ /**
5863
+ * Gets the {@link Area}s associated with the location.
5864
+ *
5865
+ * @returns {Area[]} The areas array.
5866
+ */
5867
+ get areas(): Area[];
5889
5868
  /** @internal */
5890
5869
  get focusTarget(): TFocusTarget[];
5891
5870
  /**
@@ -6040,13 +6019,92 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspec
6040
6019
  export type InspectorOption = Partial<InspectorState>;
6041
6020
  }
6042
6021
 
6022
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
6023
+ import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
6024
+ import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
6025
+ /**
6026
+ * @experimental
6027
+ *
6028
+ * A segment of a complete path. This can be a continuous portion of the path on a single floor, or
6029
+ * the transition of a path between two floors, or a transition between indoors and outdoors.
6030
+ */
6031
+ export class PathSegment implements IFocusable {
6032
+ readonly id: string;
6033
+ readonly coordinates: Coordinate[];
6034
+ /**
6035
+ * @internal
6036
+ */
6037
+ static readonly __type = "PathSegment";
6038
+ /**
6039
+ * @internal
6040
+ */
6041
+ readonly __type = "PathSegment";
6042
+ /**
6043
+ * Checks if the provided instance is a PathSegment.
6044
+ */
6045
+ static is(instance: object): instance is PathSegment;
6046
+ constructor(id: string, coordinates: Coordinate[]);
6047
+ /** @internal */
6048
+ get focusTarget(): Coordinate[];
6049
+ }
6050
+ /**
6051
+ * Class representing a path on the {@link MapView}.
6052
+ *
6053
+ * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
6054
+ */
6055
+ export class Path implements IFocusable {
6056
+ /**
6057
+ * The path's id
6058
+ */
6059
+ id: string;
6060
+ /**
6061
+ * The promise that resolves when the current path animation is complete.
6062
+ */
6063
+ animation: Promise<void>;
6064
+ /**
6065
+ * The coordinates of the path.
6066
+ */
6067
+ coordinates: Coordinate[];
6068
+ /**
6069
+ * @experimental
6070
+ *
6071
+ * The segments of the path.
6072
+ */
6073
+ segments: PathSegment[];
6074
+ /**
6075
+ * @internal
6076
+ */
6077
+ static readonly __type = "Path";
6078
+ /**
6079
+ * @internal
6080
+ */
6081
+ readonly __type = "Path";
6082
+ /**
6083
+ * Checks if the provided instance is a Path.
6084
+ *
6085
+ * @param instance The instance to check.
6086
+ * @returns {boolean} True if the instance is a Path, false otherwise.
6087
+ */
6088
+ static is(instance: object): instance is Path;
6089
+ /** @internal */
6090
+ get focusTarget(): Coordinate[];
6091
+ /**
6092
+ * @internal
6093
+ */
6094
+ constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[], segments: {
6095
+ id: string | number;
6096
+ coordinates: Coordinate[];
6097
+ }[]);
6098
+ }
6099
+ }
6100
+
6043
6101
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/types' {
6044
6102
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
6045
6103
  export type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
6046
6104
  }
6047
6105
 
6048
6106
  declare module '@mappedin/react-sdk/geojson/src/components/marker' {
6049
- import './marker.scss';
6107
+ import '../styles/marker.scss';
6050
6108
  import { Vector2 } from 'three';
6051
6109
  import type { Entity2DHTMLDivElement, EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
6052
6110
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
@@ -6236,7 +6294,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
6236
6294
  name: MarkerAnchor;
6237
6295
  getBoundingBox: () => number[];
6238
6296
  }[];
6239
- toPackedMessage(lockToCurrentStrategy?: boolean): {
6297
+ toPackedMessage(isPanning?: boolean): {
6240
6298
  x: number;
6241
6299
  y: number;
6242
6300
  enabled: boolean;
@@ -6483,16 +6541,16 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6483
6541
  size?: number | undefined;
6484
6542
  maxWidth?: number | undefined;
6485
6543
  lineHeight?: number | undefined;
6544
+ backgroundColor?: string | undefined;
6486
6545
  numLines?: number | undefined;
6487
6546
  foregroundColor?: string | undefined;
6488
- backgroundColor?: string | undefined;
6489
6547
  }, {
6490
6548
  size?: number | undefined;
6491
6549
  maxWidth?: number | undefined;
6492
6550
  lineHeight?: number | undefined;
6551
+ backgroundColor?: string | undefined;
6493
6552
  numLines?: number | undefined;
6494
6553
  foregroundColor?: string | undefined;
6495
- backgroundColor?: string | undefined;
6496
6554
  }>>;
6497
6555
  marker: z.ZodOptional<z.ZodObject<{
6498
6556
  size: z.ZodOptional<z.ZodNumber>;
@@ -6518,21 +6576,21 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6518
6576
  }>>;
6519
6577
  }, "strip", z.ZodTypeAny, {
6520
6578
  size?: number | undefined;
6521
- foregroundColor?: {
6579
+ backgroundColor?: {
6522
6580
  active?: string | undefined;
6523
6581
  inactive?: string | undefined;
6524
6582
  } | undefined;
6525
- backgroundColor?: {
6583
+ foregroundColor?: {
6526
6584
  active?: string | undefined;
6527
6585
  inactive?: string | undefined;
6528
6586
  } | undefined;
6529
6587
  }, {
6530
6588
  size?: number | undefined;
6531
- foregroundColor?: {
6589
+ backgroundColor?: {
6532
6590
  active?: string | undefined;
6533
6591
  inactive?: string | undefined;
6534
6592
  } | undefined;
6535
- backgroundColor?: {
6593
+ foregroundColor?: {
6536
6594
  active?: string | undefined;
6537
6595
  inactive?: string | undefined;
6538
6596
  } | undefined;
@@ -6542,18 +6600,18 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6542
6600
  size?: number | undefined;
6543
6601
  maxWidth?: number | undefined;
6544
6602
  lineHeight?: number | undefined;
6603
+ backgroundColor?: string | undefined;
6545
6604
  numLines?: number | undefined;
6546
6605
  foregroundColor?: string | undefined;
6547
- backgroundColor?: string | undefined;
6548
6606
  } | undefined;
6549
6607
  margin?: number | undefined;
6550
6608
  marker?: {
6551
6609
  size?: number | undefined;
6552
- foregroundColor?: {
6610
+ backgroundColor?: {
6553
6611
  active?: string | undefined;
6554
6612
  inactive?: string | undefined;
6555
6613
  } | undefined;
6556
- backgroundColor?: {
6614
+ foregroundColor?: {
6557
6615
  active?: string | undefined;
6558
6616
  inactive?: string | undefined;
6559
6617
  } | undefined;
@@ -6563,18 +6621,18 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6563
6621
  size?: number | undefined;
6564
6622
  maxWidth?: number | undefined;
6565
6623
  lineHeight?: number | undefined;
6624
+ backgroundColor?: string | undefined;
6566
6625
  numLines?: number | undefined;
6567
6626
  foregroundColor?: string | undefined;
6568
- backgroundColor?: string | undefined;
6569
6627
  } | undefined;
6570
6628
  margin?: number | undefined;
6571
6629
  marker?: {
6572
6630
  size?: number | undefined;
6573
- foregroundColor?: {
6631
+ backgroundColor?: {
6574
6632
  active?: string | undefined;
6575
6633
  inactive?: string | undefined;
6576
6634
  } | undefined;
6577
- backgroundColor?: {
6635
+ foregroundColor?: {
6578
6636
  active?: string | undefined;
6579
6637
  inactive?: string | undefined;
6580
6638
  } | undefined;
@@ -6588,18 +6646,18 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6588
6646
  size?: number | undefined;
6589
6647
  maxWidth?: number | undefined;
6590
6648
  lineHeight?: number | undefined;
6649
+ backgroundColor?: string | undefined;
6591
6650
  numLines?: number | undefined;
6592
6651
  foregroundColor?: string | undefined;
6593
- backgroundColor?: string | undefined;
6594
6652
  } | undefined;
6595
6653
  margin?: number | undefined;
6596
6654
  marker?: {
6597
6655
  size?: number | undefined;
6598
- foregroundColor?: {
6656
+ backgroundColor?: {
6599
6657
  active?: string | undefined;
6600
6658
  inactive?: string | undefined;
6601
6659
  } | undefined;
6602
- backgroundColor?: {
6660
+ foregroundColor?: {
6603
6661
  active?: string | undefined;
6604
6662
  inactive?: string | undefined;
6605
6663
  } | undefined;
@@ -6613,18 +6671,18 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6613
6671
  size?: number | undefined;
6614
6672
  maxWidth?: number | undefined;
6615
6673
  lineHeight?: number | undefined;
6674
+ backgroundColor?: string | undefined;
6616
6675
  numLines?: number | undefined;
6617
6676
  foregroundColor?: string | undefined;
6618
- backgroundColor?: string | undefined;
6619
6677
  } | undefined;
6620
6678
  margin?: number | undefined;
6621
6679
  marker?: {
6622
6680
  size?: number | undefined;
6623
- foregroundColor?: {
6681
+ backgroundColor?: {
6624
6682
  active?: string | undefined;
6625
6683
  inactive?: string | undefined;
6626
6684
  } | undefined;
6627
- backgroundColor?: {
6685
+ foregroundColor?: {
6628
6686
  active?: string | undefined;
6629
6687
  inactive?: string | undefined;
6630
6688
  } | undefined;
@@ -6783,12 +6841,17 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6783
6841
  */
6784
6842
  iconFit?: 'contain' | 'fill' | 'cover';
6785
6843
  /**
6786
- * Defines when the icon becomes visible relative to the current zoom level
6787
- * anything below 0 will result in icons never showing up
6788
- * 0 ensures icons show up at maxZoom (fully zoomed in)
6789
- * 1 ensures they always show up
6844
+ * Whether the icon should overflow the circle of the marker.
6845
+ * @default 'hidden'
6846
+ */
6847
+ iconOverflow?: 'visible' | 'hidden';
6848
+ /**
6849
+ * Defines the zoom level at which the icon becomes visible.
6850
+ * Infinity ensures the icon is never visible.
6851
+ * -Infinity ensures the icon is always visible.
6852
+ * @default -Infinity
6790
6853
  */
6791
- iconVisibilityThreshold?: number;
6854
+ iconVisibleAtZoomLevel?: number;
6792
6855
  };
6793
6856
  };
6794
6857
  /**
@@ -6854,8 +6917,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6854
6917
  iconSize?: number;
6855
6918
  iconPadding: number;
6856
6919
  iconFit: 'fill' | 'contain' | 'cover';
6920
+ iconOverflow: 'visible' | 'hidden';
6857
6921
  icon?: string;
6858
- iconVisibilityThreshold?: number;
6922
+ iconVisibleAtZoomLevel?: number;
6859
6923
  };
6860
6924
  };
6861
6925
  export type LabelOptions = {
@@ -6966,7 +7030,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6966
7030
  imageHash?: number;
6967
7031
  markerSize: number;
6968
7032
  iconVisible: boolean;
6969
- zoomProportion: number;
6970
7033
  dp: (v?: number) => number;
6971
7034
  setEntity(): void;
6972
7035
  constructor(text: string, options: AddLabelOptions, state: RendererState);
@@ -6977,7 +7040,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6977
7040
  onStrategySelected: (strategyIndex: any) => void;
6978
7041
  updatePosition(): void;
6979
7042
  disable(): void;
6980
- toPackedMessage(lockToCurrentStrategy?: boolean): {
7043
+ toPackedMessage(isPanning?: boolean): {
6981
7044
  x: number;
6982
7045
  y: number;
6983
7046
  enabled: boolean;
@@ -7161,7 +7224,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
7161
7224
  }
7162
7225
 
7163
7226
  declare module '@mappedin/react-sdk/geojson/src/types/geometry' {
7164
- export type Position = [lon: number, lat: number, alt?: number];
7227
+ export type Position = [lon: number, lat: number] | [lon: number, lat: number, alt: number];
7165
7228
  }
7166
7229
 
7167
7230
  declare module '@mappedin/react-sdk/geojson/src/types' {
@@ -7487,6 +7550,7 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
7487
7550
  /** Global group for all tweens */
7488
7551
  tweenGroup: TweenGroup;
7489
7552
  cameraObject: Camera;
7553
+ naturalBearing: number;
7490
7554
  };
7491
7555
  /**
7492
7556
  * All of the entities in the scene
@@ -7553,7 +7617,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7553
7617
  import type { Feature, LineString, MultiLineString, MultiPolygon, Polygon, Position as GeoJsonPosition } from 'geojson';
7554
7618
  import type { BBox } from '@turf/turf';
7555
7619
  import { type ImageProperties } from '@mappedin/react-sdk/geojson/src/components/image';
7556
- import { type BaseTextAreaProperties } from '@mappedin/mvf';
7620
+ import { type BaseTextAreaProperties, type EnterpriseTexture } from '@mappedin/mvf';
7557
7621
  import type { Text } from 'troika-three-text';
7558
7622
  import type { GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
7559
7623
  export class EntityBatchedMesh extends BatchedMesh {
@@ -7574,6 +7638,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7574
7638
  textArea?: BaseTextAreaProperties & {
7575
7639
  position: GeoJsonPosition;
7576
7640
  };
7641
+ textures?: EnterpriseTexture[];
7577
7642
  };
7578
7643
  /**
7579
7644
  * State representing a Geometry
@@ -7706,6 +7771,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7706
7771
  set topTexture(texture: Texture);
7707
7772
  get topTexture(): string;
7708
7773
  get topTextureInstance(): Texture | undefined;
7774
+ set blendTexture(value: boolean);
7709
7775
  get featureBbox(): BBox;
7710
7776
  texturesVisible: boolean;
7711
7777
  showTextures(): void;
@@ -8122,6 +8188,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8122
8188
  import { Group as TweenGroup } from '@tweenjs/tween.js';
8123
8189
  import { Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
8124
8190
  import { Occlusion2DSystem } from '@mappedin/react-sdk/geojson/src/systems/2d-occlusion/system';
8191
+ import type { FloatingFloorTextProperties } from '@mappedin/mvf';
8125
8192
  export type * from '@mappedin/react-sdk/geojson/src/types';
8126
8193
  export const raycaster: Raycaster;
8127
8194
  /**
@@ -8219,6 +8286,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8219
8286
  addCustomGeometry(id: string, feature: Feature<Point>, builder: CustomGeometryBuilder, style?: {
8220
8287
  visible?: boolean;
8221
8288
  altitude?: number;
8289
+ interactive?: boolean;
8222
8290
  }, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<ShapeState>;
8223
8291
  /**
8224
8292
  * Add a geometry group from GeoJSON data
@@ -8237,6 +8305,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8237
8305
  * Add an HTML Marker at a GeoJSON coordinate.
8238
8306
  */
8239
8307
  addMarker2D(coordinate: Position, contentHTML: string, options?: AddMarkerOptions, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<MarkerState> | undefined;
8308
+ addText3D(id: string, geometry: Feature<Point, FloatingFloorTextProperties>, options: AddText3DOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<Text3DState>;
8240
8309
  /**
8241
8310
  * Labels an existing 3D geometry with a text area.
8242
8311
  *
@@ -8258,10 +8327,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8258
8327
  */
8259
8328
  labelText3D(meshGeometryId: string, content: string, options?: AddText3DOptions & {
8260
8329
  parentId?: string;
8261
- }): {
8262
- id: string | number;
8263
- type: "text3d";
8264
- } | undefined;
8330
+ }): EntityId<Text3DState> | undefined;
8265
8331
  /**
8266
8332
  * Add a 2D label at a GeoJSON coordinate.
8267
8333
  */
@@ -8326,6 +8392,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8326
8392
  setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<UpdateModelState>): void;
8327
8393
  setState<T extends EntityId<ImageState>>(object: T | T['id'], state: Partial<ImageState>): void;
8328
8394
  setState<T extends EntityId<Text3DState>>(object: T | T['id'], state: Partial<UpdatableText3DState>): void;
8395
+ setState<T extends EntityId<PathState>>(object: T | T['id'], state: Partial<PathState>): void;
8329
8396
  setState<T extends EntityState>(object: T | T['id'], state: Partial<T>): void;
8330
8397
  /**
8331
8398
  * Project a screen coordinate to a geographic coordinate
@@ -8698,6 +8765,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8698
8765
  import type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
8699
8766
  import type { MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
8700
8767
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8768
+ import { type FloorTextCommonProperties } from '@mappedin/mvf';
8701
8769
  /**
8702
8770
  * State representing an Text3D
8703
8771
  */
@@ -9066,8 +9134,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
9066
9134
  mesh: Geometry3DObject3D;
9067
9135
  textMesh?: Text;
9068
9136
  readonly type = "text3d";
9069
- feature: Feature<Point, Text3DProperties>;
9070
- constructor(feature: Feature<Point, Text3DProperties>);
9137
+ feature: Feature<Point, Text3DProperties | (FloorTextCommonProperties & {
9138
+ verticalOffset: number;
9139
+ })>;
9140
+ constructor(feature: Feature<Point, Text3DProperties | (FloorTextCommonProperties & {
9141
+ verticalOffset: number;
9142
+ })>);
9071
9143
  get visible(): boolean;
9072
9144
  set visible(visible: boolean);
9073
9145
  parent?: GroupContainerObject3D;
@@ -9226,6 +9298,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
9226
9298
  export { noop, pick, isEmpty, type KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils/fp';
9227
9299
  export { transformRequest } from '@mappedin/react-sdk/geojson/src/utils/tranform-request';
9228
9300
  export { normalizeAngle } from '@mappedin/react-sdk/geojson/src/utils/math';
9301
+ export function shouldExpandZoomLevel(minZoomFromCurrentPanBounds: number, cameraZoomLevel: number): boolean;
9229
9302
  }
9230
9303
 
9231
9304
  declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
@@ -9236,6 +9309,10 @@ declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
9236
9309
  DEFAULT = 0,
9237
9310
  OUTLINES = 1
9238
9311
  }
9312
+ /**
9313
+ * Duration of zoom in/out animation when double tapping with one finger or single tapping with two fingers.
9314
+ */
9315
+ export const TAP_ZOOM_DURATION = 250;
9239
9316
  }
9240
9317
 
9241
9318
  declare module '@mappedin/react-sdk/geojson/src/utils/debug' {
@@ -9305,6 +9382,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
9305
9382
  * @hidden
9306
9383
  */
9307
9384
  onClick?: () => void;
9385
+ /**
9386
+ * Whether the watermark is interactive.
9387
+ * @default true
9388
+ */
9389
+ interactive?: boolean;
9308
9390
  /**
9309
9391
  * Whether the watermark should be visible.
9310
9392
  * @hidden
@@ -9315,6 +9397,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
9315
9397
  export type WatermarkUpdateOptions = Omit<WatermarkOptions, 'onClick' | 'visible'> & {
9316
9398
  /** Show the Mappedin watermark. Once it is visible it cannot be hidden again. */
9317
9399
  visible?: true;
9400
+ /** Set the interactivity of the watermark. */
9401
+ interactive?: boolean;
9318
9402
  };
9319
9403
  export class WatermarkSystem extends PubSub<{
9320
9404
  'texture-loaded': void;
@@ -9352,9 +9436,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/text3d/system' {
9352
9436
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
9353
9437
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
9354
9438
  import { PubSub } from '@packages/internal/common';
9355
- import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
9356
9439
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
9357
- import type { Text } from 'troika-three-text';
9440
+ import type { Text, BatchedText } from 'troika-three-text';
9358
9441
  export class Text3DSystem extends PubSub<{
9359
9442
  render: undefined;
9360
9443
  }> {
@@ -9384,7 +9467,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter' {
9384
9467
 
9385
9468
  declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
9386
9469
  import type { Map } from '@mappedin/react-sdk/packages/outdoor-context-v4';
9387
- import './style.scss';
9470
+ import '../../styles/html-controls.scss';
9388
9471
  /**
9389
9472
  * All possible control anchor positions.
9390
9473
  */
@@ -9433,7 +9516,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9433
9516
  import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9434
9517
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
9435
9518
  import { Label, Marker, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9436
- import { Text3D as Text3DView, Model, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9519
+ import { Text3D as Text3DView, Model, Path, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9437
9520
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
9438
9521
  import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
9439
9522
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
@@ -9451,6 +9534,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9451
9534
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
9452
9535
  import { type BBox } from 'geojson';
9453
9536
  import { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
9537
+ import { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
9454
9538
  export class GeoJsonApi {
9455
9539
  core: RendererCore;
9456
9540
  mapObjects: GeojsonApiMapObject[];
@@ -9482,7 +9566,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9482
9566
  get DynamicFocus(): import("..").DynamicFocus;
9483
9567
  get StackedMaps(): import("..").StackedMaps;
9484
9568
  constructor(rendererCore: RendererCore, mapView: MapView);
9485
- updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
9569
+ updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | Path | PathSegment | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
9486
9570
  update: () => void;
9487
9571
  getMapDataInternal(): MapDataInternal | undefined;
9488
9572
  getMapData(): MapData | undefined;
@@ -9492,11 +9576,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9492
9576
  updateWatermark(options: WatermarkUpdateOptions): void;
9493
9577
  get currentFloorStack(): FloorStack;
9494
9578
  get currentFloor(): Floor;
9495
- getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | string>(target: T): TGetState<T>;
9579
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | Path | PathSegment | string>(target: T): TGetState<T>;
9496
9580
  setHoverColor(c: string): void;
9497
9581
  getHoverColor(): string | undefined;
9498
- createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
9499
9582
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
9583
+ getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
9584
+ x: number;
9585
+ y: number;
9586
+ };
9500
9587
  isInView(target: Space | MapObject | Label | Marker | string): boolean;
9501
9588
  auto(): {
9502
9589
  labels: Label[];
@@ -9523,7 +9610,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9523
9610
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
9524
9611
  import type { Path, Shape, Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9525
9612
  import { Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9526
- import type { Coordinate, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9613
+ import { Coordinate, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9527
9614
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
9528
9615
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
9529
9616
  import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
@@ -9533,9 +9620,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9533
9620
  'floor-change': {
9534
9621
  reason?: TFloorChangeReason;
9535
9622
  floorId: string;
9623
+ previousFloorId: string;
9536
9624
  };
9537
9625
  'floor-change-start': {
9626
+ reason?: TFloorChangeReason;
9538
9627
  floorId: string;
9628
+ previousFloorId: string;
9539
9629
  };
9540
9630
  'navigation-connection-click': {
9541
9631
  fromFloor?: Floor;
@@ -9562,7 +9652,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9562
9652
  StackedMaps: StackedMaps;
9563
9653
  DynamicFocus: DynamicFocus;
9564
9654
  get currentFloorStack(): FloorStackObject;
9565
- setFloorStack(floorStackId: string): void;
9655
+ setFloorStack(floorStackId: string, reason?: TFloorChangeReason): void;
9566
9656
  get currentFloor(): FloorObject;
9567
9657
  /** @deprecated use `currentFloorStack.floorObjects` or `floorsById` instead */
9568
9658
  get floors(): FloorObject[];
@@ -9622,8 +9712,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9622
9712
  removeAll: () => void;
9623
9713
  };
9624
9714
  Paths: {
9625
- add: (coordinates: Coordinate[], options?: TAddPathOptions) => {
9626
- paths: EntityId<PathState>[];
9715
+ add: (coordinates: Coordinate[], options?: TAddPathOptions & {
9716
+ id?: string;
9717
+ }) => {
9718
+ paths: (EntityId<PathState> & {
9719
+ coordinates: Coordinate[];
9720
+ })[];
9627
9721
  animation: Promise<void>;
9628
9722
  };
9629
9723
  remove: (entityIds: string[]) => void;
@@ -9821,40 +9915,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
9821
9915
  }
9822
9916
  }
9823
9917
 
9824
- declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
9825
- import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9826
- import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
9827
- /**
9828
- * Class representing a path on the {@link MapView}.
9829
- *
9830
- * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
9831
- */
9832
- export class Path implements IFocusable {
9833
- /**
9834
- * The label's id
9835
- */
9836
- id: string;
9837
- /**
9838
- * The promise that resolves when the current path animation is complete.
9839
- */
9840
- animation: Promise<void>;
9841
- /**
9842
- * The coordinates of the path.
9843
- */
9844
- coordinates: Coordinate[];
9845
- /**
9846
- * @internal
9847
- */
9848
- readonly __type: 'Path';
9849
- /** @internal */
9850
- get focusTarget(): Coordinate[];
9851
- /**
9852
- * @internal
9853
- */
9854
- constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[]);
9855
- }
9856
- }
9857
-
9858
9918
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
9859
9919
  import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
9860
9920
  /**
@@ -9925,8 +9985,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d' {
9925
9985
  }
9926
9986
 
9927
9987
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
9928
- import type { IFocusable, TCameraAnimationOptions, TCameraTarget, TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
9929
- import type { InsetPadding } from '@mappedin/core-sdk';
9988
+ import type { IFocusable, TCameraAnimationOptions, TCameraTarget, TFocusOnOptions, TCameraInteractionsSetOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
9989
+ import { type InsetPadding } from '@mappedin/core-sdk';
9930
9990
  import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9931
9991
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
9932
9992
  /**
@@ -9943,6 +10003,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
9943
10003
  * @internal
9944
10004
  */
9945
10005
  constructor(api: GeoJsonApi);
10006
+ /**
10007
+ * Controls which camera interactions are enabled/disabled.
10008
+ */
10009
+ interactions: {
10010
+ set: (options: TCameraInteractionsSetOptions) => void;
10011
+ enable: () => void;
10012
+ disable: () => void;
10013
+ };
9946
10014
  /**
9947
10015
  * 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}.
9948
10016
  *
@@ -10330,7 +10398,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
10330
10398
  *
10331
10399
  * 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.
10332
10400
  * 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.
10333
- * 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.
10401
+ * 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.
10334
10402
  *
10335
10403
  * 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.
10336
10404
  *
@@ -10399,6 +10467,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation/index' {
10399
10467
  * @default true
10400
10468
  */
10401
10469
  setMapOnConnectionClick?: boolean;
10470
+ /**
10471
+ * Controls whether the map should be set to the floor of the departure point when the path is drawn.
10472
+ * @default true
10473
+ */
10474
+ setMapToDeparture?: boolean;
10402
10475
  /**
10403
10476
  * Controls whether markers are created for the departure, destination, and connection points.
10404
10477
  */
@@ -11400,30 +11473,70 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metada
11400
11473
  }
11401
11474
  }
11402
11475
 
11403
- declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object' {
11404
- import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
11476
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/detailed-map-data' {
11477
+ import type { Details, Feature as MVFFeature, Geometry } from '@mappedin/mvf';
11478
+ import type LocationProfile from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location-profile';
11405
11479
  import Hyperlink from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink';
11480
+ import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
11406
11481
  import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
11407
- import type { Details } from '@mappedin/mvf';
11408
- export default abstract class BaseMapData {
11482
+ import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
11483
+ type PropertiesWithDetails = {
11484
+ id: string;
11485
+ externalId?: string;
11486
+ details?: Details;
11487
+ };
11488
+ export default abstract class DetailedMapData<MVFData extends MVFFeature<Geometry, PropertiesWithDetails>> extends BaseMapData {
11409
11489
  #private;
11490
+ constructor(data: MapDataInternal, mvfData: MVFData);
11410
11491
  /**
11411
- * The identity of the map data.
11492
+ * Gets the external identifier of the map feature.
11493
+ *
11494
+ * @returns {string} The external ID of the map feature, or an empty string if no external ID exists.
11412
11495
  */
11413
- readonly id: string;
11414
- constructor(id: string, data: MapDataInternal, details?: Details);
11496
+ get externalId(): string;
11415
11497
  /**
11416
- * Gets the links associated with this data type.
11498
+ * Gets the name of the map feature.
11417
11499
  *
11418
- * @returns {Hyperlink[]} The links associated with this data type
11500
+ * @returns {string} The name of the map feature.
11419
11501
  */
11420
- links: Hyperlink[];
11502
+ get name(): string;
11503
+ /**
11504
+ * Gets the description of the map feature.
11505
+ *
11506
+ * @returns {string} The description of the map feature, or an empty string if no description exists.
11507
+ */
11508
+ get description(): string;
11421
11509
  /**
11422
- * Gets the array of images associated with this data type.
11510
+ * Gets the array of {@link Image}s associated with this map feature.
11423
11511
  *
11424
11512
  * @returns {Image[]} An array of Image objects, or an empty array if no images exist.
11425
11513
  */
11426
- images: Image[];
11514
+ get images(): Image[];
11515
+ /**
11516
+ * Gets the array of {@link Hyperlink}s associated with this map feature.
11517
+ *
11518
+ * @returns {Hyperlink[]} An array of Hyperlink objects, or an empty array if no links exist.
11519
+ */
11520
+ get links(): Hyperlink[];
11521
+ /**
11522
+ * Gets the {@link LocationProfile}s attached to this feature.
11523
+ *
11524
+ * @returns {LocationProfile[]} An array of location profiles.
11525
+ */
11526
+ get locationProfiles(): LocationProfile[];
11527
+ }
11528
+ export {};
11529
+ }
11530
+
11531
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object' {
11532
+ import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
11533
+ export default abstract class BaseMapData {
11534
+ #private;
11535
+ /**
11536
+ * The identity of the map data.
11537
+ */
11538
+ readonly id: string;
11539
+ constructor(id: string, _data: MapDataInternal);
11427
11540
  /**
11428
11541
  * Gets the bounding box of the geoJSON geometry.
11429
11542
  *
@@ -11455,7 +11568,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/opening-hou
11455
11568
 
11456
11569
  declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
11457
11570
  import { QuadTree } from '@packages/internal/quad-tree';
11458
- import './style.scss';
11571
+ import '../../styles/collisions.scss';
11459
11572
  import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
11460
11573
  import type LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
11461
11574
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
@@ -11522,7 +11635,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
11522
11635
  currentMsgId: string;
11523
11636
  working: boolean;
11524
11637
  componentArray: (MarkerComponent | LabelComponent)[];
11525
- update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, useAllStrategies?: boolean) => void;
11638
+ update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, isPanning?: boolean) => void;
11526
11639
  resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
11527
11640
  /**
11528
11641
  * Resolve collisions
@@ -11732,21 +11845,20 @@ declare module '@mappedin/react-sdk/geojson/src/components/interaction' {
11732
11845
 
11733
11846
  declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
11734
11847
  import { type Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
11735
- import { Text, BatchedText } from 'troika-three-text';
11848
+ import { BatchedText, Text } from 'troika-three-text';
11736
11849
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
11737
11850
  import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
11738
- export function createTroikaText(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11851
+ export function createTroikaTextPoint(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11852
+ text: Text;
11853
+ }>;
11854
+ export function createTroikaTextArea(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11739
11855
  text: Text;
11740
11856
  } | undefined>;
11741
11857
  export { BatchedText, Text };
11742
11858
  /**
11743
- * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
11859
+ * Promise caches the base64 font string. Then shared across all needed
11744
11860
  */
11745
- export type ModuleType = {
11746
- createTroikaText: typeof createTroikaText;
11747
- preloadFont: typeof preloadFont;
11748
- BatchedText: typeof BatchedText;
11749
- };
11861
+ export let fontPreloadLoadPromise: Promise<string> | undefined;
11750
11862
  /**
11751
11863
  * Preloads a font from the given URL. Enable developer to preload font way before scene is ready
11752
11864
  *
@@ -11754,6 +11866,15 @@ declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
11754
11866
  * @returns A promise that resolves when the font is successfully preloaded, or rejects with an error if the font cannot be loaded.
11755
11867
  */
11756
11868
  export function preloadFont(fontUrl?: string): Promise<string>;
11869
+ /**
11870
+ * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
11871
+ */
11872
+ export type ModuleType = {
11873
+ createTroikaTextPoint: typeof createTroikaTextPoint;
11874
+ createTroikaTextArea: typeof createTroikaTextArea;
11875
+ preloadFont: typeof preloadFont;
11876
+ BatchedText: typeof BatchedText;
11877
+ };
11757
11878
  }
11758
11879
 
11759
11880
  declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style' {
@@ -11947,12 +12068,12 @@ declare module '@mappedin/react-sdk/geojson/src/types/options' {
11947
12068
  map?: MapLibreMap;
11948
12069
  mode?: 'standalone' | 'outdoors-interleaved' | 'outdoors-overlay';
11949
12070
  antialias?: boolean;
11950
- onWebGLContextCreationError?: (error: Error) => void;
11951
- onWebGLContextLost?: () => void;
11952
- onWebGLContextRestored?: () => void;
12071
+ onWebGLRendererError?: (error: Error) => void;
12072
+ onWebGLContextCreationError?: (event: Event) => void;
12073
+ onWebGLContextLost?: (event: Event) => void;
12074
+ onWebGLContextRestored?: (event: Event) => void;
11953
12075
  backgroundColor?: string;
11954
12076
  backgroundAlpha?: number;
11955
- onWebGLRendererError?: (error: Error) => void;
11956
12077
  watermark?: WatermarkOptions;
11957
12078
  attribution?: AttributionControlOptions;
11958
12079
  imagePlacementOptions?: ImagePlacementOptions;
@@ -11982,6 +12103,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
11982
12103
  set texture(texture: Texture);
11983
12104
  get topTexture(): Texture;
11984
12105
  set topTexture(texture: Texture);
12106
+ get blendTexture(): boolean;
12107
+ set blendTexture(value: boolean);
11985
12108
  setGradientShading(start: number, end: number, intensity: number): void;
11986
12109
  setColor(batchId: number, color: Color, topColor: Color): void;
11987
12110
  getColor(batchId: number): {
@@ -12061,11 +12184,18 @@ declare module '@mappedin/react-sdk/packages/common/pubsub' {
12061
12184
  declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
12062
12185
  import type { Scene, Camera } from 'three';
12063
12186
  import { Color, WebGLRenderer } from 'three';
12064
- export type TRendererOptions = {
12187
+ export type TRendererOptions = Partial<{
12188
+ canvas: HTMLCanvasElement | OffscreenCanvas;
12189
+ antialias: boolean;
12190
+ backgroundColor: string;
12191
+ backgroundAlpha: number;
12065
12192
  alpha: boolean;
12066
12193
  onWebGLRendererError: (e: Error) => void;
12067
12194
  xRayPath: boolean;
12068
- };
12195
+ onWebGLContextCreationError: (e: Event) => void;
12196
+ onWebGLContextLost: (e: Event) => void;
12197
+ onWebGLContextRestored: (e: Event) => void;
12198
+ }>;
12069
12199
  export class Renderer {
12070
12200
  backgroundAlpha: number;
12071
12201
  backgroundColor: Color;
@@ -12073,7 +12203,7 @@ declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
12073
12203
  height: number;
12074
12204
  options: TRendererOptions;
12075
12205
  renderer?: WebGLRenderer;
12076
- constructor(renderOptions: any);
12206
+ constructor(renderOptions: TRendererOptions);
12077
12207
  /**
12078
12208
  * Dispose of the renderer and its buffers.
12079
12209
  */
@@ -12107,6 +12237,9 @@ declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
12107
12237
  */
12108
12238
  setBackgroundColor(color: any, alpha: any): void;
12109
12239
  domElement(): HTMLCanvasElement | undefined;
12240
+ handleWebGLContextCreationError: (event: Event) => void;
12241
+ handleWebGLContextLost: (event: Event) => void;
12242
+ handleWebGLContextRestored: (event: Event) => void;
12110
12243
  }
12111
12244
  }
12112
12245
 
@@ -12214,7 +12347,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
12214
12347
  right?: OffscreenCanvas | HTMLCanvasElement;
12215
12348
  };
12216
12349
  };
12217
- update: (newZoom: number, minZoom: number, maxZoom: number) => void;
12350
+ update: (zoomLevel: number) => void;
12218
12351
  processText: (text: string, size: number, maxWidth: number, maxLines: number, lineHeight: number) => {
12219
12352
  textDrawFn: import("@packages/internal/shave-text/shave-text").TDrawFn;
12220
12353
  width: number;
@@ -12557,7 +12690,15 @@ declare module '@mappedin/react-sdk/geojson/src/systems/image/system' {
12557
12690
  'image-loaded': void;
12558
12691
  }> {
12559
12692
  constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition'], initialBearing?: number, naturalBearing?: number, imagePlacementOptions?: ImagePlacementOptions);
12560
- imageLoadingCache: Map<string, Promise<Texture>>;
12693
+ /**
12694
+ * We need to track the loaded state separately from the promise since we can't check
12695
+ * the resolution state of a promise after it settles. This allows components to check
12696
+ * if an image has finished loading without having to await the promise.
12697
+ */
12698
+ imageLoadingCache: Map<string, {
12699
+ loaded: boolean;
12700
+ promise: Promise<Texture>;
12701
+ }>;
12561
12702
  update(cameraRotationRadians: number): void;
12562
12703
  }
12563
12704
  }
@@ -13094,15 +13235,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
13094
13235
 
13095
13236
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
13096
13237
  import { Coordinate, type MapObject, type Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
13097
- import type { Position, EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
13098
- import type { WithPolygonImage } from '@packages/internal/mvf-utils';
13238
+ import type { EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
13239
+ import type { PolygonFeatureProperties } from '@packages/internal/mvf-utils';
13099
13240
  import type { BBox, FeatureCollection, MultiLineString } from 'geojson';
13100
- import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
13241
+ import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle, Position } from '@mappedin/core-sdk';
13101
13242
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/react-sdk/mappedin-js/src';
13102
13243
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
13103
- import type { Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
13244
+ import type { Image, Path, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
13104
13245
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
13105
13246
  import type { Tween } from '@tweenjs/tween.js';
13247
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
13106
13248
  export function convertCoordinateToPosition(coord: Coordinate): Position;
13107
13249
  export function convertPositionToCoordinate(coord: Position): Coordinate;
13108
13250
  export const cutEntrancesFromLineStrings: (lineStrings: ObstructionCollection["features"], entranceCollection: EntranceCollection["features"]) => {
@@ -13127,9 +13269,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
13127
13269
  export type WithId<T> = T & {
13128
13270
  id?: string;
13129
13271
  };
13130
- export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<LineString | Polygon | Point, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
13272
+ export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, PolygonFeatureProperties<SpaceProperties | ObstructionProperties>>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Polygon | LineString | Point, PolygonFeatureProperties<SpaceProperties | ObstructionProperties>>[]>;
13131
13273
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
13132
- export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
13274
+ export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Path | PathSegment | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
13133
13275
  export function tweenToPromise(tween: Tween): Promise<void>;
13134
13276
  export function getBoundingBox(geometry: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>): BBox;
13135
13277
  export function expandBbox(bbox: BBox, bboxToExpand: BBox): number[];
@@ -13198,6 +13340,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus/dy
13198
13340
  constructor(core: RendererCore, geoJSONApi: GeoJsonApi, { currentMapGetter }: {
13199
13341
  currentMapGetter: CurrentMapGetter;
13200
13342
  });
13343
+ get focusedFacades(): import("../../map-data-objects").Facade[];
13201
13344
  /**
13202
13345
  * @experimental
13203
13346
  * Enables Dynamic Focus and allows the camera to automatically set the floor stack when a facade is hovered.
@@ -13262,7 +13405,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-proc
13262
13405
  }
13263
13406
 
13264
13407
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13265
- import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
13408
+ import { PerspectiveCamera, Vector3, Object3D, Mesh, Intersection, Object3DEventMap } from 'three';
13266
13409
  import { Raycaster } from 'three';
13267
13410
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
13268
13411
  import { QuadTree } from '@packages/internal/quad-tree';
@@ -13271,7 +13414,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13271
13414
  import type { EntityMesh } from '@mappedin/react-sdk/geojson/src/types';
13272
13415
  import { TapsController } from '@mappedin/react-sdk/geojson/src/systems/interactions/tap-controller';
13273
13416
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
13274
- import 'style.scss';
13417
+ import '../../styles/interactions.scss';
13275
13418
  import type { EntityBatchedMesh } from '@mappedin/react-sdk/geojson/src/components/mesh';
13276
13419
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
13277
13420
  type InteractionPayload = {
@@ -13326,7 +13469,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13326
13469
  entities: (Object3D | EntityMesh<Geometry3D> | EntityBatchedMesh)[];
13327
13470
  groups: GroupContainerObject3D[];
13328
13471
  };
13329
- getMouseRayIntersects(): import("three").Intersection<Object3D<import("three").Object3DEventMap>>[];
13472
+ getMouseRayIntersects(): Intersection<Object3D<Object3DEventMap>>[];
13330
13473
  destroy(): void;
13331
13474
  debugPanel: HTMLDivElement | undefined;
13332
13475
  enableDebug(): void;
@@ -13344,7 +13487,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13344
13487
  getCursor(): CursorTypes;
13345
13488
  resize: () => void;
13346
13489
  }
13347
- export function findModelParent(object: Object3D): Object3D<import("three").Object3DEventMap> | undefined;
13490
+ export function findModelParent(object: Object3D): Object3D<Object3DEventMap> | undefined;
13348
13491
  export {};
13349
13492
  }
13350
13493
 
@@ -13355,6 +13498,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13355
13498
  import * as CAMERA_CONSTANTS from '@mappedin/react-sdk/geojson/src/systems/camera/constants';
13356
13499
  import type { AnimateCameraTarget, CameraControlsOptions, CameraFocusOnOptions } from '@mappedin/react-sdk/geojson/src/systems/camera/types';
13357
13500
  import type { InsetPadding, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
13501
+ export enum CameraControlsState {
13502
+ NONE = -1,
13503
+ ROTATE = 0,
13504
+ DOLLY = 1,
13505
+ PAN = 2,
13506
+ WHEEL_ZOOM = 3,
13507
+ TOUCH_TILT = 4,
13508
+ TOUCH_DOLLY = 5,
13509
+ TOUCH_PAN = 6,
13510
+ MULTI = 7,
13511
+ PEDESTAL = 8,
13512
+ TOUCH_PEDESTAL = 9
13513
+ }
13358
13514
  type CameraEventName = (typeof CAMERA_CONSTANTS.EVENTS)[number];
13359
13515
  type SpecificCameraEvents = {
13360
13516
  'multi-start': {
@@ -13394,6 +13550,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13394
13550
  dirty: boolean;
13395
13551
  zoomDirty: boolean;
13396
13552
  rotationDirty: boolean;
13553
+ panDirty: boolean;
13397
13554
  /**
13398
13555
  * Factor that controls how fast zooming in and out happens in response to mouse wheel events
13399
13556
  *
@@ -13542,6 +13699,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13542
13699
  * @default 1.2
13543
13700
  */
13544
13701
  maxTilt: number;
13702
+ state: CameraControlsState;
13545
13703
  constructor(camera: PerspectiveCamera, scene: Scene, renderer: WebGLRenderer, rendererState: RendererState, options: CameraControlsOptions);
13546
13704
  /**
13547
13705
  * The amount the camera is shifted up/down
@@ -21906,14 +22064,16 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
21906
22064
  * @param {string[]} originIds - IDs of origin nodes.
21907
22065
  * @param {string[]} destinationNodeIds - IDs of destination nodes.
21908
22066
  * @param {string[]} [excludedNodeIds] - IDs of nodes to exclude from pathfinding.
22067
+ * @param {string[]} [disabledConnectionNodeIds] - IDs of connection nodes that are disabled (ie. act as regular nodes).
21909
22068
  * @param {SimplifyDirectionsOptions} [simplify] - Options to simplify the pathfinding result.
21910
22069
  * @returns {DirectionsCollection} A collection of directional features representing the path.
21911
22070
  */
21912
- getDirections({ zones: directionsZones, originIds, destinationNodeIds, excludedNodeIds, simplify, multiplicativeDistanceWeightScaling, }: {
22071
+ getDirections({ zones: directionsZones, originIds, destinationNodeIds, excludedNodeIds, disabledConnectionNodeIds, simplify, multiplicativeDistanceWeightScaling, }: {
21913
22072
  originIds: string[];
21914
22073
  destinationNodeIds: string[];
21915
22074
  zones?: DirectionsZone[];
21916
22075
  excludedNodeIds?: string[];
22076
+ disabledConnectionNodeIds?: string[];
21917
22077
  simplify?: SimplifyDirectionsOptions;
21918
22078
  multiplicativeDistanceWeightScaling?: boolean;
21919
22079
  }): DirectionsCollection;