@mappedin/react-sdk 6.0.1-beta.7 → 6.0.1-beta.9

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,6 +9,7 @@
9
9
  // ../react/@packages/internal/common
10
10
  // ../react/@mappedin/core-sdk
11
11
  // ../react/@mappedin/core-sdk/src/camera
12
+ // ../react/@tweenjs/tween.js
12
13
  // ../react/three
13
14
  // ../react/zod
14
15
  // ../react/@packages/internal/shave-text/shave-text
@@ -20,7 +21,6 @@
20
21
  // ../react/three/addons/loaders/GLTFLoader.js
21
22
  // ../react/@mapbox/point-geometry
22
23
  // ../react/@maplibre/maplibre-gl-style-spec
23
- // ../react/@tweenjs/tween.js
24
24
  // ../react/gl-matrix
25
25
  // ../react/@mapbox/vector-tile
26
26
  // ../react/potpack
@@ -491,9 +491,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
491
491
  * Returns a {@link MapData} instance from a parsed MVF object.
492
492
  */
493
493
  export const hydrateMapDataFromMVF: (mvf: TMVF, options?: TGetMapDataWithCredentialsOptions) => Promise<MapData>;
494
- export const getMapDataEnterprise: (userOptions: TGetMapDataOptions) => Promise<MapData>;
495
494
  /**
496
- * @internal temporary until we can detect which route to use based on keys
495
+ * @internal
496
+ * @deprecated Use {@link getMapData} and enterprise will be inferred from key/secret.
497
497
  */
498
498
  export function setUseEnterpriseAPI(value: boolean): void;
499
499
  /**
@@ -506,6 +506,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
506
506
  * const data = await getMapData({ key: 'api_key', secret: 'api_secret', mapId: 'id' });
507
507
  */
508
508
  export const getMapData: (userOptions: TGetMapDataOptions) => Promise<MapData>;
509
+ /**
510
+ * @internal
511
+ * @deprecated Use {@link getMapData} and enterprise will be inferred from key/secret.
512
+ */
513
+ export const getMapDataEnterprise: (userOptions: TGetMapDataOptions) => Promise<MapData>;
509
514
  /**
510
515
  * Create a MapLibre overlay with a Map to render it within existing MapLibre projects.
511
516
  * @experimental
@@ -521,9 +526,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
521
526
  export type { Label, Marker, Path, Shape, CameraTransform, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
522
527
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
523
528
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
524
- export { Coordinate, Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Image, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
525
- export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
529
+ 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';
530
+ export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
526
531
  export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/react-sdk/mappedin-js/src/search';
532
+ export type { Analytics, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics';
527
533
  }
528
534
 
529
535
  declare module '@mappedin/react-sdk/react-sdk/src/type-utils' {
@@ -555,7 +561,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
555
561
  import { Analytics } from '@mappedin/react-sdk/mappedin-js/src/analytics';
556
562
  import { PubSub } from '@packages/internal/common';
557
563
  import type { TSearchOptions } from '@packages/internal/mvf-utils';
558
- import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
564
+ import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
559
565
  import type EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
560
566
  import type EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
561
567
  import type EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
@@ -656,6 +662,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
656
662
  * const floors = mapData.getByType('floor');
657
663
  */
658
664
  getByType(type: 'floor'): Floor[];
665
+ /**
666
+ * @returns The stacks of floors ({@link FloorStack}) within the map.
667
+ * @example
668
+ * const floorStacks = mapData.getByType('floor-stack');
669
+ */
670
+ getByType(type: 'floor-stack'): FloorStack[];
659
671
  /**
660
672
  * @returns The connections ({@link Connection}) on the map.
661
673
  * @example
@@ -710,6 +722,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
710
722
  getById(type: 'space', id: string): Space | undefined;
711
723
  getById(type: 'door', id: string): Door | undefined;
712
724
  getById(type: 'floor', id: string): Floor | undefined;
725
+ getById(type: 'floor-stack', id: string): FloorStack | undefined;
713
726
  getById(type: 'connection', id: string): Connection | undefined;
714
727
  getById(type: 'object', id: string): MapObject | undefined;
715
728
  getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
@@ -857,7 +870,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
857
870
  import Annotation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation';
858
871
  import Hyperlink from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink';
859
872
  import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
860
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, Map as MVFMap, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory } from '@mappedin/mvf';
873
+ import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
874
+ import type { MapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
875
+ import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory } from '@mappedin/mvf';
861
876
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
862
877
  import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
863
878
  import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
@@ -898,12 +913,33 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
898
913
  */
899
914
  readonly obstructionIdByEntranceId: Record<string, string>;
900
915
  readonly venue?: EnterpriseVenue;
901
- doorsByNodeId: Record<string, Door>;
902
- locationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
916
+ enterpriseMode: boolean;
917
+ nodesById: MapDataRecords['nodesById'];
918
+ spacesById: MapDataRecords['spacesById'];
919
+ floorsById: MapDataRecords['floorsById'];
920
+ floorStacksById: MapDataRecords['floorStacksById'];
921
+ connectionsById: MapDataRecords['connectionsById'];
922
+ objectsById: MapDataRecords['objectsById'];
923
+ doorsById: MapDataRecords['doorsById'];
924
+ pointsOfInterestById: MapDataRecords['poisById'];
925
+ annotationsById: MapDataRecords['annotationsById'];
926
+ locationsById: MapDataRecords['locationsById'];
927
+ categoriesById: MapDataRecords['categoriesById'];
928
+ doorsByNodeId: MapDataRecords['doorsByNodeId'];
929
+ locationsBySpaceId: MapDataRecords['mvfLocationsBySpaceId'];
930
+ mvfAnnotationsById: MapDataRecords['mvfAnnotationsById'];
931
+ mvfConnectionsById: MapDataRecords['mvfConnectionsById'];
932
+ mvfConnectionsByNodeId: MapDataRecords['mvfConnectionsByNodeId'];
933
+ mvfEntrancesById: MapDataRecords['mvfEntrancesById'];
934
+ mvfNodesById: MapDataRecords['mvfNodesById'];
935
+ mvfObstructionById: MapDataRecords['mvfObstructionById'];
936
+ mvfSpacesById: MapDataRecords['mvfSpacesById'];
937
+ mvfFloorsById: MapDataRecords['mvfFloorsById'];
938
+ mvfFloorStacksById: MapDataRecords['mvfFloorStacksById'];
903
939
  /**
904
940
  * @internal
905
941
  */
