@mappedin/react-sdk 6.0.1-beta.8 → 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';
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';
525
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, EnterpriseLocationId, EnterpriseCategoryId, 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';
@@ -899,26 +914,28 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
899
914
  readonly obstructionIdByEntranceId: Record<string, string>;
900
915
  readonly venue?: EnterpriseVenue;
901
916
  enterpriseMode: boolean;
902
- nodesById: Record<string, Node>;
903
- spacesById: Record<string, Space>;
904
- floorsById: Record<string, Floor>;
905
- connectionsById: Record<string, Connection>;
906
- objectsById: Record<string, MapObject>;
907
- doorsById: Record<string, Door>;
908
- pointsOfInterestById: Record<string, PointOfInterest>;
909
- annotationsById: Record<string, Annotation>;
910
- locationsById: Record<EnterpriseLocationId, EnterpriseLocation>;
911
- categoriesById: Record<EnterpriseCategoryId, EnterpriseCategory>;
912
- doorsByNodeId: Record<string, Door>;
913
- locationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
914
- mvfAnnotationsById: Record<string, AnnotationCollection['features'][number]>;
915
- mvfConnectionsById: Record<string, MVFConnection>;
916
- mvfConnectionsByNodeId: Record<string, MVFConnection>;
917
- mvfEntrancesById: Record<string, EntranceCollection['features'][number]>;
918
- mvfNodesById: Record<string, NodeCollection['features'][number]>;
919
- mvfObstructionById: Record<string, ObstructionCollection['features'][number]>;
920
- mvfSpacesById: Record<string, SpaceCollection['features'][number]>;
921
- mvfMapsById: Record<string, MVFMap>;
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'];
922
939
  /**
923
940
  * @internal
924
941
  */
@@ -955,6 +972,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
955
972
  * @returns {Floor[]} An array of Floor objects.
956
973
  */
957
974
  get floors(): Floor[];
975
+ get floorStacks(): FloorStack[];
958
976
  /**
959
977
  * Retrieves all doors in the map.
960
978
  *
@@ -994,6 +1012,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
994
1012
  getById(type: 'space', id: string): Space | undefined;
995
1013
  getById(type: 'door', id: string): Door | undefined;
996
1014
  getById(type: 'floor', id: string): Floor | undefined;
1015
+ getById(type: 'floor-stack', id: string): FloorStack | undefined;
997
1016
  getById(type: 'connection', id: string): Connection | undefined;
998
1017
  getById(type: 'object', id: string): MapObject | undefined;
999
1018
  getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
@@ -1011,7 +1030,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1011
1030
  getMVFFeatureById(type: 'space', id: string): SpaceCollection['features'][number] | undefined;
1012
1031
  getMVFFeatureById(type: 'node', id: string): NodeCollection['features'][number] | undefined;
1013
1032
  getMVFFeatureById(type: 'obstruction', id: string): ObstructionCollection['features'][number] | undefined;
1014
- getMVFFeatureById(type: 'map', id: string): MVFMap | undefined;
1033
+ getMVFFeatureById(type: 'map', id: string): MVFFloor | undefined;
1015
1034
  getMVFFeatureById(type: 'connection', id: string): MVFConnection | undefined;
1016
1035
  getMVFFeatureById(type: 'entrance', id: string): EntranceCollection['features'][number] | undefined;
1017
1036
  getMVFFeatureById(type: 'annotation', id: string): AnnotationCollection['features'][number] | undefined;
@@ -1043,7 +1062,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1043
1062
  */
1044
1063
  destroy(): void;
1045
1064
  }
1046
- 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, };
1047
1066
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1048
1067
  export type { Places };
1049
1068
  }
