@mappedin/react-native-sdk 4.0.15 → 4.0.18

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.
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  // ../three
7
7
  // ../@tweenjs/tween.js
8
8
  // ../three/src/math/Color
9
+ // ../geojson
9
10
  // ../three/src/core/Object3D
10
11
  // ../three/src/math/Vector3
11
12
 
@@ -18,7 +19,7 @@ declare module '@mappedin/react-native-sdk' {
18
19
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
19
20
  export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
20
21
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
21
- export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
22
+ export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
22
23
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
23
24
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
24
25
  export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
@@ -36,7 +37,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
36
37
  import { TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
37
38
  import { STATE } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
38
39
  import { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
39
- import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
40
+ import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
40
41
  import { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
41
42
  export type TMiMapViewProps = {
42
43
  /**
@@ -52,6 +53,13 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
52
53
  * @beta
53
54
  */
54
55
  useBundle?: boolean;
56
+ loadOptions?: {
57
+ /**
58
+ * By default, the SDK will merge all geometries by material to reduce the number of draw calls to the GPU
59
+ * To rever back to using a single geometry for every polygon, pass `MAP_RENDER_MODE.MULTI_GEOMETRY`
60
+ */
61
+ mapRenderStrategy?: MAP_RENDER_MODE;
62
+ };
55
63
  };
56
64
  /**
57
65
  * Venue Data to render inside the MapView. This is returned by {@link getVenue} or {@link getVenueBundle}
@@ -120,7 +128,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
120
128
  /**
121
129
  * @category Component
122
130
  */
123
- export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "onFirstMapLoaded" | "onDataLoaded" | "venueData" | "options" | "style" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
131
+ export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "options" | "style" | "onFirstMapLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onDataLoaded" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
124
132
  }
125
133
 
126
134
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap' {
@@ -404,7 +412,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/index.rn' {
404
412
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
405
413
  export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
406
414
  export type { TGetVenueBundleOptions, TGetVenueOptions, TMappedinDirective, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
407
- export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings } from '@mappedin/react-native-sdk/core/packages/get-venue';
415
+ export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
408
416
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
409
417
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
410
418
  }
@@ -439,7 +447,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src' {
439
447
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
440
448
  export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
441
449
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
442
- export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
450
+ export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
443
451
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
444
452
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
445
453
  export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
@@ -515,7 +523,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
515
523
  import type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
516
524
  import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
517
525
  /** Classes */
518
- export { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
526
+ export { Mappedin, MappedinCollectionType } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
519
527
  export { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
520
528
  export { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
521
529
  export { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
@@ -538,6 +546,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
538
546
  /** API data types */
539
547
  export type { TLocationType, TNode, TImage, TLogo, TGalleryImage, TPhone, TSocial, TColor, TVortex, TPicture, TOpeningHours, TSiblingGroup, TState, TCategory, TEvent, TGeoReference, TMap, TMapGroup, TBuilding, TLocation, TPolygon, TPolygonRanking, TVenue, TMappedinAPI } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
540
548
  export type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
549
+ import { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
541
550
  export type TShowVenueOptions = {
542
551
  /**
543
552
  * Sets the initial background color of the map, including while loading.
@@ -549,14 +558,24 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
549
558
  */
550
559
  backgroundAlpha?: number;
551
560
  /**
552
- * Whether or not to display labels initially
561
+ * Whether or not to display default styled Floating Labels initially
553
562
  */
554
563
  labelAllLocationsOnInit?: boolean;
555
564
  /**
556
565
  * The id of the first map to show on map load
557
566
  */
558
567
  firstMapId?: string;
568
+ loadOptions?: {
569
+ /**
570
+ * Set the map render strategy in order to optimize FPS
571
+ *
572
+ * @beta
573
+ */
574
+ mapRenderStrategy?: MAP_RENDER_MODE;
575
+ };
559
576
  };
577
+ export { MAP_RENDER_MODE };
578
+ export function getVenueMVF(userOptions: TGetVenueOptions): Promise<Mappedin>;
560
579
  /**
561
580
  * Get Venue Data for a Mappedin Venue
562
581
  */
@@ -593,6 +612,23 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
593
612
  url: any;
594
613
  updated_at: any;
595
614
  }): Promise<Mappedin>;
615
+ /**
616
+ * Get the bundle URL and updated_at time.
617
+ * @internal
618
+ */
619
+ export function getVenueMVFURL(userOptions: TGetVenueBundleOptions): Promise<{
620
+ url: string;
621
+ updated_at: string;
622
+ }>;
623
+ /**
624
+ * @internal
625
+ */
626
+ export function downloadVenueBundleMVF(options: TGetVenueOptions,
627
+ /**
628
+ * use Web Workers to speed up MVF parsing. This is likely only benefitial for larger venues,
629
+ * and may be determental to smaller ones, hence it is off by default
630
+ */
631
+ useWorker?: boolean): Promise<unknown>;
596
632
  }
597
633
 
598
634
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums' {
@@ -625,30 +661,30 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
625
661
  CUSTOM_GEOLOCATION_PROVIDER_ERROR = 3
626
662
  }
627
663
  /**
628
- What we currently know about the user's position, and how confident we are.
664
+ What we currently know about the user's position and how confident we are.
629
665
  */
630
666
  export enum E_BLUEDOT_STATE {
631
667
  /**
632
- * We haven't started listening to position updates
668
+ * Not listening to Blue Dot position updates
633
669
  */
634
670
  NOT_LISTENING = 0,
635
671
  /**
636
- * We have started listening to position updates
672
+ * Listenign for listening to position updates but have not yet received a position
637
673
  */
638
674
  LISTENING = 1,
639
675
  /**
640
- * We've received relevant positions, and user is inside the venue
676
+ * Received relevant positions and user is in the venue
641
677
  */
642
678
  HAS_POSITION = 2,
643
679
  /**
644
680
  * We've received a relevant position, and we have enough information to determine
645
681
  * which floor the user is on - either because we received a floor level, the venue
646
- * only has one floor, or we're allowing implicit floor level.
682
+ * only has one floor or we're allowing implicit floor level detection.
647
683
  */
648
684
  HAS_INDOOR_POSITION = 3,
649
685
  /**
650
686
  * We are uncertain about the user's position, likely because we haven't received
651
- * a relevant position in a while
687
+ * a relevant position in a while. Blue Dot will be rendered grey to indicate uncertainty of the actual position.
652
688
  */
653
689
  LOCATION_UNCERTAIN = 4
654
690
  }
@@ -657,26 +693,29 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
657
693
  */
658
694
  export enum E_BLUEDOT_MARKER_STATE {
659
695
  /**
660
- * BlueDot is hidden
696
+ * Blue Dot is hidden
661
697
  */
662
698
  HIDDEN = 0,
663
699
  /**
664
- * BlueDot is transparent
700
+ * Blue Dot is transparent indicating the position is on a different floor
665
701
  */
666
702
  GHOST = 1,
667
703
  /**
668
- * BlueDot is visible and opaque
704
+ * Blue Dot is visible and opaque indicating accurate positioning on the current floor
669
705
  */
670
706
  NORMAL = 2,
671
707
  /**
672
- * BlueDot is grayed out
708
+ * Blue Dot is grayed out due to uncertainty about user's location, most likely due to not receiving recent position updates.
673
709
  */
674
710
  UNCERTAIN = 3
675
711
  }
676
712
  export enum STATE {
713
+ /**
714
+ * The map is in exploration mode where the user controls the camera position.
715
+ */
677
716
  EXPLORE = "explore",
678
717
  /**
679
- * FOLLOW state follows user's current location (BlueDot)
718
+ * Follows user's current location by keeping the camera centered on the Blue Dot.
680
719
  */
681
720
  FOLLOW = "follow"
682
721
  /**
@@ -692,19 +731,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
692
731
  }
693
732
  export enum E_SDK_EVENT {
694
733
  /**
695
- * Emitted when the map is clicked
734
+ * Emitted when the map is clicked or tapped on a touch screen.
696
735
  */
697
736
  CLICK = "CLICK",
698
737
  /**
699
- * Emitted when the {@link STATE | SDK state} changes
738
+ * Emitted when the {@link STATE | SDK state} changes.
700
739
  */
701
740
  STATE_CHANGE = "STATE_CHANGE",
702
741
  /**
703
- * Emitted when a polygon is clicked
742
+ * Emitted when an interactive {@link MappedinPolygon | polygon} is clicked
704
743
  */
705
744
  POLYGON_CLICKED = "POLYGON_CLICKED",
706
745
  /**
707
- * Emitted when nothing is clicked
746
+ * Emitted when nothing (outside of interactive polygons) is clicked
708
747
  */
709
748
  NOTHING_CLICKED = "NOTHING_CLICKED",
710
749
  /**
@@ -725,6 +764,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
725
764
  ROTATION_CHANGED = "ROTATION_CHANGED",
726
765
  TILT_CHANGED = "TILT_CHANGED"
727
766
  }
767
+ export { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
728
768
  }
729
769
 
730
770
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types' {
@@ -734,7 +774,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
734
774
  import { TBlueDotPositionUpdate, TBlueDotStateChange } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
735
775
  import { TOOLTIP_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
736
776
  import type { Euler, Object3D, Vector3 } from 'three';
737
- import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
777
+ import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
738
778
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance };
739
779
  /**
740
780
  An extension of the GeolocationPosition type.
@@ -943,6 +983,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
943
983
  * The rank of the object used when comparing colliders to determine which should be shown.
944
984
  */
945
985
  collisionRank?: COLLISION_RANKING_TIERS;
986
+ /**
987
+ * By default, we don't hide tooltips when they collide. This is
988
+ * so that for floor switching tooltips we don't lose where the elevator is
989
+ * This option will override that behavior
990
+ * @default true
991
+ */
992
+ alwaysVisible?: boolean;
946
993
  };
947
994
  export type TCreateTextTooltipOptions = TCreateTooltipCommonOptions & {
948
995
  /**
@@ -997,19 +1044,27 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
997
1044
  scale?: Vector3;
998
1045
  };
999
1046
  export type TMapViewOptions = {
1047
+ /**
1048
+ * Background color of the map in hex number or string e.g. `0x2e2e2e` or `#2e2e2e`.
1049
+ */
1000
1050
  backgroundColor?: number | string;
1001
1051
  /**
1002
1052
  * The opacity of the initial background color.
1003
1053
  */
1004
1054
  backgroundAlpha?: number;
1005
1055
  /**
1006
- * Controls whether antialiasing is on. Defaults to true, as long as devicePixelRatio is 1. This is very expensive on high resolution screens.
1056
+ * Controls whether antialiasing is on. Defaults to `true`, as long as devicePixelRatio is 1. This is very expensive on high resolution screens.
1007
1057
  * @default true
1008
1058
  */
1009
1059
  antialias?: boolean;
1010
1060
  disableHover?: boolean;
1011
1061
  disableZoomOnMapSizeChange?: boolean;
1012
1062
  loadOptions?: {
1063
+ /**
1064
+ * By default, the SDK will merge all geometries by material to reduce the number of draw calls to the GPU
1065
+ * To rever back to using a single geometry for every polygon, pass `MAP_RENDER_MODE.MULTI_GEOMETRY`
1066
+ */
1067
+ mapRenderStrategy?: MAP_RENDER_MODE;
1013
1068
  async?: boolean;
1014
1069
  zoomOverrides?: {
1015
1070
  zoomMultiplier?: number;
@@ -1018,7 +1073,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1018
1073
  };
1019
1074
  };
1020
1075
  /**
1021
- * What map should the SDK initialize to?
1076
+ * First map to be rendered
1022
1077
  */
1023
1078
  firstMap?: MappedinMap | string;
1024
1079
  /**
@@ -1037,6 +1092,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1037
1092
  onWebGLRendererError?: () => void;
1038
1093
  };
1039
1094
  export type TMapViewOptionsLegacy = {
1095
+ /**
1096
+ * Background color of the map in hex number or string e.g. `0x2e2e2e` or `#2e2e2e`.
1097
+ */
1040
1098
  backgroundColor?: number | string;
1041
1099
  /**
1042
1100
  * The opacity of the initial background color.
@@ -1070,7 +1128,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1070
1128
  };
1071
1129
  };
1072
1130
  /**
1073
- * What map should the SDK initialize to?
1131
+ * First map to be rendered
1074
1132
  */
1075
1133
  firstMap?: MappedinMap | string;
1076
1134
  /**
@@ -1140,21 +1198,21 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1140
1198
  */
1141
1199
  height?: number;
1142
1200
  /**
1143
- * The amount of space to leave before starting the text
1201
+ * The amount of space to leave before starting the text in pixels
1144
1202
  * @default 5
1145
1203
  */
1146
1204
  margin?: number;
1147
1205
  /**
1148
- * A optional color
1206
+ * Optional color in hexadecimal string e.g. `#2e2e2e`.
1149
1207
  */
1150
1208
  color?: string;
1151
1209
  /**
1152
- * How big to make the font. Defaults to 12
1210
+ * Size of the font in pixels.
1153
1211
  * @default 12
1154
1212
  */
1155
1213
  fontSize?: number;
1156
1214
  /**
1157
- * A CSS style string font. ie "sans-serif". You can specify your own font via @font-face rule with a font family, and then include that here.
1215
+ * A CSS style string font, e.g. "sans-serif". You can specify your own font via @font-face rule with a font family, and then include that here.
1158
1216
  */
1159
1217
  font?: string;
1160
1218
  /**
@@ -1163,7 +1221,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1163
1221
  */
1164
1222
  scaleMin?: number;
1165
1223
  /**
1166
- * How much to decrement the scale each time it doesn't fit, so we don't end up with too many different font sizes on screen at once. If * you are only labeling a few Polygons rather than everything,
1224
+ * How much to decrement the scale each time it doesn't fit, so we don't end up with too many different font sizes on screen at once. If you are only labeling a few {@link MappedinPolygon}s rather than everything,
1167
1225
  * you can set this and and scaleMin to 0.1 to fit everything except really long names perfectly.
1168
1226
  * @default 0.25
1169
1227
  */
@@ -1173,7 +1231,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1173
1231
  scale?: number;
1174
1232
  flatLabels?: false | undefined;
1175
1233
  /**
1176
- * Custom Rank - this determines how likely a Floating Label will appear
1234
+ * Ranking tier to determine how likely a {@link FloatingLabel} will appear
1177
1235
  */
1178
1236
  rank?: COLLISION_RANKING_TIERS | number;
1179
1237
  /**
@@ -1208,7 +1266,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1208
1266
  [key in string]: string;
1209
1267
  };
1210
1268
  /**
1211
- * Display label despite the polygon having an image on it
1269
+ * Display label despite the {@link MappedinPolygon} having an image on it. Often these images represent store logos.
1212
1270
  * @default false
1213
1271
  */
1214
1272
  createDespiteImage?: boolean;
@@ -1243,7 +1301,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1243
1301
  longitude: number;
1244
1302
  };
1245
1303
  /**
1246
- * A list of MappedinPolygons corresponding to every polygon that a user's
1304
+ * A list of {@link MappedinPolygon}s corresponding to every polygon that a user's
1247
1305
  * click passed through. These are in order of first to last intersected.
1248
1306
  * Will be empty if no interactive polygons were clicked.
1249
1307
  */
@@ -1347,6 +1405,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1347
1405
  EASE_IN_OUT = "ease-in-out"
1348
1406
  }
1349
1407
  export type TCameraAnimationOptions = {
1408
+ /**
1409
+ * Animation duration in milliseconds
1410
+ */
1350
1411
  duration?: number;
1351
1412
  easing?: CAMERA_EASING_MODE;
1352
1413
  };
@@ -1383,27 +1444,27 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1383
1444
  */
1384
1445
  get zoom(): number;
1385
1446
  /**
1386
- * Current Camera rotation (in radians)
1447
+ * Current Camera rotation (in radians) from north
1387
1448
  */
1388
1449
  get rotation(): number;
1389
1450
  /**
1390
- * Current Camera tilt
1451
+ * Current Camera tilt between 0 (top-down) to 1 (from the side)
1391
1452
  */
1392
1453
  get tilt(): number;
1393
1454
  /**
1394
- * Minimum distance (in meters) the camera is allowed to get to the ground.
1455
+ * Get the minimum distance (in meters) the camera is allowed to get to the ground.
1395
1456
  */
1396
1457
  get minZoom(): number;
1397
1458
  /**
1398
- * Minimum distance (in meters) the camera is allowed to get to the ground.
1459
+ * Set the minimum distance (in meters) the camera is allowed to get to the ground.
1399
1460
  */
1400
1461
  set minZoom(meters: number);
1401
1462
  /**
1402
- * Maximum distance (in meters) the camera is allowed to get to the ground.
1463
+ * Get the maximum distance (in meters) the camera is allowed to get from the ground.
1403
1464
  */
1404
1465
  get maxZoom(): number;
1405
1466
  /**
1406
- * Maximum distance (in meters) the camera is allowed to get to the ground.
1467
+ * Set the maximum distance (in meters) the camera is allowed to get from the ground.
1407
1468
  */
1408
1469
  set maxZoom(meters: number);
1409
1470
  setSafeAreaInsets(insets: {
@@ -1414,7 +1475,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1414
1475
  }): void;
1415
1476
  getSafeAreaInsets(): any;
1416
1477
  /**
1417
- * Determine a new Camera view state based on a collection of targets, and start animating to that state.
1478
+ * Focus the Camera view on a collection of targets and animate to that state.
1418
1479
  * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
1419
1480
  */
1420
1481
  focusOn(options: TFocusOnOptions): Promise<any>;
@@ -1424,7 +1485,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1424
1485
  set(positionOptions?: TAnimatePositionOptions): void;
1425
1486
  /**
1426
1487
  * Animate the Camera's view to smoothly transition to a new state over time.
1427
- * Returns a promise that resolves when the animation completes and gets rejected if the animation is cancelled.
1428
1488
  *
1429
1489
  * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
1430
1490
  */
@@ -2098,7 +2158,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2098
2158
  msgID?: string | undefined;
2099
2159
  data: {
2100
2160
  polygonId: string;
2101
- options: (import("../react-native-sdk/src").TFloatingLabelPolygonOptions | import("../react-native-sdk/src").TFlatLabelPolygonOptions) & {
2161
+ options: (import("../react-native-sdk/src").TFlatLabelPolygonOptions | import("../react-native-sdk/src").TFloatingLabelPolygonOptions) & {
2102
2162
  legacyLabels?: boolean | undefined;
2103
2163
  };
2104
2164
  };
@@ -2295,7 +2355,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface
2295
2355
  */
2296
2356
  polygons?: (MappedinPolygon | MappedinPolygon['id'])[];
2297
2357
  /**
2298
- * The duration the focus animation should last for.
2358
+ * The duration (in ms) the focus animation should last for.
2299
2359
  * @defaultValue `100`
2300
2360
  */
2301
2361
  duration?: number;
@@ -2334,6 +2394,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface
2334
2394
  * @internal
2335
2395
  */
2336
2396
  currentScale: number;
2397
+ loadOptions?: TMapViewOptions['loadOptions'];
2337
2398
  imageFlippingEnabled: boolean;
2338
2399
  imageFlippingCache: any;
2339
2400
  cachedPadding: any;
@@ -2486,38 +2547,49 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface
2486
2547
 
2487
2548
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types' {
2488
2549
  export type TGetVenueOptions = {
2489
- accessToken?: string;
2490
- clientId?: string;
2491
- clientSecret?: string;
2492
- baseUrl?: string;
2493
- includeHidden?: boolean;
2494
- noAuth?: boolean;
2495
- perspective?: string;
2496
- language?: string;
2497
- headers?: {
2498
- [key in string]: string;
2499
- };
2500
- venue: string;
2501
- things?: any;
2550
+ accessToken?: string;
2551
+ clientId?: string;
2552
+ clientSecret?: string;
2553
+ baseUrl?: string;
2554
+ includeHidden?: boolean;
2555
+ noAuth?: boolean;
2556
+ perspective?: string;
2557
+ language?: string;
2558
+ headers?: {
2559
+ [key in string]: string;
2560
+ };
2561
+ venue: string;
2562
+ things?: any;
2502
2563
  };
2503
2564
  export type TGetVenueOptionsInternal = {
2504
- baseUrl?: string;
2505
- supplementaryUrl?: string;
2506
- noAuth?: boolean;
2507
- includeHidden?: boolean;
2508
- apiGateway?: string;
2509
- authorization?: string;
2510
- /**
2511
- * @deprecated 2D support will be removed in the future
2512
- */
2513
- do2D?: boolean;
2514
- things?: any;
2515
- headers?: any;
2565
+ baseUrl?: string;
2566
+ supplementaryUrl?: string;
2567
+ noAuth?: boolean;
2568
+ includeHidden?: boolean;
2569
+ apiGateway?: string;
2570
+ authorization?: string;
2571
+ /**
2572
+ * @deprecated 2D support will be removed in the future
2573
+ */
2574
+ do2D?: boolean;
2575
+ things?: any;
2576
+ headers?: any;
2516
2577
  };
2578
+ export enum MAP_RENDER_MODE {
2579
+ /** Each polygon, its geometry and mesh are sent to the GPU every render frame.
2580
+ * This was the default rendering mode before 4.0.17
2581
+ */
2582
+ MULTI_GEOMETRY = "MULTI_GEOMETRY",
2583
+ /** Polygons' geometries are grouped by material and merged together, resulting in far fewer
2584
+ * draw calls to the GPU. Default rendering mode since 4.0.17
2585
+ */
2586
+ SINGLE_GEOMETRY = "SINGLE_GEOMETRY"
2587
+ }
2517
2588
  }
2518
2589
 
2519
2590
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2520
2591
  import { Navigator } from '@mappedin/react-native-sdk/core/packages/navigator';
2592
+ import { MVFData } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types';
2521
2593
  import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
2522
2594
  import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
2523
2595
  import { MappedinEvent } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent';
@@ -2533,7 +2605,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2533
2605
  import { MappedinVenue } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue';
2534
2606
  import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
2535
2607
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
2536
- export enum CollectionType {
2608
+ export enum MappedinCollectionType {
2537
2609
  CATEGORY = "categories",
2538
2610
  EVENT = "events",
2539
2611
  LOCATION = "locations",
@@ -2544,14 +2616,14 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2544
2616
  VORTEX = "vortexes"
2545
2617
  }
2546
2618
  type TAccessors = {
2547
- [CollectionType.CATEGORY]: MappedinCategory;
2548
- [CollectionType.EVENT]: MappedinEvent;
2549
- [CollectionType.LOCATION]: MappedinLocation;
2550
- [CollectionType.MAPGROUP]: MappedinMapGroup;
2551
- [CollectionType.MAP]: MappedinMap;
2552
- [CollectionType.NODE]: MappedinNode;
2553
- [CollectionType.POLYGON]: MappedinPolygon;
2554
- [CollectionType.VORTEX]: MappedinVortex;
2619
+ [MappedinCollectionType.CATEGORY]: MappedinCategory;
2620
+ [MappedinCollectionType.EVENT]: MappedinEvent;
2621
+ [MappedinCollectionType.LOCATION]: MappedinLocation;
2622
+ [MappedinCollectionType.MAPGROUP]: MappedinMapGroup;
2623
+ [MappedinCollectionType.MAP]: MappedinMap;
2624
+ [MappedinCollectionType.NODE]: MappedinNode;
2625
+ [MappedinCollectionType.POLYGON]: MappedinPolygon;
2626
+ [MappedinCollectionType.VORTEX]: MappedinVortex;
2555
2627
  };
2556
2628
  const THINGS: {
2557
2629
  categories: typeof MappedinCategory;
@@ -2747,6 +2819,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2747
2819
  [id: string]: MappedinRankings;
2748
2820
  };
2749
2821
  getCollectionItemById<T extends keyof TAccessors, I extends string>(name: T, id: I): TAccessors[T] | null;
2822
+ /**
2823
+ * @hidden
2824
+ * @internal
2825
+ */
2826
+ hydrateFromMVF(mvfData: MVFData): Promise<undefined>;
2750
2827
  /**
2751
2828
  *
2752
2829
  * [experimental] Hydrate the Mappedin instance using a response from either {@link IMappedin.toString()}, {@link getVenueBundle} or by downloading the bundle manually
@@ -2881,6 +2958,59 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolyg
2881
2958
  export class MappedinPolygon extends MappedinNavigatable {
2882
2959
  #private;
2883
2960
  geometry: any;
2961
+ image?: {
2962
+ visible: boolean;
2963
+ url: string | Blob;
2964
+ original: string | Blob;
2965
+ useLocalScaling: boolean;
2966
+ viewBox: {
2967
+ width: number;
2968
+ height: number;
2969
+ };
2970
+ scale: {
2971
+ x: number;
2972
+ y: number;
2973
+ };
2974
+ fitToBounds: boolean;
2975
+ position: {
2976
+ x: number;
2977
+ y: number;
2978
+ z: number;
2979
+ };
2980
+ rotation: {
2981
+ x: number;
2982
+ y: number;
2983
+ z: number;
2984
+ };
2985
+ };
2986
+ holes?: unknown[];
2987
+ textures?: {
2988
+ image: any;
2989
+ name: 'front' | 'side';
2990
+ useFrontFaceImage?: boolean;
2991
+ }[];
2992
+ material: {
2993
+ color: string;
2994
+ opacity?: number;
2995
+ };
2996
+ label?: {
2997
+ visible: boolean;
2998
+ text: string;
2999
+ align: string;
3000
+ position: {
3001
+ x: number;
3002
+ y: number;
3003
+ z: number;
3004
+ };
3005
+ rotation: {
3006
+ x: number;
3007
+ y: number;
3008
+ z: number;
3009
+ };
3010
+ fontFamily: string;
3011
+ fontSize: number;
3012
+ color: string;
3013
+ };
2884
3014
  /**
2885
3015
  * Node ID.
2886
3016
  *
@@ -3067,6 +3197,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3067
3197
  import type { TGeoReference } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
3068
3198
  import type { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
3069
3199
  import { MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCoordinate';
3200
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue';
3070
3201
  /**
3071
3202
  * A {@link MappedinMap} belonging to a specific {@link MappedinVenue}. Typically represents a certain floor. Give this to a {@link MapView} to display to the user.
3072
3203
  *
@@ -3093,6 +3224,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3093
3224
  shortName: string;
3094
3225
  elevation: number;
3095
3226
  scale?: number;
3227
+ layers: {
3228
+ visible: boolean;
3229
+ name: string;
3230
+ id: string;
3231
+ }[];
3096
3232
  x_scale?: number;
3097
3233
  perspectiveId?: string;
3098
3234
  scene: any;
@@ -3107,6 +3243,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3107
3243
  * @property polygons {[MappedinPolygon]}
3108
3244
  */
3109
3245
  get polygons(): MappedinPolygon[] | undefined;
3246
+ /**
3247
+ * Locations on this map
3248
+ */
3249
+ get locations(): MappedinLocation[];
3250
+ get nodes(): import("./MappedinNode").MappedinNode[];
3110
3251
  /**
3111
3252
  * Map Group this map belongs to.
3112
3253
  *
@@ -3144,28 +3285,56 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent
3144
3285
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3145
3286
  import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
3146
3287
  /**
3147
- * An event.
3288
+ * An event such as a promotion attached to a location in a venue for a period of time. Events can be created in the Mappedin CMS.
3148
3289
  *
3149
3290
  * @class MappedinEvent
3150
3291
  */
3151
3292
  export class MappedinEvent {
3152
3293
  #private;
3294
+ /**
3295
+ * Unique id string of the event.
3296
+ */
3153
3297
  id: string;
3154
3298
  type: string;
3299
+ /**
3300
+ * Event name
3301
+ */
3155
3302
  name: string;
3303
+ /**
3304
+ * Optional, longer description of the event.
3305
+ */
3156
3306
  description?: string | undefined;
3307
+ /**
3308
+ * Optional image to be used for displaying the event.
3309
+ */
3157
3310
  image?: TImage | undefined;
3311
+ /**
3312
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
3313
+ */
3158
3314
  startDate?: number | undefined;
3315
+ /**
3316
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
3317
+ */
3159
3318
  endDate?: number | undefined;
3319
+ /**
3320
+ * Timestamp when the event should be displayed. Javascript date in milliseconds since 1 January 1970 UTC.
3321
+ */
3160
3322
  showDate?: number | undefined;
3323
+ /**
3324
+ * @internal
3325
+ */
3161
3326
  constructor(mappedin: Mappedin, data: any);
3162
3327
  /**
3163
- * Location this Event is occuring at.
3164
- *
3165
- * @property location {MappedinLocation}
3328
+ * Location this event is occuring at.
3166
3329
  */
3167
3330
  location(): MappedinLocation | undefined;
3331
+ /**
3332
+ * @internal
3333
+ */
3168
3334
  static hydrate(events: any, mappedin: Mappedin): MappedinEvent[];
3335
+ /**
3336
+ * @internal
3337
+ */
3169
3338
  static fetch(mappedin: Mappedin): Promise<MappedinEvent[]>;
3170
3339
  toJSON(): any;
3171
3340
  }
@@ -3572,9 +3741,6 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3572
3741
  export type TMapGroup = {
3573
3742
  name: string;
3574
3743
  id: string;
3575
- maps: {
3576
- id: TMap['id'];
3577
- }[];
3578
3744
  };
3579
3745
  export type TBuilding = TLocation & {
3580
3746
  groupId: string;
@@ -3627,27 +3793,32 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3627
3793
  entranceNodeId: string;
3628
3794
  score: number;
3629
3795
  };
3630
- export type TVenue = {
3631
- address: string;
3632
- city: string;
3633
- countrycode: string;
3634
- defaultMap: string;
3635
- externalId: string;
3796
+ export type TLocationState = {
3636
3797
  id: string;
3637
- latitude: number;
3638
- logo: TLogo;
3639
- longitude: number;
3640
- metadata?: any;
3641
3798
  name: string;
3642
- operationHours: TOpeningHours[];
3643
- postal: string;
3644
- slug: string;
3645
- state: string;
3646
- telephone: string;
3647
- tzid: string;
3648
- tzidOverride: string;
3649
- utcOffset: string;
3650
- website: string;
3799
+ value: string;
3800
+ };
3801
+ export type TVenue = {
3802
+ address?: string;
3803
+ city?: string;
3804
+ countrycode?: string;
3805
+ defaultMap?: string;
3806
+ externalId?: string;
3807
+ id?: string;
3808
+ latitude?: number;
3809
+ logo?: TLogo;
3810
+ longitude?: number;
3811
+ metadata?: any;
3812
+ name?: string;
3813
+ operationHours?: TOpeningHours[];
3814
+ postal?: string;
3815
+ slug?: string;
3816
+ state?: string;
3817
+ telephone?: string;
3818
+ tzid?: string;
3819
+ tzidOverride?: string;
3820
+ utcOffset?: string;
3821
+ website?: string;
3651
3822
  };
3652
3823
  export type TMappedinAPI = {
3653
3824
  nodes: TNode[];
@@ -3659,6 +3830,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3659
3830
  themes: any;
3660
3831
  venue: TVenue;
3661
3832
  vortexes: TVortex[];
3833
+ locationStates?: TLocationState[];
3662
3834
  };
3663
3835
  }
3664
3836
 
@@ -3797,6 +3969,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3797
3969
  RIGHT = "right"
3798
3970
  }
3799
3971
  class FloatingLabel extends BaseCollider implements ISmarterLabel {
3972
+ #private;
3800
3973
  lines: number;
3801
3974
  contextConfigured: boolean;
3802
3975
  fillText: TDrawFn | undefined;
@@ -3814,7 +3987,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3814
3987
  get strategies(): TColliderStrategy[];
3815
3988
  getCachedSymbol(orientation: any, textAlign: any, xCoordinate: any): any;
3816
3989
  colliderDidMount(): void;
3817
- colliderDidUpdatePosition(x: any, y: any): void;
3990
+ colliderDidUpdatePosition(pos: any): void;
3818
3991
  setPriority(priority: any): void;
3819
3992
  colliderDidUpdateVisiblity(): void;
3820
3993
  colliderDidGoOutsideGrid(): void;
@@ -3950,19 +4123,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3950
4123
  }
3951
4124
  export type TBlueDotPositionUpdate = {
3952
4125
  /**
3953
- * What Map is Blue Dot on
4126
+ * The {@link MappedinMap} Blue Dot position is on
3954
4127
  */
3955
4128
  map?: MappedinMap;
3956
4129
  /**
3957
- * The nearest Node to the BlueDot
4130
+ * The nearest {@link MappedinNode} to the Blue Dot position
3958
4131
  */
3959
4132
  nearestNode?: MappedinNode;
3960
4133
  /**
3961
- * Actual position of BlueDot (post smoothing, if smoothing is on)
4134
+ * Actual position of Blue Dot (post smoothing, if smoothing is enabled)
3962
4135
  */
3963
4136
  position?: TGeolocationObject;
3964
4137
  /**
3965
- * Current BlueDot bearing
4138
+ * Current Blue Dot bearing
3966
4139
  */
3967
4140
  bearing?: number;
3968
4141
  };
@@ -3972,11 +4145,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3972
4145
  */
3973
4146
  name: E_BLUEDOT_STATE;
3974
4147
  /**
3975
- * Visiblity State of the BlueDot marker
4148
+ * Visiblity state of the Blue Dot marker
3976
4149
  */
3977
4150
  markerVisibility?: E_BLUEDOT_MARKER_STATE;
3978
4151
  /**
3979
- * Reason why BlueDot may be in the current state
4152
+ * Reason why Blue Dot may be in the current state
3980
4153
  */
3981
4154
  reason?: E_BLUEDOT_STATE_REASON;
3982
4155
  /**
@@ -4005,70 +4178,75 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4005
4178
  import { Vector3 } from 'three';
4006
4179
  import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4007
4180
  /**
4008
- *
4009
- * A Tooltip is an html element that attempts to orient itself around an anchor in 3D space. It will always maintain the same size on the screen, but will attempt to change its orientation based on other colliders in the scene.
4010
- *
4011
- * Make your own and add it directly to the map with {{#crossLink "MapView/createTooltip:method"}}{{/crossLink}}, or use the constructor and add it when you want.
4012
- *
4013
- * You will need to specify at least `options.position` and one of `options.html` and `options.selector` OR `options.contentHtml`.
4014
- *
4015
- *
4016
- * @class Tooltip
4017
- *
4018
- * @constructor
4019
- * @param options {Object} Passes on options (e.g. html, text, position, map, padding, defaultAnchorType, enabledAnchorTypes, collisionRank) to MapView.Tooltip's options argument.
4020
- * @param [options.html] Pass in custom html for your marker, if using this method you must also pass in a selector for your content.
4021
- * @param [options.selector] Used in conjuction with the html property to select the div for repositioning
4022
- * @param [options.contentHtml] Use mappedin's default tooltip styling with custom inner html content
4023
- * @param [options.text] Instead of passing html pass in plain text to be displayed in the tooltip
4024
- * @param [options.position] should be something you got from {{#crossLink "MapView/getPositionPolygon:method"}}{{/crossLink}} or {{#crossLink "MapView/getPositionNode:method"}}{{/crossLink}}.
4025
- * @param [options.map] The map ID where the tooltip should be displayed
4026
- * @param [options.defaultAnchorType] The default orientation to place the tooltip.
4027
- * @param [options.padding] The distance in pixel to offset the tooltip from the anchor point.
4028
- * @param [options.enabledAnchorTypes] An object used to disable certain anchor positions from being used.
4029
- * @param [options.collisionRank] The rank of the object used when comparing colliders to determine which should be shown.
4030
- */
4181
+ *
4182
+ * A Tooltip is an html element that attempts to orient itself around an anchor in 3D space. It will always maintain the same size on the screen, but will attempt to change its orientation based on other colliders in the scene.
4183
+ *
4184
+ * Make your own and add it directly to the map with {{#crossLink "MapView/createTooltip:method"}}{{/crossLink}}, or use the constructor and add it when you want.
4185
+ *
4186
+ * You will need to specify at least `options.position` and one of `options.html` and `options.selector` OR `options.contentHtml`.
4187
+ *
4188
+ *
4189
+ * @class Tooltip
4190
+ *
4191
+ * @constructor
4192
+ * @param options {Object} Passes on options (e.g. html, text, position, map, padding, defaultAnchorType, enabledAnchorTypes, collisionRank) to MapView.Tooltip's options argument.
4193
+ * @param [options.html] Pass in custom html for your marker, if using this method you must also pass in a selector for your content.
4194
+ * @param [options.selector] Used in conjuction with the html property to select the div for repositioning
4195
+ * @param [options.contentHtml] Use mappedin's default tooltip styling with custom inner html content
4196
+ * @param [options.text] Instead of passing html pass in plain text to be displayed in the tooltip
4197
+ * @param [options.position] should be something you got from {{#crossLink "MapView/getPositionPolygon:method"}}{{/crossLink}} or {{#crossLink "MapView/getPositionNode:method"}}{{/crossLink}}.
4198
+ * @param [options.map] The map ID where the tooltip should be displayed
4199
+ * @param [options.defaultAnchorType] The default orientation to place the tooltip.
4200
+ * @param [options.padding] The distance in pixel to offset the tooltip from the anchor point.
4201
+ * @param [options.enabledAnchorTypes] An object used to disable certain anchor positions from being used.
4202
+ * @param [options.collisionRank] The rank of the object used when comparing colliders to determine which should be shown.
4203
+ */
4031
4204
  export type TSmartTooltipOptions = {
4032
- html?: string;
4033
- contentHtml?: string;
4034
- text?: string;
4035
- position: Vector3;
4036
- selector?: string;
4037
- map: string;
4038
- padding?: number;
4039
- collisionRank?: COLLISION_RANKING_TIERS;
4040
- defaultAnchorType?: string;
4041
- enabledAnchorTypes?: {
4042
- [type: string]: boolean;
4043
- };
4205
+ html?: string;
4206
+ contentHtml?: string;
4207
+ text?: string;
4208
+ position: Vector3;
4209
+ selector?: string;
4210
+ map: string;
4211
+ padding?: number;
4212
+ alwaysVisible?: boolean;
4213
+ collisionRank?: COLLISION_RANKING_TIERS;
4214
+ defaultAnchorType?: string;
4215
+ enabledAnchorTypes?: {
4216
+ [type: string]: boolean;
4217
+ };
4044
4218
  };
4045
4219
  type TTooltipStyle = {
4046
- top?: string;
4047
- left?: string;
4220
+ top?: string;
4221
+ left?: string;
4048
4222
  };
4049
4223
  export type TOOLTIP_ANCHOR = {
4050
- top?: boolean;
4051
- left?: boolean;
4052
- topLeft?: boolean;
4053
- right?: boolean;
4054
- topRight?: boolean;
4055
- bottom?: boolean;
4056
- bottomLeft?: boolean;
4057
- bottomRight?: boolean;
4224
+ top?: boolean;
4225
+ left?: boolean;
4226
+ topLeft?: boolean;
4227
+ right?: boolean;
4228
+ topRight?: boolean;
4229
+ bottom?: boolean;
4230
+ bottomLeft?: boolean;
4231
+ bottomRight?: boolean;
4058
4232
  };
4059
4233
  class SmartTooltip extends HTMLCollider implements IHTMLCollider {
4060
- className: string;
4061
- _el: Element | null;
4062
- style: TTooltipStyle;
4063
- constructor(options: TSmartTooltipOptions);
4064
- updateClassName: (className: any) => void;
4065
- get strategies(): TColliderStrategy[];
4066
- colliderDidMount(): void;
4067
- setAction(action: any): void;
4068
- updateDimensions(): void;
4069
- colliderDidNotFindAHome(): void;
4070
- colliderDidGoOffscreen(): void;
4071
- colliderDidUpdateVisiblity(): void;
4234
+ #private;
4235
+ className: string;
4236
+ _el: Element | null;
4237
+ style: TTooltipStyle;
4238
+ constructor(options: TSmartTooltipOptions);
4239
+ updateClassName: (className: any) => void;
4240
+ get strategies(): TColliderStrategy[];
4241
+ colliderDidMount(): void;
4242
+ /**
4243
+ * @internal
4244
+ */
4245
+ updateDimensionsImmediately(): void;
4246
+ setAction(action: any): void;
4247
+ colliderDidNotFindAHome(): void;
4248
+ colliderDidGoOffscreen(): void;
4249
+ colliderDidUpdateVisiblity(): void;
4072
4250
  }
4073
4251
  export default SmartTooltip;
4074
4252
  }
@@ -4080,6 +4258,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot
4080
4258
  import { TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4081
4259
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
4082
4260
  import EventSystemLayer from '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem';
4261
+ /**
4262
+ * Blue Dot Layer used for controlling the Blue Dot and listening to Blue Dot state change and position update events. Use the {@link on}-method to set listeners for {@link TBlueDotStateChange} and {@link TBlueDotPositionUpdate} events.
4263
+ */
4083
4264
  class BlueDotLayer extends PubSub<E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT> {
4084
4265
  #private;
4085
4266
  /**
@@ -4091,7 +4272,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot
4091
4272
  */
4092
4273
  enable(options?: TEnableBlueDotOptions): void;
4093
4274
  /**
4094
- * Disable BlueDot
4275
+ * Disables Blue Dot and stops emitting events.
4095
4276
  */
4096
4277
  disable(): void;
4097
4278
  }
@@ -4110,7 +4291,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey
4110
4291
  */
4111
4292
  constructor(mapView: MapView, core: ICore);
4112
4293
  /**
4113
- * Draw a Journey
4294
+ * Draw a Journey based on directions. Example usage:
4295
+ *
4296
+ * ```typescript
4297
+ * const startLocation = venue.locations.find(location => location.name === "Cleo");
4298
+ * const endLocation = venue.locations.find(location => location.name === "American Eagle");
4299
+ *
4300
+ * const directions = startLocation.directionsTo(endLocation);
4301
+ * mapView.Journey.draw(directions);
4302
+ * ```
4303
+ *
4304
+ * Use options to set connection (such as elevators and escalators) HTML tooltip template, departure and destination marker templates, path style and polygon higlight color. If no options are set, sane defaults are used to draw markers, tooltips and polygon highlights.
4114
4305
  */
4115
4306
  draw(directions: MappedinDirections | MappedinDirections[], options?: TJourneyOptions): Journey;
4116
4307
  /**
@@ -4143,8 +4334,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4143
4334
  }
4144
4335
  export class FlatLabel {
4145
4336
  constructor(options: any, venue: any, mapObject: any, DEFAULT_FONT: any, polygonMeshesById: any, textLabelsByPolygonId: any, mapView: any, scope: any, atlas: any);
4337
+ id: any;
4146
4338
  text: any;
4147
4339
  stateText: string;
4340
+ fullText: any;
4148
4341
  font: any;
4149
4342
  atlas: any;
4150
4343
  canvasBounds: any;
@@ -4742,7 +4935,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4742
4935
  import Search from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search';
4743
4936
  import Analytics from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics';
4744
4937
  import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4745
- import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4938
+ import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4746
4939
  import { PositionUpdater } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4747
4940
  import type { TMapViewOptions, TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4748
4941
  import { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
@@ -4773,9 +4966,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4773
4966
  */
4774
4967
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
4775
4968
  export { COLLISION_RANKING_TIERS, STATE, E_SDK_EVENT, E_BLUEDOT_STATE_REASON, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_EVENT, E_BLUEDOT_STATE, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4776
- export { Search, getVenue, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
4969
+ export { Search, getVenue, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
4777
4970
  import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
4778
- const setAssetManager: (am: any) => void;
4971
+ const setAssetManager: <T extends DefaultAssetManager>(am: T) => void;
4779
4972
  /**
4780
4973
  * @internal
4781
4974
  */
@@ -4790,7 +4983,210 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4790
4983
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4791
4984
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4792
4985
  export type { TGetVenueOptions, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4793
- export { Mappedin, MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue';
4986
+ export { Mappedin, MappedinDirections, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
4987
+ }
4988
+
4989
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
4990
+ import { FeatureCollection, Polygon, Point, MultiPolygon } from 'geojson';
4991
+ type ManifestFile = {
4992
+ type: 'file';
4993
+ name: string;
4994
+ };
4995
+ type ManifestFolder = {
4996
+ type: 'folder';
4997
+ name: string;
4998
+ children: ManifestFile[];
4999
+ };
5000
+ type OpeningHours = {
5001
+ opens: string;
5002
+ closes: string;
5003
+ dayOfWeek: string;
5004
+ validFrom?: string;
5005
+ validThrough?: string;
5006
+ };
5007
+ type Image = {
5008
+ original?: string;
5009
+ xlarge?: string;
5010
+ xxlarge?: string;
5011
+ medium?: string;
5012
+ '140x140'?: string;
5013
+ xsmall?: string;
5014
+ xxsmall?: string;
5015
+ '66x66'?: string;
5016
+ small?: string;
5017
+ large?: string;
5018
+ };
5019
+ type PolygonImage = string;
5020
+ type Phone = {
5021
+ number: string;
5022
+ extension?: string;
5023
+ };
5024
+ type Link = {
5025
+ label: string;
5026
+ url: string;
5027
+ };
5028
+ type Social = {
5029
+ facebook?: string;
5030
+ twitter?: string;
5031
+ instagram?: string;
5032
+ website?: string;
5033
+ };
5034
+ type LocationState = {
5035
+ type: string;
5036
+ start?: string;
5037
+ end?: string;
5038
+ };
5039
+ type ImageTransform = {
5040
+ position: {
5041
+ x: number;
5042
+ y: number;
5043
+ z: number;
5044
+ };
5045
+ rotation: number;
5046
+ scale: {
5047
+ x: number;
5048
+ y: number;
5049
+ };
5050
+ };
5051
+ type SiblingGroup = {
5052
+ label: string;
5053
+ siblings: string[];
5054
+ };
5055
+ export type MILocationProperties = {
5056
+ id: string;
5057
+ address?: string | null;
5058
+ categories: string[];
5059
+ description?: string | null;
5060
+ email?: string | null;
5061
+ externalId?: string | null;
5062
+ hours?: OpeningHours[] | null;
5063
+ links?: Link[] | null;
5064
+ logo?: Image | null;
5065
+ name: string;
5066
+ phone?: Phone | null;
5067
+ picture?: Image | null;
5068
+ services?: string | null;
5069
+ siblingGroups?: SiblingGroup[] | null;
5070
+ social?: Social | null;
5071
+ spaces?: TLocationSpaceReference[] | null;
5072
+ states?: LocationState[] | null;
5073
+ type: string;
5074
+ };
5075
+ export type MICategoryProperties = {
5076
+ id: string;
5077
+ name: string;
5078
+ picture?: Image;
5079
+ };
5080
+ export type MIBuildingProperties = {
5081
+ id: string;
5082
+ name: string;
5083
+ venue: string;
5084
+ };
5085
+ export type MILevelProperties = {
5086
+ id: string;
5087
+ abbreviation?: string;
5088
+ building?: string;
5089
+ elevation?: number;
5090
+ name: string;
5091
+ };
5092
+ export type MIPolygonlikeProperties = {
5093
+ id: string;
5094
+ altitude?: string;
5095
+ color?: string;
5096
+ externalId?: string | null;
5097
+ height?: string;
5098
+ layer?: string;
5099
+ level: string;
5100
+ parent?: string | null;
5101
+ };
5102
+ type TPseudoNodeSpaceReference = {
5103
+ node: string;
5104
+ map: string;
5105
+ };
5106
+ export type TRealSpaceReference = {
5107
+ id: string;
5108
+ map: string;
5109
+ };
5110
+ type TLocationSpaceReference = TPseudoNodeSpaceReference | TRealSpaceReference;
5111
+ export type TEntrances = {
5112
+ id: string;
5113
+ level: string;
5114
+ };
5115
+ export type MISpaceProperties = MIPolygonlikeProperties & {
5116
+ entrances: TEntrances[];
5117
+ };
5118
+ export type MIObstructionProperties = MIPolygonlikeProperties;
5119
+ export type MIConnectionProperties = {
5120
+ id: string;
5121
+ accessible: boolean;
5122
+ destinations: string[];
5123
+ level: string;
5124
+ multiplier: number;
5125
+ name: string;
5126
+ type: string;
5127
+ weight: number;
5128
+ };
5129
+ export type MINodeProperties = {
5130
+ id: string;
5131
+ accessible: boolean;
5132
+ externalId: string | null;
5133
+ level: string;
5134
+ multiplier: number;
5135
+ neighbors: string[];
5136
+ weight: number;
5137
+ };
5138
+ export type MIManifestProperties = {
5139
+ name: string;
5140
+ folder_struct: (ManifestFolder | ManifestFile)[];
5141
+ version: string;
5142
+ time: string;
5143
+ };
5144
+ export type MILayerStyleProperties = {
5145
+ layer: string;
5146
+ altitude: number;
5147
+ color: string;
5148
+ height: number;
5149
+ opacity: number;
5150
+ };
5151
+ export type MIPolygonStyleProperties = {
5152
+ id: string;
5153
+ altitude: number;
5154
+ color: string;
5155
+ height: number;
5156
+ image: PolygonImage;
5157
+ imageTransform: ImageTransform;
5158
+ opacity: number;
5159
+ };
5160
+ export type MIGeoJSONManifestCollection = FeatureCollection<Point, MIManifestProperties>;
5161
+ export type MIGeoJSONBuildingCollection = FeatureCollection<Polygon, MIBuildingProperties>;
5162
+ export type MIGeoJSONConnectionCollection = FeatureCollection<Point, MIConnectionProperties>;
5163
+ export type MIGeoJSONLevelCollection = FeatureCollection<Polygon | MultiPolygon, MILevelProperties>;
5164
+ export type MIGeoJSONSpaceCollection = FeatureCollection<Polygon, MISpaceProperties>;
5165
+ export type MIGeoJSONObstructionCollection = FeatureCollection<Polygon, MIObstructionProperties>;
5166
+ export type MIGeoJSONNodeCollection = FeatureCollection<Point, MINodeProperties>;
5167
+ export type MIGeoJSONLocationCollection = FeatureCollection<null, MILocationProperties>;
5168
+ export type MIGeoJSONCategoryCollection = FeatureCollection<null, MICategoryProperties>;
5169
+ export type MIGeoJSONLayerStyleCollection = FeatureCollection<null, MILayerStyleProperties>;
5170
+ export type MIGeoJSONPolygonStyleCollection = FeatureCollection<null, MIPolygonStyleProperties>;
5171
+ export type WithIDs<T> = Map<string, T>;
5172
+ /**
5173
+ * The entire data collection for an MVF, in a single JSON collection.
5174
+ *
5175
+ */
5176
+ export type MVFData = {
5177
+ connection: WithIDs<MIGeoJSONConnectionCollection>;
5178
+ level: WithIDs<MIGeoJSONLevelCollection>;
5179
+ node: WithIDs<MIGeoJSONNodeCollection>;
5180
+ obstruction: WithIDs<MIGeoJSONObstructionCollection>;
5181
+ polygonStyle: WithIDs<MIGeoJSONPolygonStyleCollection>;
5182
+ space: WithIDs<MIGeoJSONSpaceCollection>;
5183
+ building: MIGeoJSONBuildingCollection;
5184
+ category: MIGeoJSONCategoryCollection;
5185
+ layerStyle: MIGeoJSONLayerStyleCollection;
5186
+ location: MIGeoJSONLocationCollection;
5187
+ manifest: MIGeoJSONManifestCollection;
5188
+ };
5189
+ export {};
4794
5190
  }
4795
5191
 
4796
5192
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings' {
@@ -4843,7 +5239,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme
4843
5239
  }
4844
5240
 
4845
5241
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
4846
- import { ISmartCollisionEngine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
5242
+ import SmartCollisionEngine from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
4847
5243
  import { Vector3 } from 'three';
4848
5244
  export type TRange = [number, number, number, number];
4849
5245
  type TCustomCollider<T> = ICollider & T;
@@ -4880,7 +5276,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4880
5276
  setAction: (action: EColliderAction) => void;
4881
5277
  action?: EColliderAction;
4882
5278
  position: Vector3;
4883
- __engine?: ISmartCollisionEngine;
5279
+ __engine?: SmartCollisionEngine;
4884
5280
  enable: () => void;
4885
5281
  disable: () => void;
4886
5282
  enabled: boolean;
@@ -4894,7 +5290,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4894
5290
  colliderDidGoOffscreen?: () => void;
4895
5291
  colliderDidGoOutsideGrid?: () => void;
4896
5292
  colliderDidUpdateVisiblity?: () => void;
4897
- colliderDidUpdatePosition?: (x: number, y: number) => void;
5293
+ colliderDidUpdatePosition?: (prop: [x: number, y: number]) => void;
4898
5294
  }
4899
5295
  class BaseCollider implements ICollider {
4900
5296
  __engine: any;
@@ -4924,7 +5320,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4924
5320
  removeSelf(): void;
4925
5321
  enable(): void;
4926
5322
  disable(): void;
4927
- colliderDidUpdatePosition(x: any, y: any): void;
5323
+ colliderDidUpdatePosition(pos: any): void;
4928
5324
  colliderDidNotFindAHome(): void;
4929
5325
  colliderDidMount(): void;
4930
5326
  colliderDidUpdateVisiblity(): void;
@@ -5147,6 +5543,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5147
5543
  contentEl: any;
5148
5544
  }
5149
5545
  class HTMLCollider extends BaseCollider {
5546
+ #private;
5150
5547
  contentEl: any;
5151
5548
  containerEl: any;
5152
5549
  removeSelf(): void;
@@ -5154,7 +5551,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5154
5551
  disable(): void;
5155
5552
  colliderDidGoOffscreen(): void;
5156
5553
  colliderDidNotFindAHome(): void;
5157
- colliderDidUpdatePosition(x: any, y: any): void;
5554
+ colliderDidUpdatePosition(pos: any): void;
5555
+ updateDimensions(): void;
5556
+ /**
5557
+ * @internal
5558
+ */
5559
+ updateDimensionsImmediately(): void;
5158
5560
  colliderDidMount(): void;
5159
5561
  colliderDidUpdateVisiblity(): void;
5160
5562
  }
@@ -5389,7 +5791,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5389
5791
  get strategies(): TColliderStrategy[];
5390
5792
  colliderDidMount(): void;
5391
5793
  setAction(action: any): void;
5392
- updateDimensions(): void;
5393
5794
  colliderDidGoOffscreen(): void;
5394
5795
  colliderDidUpdateVisiblity(): void;
5395
5796
  }
@@ -5426,6 +5827,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5426
5827
  _started: boolean;
5427
5828
  _loaderPromise: null;
5428
5829
  _promiseResolve: null;
5830
+ hoverableMeshChildren: any[];
5429
5831
  objectsDictionary: {};
5430
5832
  north: null;
5431
5833
  mapScale: null;
@@ -5446,6 +5848,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5446
5848
  loadAsync: any;
5447
5849
  _taskScheduler: any;
5448
5850
  id: any;
5851
+ mapRenderingStrategy: any;
5449
5852
  _highPriorityTasks: FrameTaskGroup;
5450
5853
  _lowPriorityTasks: FrameTaskGroup;
5451
5854
  _markerTasks: FrameTaskGroup;
@@ -5453,6 +5856,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5453
5856
  _visibilityLatch: boolean | null;
5454
5857
  _objLoadedComplete: boolean;
5455
5858
  _objLoaded(object: any): any;
5859
+ _objLoadedMerged(object: any): void;
5456
5860
  enableImageFlipping(polygonId: any, rotation: any): void;
5457
5861
  elements: any;
5458
5862
  boundingBox: {
@@ -5611,39 +6015,67 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5611
6015
  }
5612
6016
 
5613
6017
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager' {
5614
- import { TextureLoader } from 'three';
6018
+ import { Texture, TextureLoader } from 'three';
5615
6019
  import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer';
5616
6020
  export default class DefaultAssetManager {
5617
6021
  textureLoader: TextureLoader;
5618
6022
  loadMapPolygons(map: MappedinMap): Promise<any>;
5619
- loadImage(url: string): Promise<unknown>;
6023
+ loadImage(url: string): Promise<Texture>;
5620
6024
  }
5621
6025
  }
5622
6026
 
5623
6027
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine' {
5624
6028
  import { Vector3 } from 'three';
5625
6029
  import './Mappedin.SmartCollisionEngine.scss';
5626
- import { ICollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
6030
+ import { ICollider, TRange } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
6031
+ import { MappedinMap, MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
5627
6032
  export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
5628
- type TProjectFn = ({ position, mapId }: {
5629
- position: Vector3;
5630
- mapId: string;
5631
- }) => [number, number];
5632
- export interface ISmartCollisionEngine {
5633
- add: (colliderId: string, collider: ICollider) => void;
5634
- remove: (colliderId: string) => void;
5635
- init: (container: HTMLElement, projectFn: TProjectFn) => void;
5636
- resize: (container: HTMLElement) => void;
5637
- resort: () => void;
5638
- updatePosition: () => void;
5639
- updateVisibility: () => void;
5640
- makeCollidersDirty: () => void;
5641
- update: () => void;
5642
- destroy: () => void;
5643
- makeCollidersDirtyThrottled: (time: number) => void;
5644
- _makeCollidersDirtyThrottled?: [() => void, number];
6033
+ class SmartCollisionEngine {
6034
+ #private;
6035
+ _makeCollidersDirtyThrottled: any;
6036
+ colliderCanvas: HTMLCanvasElement;
6037
+ debugCanvas: HTMLCanvasElement;
6038
+ colliderCanvasContext: CanvasRenderingContext2D;
6039
+ debugCanvasContext: CanvasRenderingContext2D;
6040
+ collisionEngineContainerEl: HTMLDivElement;
6041
+ stepsX: any;
6042
+ stepsY: any;
6043
+ totalWidth: any;
6044
+ totalHeight: any;
6045
+ project: any;
6046
+ grid: Uint8Array;
6047
+ colliders: Map<string, ICollider>;
6048
+ offscreenRanges: TRange[];
6049
+ get sortedColliders(): ICollider[];
6050
+ initialized: boolean;
6051
+ mapView: MapView;
6052
+ constructor(mapView: any);
6053
+ init: (container: HTMLDivElement, projectFn: ({ position, mapId }: {
6054
+ position: Vector3;
6055
+ mapId: MappedinMap['id'];
6056
+ }) => {
6057
+ x: number;
6058
+ y: number;
6059
+ }) => void;
6060
+ updatePosition: () => void;
6061
+ updateVisibility: () => void;
6062
+ add: (colliderId: string, collider: ICollider) => void;
6063
+ remove: (colliderId: string) => void;
6064
+ /**
6065
+ * When adding/removing new colliders, or when updating their priorty, we need to make all colliders around them as "dirty",
6066
+ * so they can be reconcilded correctly
6067
+ */
6068
+ makeCollidersDirty: () => void;
6069
+ /**
6070
+ * Allow to throttle making collders dirty. This is useful for things like BlueDot follow mode,
6071
+ * As we follow the BlueDot, colliders will overlap, but constantly updating their visiblity makes
6072
+ * for a bad experience
6073
+ */
6074
+ makeCollidersDirtyThrottled: (time: any) => void;
6075
+ resize: (container: any) => void;
6076
+ update: () => void;
6077
+ destroy: () => void;
5645
6078
  }
5646
- const SmartCollisionEngine: () => ISmartCollisionEngine;
5647
6079
  export default SmartCollisionEngine;
5648
6080
  }
5649
6081