@mappedin/react-sdk 6.0.1-beta.12 → 6.0.1-beta.13

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.
@@ -9,15 +9,15 @@
9
9
  // ../react/@packages/internal/common
10
10
  // ../react/@mappedin/core-sdk
11
11
  // ../react/@mappedin/core-sdk/src/camera
12
+ // ../react/@packages/internal/geojson-navigator
12
13
  // ../react/@tweenjs/tween.js
13
14
  // ../react/@mappedin/mvf/dist/locale
14
- // ../react/three
15
15
  // ../react/zod
16
+ // ../react/three
16
17
  // ../react/@packages/internal/shave-text/shave-text
17
18
  // ../react/@turf/turf
18
19
  // ../react/@packages/internal/quad-tree
19
20
  // ../react/@packages/internal/outdoor-context-v4
20
- // ../react/@packages/internal/geojson-navigator
21
21
  // ../react/minisearch
22
22
  // ../react/three/addons/loaders/GLTFLoader.js
23
23
  // ../react/@mapbox/point-geometry
@@ -245,7 +245,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
245
245
  import type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions } from '@packages/internal/mvf-utils';
246
246
  import { parseMVF, unzipMVF } from '@packages/internal/mvf-utils';
247
247
  import type { Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
248
- import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle } from '@mappedin/mvf';
248
+ import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack } from '@mappedin/mvf';
249
249
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
250
250
  import type { Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
251
251
  import { enableTestMode } from '@mappedin/react-sdk/geojson/src';
@@ -498,6 +498,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
498
498
  };
499
499
  /**
500
500
  * @internal
501
+ * @deprecated Use {@link hydrateMapData} instead.
501
502
  *
502
503
  * Returns a {@link MapData} instance from a parsed MVF object.
503
504
  */
@@ -509,6 +510,37 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
509
510
  * @deprecated Use {@link getMapData} and enterprise will be inferred from key/secret.
510
511
  */
511
512
  export function setUseEnterpriseAPI(value: boolean): void;
513
+ export type THydrateMapDataBundle = {
514
+ type: 'binary';
515
+ options?: {
516
+ enterprise?: boolean;
517
+ };
518
+ languagePacks?: {
519
+ language: {
520
+ code: string;
521
+ name: string;
522
+ };
523
+ localePack: Uint8Array;
524
+ }[];
525
+ main: Uint8Array;
526
+ } | {
527
+ type: 'json';
528
+ options?: {
529
+ enterprise?: boolean;
530
+ };
531
+ languagePacks?: {
532
+ language: {
533
+ code: string;
534
+ name: string;
535
+ };
536
+ localePack: ParsedMVFLocalePack;
537
+ }[];
538
+ main: TMVF;
539
+ };
540
+ /**
541
+ * Load a MapData instance from a backup including language packs. Pass in userOptions to ensure outdoor view is available.
542
+ */
543
+ export const hydrateMapData: (backup: THydrateMapDataBundle | TMVF, userOptions?: TGetMapDataOptions) => Promise<MapData>;
512
544
  /**
513
545
  * Asynchronously retrieves map data ({@link MapData}) based on user-provided options.
514
546
  *
@@ -539,8 +571,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
539
571
  export type { Label, Marker, Path, Shape, CameraTransform, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
540
572
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
541
573
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
542
- export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
543
- export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
574
+ export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
575
+ export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
544
576
  export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/react-sdk/mappedin-js/src/search';
545
577
  export type { Analytics, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics';
546
578
  }
@@ -574,11 +606,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
574
606
  import { Analytics } from '@mappedin/react-sdk/mappedin-js/src/analytics';
575
607
  import { PubSub } from '@packages/internal/common';
576
608
  import type { TSearchOptions } from '@packages/internal/mvf-utils';
577
- import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
609
+ import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
578
610
  import type EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
579
611
  import type EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
580
612
  import type EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
581
613
  import { Search } from '@mappedin/react-sdk/mappedin-js/src/search';
614
+ import type { TNavigationTarget, TGetDirectionsOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
615
+ import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
582
616
  /**
583
617
  * A WeakMap to associate {@link MapData} instances with their internal representation.
584
618
  * We need a way to get the internal data object from the API
@@ -705,6 +739,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
705
739
  * const annotations = mapData.getByType('annotation');
706
740
  */
707
741
  getByType(type: 'annotation'): Annotation[];
742
+ /**
743
+ * @returns The nodes ({@link Node}) on the map.
744
+ * @example
745
+ * const nodes = mapData.getByType('node');
746
+ */
747
+ getByType(type: 'node'): Node[];
708
748
  /**
709
749
  * @returns The enterprise locations ({@link EnterpriseLocation}) on the map.
710
750
  * @example
@@ -722,7 +762,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
722
762
  * @example
723
763
  * const enterpriseVenue = mapData.getByType('enterprise-venue');
724
764
  */
725
- getByType(type: 'enterprise-venue'): EnterpriseVenue;
765
+ getByType(type: 'enterprise-venue'): EnterpriseVenue | undefined;
726
766
  /**
727
767
  * Retrieves a specific map feature by its type and ID.
728
768
  *
@@ -732,16 +772,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
732
772
  * @example
733
773
  * const space = mapData.getById('space', 'space-id');
734
774
  */
735
- getById(type: 'space', id: string): Space | undefined;
736
- getById(type: 'door', id: string): Door | undefined;
737
- getById(type: 'floor', id: string): Floor | undefined;
738
- getById(type: 'floor-stack', id: string): FloorStack | undefined;
739
- getById(type: 'connection', id: string): Connection | undefined;
740
- getById(type: 'object', id: string): MapObject | undefined;
741
- getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
742
- getById(type: 'annotation', id: string): Annotation | undefined;
743
- getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
744
- getById(type: 'enterprise-category', id: string): EnterpriseCategory | undefined;
775
+ getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
745
776
  getById(type: string, id: string): object | undefined;