906
- constructor(mvf: ParsedMVF, outdoorViewToken?: string);
942
+ constructor(mvf: ParsedMVF, outdoorViewToken?: string, enterpriseMode?: boolean);
907
943
  /**
908
944
  * Retrieves the map name.
909
945
  *
@@ -936,6 +972,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
936
972
  * @returns {Floor[]} An array of Floor objects.
937
973
  */
938
974
  get floors(): Floor[];
975
+ get floorStacks(): FloorStack[];
939
976
  /**
940
977
  * Retrieves all doors in the map.
941
978
  *
@@ -975,6 +1012,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
975
1012
  getById(type: 'space', id: string): Space | undefined;
976
1013
  getById(type: 'door', id: string): Door | undefined;
977
1014
  getById(type: 'floor', id: string): Floor | undefined;
1015
+ getById(type: 'floor-stack', id: string): FloorStack | undefined;
978
1016
  getById(type: 'connection', id: string): Connection | undefined;
979
1017
  getById(type: 'object', id: string): MapObject | undefined;
980
1018
  getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
@@ -992,7 +1030,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
992
1030
  getMVFFeatureById(type: 'space', id: string): SpaceCollection['features'][number] | undefined;
993
1031
  getMVFFeatureById(type: 'node', id: string): NodeCollection['features'][number] | undefined;
994
1032
  getMVFFeatureById(type: 'obstruction', id: string): ObstructionCollection['features'][number] | undefined;
995
- getMVFFeatureById(type: 'map', id: string): MVFMap | undefined;
1033
+ getMVFFeatureById(type: 'map', id: string): MVFFloor | undefined;
996
1034
  getMVFFeatureById(type: 'connection', id: string): MVFConnection | undefined;
997
1035
  getMVFFeatureById(type: 'entrance', id: string): EntranceCollection['features'][number] | undefined;
998
1036
  getMVFFeatureById(type: 'annotation', id: string): AnnotationCollection['features'][number] | undefined;
@@ -1024,7 +1062,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1024
1062
  */
1025
1063
  destroy(): void;
1026
1064
  }