@@ -1061,6 +1080,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1061
1080
  import type { Label, Marker, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1062
1081
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1063
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';
1064
1084
  export class MapView extends PubSub<TEvents> {
1065
1085
  #private;
1066
1086
  /**
@@ -1155,6 +1175,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1155
1175
  expand(opts?: {
1156
1176
  excludeFloors: Floor[];
1157
1177
  }): Promise<void> | undefined;
1178
+ showStack(opts?: TShowStackOptions): Promise<void> | undefined;
1158
1179
  /**
1159
1180
  * @experimental
1160
1181
  * @hidden
@@ -1171,7 +1192,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1171
1192
  * Sets the current floor ({@link Floor}) of the map.
1172
1193
  * @param floor The floor or floor ID to set.
1173
1194
  */
1174
- setFloor(floor: Floor | string): void;
1195
+ setFloor(floor: Floor | string): Promise<void> | undefined;
1175
1196
  /**
1176
1197
  * The current floor ({@link Floor}) of the map.
1177
1198
  */
@@ -2230,14 +2251,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2230
2251
  animateArrowsOnPath?: boolean;
2231
2252
  };
2232
2253
  /**
2233
- * Options for the departure and destination polygons.
2254
+ * Options for the markers at the departure and destination.
2234
2255
  */
2235
- polygons?: {
2256
+ markerOptions?: {
2236
2257
  /**
2237
- * The color of the departure polygon.
2238
- * @default '#40A9FF'
2258
+ * The color of the departure marker.
2259
+ * @default '#1890FF'
2239
2260
  */
2240
- departure?: string;
2261
+ departureColor?: string;
2262
+ /**
2263
+ * The color of the destination marker.
2264
+ * @default '#722ED1'
2265
+ */
2266
+ destinationColor?: string;
2241
2267
  };
2242
2268
  };
2243
2269
  export class Navigation {
@@ -2288,7 +2314,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search' {
2288
2314
 
2289
2315
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics' {
2290
2316
  export { Analytics, AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
2291
- 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';
2292
2318
  }
2293
2319
 
2294
2320
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
@@ -2507,27 +2533,37 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
2507
2533
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps' {
2508
2534
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
2509
2535
  import type { RendererCore } from '@mappedin/core-sdk';
2510
- import type { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
2536
+ import TWEEN from '@tweenjs/tween.js';
2511
2537
  import { PubSub } from '@packages/internal/common';
2512
- 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;
2513
2540
  export const DURATION = 1000;
2514
2541
  export type TStackedMapsEvents = {
2515
2542
  expanded: void;
2516
2543
  collapsed: void;
2517
2544
  };
2545
+ export type TShowStackOptions = {
2546
+ numFloors?: number;
2547
+ cameraOptions?: TFocusOnOptions;
2548
+ };
2518
2549
  export class StackedMaps extends PubSub<TStackedMapsEvents> {
2519
2550
  #private;
2520
2551
  constructor(api: GeojsonApiMapObject, core: RendererCore);
2521
- includedFloors: FloorObject[];
2522
- get percentExpanded(): number;
2523
- set percentExpanded(value: number);
2524
- animateToCurrentFloor(): void;
2552
+ percentExpanded: number;
2553
+ animateToCurrentFloorTween: TWEEN.Tween | null;
2525
2554
  expanded: boolean;
2555
+ handlePreRender: () => void;
2556
+ handleUserInteractionStart: () => void;
2557
+ handleUserInteractionEnd: () => void;
2558
+ animateToCurrentFloor(): Promise<void>;
2526
2559
  expand(opts?: {
2527
2560
  excludeFloorIds: string[];
2528
2561
  }): Promise<void>;
2529
2562
  collapse(): Promise<void>;
2530
- animate(direction: 'expand' | 'collapse'): Promise<void>;
2563
+ showStack(opts?: TShowStackOptions): Promise<void>;
2564
+ animate(direction: 'expand' | 'collapse', options?: {
2565
+ duration: number;
2566
+ }): Promise<void>;
2531
2567
  }
2532
2568
  }
2533
2569
 
@@ -2853,8 +2889,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
2853
2889
  }
2854
2890
 
2855
2891
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2856
- import type { Map } from '@mappedin/mvf';
2857
- 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';
2858
2894
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
2859
2895
  /**
2860
2896
  * A class representing floor data within the map.
@@ -2882,7 +2918,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2882
2918
  * @internal
2883
2919
  */
2884
2920
  constructor(data: MapDataInternal, options: {
2885
- mvfData: Map;
2921
+ mvfData: MVFFloor;
2886
2922
  });
2887
2923
  /**
2888
2924
  * Gets the name of the floor.
@@ -2932,6 +2968,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
2932
2968
  * @returns {PointOfInterest[]} An array of PointOfInterest objects on this floor.
2933
2969
  */
2934
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;
2935
2977
  /**
2936
2978
  * Serializes the floor data to JSON.
2937
2979
  *
@@ -3493,6 +3535,161 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image' {
3493
3535
  export default Image;
3494
3536
  }
3495
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
+
3496
3693
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3497
3694
  import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
3498
3695
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
@@ -4751,6 +4948,10 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
4751
4948
  * Geometries can be added to the focus listener via `mapView.setState(.., { focusable: true })`.
4752
4949
  */
4753
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;
4754
4955
  };