746
777
  /**
747
778
  * Changes the language of the map data.
@@ -762,6 +793,35 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
762
793
  * @internal
763
794
  */
764
795
  get currentLanguage(): import("@mappedin/mvf").Language | undefined;
796
+ /**
797
+ * Retrieves directions ({@link Directions}) from one navigable point ({@link TNavigationTarget}) to another on the map.
798
+ *
799
+ * @param from The starting point for navigation.
800
+ * @param to The destination point.
801
+ * @param options Optional parameters for getting directions.
802
+ * @returns Directions from the start to the destination point.
803
+ * @example
804
+ * const directions = await map.getDirections(space1, space2);
805
+ */
806
+ getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], options?: TGetDirectionsOptions) => Directions | Directions[] | undefined;
807
+ /**
808
+ * Retrieves the distance between two navigable points ({@link TNavigationTarget}) on the map.
809
+ *
810
+ * @param from The starting point.
811
+ * @param to The destination point.
812
+ * @returns The distance between the start and destination points in meters.
813
+ */
814
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
815
+ /**
816
+ * Creates a backup of the map data including language packs.
817
+ * @internal
818
+ */
819
+ toBinaryBundle({ downloadLanguagePacks }?: {
820
+ downloadLanguagePacks?: boolean;
821
+ }): Promise<void | import(".").THydrateMapDataBundle>;
822
+ toJSONBundle({ downloadLanguagePacks }?: {
823
+ downloadLanguagePacks?: boolean;
824
+ }): Promise<import(".").THydrateMapDataBundle>;
765
825
  }
766
826
  export default MapData;
767
827
  /**
@@ -880,7 +940,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
880
940
  }
881
941
 
882
942
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
883
- import type Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
943
+ import Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
884
944
  import Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
885
945
  import Space from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
886
946
  import Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
@@ -899,9 +959,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
899
959
  import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
900
960
  import EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
901
961
  import { PubSub } from '@packages/internal/common';
902
- import type { LanguagePack, Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
962
+ import type { LanguagePack, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
903
963
  import { type LocalePackUrls } from '@packages/internal/mvf-utils';
904
- import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
964
+ import type { TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
965
+ import { type Directions, DirectionsInternal } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
966
+ import { type THydrateMapDataBundle } from '@mappedin/react-sdk/mappedin-js/src';
905
967
  /**
906
968
  * Internal class representing detailed map data.
907
969
  *
@@ -936,6 +998,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
936
998
  */
937
999
  readonly obstructionIdByEntranceId: Record<string, string>;
938
1000
  readonly venue?: EnterpriseVenue;
1001
+ directions: DirectionsInternal;
939
1002
  enterpriseMode: boolean;
940
1003
  nodesById: MapDataRecords['nodesById'];
941
1004
  spacesById: MapDataRecords['spacesById'];
@@ -950,6 +1013,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
950
1013
  categoriesById: MapDataRecords['categoriesById'];
951
1014
  doorsByNodeId: MapDataRecords['doorsByNodeId'];
952
1015
  locationsBySpaceId: MapDataRecords['mvfLocationsBySpaceId'];
1016
+ locationIdsByNodeId: MapDataRecords['locationIdsByNodeId'];
953
1017
  mvfAnnotationsById: MapDataRecords['mvfAnnotationsById'];
954
1018
  mvfConnectionsById: MapDataRecords['mvfConnectionsById'];
955
1019
  mvfConnectionsByNodeId: MapDataRecords['mvfConnectionsByNodeId'];
@@ -967,15 +1031,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
967
1031
  languagePacks: {
968
1032
  [languageCode: string]: LanguagePack;
969
1033
  };
1034
+ binaryBundle?: Uint8Array;
970
1035
  /**
971
1036
  * @internal
972
1037
  */
973
- constructor(mvf: ParsedMVF, { outdoorViewToken, localePacksUrls: localePacks, enterprise, languagePacks, }?: {
974
- enterprise?: boolean;
975
- outdoorViewToken?: string;
976
- localePacksUrls?: LocalePackUrls;
977
- languagePacks?: LanguagePackHydrationItem[];
978
- });
1038
+ constructor(mvf: ParsedMVF, options: TMapDataInternalOptions);
979
1039
  /**
980
1040
  * Retrieves the map name.
981
1041
  *
@@ -1077,6 +1137,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1077
1137
  * change the langauge of the data objects in mapdata
1078
1138
  */
1079
1139
  changeLanguage(languageCode: string): Promise<void>;
1140
+ getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], opt?: TGetDirectionsOptions) => Directions | Directions[] | undefined;
1141
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
1142
+ toJSONBundle({ downloadLanguagePacks, }?: {
1143
+ downloadLanguagePacks?: boolean;
1144
+ }): Promise<THydrateMapDataBundle>;
1145
+ toBinaryBundle({ downloadLanguagePacks, }?: {
1146
+ downloadLanguagePacks?: boolean;
1147
+ }): Promise<THydrateMapDataBundle | void>;
1080
1148
  /**
1081
1149
  * Cleans up resources used by the instance.
1082
1150
  *
@@ -1084,7 +1152,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1084
1152
  */
1085
1153
  destroy(): void;
1086
1154
  }