1027
- export { MapDataInternal, Space, Floor, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1065
+ export { MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1028
1066
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1029
1067
  export type { Places };
1030
1068
  }
@@ -1042,6 +1080,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1042
1080
  import type { Label, Marker, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1043
1081
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1044
1082
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1083
+ import type { TShowStackOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1045
1084
  export class MapView extends PubSub<TEvents> {
1046
1085
  #private;
1047
1086
  /**
@@ -1136,6 +1175,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1136
1175
  expand(opts?: {
1137
1176
  excludeFloors: Floor[];
1138
1177
  }): Promise<void> | undefined;
1178
+ showStack(opts?: TShowStackOptions): Promise<void> | undefined;
1139
1179
  /**
1140
1180
  * @experimental
1141
1181
  * @hidden
@@ -1152,7 +1192,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1152
1192
  * Sets the current floor ({@link Floor}) of the map.
1153
1193
  * @param floor The floor or floor ID to set.
1154
1194
  */
1155
- setFloor(floor: Floor | string): void;
1195
+ setFloor(floor: Floor | string): Promise<void> | undefined;
1156
1196
  /**
1157
1197
  * The current floor ({@link Floor}) of the map.
1158
1198
  */
@@ -1329,7 +1369,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1329
1369
 
1330
1370
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1331
1371
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1332
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1372
+ import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1333
1373
  import type { Label, Marker, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1334
1374
  import type { EasingCurve } from '@mappedin/core-sdk/src/camera';
1335
1375
  export type DeepRequired<T> = Required<{
@@ -1656,7 +1696,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1656
1696
  /**
1657
1697
  * Defines the target for navigation operations.
1658
1698
  */
1659
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection;
1699
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation;
1660
1700
  /**
1661
1701
  * Defines the special zone for navigation operations.
1662
1702
  */
@@ -2211,14 +2251,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2211
2251
  animateArrowsOnPath?: boolean;
2212
2252
  };
2213
2253
  /**
2214
- * Options for the departure and destination polygons.
2254
+ * Options for the markers at the departure and destination.
2215
2255
  */
2216
- polygons?: {
2256
+ markerOptions?: {
2217
2257
  /**
2218
- * The color of the departure polygon.
2219
- * @default '#40A9FF'
2258
+ * The color of the departure marker.
2259
+ * @default '#1890FF'
2260
+ */
2261
+ departureColor?: string;
2262
+ /**
2263
+ * The color of the destination marker.
2264
+ * @default '#722ED1'
2220
2265
  */
2221
- departure?: string;
2266
+ destinationColor?: string;
2222
2267
  };
2223
2268
  };
2224
2269
  export class Navigation {
@@ -2269,7 +2314,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search' {
2269
2314
 
2270
2315
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics' {
2271
2316
  export { Analytics, AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
2272
- export type { AnalyticsUpdateOptions } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
2317
+ export type { AnalyticsUpdateOptions, AnalyticState, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
2273
2318
  }
2274
2319
 
2275
2320
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
@@ -2488,27 +2533,37 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
2488
2533
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps' {
2489
2534
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
2490
2535
  import type { RendererCore } from '@mappedin/core-sdk';
2491
- import type { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
2536
+ import TWEEN from '@tweenjs/tween.js';
2492
2537
  import { PubSub } from '@packages/internal/common';
2493
- export const GAP_BELOW_FLOORS = 30;
2538
+ import type { TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
2539
+ export const GAP_BELOW_FLOORS = 50;
2494
2540
  export const DURATION = 1000;
2495
2541
  export type TStackedMapsEvents = {
2496
2542
  expanded: void;
2497
2543
  collapsed: void;
2498
2544
  };
2545
+ export type TShowStackOptions = {
2546
+ numFloors?: number;
2547
+ cameraOptions?: TFocusOnOptions;
2548
+ };
2499
2549
  export class StackedMaps extends PubSub<TStackedMapsEvents> {
2500
2550
  #private;
2501
2551
  constructor(api: GeojsonApiMapObject, core: RendererCore);
2502
- includedFloors: FloorObject[];
2503
- get percentExpanded(): number;
2504
- set percentExpanded(value: number);
2505
- animateToCurrentFloor(): void;
2552
+ percentExpanded: number;
2553
+ animateToCurrentFloorTween: TWEEN.Tween | null;
2506
2554
  expanded: boolean;
2555
+ handlePreRender: () => void;
2556
+ handleUserInteractionStart: () => void;
2557
+ handleUserInteractionEnd: () => void;
2558
+ animateToCurrentFloor(): Promise<void>;
2507
2559
  expand(opts?: {
2508
2560
  excludeFloorIds: string[];
2509
2561
  }): Promise<void>;
2510
2562
  collapse(): Promise<void>;
2511
- animate(direction: 'expand' | 'collapse'): Promise<void>;
2563
+ showStack(opts?: TShowStackOptions): Promise<void>;
2564
+ animate(direction: 'expand' | 'collapse', options?: {
2565
+ duration: number;
2566
+ }): Promise<void>;
2512
2567
  }
2513
2568
  }
2514
2569
 
@@ -2834,8 +2889,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
2834
2889
  }
2835
2890
 
2836
2891
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2837
- import type { Map } from '@mappedin/mvf';
2838
- import type { Annotation, Connection, Door, MapDataInternal, PointOfInterest, Space, MapObject } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2892
+ import type { FloorProperties as MVFFloor } from '@mappedin/mvf';
2893
+ import type { Annotation, Connection, Door, MapDataInternal, PointOfInterest, Space, MapObject, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2839
2894
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
2840
2895
  /**
2841
2896
  * A class representing floor data within the map.
@@ -2863,7 +2918,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2863
2918
  * @internal
2864
2919
  */
2865
2920
  constructor(data: MapDataInternal, options: {
2866
- mvfData: Map;
2921
+ mvfData: MVFFloor;
2867
2922
  });
2868
2923
  /**
2869
2924
  * Gets the name of the floor.
@@ -2913,6 +2968,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2913
2968
  * @returns {PointOfInterest[]} An array of PointOfInterest objects on this floor.
2914
2969
  */
2915
2970
  get pois(): PointOfInterest[];
2971
+ /**
2972
+ * Gets the FloorStack ({@link FloorStack}) that this floor belongs to.
2973
+ *
2974
+ * @returns {FloorStack} The FloorStack that this floor belongs to.
2975
+ */
2976
+ get floorStack(): FloorStack;
2916
2977
  /**
2917
2978
  * Serializes the floor data to JSON.
2918
2979
  *
@@ -3474,6 +3535,161 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image' {
3474
3535
  export default Image;
3475
3536
  }
3476
3537
 
3538
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack' {
3539
+ import type { FloorStack as MVFFloorStack } from '@mappedin/mvf';
3540
+ import type { MapDataInternal, Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3541
+ import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
3542
+ /**
3543
+ * A class representing floor stack data within the map.
3544
+ *
3545
+ * FloorStacks are used to represent a group of floors that are part of a single entity.
3546
+ */
3547
+ class FloorStack extends BaseMapData {
3548
+ #private;
3549
+ /**
3550
+ * @internal
3551
+ */
3552
+ static readonly __type = "floor-stack";
3553
+ /**
3554
+ * @internal
3555
+ */
3556
+ readonly __type = "floor-stack";
3557
+ /**
3558
+ * Checks if the provided instance is of type FloorStack.
3559
+ *
3560
+ * @param instance The instance to check.
3561
+ * @returns {boolean} True if the instance is a FloorStack, false otherwise.
3562
+ */
3563
+ static is(instance: object): instance is FloorStack;
3564
+ /**
3565
+ * @internal
3566
+ */
3567
+ constructor(data: MapDataInternal, options: {
3568
+ mvfData: MVFFloorStack;
3569
+ });
3570
+ /**
3571
+ * Gets the type of FloorStack.
3572
+ */
3573
+ get type(): MVFFloorStack['type'];
3574
+ /**
3575
+ * Gets the name of the FloorStack.
3576
+ *
3577
+ * @returns {string} The name of the FloorStack.
3578
+ */
3579
+ get name(): string;
3580
+ /**
3581
+ * Gets the floors ({@link Floor}) included in this FloorStack.
3582
+ *
3583
+ * @returns {Floor[]} An array of Floor objects in this FloorStack.
3584
+ */
3585
+ get floors(): Floor[];
3586
+ /**
3587
+ * Serializes the FloorStack data to JSON.
3588
+ *
3589
+ * @returns An object representing the FloorStack.
3590
+ */
3591
+ toJSON(): {
3592
+ id: string;
3593
+ name: string;
3594
+ type: "Building" | "Outdoor" | undefined;
3595
+ floors: string[];
3596
+ };
3597
+ /**
3598
+ * Cleans up resources used by the instance.
3599
+ *
3600
+ * @internal
3601
+ */
3602
+ destroy(): void;
3603
+ }
3604
+ export default FloorStack;
3605
+ }
3606
+
3607
+ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
3608
+ import type { Feature, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, Point, SpaceCollection, SpaceProperties, Connection as MVFConnection, EntranceCollection, AnnotationCollection, ParsedMVF, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseVenue as MVFEnterpriseVenue } from '@mappedin/mvf';
3609
+ import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3610
+ import { Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3611
+ import Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
3612
+ import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
3613
+ import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
3614
+ import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
3615
+ export type MapDataRecords = {
3616
+ spacesById: Record<string, Space>;
3617
+ nodesById: Record<string, Node>;
3618
+ objectsById: Record<string, MapObject>;
3619
+ floorsById: Record<string, Floor>;
3620
+ floorStacksById: Record<string, FloorStack>;
3621
+ connectionsById: Record<string, Connection>;
3622
+ doorsById: Record<string, Door>;
3623
+ doorsByNodeId: Record<string, Door>;
3624
+ poisById: Record<string, PointOfInterest>;
3625
+ annotationsById: Record<string, Annotation>;
3626
+ locationsById: Record<MVFEnterpriseLocationId, EnterpriseLocation>;
3627
+ categoriesById: Record<MVFEnterpriseCategoryId, EnterpriseCategory>;
3628
+ venue: MVFEnterpriseVenue;
3629
+ spaceIdsByDestinationNodeId: Record<string, string[]>;
3630
+ objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
3631
+ obstructionIdByEntranceId: Record<string, string>;
3632
+ connectionIdsByLatLon: Record<string, string[]>;
3633
+ mvfSpacesById: Record<string, SpaceCollection['features'][number]>;
3634
+ mvfNodesById: Record<string, NodeCollection['features'][number]>;
3635
+ mvfObstructionById: Record<string, ObstructionCollection['features'][number]>;
3636
+ mvfFloorsById: Record<string, MVFFloor>;
3637
+ mvfFloorStacksById: Record<string, MVFFloorStack>;
3638
+ mvfConnectionsById: Record<string, MVFConnection>;
3639
+ mvfConnectionsByNodeId: Record<string, MVFConnection>;
3640
+ mvfEntrancesById: Record<string, EntranceCollection['features'][number]>;
3641
+ mvfAnnotationsById: Record<string, AnnotationCollection['features'][number]>;
3642
+ mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
3643
+ mvfLocationsById: Record<string, MVFEnterpriseLocation>;
3644
+ mvfLocationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
3645
+ };
3646
+ export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "mvfFloorsById">;
3647
+ export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "mvfFloorStacksById">;
3648
+ /**
3649
+ * @internal
3650
+ */
3651
+ export const createEnterpriseDataFromMVF: (mvf: ParsedMVF, data: MapDataInternal) => {
3652
+ locationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
3653
+ mvfLocationsById: Record<string, MVFEnterpriseLocation>;
3654
+ mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
3655
+ locationsById: Record<string, EnterpriseLocation>;
3656
+ categoriesById: Record<string, EnterpriseCategory>;
3657
+ venue: MVFEnterpriseVenue;
3658
+ };
3659
+ /**
3660
+ * @internal
3661
+ */
3662
+ export const createDataFromMVF: (mvf: ParsedMVF, data: MapDataInternal) => {
3663
+ spacesById: Record<string, Space>;
3664
+ nodesById: Record<string, Node>;
3665
+ objectsById: Record<string, MapObject>;
3666
+ floorsById: Record<string, Floor>;
3667
+ floorStacksById: Record<string, FloorStack>;
3668
+ connectionsById: Record<string, Connection>;
3669
+ doorsById: Record<string, Door>;
3670
+ doorsByNodeId: Record<string, Door>;
3671
+ poisById: Record<string, PointOfInterest>;
3672
+ annotationsById: Record<string, Annotation>;
3673
+ spaceIdsByDestinationNodeId: Record<string, string[]>;
3674
+ objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
3675
+ obstructionIdByEntranceId: Record<string, string>;
3676
+ connectionIdsByLatLon: Record<string, string[]>;
3677
+ mvfSpacesById: Record<string, Feature<Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, SpaceProperties>>;
3678
+ mvfNodesById: Record<string, Feature<Point, import("@mappedin/mvf").NodeProperties>>;
3679
+ mvfObstructionById: Record<string, Feature<import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, import("@mappedin/mvf").ObstructionProperties>>;
3680
+ mvfFloorsById: Record<string, MVFFloor>;
3681
+ mvfFloorStacksById: Record<string, MVFFloorStack>;
3682
+ mvfConnectionsById: Record<string, MVFConnection>;
3683
+ mvfConnectionsByNodeId: Record<string, MVFConnection>;
3684
+ mvfEntrancesById: Record<string, Feature<import("@mappedin/mvf").LineString, import("@mappedin/mvf").EntranceProperties>>;
3685
+ mvfAnnotationsById: Record<string, {
3686
+ type: import("@mappedin/mvf").FeatureType;
3687
+ geometry: Point;
3688
+ properties: import("@mappedin/mvf").AnnotationProperties;
3689
+ }>;
3690
+ };
3691
+ }
3692
+
3477
3693
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3478
3694
  import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
3479
3695
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
@@ -4732,6 +4948,10 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
4732
4948
  * Geometries can be added to the focus listener via `mapView.setState(.., { focusable: true })`.
4733
4949
  */
4734
4950
  'geometry-in-focus': string | number | null;
4951
+ /**
4952
+ * Fired before the scene is rendered. Use this to modify the scene before it is rendered.
4953
+ */
4954
+ 'pre-render': undefined;
4735
4955
  };
4736
4956
  /**
4737
4957
  * The payload of an event. See also {@link MapEvent}.
@@ -5229,13 +5449,9 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5229
5449
  import { type ImageProperties, type ImageState, type ImageStyle } from '@mappedin/react-sdk/geojson/src/components/image';
5230
5450
  import { MeshDetachmentSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system';
5231
5451
  import { MeshModificationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system';
5452
+ import { PreRenderSystem } from '@mappedin/react-sdk/geojson/src/systems/pre-render/system';
5232
5453
  export type * from '@mappedin/react-sdk/geojson/src/types';
5233
5454
  export const raycaster: Raycaster;
5234
- export const DEFAULT_ZOOM_LEVEL = 18;
5235
- export const DEFAULT_MIN_ZOOM_LEVEL = 12;
5236
- export const DEFAULT_MAX_ZOOM_LEVEL = 22;
5237
- export const DEFAULT_PITCH = 0;
5238
- export const DEFAULT_BEARING = 0;
5239
5455
  /**
5240
5456
  * Some preset orderings for updates.
5241
5457
  */
@@ -5247,6 +5463,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5247
5463
  AFTER_RENDER: number;
5248
5464
  AFTER_ALL_UPDATES: number;
5249
5465
  };
5466
+ export const DEFAULT_PITCH: number, DEFAULT_BEARING: number, DEFAULT_ZOOM_LEVEL: number, DEFAULT_MIN_ZOOM_LEVEL: number, DEFAULT_MAX_ZOOM_LEVEL: number;
5250
5467
  export type Systems = {
5251
5468
  cameraSystem: CameraSystem;
5252
5469
  panBoundsSystem: PanBoundsSystem;
@@ -5274,6 +5491,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5274
5491
  geometryInFocusSystem: GeometryInFocusSystem;
5275
5492
  meshDetachmentSystem: MeshDetachmentSystem;
5276
5493
  meshModificationSystem: MeshModificationSystem;
5494
+ preRenderSystem: PreRenderSystem;
5277
5495
  };
5278
5496
  export type MapViewState = {
5279
5497
  readonly type: 'map-view';
@@ -5437,6 +5655,10 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5437
5655
  * Sets the background color of the renderer. Only applies to "standalone mode"
5438
5656
  */
5439
5657
  setBackgroundColor: (color: any, alpha: any) => void;
5658
+ /**
5659
+ * Returns the background color of the renderer. Only applies to "standalone mode"
5660
+ */
5661
+ get backgroundColor(): import("three").Color;
5440
5662
  /**
5441
5663
  * Returns the current scale of the map in metres per pixel.
5442
5664
  */
@@ -5591,13 +5813,23 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
5591
5813
  * How far the camera can zoom out away from the ground
5592
5814
  */
5593
5815
  get minZoomLevel(): number;
5816
+ /**
5817
+ * Toggle the mode of the camera to automatically set the minimum zoom level based on the size of the scene.
5818
+ * It will be automatically disabled when the minimum zoom level is set manually.
5819
+ * @param value The new value for the auto min zoom level mode.
5820
+ */
5821
+ setAutoMinZoomLevel(value: boolean): void;
5822
+ /**
5823
+ * The mode of the camera to automatically set the minimum zoom level based on the size of the scene.
5824
+ */
5825
+ get autoMinZoomLevel(): boolean;
5594
5826
  /**
5595
5827
  * How far out the camera can zoom
5596
5828
  *
5597
5829
  * @param zoomLevel The minimum zoom level in mercator zoom level units.
5598
5830
  * @default 0
5599
5831
  */
5600
- setMinZoomLevel(zoomLevel: number): void;
5832
+ setMinZoomLevel(zoomLevel: number, disableAutoMinZoomLevel?: boolean): void;
5601
5833
  /**
5602
5834
  * How far in the camera can zoom
5603
5835
  *
@@ -6219,7 +6451,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
6219
6451
  styleMap: AggregatedStyleMap;
6220
6452
  StackedMaps: StackedMaps;
6221
6453
  get currentFloor(): FloorObject;
6222
- setFloor(floorId: string, reason?: TFloorChangeReason): void;
6454
+ setFloor(floorId: string, reason?: TFloorChangeReason): Promise<void> | undefined;
6223
6455
  Models: {
6224
6456
  add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
6225
6457
  floorId?: string;
@@ -6294,6 +6526,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6294
6526
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
6295
6527
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
6296
6528
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
6529
+ import type { TShowStackOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
6297
6530
  export class GeoJsonApi {
6298
6531
  core: RendererCore;
6299
6532
  outdoors: GeojsonApiMapObject;
@@ -6326,8 +6559,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6326
6559
  excludeFloors: Floor[];
6327
6560
  }): Promise<void> | undefined;
6328
6561
  collapse(): Promise<void> | undefined;
6562
+ showStack(opts?: TShowStackOptions): Promise<void> | undefined;
6329
6563
  addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
6330
- setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
6564
+ setFloor(floor: Floor | string, reason?: TFloorChangeReason): Promise<void> | undefined;
6331
6565
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
6332
6566
  get currentFloor(): Floor;
6333
6567
  getState<T extends Space | MapObject | Label | Marker | Model | Image | string>(target: T): TGetState<T> | undefined;
@@ -6387,6 +6621,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
6387
6621
  * The current center coordinate ({@link Coordinate}) of the camera.
6388
6622
  */
6389
6623
  get center(): Coordinate;
6624
+ /**
6625
+ * Toggle the mode of the camera to automatically set the minimum zoom level based on the size of the scene.
6626
+ * It will be automatically disabled when the minimum zoom level is set manually.
6627
+ * @param value The new value for the auto min zoom level mode.
6628
+ */
6629
+ setAutoMinZoomLevel(value: boolean): void;
6630
+ /**
6631
+ * The mode of the camera to automatically set the minimum zoom level based on the size of the scene.
6632
+ */
6633
+ get autoMinZoomLevel(): boolean;
6390
6634
  /**
6391
6635
  * The current zoom level of the camera in mercator zoom levels.
6392
6636
  *
@@ -6841,6 +7085,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor' {
6841
7085
  * Whether the outdoorView is enabled.
6842
7086
  */
6843
7087
  get enabled(): boolean;
7088
+ /**
7089
+ * Whether the outdoorView is visible.
7090
+ */
7091
+ get visible(): boolean;
7092
+ /**
7093
+ * Show the outdoor view.
7094
+ */
7095
+ show(): void;
7096
+ /**
7097
+ * Hide the outdoor view.
7098
+ * @param excludedStyleLayerIds {string[]} E
7099
+ */
7100
+ hide(excludedStyleLayerIds?: string[]): void;
6844
7101
  }
6845
7102
  }
6846
7103
 
@@ -7238,7 +7495,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7238
7495
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
7239
7496
  * If a set context is not in this list, it will default to the first VALID_CONTEXTS value.
7240
7497
  */
7241
- export const VALID_CONTEXTS: readonly ["websdk", "web", "webv2", "kiosk-v2", "mobile", "iossdk", "androidsdk", "reactnativesdk"];
7498
+ export const VALID_CONTEXTS: readonly ["websdk", "web", "webv2", "kiosk-v2", "mobile", "iossdk", "androidsdk", "reactnativesdk", "gen7", "bespoke"];
7242
7499
  type ValidContext = (typeof VALID_CONTEXTS)[number];
7243
7500
  export const DEFAULT_CONTEXT: "websdk";
7244
7501
  export const ANALYTICS_URL = "https://api-gateway.mappedin.com/track-analytics/a/";
@@ -7283,66 +7540,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7283
7540
  sendGetDirectionsEvent: (start: string, end: string) => void;
7284
7541
  sendBlueDotEvents(event: BlueDotEvents): void | Promise<Response> | Promise<void>;
7285
7542
  }
7286
- type AnalyticsUserPosition = {
7287
- bluedotTimestamp: number;
7288
- latitude: number;
7289
- longitude: number;
7290
- floorLevel?: number;
7291
- accuracy: number;
7292
- };
7293
- type AnalyticsOptions = {
7294
- /** The ID of the map to be used for analytics. */
7295
- mapId?: string;
7296
- /** The API key for authentication. */
7297
- key?: string;
7298
- /** The API secret for authentication. */
7299
- secret?: string;
7300
- /** The access token for authentication. */
7301
- accessToken?: string;
7302
- /** Flag to disable authentication. */
7303
- noAuth?: boolean;
7304
- /** Flag to enable logging of events. */
7305
- logEvents?: boolean;
7306
- /** Flag to enable sending of events. */
7307
- sendEvents?: boolean;
7308
- /** The context in which the analytics are being used. */
7309
- context?: string;
7310
- /** The platform string to be included in analytics. */
7311
- platformString?: string;
7312
- /** The base URI for the analytics endpoint. */
7313
- baseUri?: string;
7314
- };
7315
- export type AnalyticsUpdateOptions = Omit<AnalyticsOptions, 'mapId' | 'key' | 'secret' | 'accessToken'> & {
7316
- /** The ID of the map to be used for analytics. */
7317
- mapId: string;
7318
- } & ({
7319
- /** The API key for authentication. */
7320
- key: string;
7321
- /** The API secret for authentication. */
7322
- secret: string;
7323
- } | {
7324
- /** The access token for authentication. */
7325
- accessToken: string;
7326
- });
7327
- export type AnalyticState = {
7328
- accessToken?: string | undefined;
7329
- version: string;
7330
- platformString: string;
7331
- baseUri: string;
7332
- analyticsBaseUrl: string;
7333
- noAuth: boolean;
7334
- geolocationMode: boolean;
7335
- mi_uuid: string;
7336
- mi_session: string;
7337
- context: ValidContext;
7338
- userPosition?: AnalyticsUserPosition;
7339
- mapId?: string;
7340
- key?: string;
7341
- secret?: string;
7342
- logEvents: boolean;
7343
- sendEvents: boolean;
7344
- };
7345
- type UpdateStateParam = Partial<Pick<AnalyticState, 'geolocationMode' | 'context' | 'logEvents' | 'userPosition' | 'mapId' | 'sendEvents' | 'logEvents' | 'accessToken'>>;
7543
+ type UpdateStateParam = Partial<Pick<AnalyticState, 'geolocationMode' | 'context' | 'logEvents' | 'userPosition' | 'mapId' | 'sendEvents' | 'logEvents' | 'accessToken' | 'sessionId'>>;
7346
7544
  type CaptureEventsPayloadMap = {
7347
7545
  '$select-location': {
7348
7546
  id: string;
@@ -7362,12 +7560,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7362
7560
  export const analyticsInternal: AnalyticsInternal;
7363
7561
  export class Analytics {
7364
7562
  #private;
7365
- constructor(internalAnalytics: AnalyticsInternal);
7366
7563
  /**
7367
- * Initializes the analytics with the provided options.
7368
- * @param args - The options to initialize the analytics.
7564
+ * @internal
7369
7565
  */
7370
- init(options: AnalyticsUpdateOptions): void;
7566
+ constructor(internalAnalytics: AnalyticsInternal);
7371
7567
  /**
7372
7568
  * Captures an analytic event with a custom target and query payload.
7373
7569
  *
@@ -7380,14 +7576,89 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7380
7576
  * Updates the analytics state with the provided parameters.
7381
7577
  * @param update - The state parameters to update.
7382
7578
  */
7383
- updateState: (update: Partial<Pick<AnalyticState, 'logEvents' | 'sendEvents' | 'logEvents' | 'baseUri' | 'accessToken'>>) => void;
7579
+ updateState: (update: TAnalyticsUpdateState) => void;
7384
7580
  /**
7385
7581
  * Returns the current analytics state.
7386
7582
  * @internal
7387
7583
  * @returns the current analytics state
7388
7584
  */
7389
- getState(): AnalyticState;
7585
+ getState(): {
7586
+ version: string;
7587
+ /** The platform string to be included in analytics. */
7588
+ platformString: string;
7589
+ /** The base URI for the analytics endpoint. */
7590
+ baseUri: string;
7591
+ /** The base URI with mapId appended. */
7592
+ analyticsBaseUrl: string;
7593
+ /** Flag to disable authentication. */
7594
+ noAuth: boolean;
7595
+ /** Flag to enable geolocation mode. */
7596
+ geolocationMode: boolean;
7597
+ /** The device ID to be used for analytics. */
7598
+ deviceId: string;
7599
+ /** The session ID to be used for analytics. */
7600
+ sessionId: string;
7601
+ /** The context in which the analytics are being used. */
7602
+ context: ValidContext;
7603
+ /** The last known user position. */
7604
+ userPosition?: AnalyticsUserPosition;
7605
+ /** The ID of the map to be used for analytics. */
7606
+ mapId?: string;
7607
+ /** Flag to enable logging of events. */
7608
+ logEvents: boolean;
7609
+ /** Flag to enable sending of events. */
7610
+ sendEvents: boolean;
7611
+ } & AnalyticsAuth;
7390
7612
  }
7613
+ type AnalyticsUserPosition = {
7614
+ bluedotTimestamp: number;
7615
+ latitude: number;
7616
+ longitude: number;
7617
+ floorLevel?: number;
7618
+ accuracy: number;
7619
+ };
7620
+ type AnalyticsAuth = {
7621
+ /** The API key for authentication. */
7622
+ key?: string;
7623
+ /** The API secret for authentication. */
7624
+ secret?: string;
7625
+ /** The access token for authentication. */
7626
+ accessToken?: string;
7627
+ };
7628
+ export type AnalyticState = {
7629
+ version: string;
7630
+ /** The platform string to be included in analytics. */
7631
+ platformString: string;
7632
+ /** The base URI for the analytics endpoint. */
7633
+ baseUri: string;
7634
+ /** The base URI with mapId appended. */
7635
+ analyticsBaseUrl: string;
7636
+ /** Flag to disable authentication. */
7637
+ noAuth: boolean;
7638
+ /** Flag to enable geolocation mode. */
7639
+ geolocationMode: boolean;
7640
+ /** The device ID to be used for analytics. */
7641
+ deviceId: string;
7642
+ /** The session ID to be used for analytics. */
7643
+ sessionId: string;
7644
+ /** The context in which the analytics are being used. */
7645
+ context: ValidContext;
7646
+ /** The last known user position. */
7647
+ userPosition?: AnalyticsUserPosition;
7648
+ /** The ID of the map to be used for analytics. */
7649
+ mapId?: string;
7650
+ /** Flag to enable logging of events. */
7651
+ logEvents: boolean;
7652
+ /** Flag to enable sending of events. */
7653
+ sendEvents: boolean;
7654
+ } & AnalyticsAuth;
7655
+ type AnalyticsOptions = Partial<Omit<AnalyticState, 'version' | 'analyticsBaseUrl' | 'geolocationMode' | 'deviceId' | 'userPosition'>>;
7656
+ export type AnalyticsUpdateOptions = Omit<AnalyticsOptions, keyof AnalyticsAuth> & ((Required<Pick<AnalyticsAuth, 'key' | 'secret'>> & Partial<Pick<AnalyticsAuth, 'accessToken'>>) | (Required<Pick<AnalyticsAuth, 'accessToken'>> & Partial<Pick<AnalyticsAuth, 'key' | 'secret'>>));
7657
+ /**
7658
+ * Options for updating the current state of analytics.
7659
+ * @interface
7660
+ */
7661
+ export type TAnalyticsUpdateState = Pick<Partial<AnalyticState>, 'logEvents' | 'sendEvents' | 'baseUri' | 'accessToken'>;
7391
7662
  export {};
7392
7663
  }
7393
7664
 
@@ -7409,22 +7680,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object
7409
7680
  }
7410
7681
  }
7411
7682
 
7412
- declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
7413
- import type { ParsedMVF } from '@mappedin/mvf';
7414
- import type { RendererCore } from '@mappedin/core-sdk';
7415
- import type { AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
7416
- import type { TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7417
- export class FloorObject {
7418
- id: string;
7419
- name: string;
7420
- elevation: number;
7421
- containerId: string;
7422
- layers: Map<string, string>;
7423
- constructor(parentId: string, floor: ParsedMVF['map.geojson'][0], renderer: RendererCore, options: TShow3DMapOptions, mvf: ParsedMVF, styleMap?: AggregatedStyleMap);
7424
- load: () => this;
7425
- }
7426
- }
7427
-
7428
7683
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object' {
7429
7684
  export default abstract class BaseMetaData {
7430
7685
  /**
@@ -8271,8 +8526,12 @@ declare module '@mappedin/react-sdk/geojson/src/systems/dom-resize/system' {
8271
8526
  declare module '@mappedin/react-sdk/geojson/src/systems/pan-bounds/system' {
8272
8527
  import type { CameraSystem } from '@mappedin/react-sdk/geojson/src/systems/camera';
8273
8528
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8274
- export class PanBoundsSystem {
8529
+ import { PubSub } from '@packages/internal/common';
8530
+ export class PanBoundsSystem extends PubSub<{
8531
+ update: void;
8532
+ }> {
8275
8533
  dirty: boolean;
8534
+ autoMinZoomLevel: boolean;
8276
8535
  constructor(state: RendererState, cameraSystem: CameraSystem);
8277
8536
  /**
8278
8537
  * Recomputes the pan bounds based on the current 2D and 3D entities in the scene
@@ -8401,6 +8660,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system
8401
8660
  }
8402
8661
  }
8403
8662
 
8663
+ declare module '@mappedin/react-sdk/geojson/src/systems/pre-render/system' {
8664
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
8665
+ /**
8666
+ * This system runs any tasks at the very start of the render loop.
8667
+ * This is useful for ensuring that animations are synced with the render loop.
8668
+ */
8669
+ export class PreRenderSystem {
8670
+ #private;
8671
+ constructor(core: RendererCore);
8672
+ update(): void;
8673
+ }
8674
+ }
8675
+
8404
8676
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src' {
8405
8677
  export { Navigator } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator';
8406
8678
  export type { SimplifyDirectionsOptions } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator';
@@ -8506,6 +8778,22 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
8506
8778
  }
8507
8779
  }
8508
8780
 
8781
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
8782
+ import type { ParsedMVF } from '@mappedin/mvf';
8783
+ import type { RendererCore } from '@mappedin/core-sdk';
8784
+ import type { AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
8785
+ import type { TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
8786
+ export class FloorObject {
8787
+ id: string;
8788
+ name: string;
8789
+ elevation: number;
8790
+ containerId: string;
8791
+ layers: Map<string, string>;
8792
+ constructor(parentId: string, floor: ParsedMVF['map.geojson'][0], renderer: RendererCore, options: TShow3DMapOptions, mvf: ParsedMVF, styleMap?: AggregatedStyleMap);
8793
+ load: () => this;
8794
+ }
8795
+ }
8796
+
8509
8797
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
8510
8798
  import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8511
8799
  import type { Position, EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
@@ -8761,9 +9049,9 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
8761
9049
  };
8762
9050
  'pedestal-change': {
8763
9051
  pedestal: number;
8764
- scrolledToTop: boolean;
8765
- scrolledToBottom: boolean;
8766
- scrollPercent: number;
9052
+ scrolledToTop?: boolean;
9053
+ scrolledToBottom?: boolean;
9054
+ scrollPercent?: number;
8767
9055
  };
8768
9056
  };
8769
9057
  type CameraEvents = {
@@ -8871,6 +9159,10 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
8871
9159
  * @default Infinity
8872
9160
  */
8873
9161
  setMaxZoomLevel(zoomLevel: number): void;
9162
+ /**
9163
+ * The default minimum zoom level of the camera in mercator zoom levels.
9164
+ */
9165
+ get defaultMinZoomLevel(): number;
8874
9166
  /**
8875
9167
  * How far the camera can zoom out away from the ground.
8876
9168
  *
@@ -8932,6 +9224,10 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
8932
9224
  * 0% == camera is as far down as it will go
8933
9225
  */
8934
9226
  get scrollPercent(): number;
9227
+ /**
9228
+ * Returns current field of view(FOV) in degrees
9229
+ */
9230
+ get fov(): number;
8935
9231
  /**
8936
9232
  * Returns whether the maps are scrolled to bottom
8937
9233
  */
@@ -9337,6 +9633,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/constants' {
9337
9633
  export const BLOCK_MERCATOR_ZOOM_LEVEL = 17;
9338
9634
  export const ROOM_MERCATOR_ZOOM_LEVEL = 20;
9339
9635
  export const EVENTS: readonly ["change", "pan-start", "pan-end", "rotate-start", "rotate-end", "zoom-start", "zoom-end", "multi-start", "multi-end", "multi-cancel", "pedestal-start", "pedestal-change", "pedestal-end", "user-pan-start", "user-pedestal-start", "user-rotate-start", "user-dolly-start", "user-zoom-start", "user-tilt-start", "user-pan-end", "user-pedestal-end", "user-rotate-end", "user-dolly-end", "user-zoom-end", "user-tilt-end", "position-updated", "zoom-updated", "tilt-updated", "rotation-updated"];
9636
+ export const DEFAULT_ZOOM_LEVEL = 18;
9637
+ export const DEFAULT_MIN_ZOOM_LEVEL = 12;
9638
+ export const DEFAULT_MAX_ZOOM_LEVEL = 22;
9639
+ export const DEFAULT_PITCH = 0;
9640
+ export const DEFAULT_BEARING = 0;
9340
9641
  }
9341
9642
 
9342
9643
  declare module '@mappedin/react-sdk/packages/outdoor-context-v4/ui/map' {