4755
4956
  /**
4756
4957
  * The payload of an event. See also {@link MapEvent}.
@@ -5248,13 +5449,9 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5248
5449
  import { type ImageProperties, type ImageState, type ImageStyle } from '@mappedin/react-sdk/geojson/src/components/image';
5249
5450
  import { MeshDetachmentSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system';
5250
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';
5251
5453
  export type * from '@mappedin/react-sdk/geojson/src/types';
5252
5454
  export const raycaster: Raycaster;
5253
- export const DEFAULT_ZOOM_LEVEL = 18;
5254
- export const DEFAULT_MIN_ZOOM_LEVEL = 12;
5255
- export const DEFAULT_MAX_ZOOM_LEVEL = 22;
5256
- export const DEFAULT_PITCH = 0;
5257
- export const DEFAULT_BEARING = 0;
5258
5455
  /**
5259
5456
  * Some preset orderings for updates.
5260
5457
  */
@@ -5266,6 +5463,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5266
5463
  AFTER_RENDER: number;
5267
5464
  AFTER_ALL_UPDATES: number;
5268
5465
  };
5466
+ export const DEFAULT_PITCH: number, DEFAULT_BEARING: number, DEFAULT_ZOOM_LEVEL: number, DEFAULT_MIN_ZOOM_LEVEL: number, DEFAULT_MAX_ZOOM_LEVEL: number;
5269
5467
  export type Systems = {
5270
5468
  cameraSystem: CameraSystem;
5271
5469
  panBoundsSystem: PanBoundsSystem;
@@ -5293,6 +5491,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5293
5491
  geometryInFocusSystem: GeometryInFocusSystem;
5294
5492
  meshDetachmentSystem: MeshDetachmentSystem;
5295
5493
  meshModificationSystem: MeshModificationSystem;
5494
+ preRenderSystem: PreRenderSystem;
5296
5495
  };
5297
5496
  export type MapViewState = {
5298
5497
  readonly type: 'map-view';
@@ -5456,6 +5655,10 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
5456
5655
  * Sets the background color of the renderer. Only applies to "standalone mode"
5457
5656
  */
5458
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;
5459
5662
  /**
5460
5663
  * Returns the current scale of the map in metres per pixel.
5461
5664
  */
@@ -5610,13 +5813,23 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
5610
5813
  * How far the camera can zoom out away from the ground
5611
5814
  */
5612
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;
5613
5826
  /**
5614
5827
  * How far out the camera can zoom
5615
5828
  *
5616
5829
  * @param zoomLevel The minimum zoom level in mercator zoom level units.
5617
5830
  * @default 0
5618
5831
  */
5619
- setMinZoomLevel(zoomLevel: number): void;
5832
+ setMinZoomLevel(zoomLevel: number, disableAutoMinZoomLevel?: boolean): void;
5620
5833
  /**
5621
5834
  * How far in the camera can zoom
5622
5835
  *
@@ -6238,7 +6451,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
6238
6451
  styleMap: AggregatedStyleMap;
6239
6452
  StackedMaps: StackedMaps;
6240
6453
  get currentFloor(): FloorObject;
6241
- setFloor(floorId: string, reason?: TFloorChangeReason): void;
6454
+ setFloor(floorId: string, reason?: TFloorChangeReason): Promise<void> | undefined;
6242
6455
  Models: {
6243
6456
  add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
6244
6457
  floorId?: string;
@@ -6313,6 +6526,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6313
6526
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
6314
6527
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
6315
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';
6316
6530
  export class GeoJsonApi {
6317
6531
  core: RendererCore;
6318
6532
  outdoors: GeojsonApiMapObject;
@@ -6345,8 +6559,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
6345
6559
  excludeFloors: Floor[];
6346
6560
  }): Promise<void> | undefined;
6347
6561
  collapse(): Promise<void> | undefined;
6562
+ showStack(opts?: TShowStackOptions): Promise<void> | undefined;
6348
6563
  addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
6349
- setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
6564
+ setFloor(floor: Floor | string, reason?: TFloorChangeReason): Promise<void> | undefined;
6350
6565
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
6351
6566
  get currentFloor(): Floor;
6352
6567
  getState<T extends Space | MapObject | Label | Marker | Model | Image | string>(target: T): TGetState<T> | undefined;
@@ -6406,6 +6621,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
6406
6621
  * The current center coordinate ({@link Coordinate}) of the camera.
6407
6622
  */
6408
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;
6409
6634
  /**
6410
6635
  * The current zoom level of the camera in mercator zoom levels.
6411
6636
  *
@@ -6860,6 +7085,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor' {
6860
7085
  * Whether the outdoorView is enabled.
6861
7086
  */
6862
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;
6863
7101
  }