1087
- export { MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1155
+ export { Node, MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1088
1156
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1089
1157
  export type { Places };
1090
1158
  }
@@ -1097,7 +1165,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1097
1165
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
1098
1166
  import type { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1099
1167
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1100
- import type { Door, Floor, MapObject, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1168
+ import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1101
1169
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates } from '@mappedin/react-sdk/mappedin-js/src/types';
1102
1170
  import type { Label, Marker, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1103
1171
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
@@ -1229,6 +1297,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1229
1297
  getState<T extends Space | MapObject | Label | Marker | Image | string>(target: T): TGetState<T> | undefined;
1230
1298
  setHoverColor(c: string): void;
1231
1299
  getHoverColor(): string | undefined;
1300
+ /**
1301
+ * @internal
1302
+ */
1303
+ convertAltitudeToMercatorZoomLevel(altitude: number): number;
1304
+ /**
1305
+ * @internal
1306
+ */
1307
+ convertMercatorZoomLevelToAltitude(zoomLevel: number): number;
1232
1308
  /**
1233
1309
  * Determines if a given target is within the viewport.
1234
1310
  *
@@ -1250,7 +1326,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1250
1326
  * @example
1251
1327
  * const directions = await map.getDirections(space1, space2);
1252
1328
  */
1253
- getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
1329
+ getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], options?: TGetDirectionsOptions) => Directions | Directions[] | undefined;
1330
+ /**
1331
+ * Retrieves the distance between two navigable points ({@link TNavigationTarget}) on the map.
1332
+ *
1333
+ * @param from The starting point.
1334
+ * @param to The destination point.
1335
+ * @returns The distance between the start and destination points in meters.
1336
+ */
1337
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number | undefined;
1254
1338
  /**
1255
1339
  * Creates a {@link Coordinate} on the map.
1256
1340
  *
@@ -1262,8 +1346,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1262
1346
  * // Create a coordinate at the CN Tower.
1263
1347
  * const coord = map.createCoordinate(43.642567, -79.387054);
1264
1348
  */
1265
- createCoordinate(latitude: number, longitude: number, floor?: Floor): import(".").Coordinate;
1266
- createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): import(".").Coordinate | undefined;
1349
+ createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
1350
+ createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
1267
1351
  /**
1268
1352
  * @hidden
1269
1353
  * @experimental
@@ -1391,7 +1475,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1391
1475
 
1392
1476
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1393
1477
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1394
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1478
+ import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1395
1479
  import type { Label, Marker, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1396
1480
  import type { EasingCurve } from '@mappedin/core-sdk/src/camera';
1397
1481
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
@@ -1463,6 +1547,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1463
1547
  * The {@link Coordinate} at which this instruction applies.
1464
1548
  */
1465
1549
  coordinate: Coordinate;
1550
+ /**
1551
+ * @internal
1552
+ */
1553
+ node: Node;
1466
1554
  };
1467
1555
  /**
1468
1556
  * Defines the state for a label when its appearance is updated.
@@ -1723,7 +1811,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1723
1811
  /**
1724
1812
  * Defines the target for the {@link Camera} focus operation.
1725
1813
  */
1726
- export type TCameraFocusOnTarget = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | (Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door)[];
1814
+ export type TCameraFocusOnTarget = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node | (Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Node)[];
1727
1815
  /**
1728
1816
  * Defines the target for camera operations.
1729
1817
  */
@@ -1750,7 +1838,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1750
1838
  /**
1751
1839
  * Defines the target for navigation operations.
1752
1840
  */
1753
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation;
1841
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node;
1754
1842
  /**
1755
1843
  * Defines the special zone for navigation operations.
1756
1844
  */
@@ -2014,6 +2102,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2014
2102
  * Options for controlling the behavior of the {@link Directions}.
2015
2103
  */
2016
2104
  export type TGetDirectionsOptions = {
2105
+ /**
2106
+ * If true directions will be shown as a multisegment route
2107
+ *
2108
+ * @default false
2109
+ */
2110
+ multiSegment?: boolean;
2017
2111
  /**
2018
2112
  * If true directions will only take accessible routes
2019
2113
  *
@@ -2208,26 +2302,62 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2208
2302
  id?: string;
2209
2303
  };
2210
2304
  export type TBlueDotOptions = {
2211
- /** The radius of the BlueDot in pixels. The BlueDot will maintain this size clamped to a minimum of 0.35 metres. */
2305
+ /**
2306
+ * The radius of the BlueDot in pixels. The BlueDot will maintain this size clamped to a minimum of 0.35 metres.
2307
+ * @default 10
2308
+ */
2212
2309
  radius?: number;
2213
- /** The color of the BlueDot core element. */
2310
+ /**
2311
+ * The color of the BlueDot core element.
2312
+ * @default #2266ff
2313
+ */
2214
2314
  color?: string;
2215
- /** Options for the accuracy ring around the BlueDot. */
2315
+ /**
2316
+ * The color of the BlueDot when it has timed out and gone inactive.
2317
+ * @default #808080
2318
+ */
2319
+ inactiveColor?: string;
2320
+ /**
2321
+ * Options for the accuracy ring around the BlueDot.
2322
+ */
2216
2323
  accuracyRing?: {
2217
- /** The color of the accuracy ring. */
2324
+ /**
2325
+ * The color of the accuracy ring.
2326
+ * @default #2266ff
2327
+ */
2218
2328
  color?: string;
2219
- /** The opacity of the accuracy ring. */
2329
+ /**
2330
+ * The opacity of the accuracy ring.
2331
+ * @default 0.3
2332
+ */
2220
2333
  opacity?: number;
2221
2334
  };
2222
2335
  /**
2223
2336
  * Options for the bearing directional indicator.
2224
2337
  */
2225
2338
  bearing?: {
2226
- /** The color of the bearing cone. */
2339
+ /**
2340
+ * The color of the bearing cone.
2341
+ * @default #2266ff
2342
+ */
2227
2343
  color?: string;
2228
- /** The opacity of the bearing cone. */
2344
+ /**
2345
+ * The opacity of the bearing cone.
2346
+ * @default 0.7
2347
+ */
2229
2348
  opacity?: number;
2230
2349
  };
2350
+ /**
2351
+ * The duration of the timeout in milliseconds.
2352
+ * If the BlueDot does not receive a position update within this time, it will grey out until a position is received.
2353
+ * @default 30000
2354
+ */
2355
+ timeout?: number;
2356
+ /**
2357
+ * Whether to log debug messages.
2358
+ * @default false
2359
+ */
2360
+ debug?: boolean;
2231
2361
  };