6864
7102
  }
6865
7103
 
@@ -7257,7 +7495,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7257
7495
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
7258
7496
  * If a set context is not in this list, it will default to the first VALID_CONTEXTS value.
7259
7497
  */
7260
- 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"];
7261
7499
  type ValidContext = (typeof VALID_CONTEXTS)[number];
7262
7500
  export const DEFAULT_CONTEXT: "websdk";
7263
7501
  export const ANALYTICS_URL = "https://api-gateway.mappedin.com/track-analytics/a/";
@@ -7302,66 +7540,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7302
7540
  sendGetDirectionsEvent: (start: string, end: string) => void;
7303
7541
  sendBlueDotEvents(event: BlueDotEvents): void | Promise<Response> | Promise<void>;
7304
7542
  }
7305
- type AnalyticsUserPosition = {
7306
- bluedotTimestamp: number;
7307
- latitude: number;
7308
- longitude: number;
7309
- floorLevel?: number;
7310
- accuracy: number;
7311
- };
7312
- type AnalyticsOptions = {
7313
- /** The ID of the map to be used for analytics. */
7314
- mapId?: string;
7315
- /** The API key for authentication. */
7316
- key?: string;
7317
- /** The API secret for authentication. */
7318
- secret?: string;
7319
- /** The access token for authentication. */
7320
- accessToken?: string;
7321
- /** Flag to disable authentication. */
7322
- noAuth?: boolean;
7323
- /** Flag to enable logging of events. */
7324
- logEvents?: boolean;
7325
- /** Flag to enable sending of events. */
7326
- sendEvents?: boolean;
7327
- /** The context in which the analytics are being used. */
7328
- context?: string;
7329
- /** The platform string to be included in analytics. */
7330
- platformString?: string;
7331
- /** The base URI for the analytics endpoint. */
7332
- baseUri?: string;
7333
- };
7334
- export type AnalyticsUpdateOptions = Omit<AnalyticsOptions, 'mapId' | 'key' | 'secret' | 'accessToken'> & {
7335
- /** The ID of the map to be used for analytics. */
7336
- mapId: string;
7337
- } & ({
7338
- /** The API key for authentication. */
7339
- key: string;
7340
- /** The API secret for authentication. */
7341
- secret: string;
7342
- } | {
7343
- /** The access token for authentication. */
7344
- accessToken: string;
7345
- });
7346
- export type AnalyticState = {
7347
- accessToken?: string | undefined;
7348
- version: string;
7349
- platformString: string;
7350
- baseUri: string;
7351
- analyticsBaseUrl: string;
7352
- noAuth: boolean;
7353
- geolocationMode: boolean;
7354
- mi_uuid: string;
7355
- mi_session: string;
7356
- context: ValidContext;
7357
- userPosition?: AnalyticsUserPosition;
7358
- mapId?: string;
7359
- key?: string;
7360
- secret?: string;
7361
- logEvents: boolean;
7362
- sendEvents: boolean;
7363
- };
7364
- 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'>>;
7365
7544
  type CaptureEventsPayloadMap = {
7366
7545
  '$select-location': {
7367
7546
  id: string;
@@ -7381,12 +7560,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7381
7560
  export const analyticsInternal: AnalyticsInternal;
7382
7561
  export class Analytics {
7383
7562
  #private;
7384
- constructor(internalAnalytics: AnalyticsInternal);
7385
7563
  /**
7386
- * Initializes the analytics with the provided options.
7387
- * @param args - The options to initialize the analytics.
7564
+ * @internal
7388
7565
  */
7389
- init(options: AnalyticsUpdateOptions): void;
7566
+ constructor(internalAnalytics: AnalyticsInternal);
7390
7567
  /**
7391
7568
  * Captures an analytic event with a custom target and query payload.
7392
7569
  *
@@ -7399,14 +7576,89 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
7399
7576
  * Updates the analytics state with the provided parameters.
7400
7577
  * @param update - The state parameters to update.
7401
7578
  */
7402
- updateState: (update: Partial<Pick<AnalyticState, 'logEvents' | 'sendEvents' | 'logEvents' | 'baseUri' | 'accessToken'>>) => void;
7579
+ updateState: (update: TAnalyticsUpdateState) => void;
7403
7580
  /**
7404
7581
  * Returns the current analytics state.
7405
7582
  * @internal
7406
7583
  * @returns the current analytics state
7407
7584
  */
7408
- 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;
7409
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'>;
7410
7662
  export {};
7411
7663
  }
7412
7664
 
@@ -7428,22 +7680,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object
7428
7680
  }
7429
7681
  }
7430
7682
 
7431
- declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
7432
- import type { ParsedMVF } from '@mappedin/mvf';
7433
- import type { RendererCore } from '@mappedin/core-sdk';
7434
- import type { AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
7435
- import type { TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7436
- export class FloorObject {
7437
- id: string;
7438
- name: string;
7439
- elevation: number;
7440
- containerId: string;
7441
- layers: Map<string, string>;
7442
- constructor(parentId: string, floor: ParsedMVF['map.geojson'][0], renderer: RendererCore, options: TShow3DMapOptions, mvf: ParsedMVF, styleMap?: AggregatedStyleMap);
7443
- load: () => this;
7444
- }
7445
- }
7446
-
7447
7683
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object' {
7448
7684
  export default abstract class BaseMetaData {
7449
7685
  /**
@@ -8290,8 +8526,12 @@ declare module '@mappedin/react-sdk/geojson/src/systems/dom-resize/system' {
8290
8526
  declare module '@mappedin/react-sdk/geojson/src/systems/pan-bounds/system' {
8291
8527
  import type { CameraSystem } from '@mappedin/react-sdk/geojson/src/systems/camera';
8292
8528
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8293
- export class PanBoundsSystem {
8529
+ import { PubSub } from '@packages/internal/common';
8530
+ export class PanBoundsSystem extends PubSub<{
8531
+ update: void;
8532
+ }> {
8294
8533
  dirty: boolean;
8534
+ autoMinZoomLevel: boolean;
8295
8535
  constructor(state: RendererState, cameraSystem: CameraSystem);
8296
8536
  /**
8297
8537
  * Recomputes the pan bounds based on the current 2D and 3D entities in the scene
@@ -8420,6 +8660,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system
8420
8660
  }
8421
8661
  }
8422
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
+
8423
8676
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src' {
8424
8677
  export { Navigator } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator';
8425
8678
  export type { SimplifyDirectionsOptions } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator';
@@ -8525,6 +8778,22 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
8525
8778
  }
8526
8779
  }
8527
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
+
8528
8797
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
8529
8798
  import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8530
8799
  import type { Position, EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
@@ -8780,9 +9049,9 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
8780
9049
  };
8781
9050
  'pedestal-change': {
8782
9051
  pedestal: number;
8783
- scrolledToTop: boolean;
8784
- scrolledToBottom: boolean;
8785
- scrollPercent: number;
9052
+ scrolledToTop?: boolean;
9053
+ scrolledToBottom?: boolean;
9054
+ scrollPercent?: number;
8786
9055
  };
8787
9056
  };
8788
9057
  type CameraEvents = {
@@ -8890,6 +9159,10 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
8890
9159
  * @default Infinity
8891
9160
  */
8892
9161
  setMaxZoomLevel(zoomLevel: number): void;
9162
+ /**
9163
+ * The default minimum zoom level of the camera in mercator zoom levels.
9164
+ */
9165
+ get defaultMinZoomLevel(): number;
8893
9166
  /**
8894
9167
  * How far the camera can zoom out away from the ground.
8895
9168
  *
@@ -8951,6 +9224,10 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
8951
9224
  * 0% == camera is as far down as it will go
8952
9225
  */
8953
9226
  get scrollPercent(): number;
9227
+ /**
9228
+ * Returns current field of view(FOV) in degrees
9229
+ */
9230
+ get fov(): number;
8954
9231
  /**
8955
9232
  * Returns whether the maps are scrolled to bottom
8956
9233
  */
@@ -9356,6 +9633,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/constants' {
9356
9633
  export const BLOCK_MERCATOR_ZOOM_LEVEL = 17;
9357
9634
  export const ROOM_MERCATOR_ZOOM_LEVEL = 20;
9358
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;
9359
9641
  }
9360
9642
 
9361
9643
  declare module '@mappedin/react-sdk/packages/outdoor-context-v4/ui/map' {