2232
2362
  export type LanguagePackHydrationItem = {
2233
2363
  language: Language;
@@ -2330,6 +2460,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2330
2460
  * @internal
2331
2461
  */
2332
2462
  get currentMap(): GeojsonApiMapObject;
2463
+ /**
2464
+ * Returns true if the navigation is for a multi-floor path.
2465
+ */
2466
+ get isMultiFloor(): boolean;
2333
2467
  /**
2334
2468
  * @internal
2335
2469
  */
@@ -2339,7 +2473,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2339
2473
  * @param directions The directions to be drawn.
2340
2474
  * @param options Optional additional options for the navigation.
2341
2475
  */
2342
- draw: (directions: Directions, options?: TNavigationOptions) => Promise<unknown>;
2476
+ draw: (directions: Directions | Directions[], options?: TNavigationOptions) => Promise<unknown>;
2343
2477
  /**
2344
2478
  * Clears any drawn navigation paths or directions from the map.
2345
2479
  */
@@ -2351,6 +2485,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2351
2485
 
2352
2486
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson' {
2353
2487
  export { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
2488
+ export { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot';
2354
2489
  export { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
2355
2490
  export { Labels } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/labels';
2356
2491
  export { Markers } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers';
@@ -2436,7 +2571,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
2436
2571
 
2437
2572
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
2438
2573
  import type { EnterpriseLocation as MVFEnterpriseLocation, LocationState, OperationHours, SiblingGroup } from '@mappedin/mvf';
2439
- import type { Coordinate, MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2574
+ import type { Coordinate, EnterpriseCategory, MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2440
2575
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
2441
2576
  import type Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
2442
2577
  /**
@@ -2497,7 +2632,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
2497
2632
  */
2498
2633
  constructor(data: MapDataInternal, options: {
2499
2634
  mvfData: MVFEnterpriseLocation;
2635
+ categoryIds: string[];
2500
2636
  });
2637
+ get categories(): EnterpriseCategory[];
2501
2638
  get coordinates(): Coordinate[];
2502
2639
  get nodes(): Node[];
2503
2640
  get spaces(): Space[];
@@ -2588,6 +2725,77 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
2588
2725
  export default EnterpriseVenue;
2589
2726
  }
2590
2727
 
2728
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
2729
+ import type { ParsedMVF } from '@mappedin/mvf';
2730
+ import type { DirectionsCollection } from '@packages/internal/geojson-navigator';
2731
+ import { Coordinate, Node, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2732
+ import type { TDirectionInstruction, TDirectionZone, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
2733
+ /**
2734
+ * Represents a set of directions between two points.
2735
+ *
2736
+ * Directions are used to represent the path between two points on the map,
2737
+ * as well as the instructions to follow the path.
2738
+ */
2739
+ export class Directions {
2740
+ #private;
2741
+ /**
2742
+ * @internal
2743
+ */
2744
+ constructor(directions: DirectionsCollection, mapData: MapDataInternal);
2745
+ /**
2746
+ * @internal
2747
+ */
2748
+ get path(): Node[];
2749
+ /**
2750
+ * All the coordinates ({@link Coordinate}) of the directions.
2751
+ */
2752
+ get coordinates(): Coordinate[];
2753
+ /**
2754
+ * The total distance of the path in meters.
2755
+ */
2756
+ get distance(): number;
2757
+ /**
2758
+ * The array of instructions ({@link TDirectionInstruction}).
2759
+ */
2760
+ get instructions(): TDirectionInstruction[];
2761
+ }
2762
+ export class DirectionsInternal {
2763
+ /**
2764
+ * @hidden
2765
+ */
2766
+ constructor({ nodes, geojsonCollection, connections, groupBy, }: {
2767
+ nodes: ParsedMVF['node.geojson'];
2768
+ geojsonCollection: ParsedMVF['obstruction'] | ParsedMVF['space'];
2769
+ connections: ParsedMVF['connection.json'];
2770
+ groupBy?: string;
2771
+ });
2772
+ /**
2773
+ * Get directions between two navigation targets.
2774
+ *
2775
+ * @hidden
2776
+ * @param from
2777
+ * @param to
2778
+ * @param options
2779
+ * @param mapData
2780
+ */
2781
+ getDirections: (from: TNavigationTarget[], to: TNavigationTarget[], options: {
2782
+ accessible: boolean;
2783
+ smoothing: {
2784
+ enabled: boolean;
2785
+ radius: number;
2786
+ };
2787
+ zones: TDirectionZone[];
2788
+ }, mapData: MapDataInternal) => Directions | undefined;
2789
+ /**
2790
+ * Get the node IDs that should be excluded from the navigation graph.
2791
+ *
2792
+ * @hidden
2793
+ * @param accessible {boolean}
2794
+ */
2795
+ getExcludedNodeIds: (accessible: boolean) => string[];
2796
+ }
2797
+ }
2798
+
2591
2799
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps' {
2592
2800
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
2593
2801
  import type { RendererCore } from '@mappedin/core-sdk';
@@ -2668,7 +2876,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-tran
2668
2876
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
2669
2877
  import type { NodeCollection } from '@mappedin/mvf';
2670
2878
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
2671
- import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2879
+ import type { EnterpriseLocation, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2672
2880
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
2673
2881
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
2674
2882
  /**
@@ -2702,6 +2910,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
2702
2910
  floorId: string;
2703
2911
  mvfData: NodeCollection['features'][number];
2704
2912
  });
2913
+ get locations(): EnterpriseLocation[];
2705
2914
  /**
2706
2915
  * Gets the {@link Floor} associated with the node.
2707
2916
  *
@@ -2715,6 +2924,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
2715
2924
  * @returns {Coordinate} The node's coordinate.
2716
2925
  */
2717
2926
  get coordinate(): Coordinate;
2927
+ /**
2928
+ * Gets the external ID of the node.
2929
+ *
2930
+ * @returns {string} The external ID of the node.
2931
+ */
2932
+ get externalId(): string;
2718
2933
  /**
2719
2934
  * Gets the neighboring nodes of this node.
2720
2935
  *
@@ -2787,6 +3002,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
2787
3002
  * @returns {string} The name of the door.
2788
3003
  */
2789
3004
  get name(): string;
3005
+ /**
3006
+ * Gets the external ID of the door.
3007
+ *
3008
+ * @returns {string} The external ID of the door.
3009
+ */
3010
+ get externalId(): string;
2790
3011
  get description(): string;
2791
3012
  get images(): Image[];
2792
3013
  /**
@@ -2890,8 +3111,24 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
2890
3111
  * @returns {TSpaceType} The type of the space.
2891
3112
  */
2892
3113
  get type(): TSpaceType;
3114
+ /**
3115
+ * Gets the description of the space.
3116
+ *
3117
+ * @returns {string} The description of the space, or an empty string if no description exists.
3118
+ */
2893
3119
  get description(): string;
3120
+ /**
3121
+ * Gets the array of images associated with the space.
3122
+ *
3123
+ * @returns {Image[]} An array of Image objects, or an empty array if no images exist.
3124
+ */
2894
3125
  get images(): Image[];
3126
+ /**
3127
+ * Gets the external identifier of the space.
3128
+ *
3129
+ * @returns {string} The external ID of the space, or an empty string if no external ID exists.
3130
+ */
3131
+ get externalId(): string;
2895
3132
  /**
2896
3133
  * @internal
2897
3134
  */
@@ -2984,6 +3221,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2984
3221
  * @returns {string} The name of the floor.
2985
3222
  */
2986
3223
  get name(): string;
3224
+ /**
3225
+ * Gets the external ID of the floor.
3226
+ *
3227
+ * @returns {string} The external ID of the floor.
3228
+ */
3229
+ get externalId(): string;
2987
3230
  /**
2988
3231
  * Gets the elevation of the floor.
2989
3232
  *
@@ -3099,6 +3342,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
3099
3342
  get name(): string;
3100
3343
  get description(): string;
3101
3344
  get images(): Image[];
3345
+ /**
3346
+ * Gets the external ID of the connection.
3347
+ *
3348
+ * @returns {string} The external ID of the connection.
3349
+ */
3102
3350
  get externalId(): string;
3103
3351
  /**
3104
3352
  /**
@@ -3187,6 +3435,17 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
3187
3435
  * @returns {string} The name of the object.
3188
3436
  */
3189
3437
  get name(): string;
3438
+ /**
3439
+ * Gets the external ID of the MapObject.
3440
+ *
3441
+ * @returns {string} The external ID of the object.
3442
+ */
3443
+ get externalId(): string;
3444
+ /**
3445
+ * Gets the description of the MapObject.
3446
+ *
3447
+ * @returns {string} The description of the object.
3448
+ */
3190
3449
  get description(): string;
3191
3450
  get images(): Image[];
3192
3451
  /**
@@ -3372,6 +3631,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
3372
3631
  * @returns {Coordinate} The POI's coordinate.
3373
3632
  */
3374
3633
  get coordinate(): Coordinate;
3634
+ /**
3635
+ * Gets the external ID of the POI.
3636
+ *
3637
+ * @returns {string} The external ID of the POI.
3638
+ */
3639
+ get externalId(): string;
3375
3640
  /**
3376
3641
  * Serializes the POI data to JSON.
3377
3642
  *
@@ -3444,6 +3709,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
3444
3709
  * @returns {string} The annotation type.
3445
3710
  */
3446
3711
  get type(): string;
3712
+ /**
3713
+ * Gets the external ID of the annotation.
3714
+ *
3715
+ * @returns {string} The external ID of the annotation.
3716
+ */
3717
+ get externalId(): string;
3447
3718
  /**
3448
3719
  * Gets the center {@link Coordinate} of the annotation.
3449
3720
  *
@@ -3576,6 +3847,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image' {
3576
3847
  * @returns {string | undefined } The name of the image.
3577
3848
  */
3578
3849
  get name(): string | undefined;
3850
+ /**
3579
3851
  /**
3580
3852
  * Serializes the image data to JSON.
3581
3853
  *
@@ -3638,6 +3910,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
3638
3910
  * @returns {string} The name of the FloorStack.
3639
3911
  */
3640
3912
  get name(): string;
3913
+ /**
3914
+ * Gets the externalId of FloorStack
3915
+ */
3916
+ get externalId(): string;
3641
3917
  /**
3642
3918
  * Gets the floors ({@link Floor}) included in this FloorStack.
3643
3919
  *
@@ -3686,6 +3962,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
3686
3962
  annotationsById: Record<string, Annotation>;
3687
3963
  locationsById: Record<MVFEnterpriseLocationId, EnterpriseLocation>;
3688
3964
  categoriesById: Record<MVFEnterpriseCategoryId, EnterpriseCategory>;
3965
+ locationIdsByNodeId: Record<string, MVFEnterpriseLocationId[]>;
3689
3966
  venue: MVFEnterpriseVenue;
3690
3967
  spaceIdsByDestinationNodeId: Record<string, string[]>;
3691
3968
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
@@ -3710,6 +3987,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
3710
3987
  * @internal
3711
3988
  */
3712
3989
  export const createEnterpriseDataFromMVF: (mvf: ParsedMVF, data: MapDataInternal) => {
3990
+ locationIdsByNodeId: Record<string, string[]>;
3713
3991
  locationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
3714
3992
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
3715
3993
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
@@ -3761,6 +4039,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3761
4039
  import type MapObject from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object';
3762
4040
  import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack } from '@mappedin/mvf';
3763
4041
  import type { PartialExcept } from '@mappedin/mvf/dist/locale';
4042
+ import { LocalePackUrls } from '@packages/internal/mvf-utils';
4043
+ import { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
3764
4044
  /**
3765
4045
  * Places are the main objects that can be searched for.
3766
4046
  */
@@ -3781,6 +4061,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3781
4061
  categories: Record<string, MvfEnterpriseCategory>;
3782
4062
  };
3783
4063
  };
4064
+ export type TMapDataInternalOptions = {
4065
+ enterprise?: boolean;
4066
+ outdoorViewToken?: string;
4067
+ localePacksUrls?: LocalePackUrls;
4068
+ languagePacks?: LanguagePackHydrationItem[];
4069
+ binaryBundle?: Uint8Array;
4070
+ };
3784
4071
  }
3785
4072
 
3786
4073
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
@@ -3788,18 +4075,66 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
3788
4075
  import { PubSub } from '@packages/internal/common';
3789
4076
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
3790
4077
  import type { TBlueDotOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
4078
+ import { z } from 'zod';
3791
4079
  export type TBlueDotEvents = {
3792
4080
  'floor-change': {
3793
4081
  reason: 'blue-dot-floor-change';
3794
4082
  floorId: string;
3795
4083
  };
3796
4084
  };
4085
+ export type TBlueDotState = 'hidden' | 'active' | 'inactive' | 'disabled';
4086
+ export type TBlueDotAction = 'timeout' | 'error' | 'position-received' | 'enable' | 'disable';
3797
4087
  export class BlueDot extends PubSub<TBlueDotEvents> {
3798
4088
  #private;
4089
+ /**
4090
+ * @internal
4091
+ */
3799
4092
  constructor(core: RendererCore, geoJSONApi: GeoJsonApi);
3800
4093
  enable(options?: TBlueDotOptions): void;
3801
4094
  disable(): void;
3802
4095
  }
4096
+ type TStateTransitions = {
4097
+ [Action in TBlueDotAction]?: TBlueDotState;
4098
+ };
4099
+ type TStateMachine = {
4100
+ [State in TBlueDotState]: {
4101
+ actions: TStateTransitions;
4102
+ };
4103
+ };
4104
+ export const stateMachine: TStateMachine;
4105
+ export const positionSchema: z.ZodObject<{
4106
+ coords: z.ZodObject<{
4107
+ latitude: z.ZodNumber;
4108
+ longitude: z.ZodNumber;
4109
+ floorLevel: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
4110
+ accuracy: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
4111
+ }, "strip", z.ZodTypeAny, {
4112
+ latitude: number;
4113
+ longitude: number;
4114
+ floorLevel?: number | null | undefined;
4115
+ accuracy?: number | null | undefined;
4116
+ }, {
4117
+ latitude: number;
4118
+ longitude: number;
4119
+ floorLevel?: number | null | undefined;
4120
+ accuracy?: number | null | undefined;
4121
+ }>;
4122
+ }, "strip", z.ZodTypeAny, {
4123
+ coords: {
4124
+ latitude: number;
4125
+ longitude: number;
4126
+ floorLevel?: number | null | undefined;
4127
+ accuracy?: number | null | undefined;
4128
+ };
4129
+ }, {
4130
+ coords: {
4131
+ latitude: number;
4132
+ longitude: number;
4133
+ floorLevel?: number | null | undefined;
4134
+ accuracy?: number | null | undefined;
4135
+ };
4136
+ }>;
4137
+ export {};
3803
4138
  }
3804
4139
 
3805
4140
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes' {
@@ -5049,6 +5384,9 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
5049
5384
  center?: Position;
5050
5385
  insetsPadding: InsetPadding;
5051
5386
  shouldMeasureCanvas: boolean;
5387
+ /**
5388
+ * Current clamped pixel ratio of the renderer, based on maplibre's clamping logic (when in interleaved mode)
5389
+ */
5052
5390
  pixelRatio: number;
5053
5391
  canvasWidth: number;
5054
5392
  canvasHeight: number;
@@ -5682,7 +6020,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5682
6020
  getState(): MapViewState;
5683
6021
  getState<T extends EntityId<EntityState>>(geometryOrGeometryId: T): T extends EntityId<LabelState> ? LabelState : T extends EntityId<GeometryState> ? GeometryState : T extends EntityId<MarkerState> ? MarkerState : T extends EntityId<GeometryGroupState> ? GeometryGroupState : T extends EntityId<GroupContainerState> ? GroupContainerState : T extends EntityId<ModelState> ? ModelState : T extends EntityId<PathState> ? ShapeState : T extends EntityId<ShapeState> ? ShapeState : T extends EntityId<ImageState> ? ImageState : EntityState;
5684
6022
  getState(geometryOrGeometryId?: Record<string | number, any> | string | number): EntityState;
5685
- getState<T extends EntityState>(geometryOrGeometryId: T['id']): T extends LabelState ? LabelState : T extends GeometryState ? GeometryState : T extends MarkerState ? MarkerState : T extends GeometryGroupState ? GeometryGroupState : T extends GroupContainerState ? GroupContainerState : T extends ModelState ? ModelState : T extends PathState ? ShapeState : T extends ShapeState ? PathState : T extends ImageState ? ImageState : EntityState;
6023
+ getState<T extends EntityState>(geometryOrGeometryId: T['id']): T extends LabelState ? LabelState : T extends GeometryState ? GeometryState : T extends MarkerState ? MarkerState : T extends GeometryGroupState ? GeometryGroupState : T extends GroupContainerState ? GroupContainerState : T extends ModelState ? ModelState : T extends PathState ? PathState : T extends ShapeState ? ShapeState : T extends ImageState ? ImageState : EntityState;
5686
6024
  /**
5687
6025
  * Set the state of the map view or any entity that was added, regardless of whether it is visible in the scene.
5688
6026
  */
@@ -6609,9 +6947,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6609
6947
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
6610
6948
  import { Label, Marker, type Model, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
6611
6949
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
6612
- import type { TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
6950
+ import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
6613
6951
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
6614
- import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
6615
6952
  import { Exporter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/exporter';
6616
6953
  import { Labels } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/labels';
6617
6954
  import { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
@@ -6665,7 +7002,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6665
7002
  getState<T extends Space | MapObject | Label | Marker | Model | Image | string>(target: T): TGetState<T> | undefined;
6666
7003
  setHoverColor(c: string): void;
6667
7004
  getHoverColor(): string | undefined;
6668
- getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], opt?: TGetDirectionsOptions) => Directions | undefined;
6669
7005
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
6670
7006
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
6671
7007
  isInView(target: Space | MapObject | Label | Marker | string): boolean;
@@ -6679,6 +7015,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6679
7015
  }
6680
7016
  }
6681
7017
 
7018
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot' {
7019
+ export { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
7020
+ export type { TBlueDotEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
7021
+ }
7022
+
6682
7023
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
6683
7024
  import type { TCameraAnimationOptions, TCameraFocusOnTarget, TCameraTarget, TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
6684
7025
  import type { InsetPadding, RendererCore } from '@mappedin/core-sdk';
@@ -6690,6 +7031,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
6690
7031
  */
6691
7032
  constructor(rendererCore: RendererCore);
6692
7033
  setScreenOffsets(padding: InsetPadding): void;
7034
+ get screenOffsets(): InsetPadding;
6693
7035
  /**
6694
7036
  * Focuses the camera on a specific target or array of targets.
6695
7037
  *
@@ -6795,7 +7137,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/labels' {
6795
7137
  import { Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
6796
7138
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
6797
7139
  import type { PointOfInterest, MapObject } from '@mappedin/react-sdk/mappedin-js/src';
6798
- import type { Space, Door, Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7140
+ import type { Space, Door, Coordinate, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
6799
7141
  export class Labels {
6800
7142
  #private;
6801
7143
  /**
@@ -6826,7 +7168,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/labels' {
6826
7168
  *
6827
7169
  * map.Labels.add(space, 'Welcome', { appearance: { color: 'blue' } });
6828
7170
  */
6829
- add(target: Space | Door | Coordinate | PointOfInterest | MapObject, text: string, options?: TAddLabelOptions | undefined): Label;
7171
+ add(target: Space | Door | Coordinate | PointOfInterest | MapObject | Node, text: string, options?: TAddLabelOptions | undefined): Label;
6830
7172
  /**
6831
7173
  * Automatically adds all the labels ({@link Label}) to the map.
6832
7174
  *
@@ -6861,7 +7203,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
6861
7203
  import type { TAddMarkerOptions, TAnimationOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
6862
7204
  import { Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
6863
7205
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
6864
- import type { Space, Door, Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7206
+ import type { Space, Door, Coordinate, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
6865
7207
  export class Markers {
6866
7208
  #private;
6867
7209
  /**
@@ -6892,7 +7234,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
6892
7234
  * // Add an interactive {@link Marker} to the map with custom HTML content.
6893
7235
  * map.Markers.add(coordinate, '<div>Marker Content</div>', { interactive: true });
6894
7236
  */
6895
- add(target: Space | Door | Coordinate, html: string, options?: TAddMarkerOptions): Marker;
7237
+ add(target: Space | Door | Coordinate | Node, html: string, options?: TAddMarkerOptions): Marker;
6896
7238
  /**
6897
7239
  * Removes a marker from the map.
6898
7240
  *
@@ -6916,7 +7258,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
6916
7258
  * const marker = map.Markers.add(coordinate, '<div>Marker Content</div>');
6917
7259
  * mapView.Markers.setPosition(marker, newCoordinate);
6918
7260
  */
6919
- setPosition(marker: Marker, target: Space | Door | Coordinate): void;
7261
+ setPosition(marker: Marker, target: Space | Door | Coordinate | Node): void;
6920
7262
  /**
6921
7263
  * Update the position of a marker with an animation.
6922
7264
  * @param marker The {@link Marker} which should be updated.
@@ -6927,7 +7269,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
6927
7269
  * const marker = map.Markers.add(coordinate, '<div>Marker Content</div>');
6928
7270
  * mapView.Markers.animateTo(marker, newCoordinate, { duration: 1000 });
6929
7271
  */
6930
- animateTo(marker: Marker, target: Space | Door | Coordinate, options?: TAnimationOptions): Promise<void>;
7272
+ animateTo(marker: Marker, target: Space | Door | Coordinate | Node, options?: TAnimationOptions): Promise<void>;
6931
7273
  }
6932
7274
  type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
6933
7275
  export {};
@@ -7071,76 +7413,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/exporter' {
7071
7413
  export {};
7072
7414
  }
7073
7415
 
7074
- declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
7075
- import type { ParsedMVF } from '@mappedin/mvf';
7076
- import type { DirectionsCollection } from '@packages/internal/geojson-navigator';
7077
- import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7078
- import { Connection, Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7079
- import type { TDirectionInstruction, TDirectionZone, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
7080
- /**
7081
- * Represents a set of directions between two points.
7082
- *
7083
- * Directions are used to represent the path between two points on the map,
7084
- * as well as the instructions to follow the path.
7085
- */
7086
- export class Directions {
7087
- #private;
7088
- /**
7089
- * @internal
7090
- */
7091
- constructor(directions: DirectionsCollection, mapData: MapDataInternal);
7092
- /**
7093
- * All the coordinates ({@link Coordinate}) of the directions.
7094
- */
7095
- get coordinates(): Coordinate[];
7096
- /**
7097
- * The total distance of the path in meters.
7098
- */
7099
- get distance(): number;
7100
- /**
7101
- * The array of instructions ({@link TDirectionInstruction}).
7102
- */
7103
- get instructions(): TDirectionInstruction[];
7104
- lastConnectionAction?: 'take' | 'exit';
7105
- lastConnection?: Connection;
7106
- }
7107
- export class DirectionsInternal {
7108
- /**
7109
- * @hidden
7110
- */
7111
- constructor({ nodes, geojsonCollection, connections, groupBy, }: {
7112
- nodes: ParsedMVF['node.geojson'];
7113
- geojsonCollection: ParsedMVF['obstruction'] | ParsedMVF['space'];
7114
- connections: ParsedMVF['connection.json'];
7115
- groupBy?: string;
7116
- });
7117
- /**
7118
- * Get directions between two navigation targets.
7119
- *
7120
- * @hidden
7121
- * @param from
7122
- * @param to
7123
- * @param options
7124
- * @param mapData
7125
- */
7126
- getDirections: (from: TNavigationTarget[], to: TNavigationTarget[], options: {
7127
- accessible: boolean;
7128
- smoothing: {
7129
- enabled: boolean;
7130
- radius: number;
7131
- };
7132
- zones: TDirectionZone[];
7133
- }, mapData: MapDataInternal) => Directions | undefined;
7134
- /**
7135
- * Get the node IDs that should be excluded from the navigation graph.
7136
- *
7137
- * @hidden
7138
- * @param accessible {boolean}
7139
- */
7140
- getExcludedNodeIds: (accessible: boolean) => string[];
7141
- }
7142
- }
7143
-
7144
7416
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/style' {
7145
7417
  import type { StyleCollection } from '@mappedin/mvf';
7146
7418
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
@@ -7195,9 +7467,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor' {
7195
7467
  show(): void;
7196
7468
  /**
7197
7469
  * Hide the outdoor view.
7198
- * @param excludedStyleLayerIds {string[]} E
7470
+ * @param excludedStyleLayerIds {string[]}
7199
7471
  */
7200
7472
  hide(excludedStyleLayerIds?: string[]): void;
7473
+ /**
7474
+ * Set outdoor view opacity
7475
+ * @param targetOpacity {number | 'initial'}
7476
+ * @param excludedStyleLayerIds {string[]}
7477
+ */
7478
+ setOpacity(targetOpacity: number | 'initial', excludedStyleLayerIds?: string[]): void;
7201
7479
  }
7202
7480
  }
7203
7481
 
@@ -7259,7 +7537,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/images' {
7259
7537
 
7260
7538
  declare module '@mappedin/react-sdk/mappedin-js/src/search/internal' {
7261
7539
  import type { SearchResult as MiniSearchResult, Suggestion, MatchInfo } from 'minisearch';
7262
- import type { EnterpriseLocation, EnterpriseCategory, Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7540
+ import { EnterpriseLocation, EnterpriseCategory, Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7263
7541
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
7264
7542
  import { z } from 'zod';
7265
7543
  export class InternalSearch {
@@ -8645,13 +8923,14 @@ declare module '@mappedin/react-sdk/geojson/src/systems/pan-bounds/system' {
8645
8923
  }
8646
8924
 
8647
8925
  declare module '@mappedin/react-sdk/geojson/src/systems/custom-geometry/system' {
8926
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
8648
8927
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8649
8928
  /**
8650
8929
  * System that renders and updates custom geometry entities. For every custom geometry entity, this calls the builder's
8651
8930
  * setup method once (when it is visible) and then the update method every frame.
8652
8931
  */
8653
8932
  export class CustomGeometrySystem {
8654
- constructor(state: RendererState);
8933
+ constructor(state: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
8655
8934
  update(): void;
8656
8935
  }
8657
8936
  }
@@ -9133,7 +9412,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
9133
9412
 
9134
9413
  declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
9135
9414
  import type { PerspectiveCamera, Scene, WebGLRenderer } from 'three';
9136
- import { Vector2, Vector3 } from 'three';
9415
+ import { Object3D, Vector2, Vector3 } from 'three';
9137
9416
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
9138
9417
  import * as CAMERA_CONSTANTS from '@mappedin/react-sdk/geojson/src/systems/camera/constants';
9139
9418
  import type { AnimateCameraTarget, CameraControlsOptions, CameraFocusOnOptions } from '@mappedin/react-sdk/geojson/src/systems/camera/types';
@@ -9579,6 +9858,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
9579
9858
  position: Vector3;
9580
9859
  zoom: number;
9581
9860
  };
9861
+ debugContainer: Object3D<import("three").Object3DEventMap>;
9582
9862
  focusOn(pointCloud: Vector3[], { insetsPadding }: any, options?: CameraFocusOnOptions): void;
9583
9863
  resize(canvasWidth: number, canvasHeight: number): void;
9584
9864
  }