@mappedin/react-native-sdk 4.0.4-alpha.18 → 4.0.5

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.
Files changed (4) hide show
  1. package/README.md +4 -13
  2. package/dist/index.d.ts +1495 -1336
  3. package/dist/index.js +190 -190
  4. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -4,8 +4,8 @@
4
4
  // ../react-native-webview
5
5
  // ../react-native-webview/lib/WebViewTypes
6
6
  // ../three
7
- // ../three/src/math/Color
8
7
  // ../@tweenjs/tween.js
8
+ // ../three/src/math/Color
9
9
  // ../three/src/core/Object3D
10
10
  // ../three/src/math/Vector3
11
11
 
@@ -18,10 +18,10 @@ declare module '@mappedin/react-native-sdk' {
18
18
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
19
19
  export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
20
20
  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_MARKER_STATE, E_BLUEDOT_STATE_REASON } 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
22
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
23
23
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
24
- export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
24
+ 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';
25
25
  export type { TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptionsBase };
26
26
  export type TEnableBlueDotOptions = Omit<TEnableBlueDotOptionsBase, 'positionUpdater' | 'geolocationSource'>;
27
27
  export type TLabelAllLocationCommonOptions = Omit<TLabelAllLocationCommonOptionsBase, 'sortFunction' | 'translationMap'>;
@@ -31,11 +31,11 @@ declare module '@mappedin/react-native-sdk' {
31
31
  }
32
32
 
33
33
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView' {
34
- import React from "react";
35
- import { TMiMapViewOptions } from "@mappedin/react-native-sdk/wrappers/common";
36
- import { STATE } from "@mappedin/react-native-sdk/wrappers/react-native-sdk/src";
37
- import { MapViewStore } from "@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store";
38
- import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin } from "@mappedin/react-native-sdk/core/packages/renderer/index.rn";
34
+ import React from 'react';
35
+ import { TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
36
+ import { STATE } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
37
+ import { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
38
+ import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
39
39
  export type TMiMapViewProps = {
40
40
  /**
41
41
  * The MapViewStore instance will be returned here
@@ -102,7 +102,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
102
102
  /**
103
103
  * @category Component
104
104
  */
105
- export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "style" | "onFirstMapLoaded" | "onDataLoaded" | "venueData" | "options" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onNothingClicked" | "onMapChanged" | "onStateChanged"> & React.RefAttributes<MapViewStore>>>;
105
+ export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "options" | "onFirstMapLoaded" | "onDataLoaded" | "style" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onNothingClicked" | "onMapChanged" | "onStateChanged"> & React.RefAttributes<MapViewStore>>>;
106
106
  }
107
107
 
108
108
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap' {
@@ -141,12 +141,16 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniM
141
141
 
142
142
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store' {
143
143
  import { MappedinController } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MappedinController';
144
- import { TSerializableJourneyOptions } from '@mappedin/react-native-sdk/wrappers/common';
145
- import type { TGeolocationObject, TEnableBlueDotOptions, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFocusOnOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
146
- import { STATE, Mappedin, MappedinNode, MappedinMap, MappedinLocation, MappedinDirections, MappedinPolygon, TGetVenueOptions, TShowVenueOptions, MappedinCoordinate, MappedinDestinationSet, E_BLUEDOT_STATE, TCreateMarkerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
144
+ import { TReactNativeFlatLabelAllLocations, TReactNativeFlatLabelAllLocationsLegacy, TReactNativeFlatLabelPolygonOptions, TReactNativeFloatingLabelPolygonOptions, TSerializableJourneyOptions } from '@mappedin/react-native-sdk/wrappers/common';
145
+ import type { TGeolocationObject, TEnableBlueDotOptions, TPathOptions, TFocusOnOptions, TAnimatePositionOptions, TLabelAllLocationFloatingLabelOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
146
+ import { STATE, Mappedin, MappedinNode, MappedinMap, MappedinLocation, MappedinDirections, MappedinPolygon, TGetVenueOptions, TShowVenueOptions, MappedinCoordinate, MappedinDestinationSet, TCreateMarkerOptions, E_BLUEDOT_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
147
+ import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
147
148
  export class MapViewStore extends MappedinController {
148
149
  #private;
149
150
  state: STATE;
151
+ /**
152
+ * @deprecated Use BlueDot Events instead
153
+ */
150
154
  BlueDotState: E_BLUEDOT_STATE;
151
155
  /**
152
156
  * @hidden
@@ -191,6 +195,10 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
191
195
  * Set Polygon Color
192
196
  */
193
197
  setPolygonColor(polygonIdOrPolygon: MappedinPolygon['id'] | MappedinPolygon, color: string, opacity?: number, textColor?: string): Promise<unknown>;
198
+ /**
199
+ * Clear Polygon Color
200
+ */
201
+ clearPolygonColor(polygonOrPolygonId: MappedinPolygon['id'] | MappedinPolygon): Promise<unknown>;
194
202
  /**
195
203
  * Clear all polygon colors
196
204
  */
@@ -207,15 +215,6 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
207
215
  * Remove all paths
208
216
  */
209
217
  removeAllPaths(): Promise<unknown>;
210
- /**
211
- * Padding - this is so that the map can be positioned on a portion of the screen
212
- */
213
- setSafeArea(padding: {
214
- top: number;
215
- bottom: number;
216
- left: number;
217
- right: number;
218
- }): void;
219
218
  /**
220
219
  * Change Map/Level
221
220
  */
@@ -224,36 +223,92 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
224
223
  * Gets the nearest node by screen coordinate
225
224
  */
226
225
  getNearestNodeByScreenCoordinates(x: number, y: number, mapIdOrMap?: MappedinMap['id'] | MappedinMap): Promise<MappedinNode | null | undefined>;
226
+ labelAllLocations(options?: TLabelAllLocationFloatingLabelOptions): Promise<unknown>;
227
+ labelAllLocations(options?: TReactNativeFlatLabelAllLocations | TReactNativeFlatLabelAllLocationsLegacy): Promise<unknown>;
228
+ labelPolygon(polygonOrPolygonId: MappedinPolygon | MappedinPolygon['id'], options: TReactNativeFloatingLabelPolygonOptions): Promise<unknown>;
229
+ labelPolygon(polygonOrPolygonId: MappedinPolygon | MappedinPolygon['id'], options: TReactNativeFlatLabelPolygonOptions): Promise<unknown>;
230
+ /**
231
+ * @param focusOptions You should provide at least one Node or Polygon, but everything else is optional.
232
+ * @deprecated Use Camera.focusOn instead
233
+ */
234
+ focusOn(focusOptions: TFocusOptionsLegacy): Promise<unknown>;
227
235
  /**
228
- * Label all polygons with locations either loaded via the API or passed in
236
+ * Padding - this is so that the map can be positioned on a portion of the screen
237
+ * @deprecated Use Camera.setSafeAreaInsets instead
229
238
  */
230
- labelAllLocations(options?: TLabelAllLocationFlatLabelOptions | TLabelAllLocationFloatingLabelOptions): Promise<unknown>;
231
- labelPolygon(polygonOrPolygonId: MappedinPolygon | MappedinPolygon['id'], options: TFlatLabelPolygonOptions | TFloatingLabelPolygonOptions): Promise<unknown>;
239
+ setSafeArea(padding: {
240
+ top: number;
241
+ bottom: number;
242
+ left: number;
243
+ right: number;
244
+ }): void;
232
245
  /**
233
- Camera controls interface
234
- */
246
+ V3 Camera controls interface
247
+ */
235
248
  CameraControls: {
236
249
  /**
237
250
  * The current tilt in radians from top-down view.
251
+ * @deprecated Use CameraControls.tilt instead
238
252
  */
239
253
  tilt: number;
240
254
  /**
241
255
  * @param tilt The new value to set the tilt to, in radians from top-down view.
256
+ * @deprecated Use CameraControls.setTilt instead
242
257
  */
243
258
  setTilt: (tilt: number) => Promise<undefined>;
244
259
  /**
245
260
  * The current rotation in degrees from north.
261
+ * @deprecated Use CameraControls.rotation instead
246
262
  */
247
263
  rotation: number;
248
264
  /**
249
265
  * @param rotation The new value to set the rotation to, in degrees from north..
266
+ * @deprecated Use CameraControls.setRotation instead
250
267
  */
251
268
  setRotation: (rotation: number) => Promise<undefined>;
269
+ };
270
+ /**
271
+ Camera controls interface
272
+ */
273
+ Camera: {
274
+ /**
275
+ * The current tilt in radians from top-down view.
276
+ */
277
+ tilt: number;
278
+ /**
279
+ * Set Camera options immediately
280
+ */
281
+ set: (positionOptions?: TAnimatePositionOptions | undefined) => Promise<unknown>;
282
+ /**
283
+ * The current rotation in degrees from north.
284
+ */
285
+ rotation: number;
252
286
  /**
253
287
  * @param focusOptions You should provide at least one Node or Polygon, but everything else is optional.
254
288
  */
255
- focusOn(focusOptions: TFocusOnOptions): Promise<unknown>;
289
+ focusOn(focusOptions: TFocusOnOptions & {
290
+ animationOptions?: TAnimatePositionOptions;
291
+ }): Promise<unknown>;
292
+ /**
293
+ * This is so that the map can be positioned on a portion of the screen, (example padding)
294
+ */
295
+ setSafeAreaInsets: (safeAreaInsets: {
296
+ top: number;
297
+ bottom: number;
298
+ left: number;
299
+ right: number;
300
+ }) => void;
256
301
  };
302
+ /**
303
+ * Visualize directions by drawing paths, and adding connection markers
304
+ * @deprecated Use {@link MapViewStore.Journey}'s draw method instead
305
+ */
306
+ drawJourney(directions: MappedinDirections | MappedinDirections[], options?: TSerializableJourneyOptions): Promise<unknown>;
307
+ /**
308
+ * Remove any paths and markers associated with journey
309
+ * @deprecated Use mapView.Journey.clear instead
310
+ */
311
+ clearJourney(): Promise<unknown>;
257
312
  /**
258
313
  * Journey management interface
259
314
  */
@@ -313,7 +368,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/index.rn' {
313
368
  import { getVenue, getVenueBundle, Mappedin, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/get-venue';
314
369
  export * from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
315
370
  export { getVenue, getVenueBundle, MappedinDestinationSet, Mappedin };
316
- export { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, E_BLUEDOT_STATE_REASON, E_BLUEDOT_STATE, E_MARKER_STATE, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
371
+ export { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, E_BLUEDOT_STATE_REASON, E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
317
372
  export { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
318
373
  export type { TBlueDotPositionUpdate, TBlueDotStateChange, TJourneyOptions, TMapViewOptions, TCreateMarkerOptions, TGeolocationObject, TPathOptions, TCommonLabelOptions, TFlatLabelOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationCommonOptions, TLabelAllLocationFloatingLabelOptions, TLabelAllLocationFlatLabelOptions, TEnableBlueDotOptions, TFloatingLabelAppearance, TFlatLabelAppearance } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
319
374
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
@@ -340,10 +395,10 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src' {
340
395
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
341
396
  export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
342
397
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
343
- export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_MARKER_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
398
+ 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';
344
399
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
345
400
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
346
- export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
401
+ 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';
347
402
  export type { TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptionsBase };
348
403
  export type TEnableBlueDotOptions = Omit<TEnableBlueDotOptionsBase, 'positionUpdater' | 'geolocationSource'>;
349
404
  export type TLabelAllLocationCommonOptions = Omit<TLabelAllLocationCommonOptionsBase, 'sortFunction' | 'translationMap'>;
@@ -391,6 +446,21 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/Mappedi
391
446
  }
392
447
  }
393
448
 
449
+ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types' {
450
+ import { MappedinNode, MappedinPolygon } from "@mappedin/react-native-sdk/wrappers/react-native-sdk/src";
451
+ import { TFocusOptionsLegacy } from "@mappedin/react-native-sdk/core/packages/renderer/Core.interface";
452
+ export type TPolygonColorOptions = {
453
+ color: string;
454
+ opacity?: number;
455
+ textColor?: string;
456
+ };
457
+ export type { TFocusOptionsLegacy };
458
+ export type TFocusOptionsLegacySerializable = Omit<TFocusOptionsLegacy, 'nodes' | 'polygons'> & {
459
+ nodes: (MappedinNode | MappedinNode['id'])[];
460
+ polygons: (MappedinPolygon['id'] | MappedinPolygon)[];
461
+ };
462
+ }
463
+
394
464
  declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
395
465
  import type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
396
466
  import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
@@ -445,9 +515,10 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
445
515
  bundleBaseUri?: string;
446
516
  version?: string;
447
517
  /**
448
- * Use bundled images and assets to show MapView. This is unnecessary and should be false in React Native
518
+ * Parse bundle and convert images to blobs. Disabled in React Native
519
+ * @private
449
520
  */
450
- useBundleAssets?: boolean;
521
+ shouldPopulateBundledImagesAsBlobs?: boolean;
451
522
  };
452
523
  /**
453
524
  * [experimental] Fetching an offline Venue bundle
@@ -518,7 +589,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
518
589
  /**
519
590
  * Visual States of the BlueDot
520
591
  */
521
- export enum E_MARKER_STATE {
592
+ export enum E_BLUEDOT_MARKER_STATE {
522
593
  /**
523
594
  * BlueDot is hidden
524
595
  */
@@ -555,7 +626,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
555
626
  }
556
627
  export enum E_SDK_EVENT {
557
628
  /**
558
- * Emitted when the SDK state changes
629
+ * Emitted when the {@link STATE | SDK state} changes
559
630
  */
560
631
  STATE_CHANGE = "STATE_CHANGE",
561
632
  /**
@@ -578,7 +649,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
578
649
  export enum E_CAMERA_EVENT {
579
650
  USER_INTERACTION_START = "USER_INTERACTION_START",
580
651
  USER_INTERACTION_END = "USER_INTERACTION_END",
581
- POSITON_CHANGED = "POSITON_CHANGED",
652
+ POSITION_CHANGED = "POSITION_CHANGED",
582
653
  ZOOM_CHANGED = "ZOOM_CHANGED",
583
654
  ROTATION_CHANGED = "ROTATION_CHANGED",
584
655
  TILT_CHANGED = "TILT_CHANGED"
@@ -633,18 +704,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
633
704
  pulsePauseDuration?: number;
634
705
  /**
635
706
  * (Deprecated) alias for `nearRadius`ty
636
- * @defaultValue 20
707
+ * @defaultValue 1.8
637
708
  * @deprecated
638
709
  */
639
710
  radius?: number;
640
711
  /**
641
- * Radius of path at nearest zoom
642
- * @defaultValue 20
712
+ * Radius of path at nearest zoom, in metres
713
+ * @defaultValue 1.8
643
714
  */
644
715
  nearRadius?: number;
645
716
  /**
646
- * Radius of path at furthest zoom
647
- * @defaultValue 20
717
+ * Radius of path at furthest zoom, in metres
718
+ * @defaultValue 2.3 times nearRadius
648
719
  */
649
720
  farRadius?: number;
650
721
  /**
@@ -960,7 +1031,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
960
1031
  */
961
1032
  shortText?: string;
962
1033
  /**
963
- * If Polygon is not set, this will let you add a TextLabel to another Map. Otherwise, it will use the {@link IMapView3D.currentMap}
1034
+ * If Polygon is not set, this will let you add a TextLabel to another Map. Otherwise, it will use the {@link currentMap}
964
1035
  */
965
1036
  map?: MappedinMap | string;
966
1037
  };
@@ -1060,7 +1131,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1060
1131
  */
1061
1132
  locations?: MappedinLocation[];
1062
1133
  /**
1063
- * Custom Translation Map for {@link MappedinLocationState}
1134
+ * Custom Translation Map for {@link MappedinLocation.MappedinLocationState}
1064
1135
  */
1065
1136
  translationMap?: {
1066
1137
  [key in string]: string;
@@ -1110,7 +1181,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1110
1181
  export type CAMERA_EVENT_PAYLOAD = {
1111
1182
  [E_CAMERA_EVENT.USER_INTERACTION_START]: void;
1112
1183
  [E_CAMERA_EVENT.USER_INTERACTION_END]: void;
1113
- [E_CAMERA_EVENT.POSITON_CHANGED]: {
1184
+ [E_CAMERA_EVENT.POSITION_CHANGED]: {
1114
1185
  x: number;
1115
1186
  y: number;
1116
1187
  };
@@ -1165,10 +1236,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1165
1236
  safeAreaInsets?: TSafeAreaInsets;
1166
1237
  };
1167
1238
  export type TAnimatePositionOptions = {
1168
- position?: {
1169
- x: number;
1170
- y: number;
1171
- };
1172
1239
  zoom?: number;
1173
1240
  tilt?: number;
1174
1241
  rotation?: number;
@@ -1217,13 +1284,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1217
1284
  * The current camera animation, if any. Resolves when the animation finishes.
1218
1285
  */
1219
1286
  get currentAnimation(): Promise<undefined> | undefined;
1220
- /**
1221
- * Current Camera Position (in Mappedin Units)
1222
- */
1223
- get position(): {
1224
- x: number;
1225
- y: number;
1226
- };
1227
1287
  /**
1228
1288
  * Current Camera zoom (in meters)
1229
1289
  */
@@ -1245,11 +1305,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1245
1305
  */
1246
1306
  set minZoom(meters: number);
1247
1307
  /**
1248
- * Maxiumum distance (in meters) the camera is allowed to get to the ground.
1308
+ * Maximum distance (in meters) the camera is allowed to get to the ground.
1249
1309
  */
1250
1310
  get maxZoom(): number;
1251
1311
  /**
1252
- * Maxiumum distance (in meters) the camera is allowed to get to the ground.
1312
+ * Maximum distance (in meters) the camera is allowed to get to the ground.
1253
1313
  */
1254
1314
  set maxZoom(meters: number);
1255
1315
  setSafeAreaInsets(insets: {
@@ -1267,9 +1327,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1267
1327
  /**
1268
1328
  * Set the Camera's view to a new state.
1269
1329
  */
1270
- set(options: {
1271
- positionOptions?: TAnimatePositionOptions;
1272
- }): void;
1330
+ set(positionOptions?: TAnimatePositionOptions): void;
1273
1331
  /**
1274
1332
  * Animate the Camera's view to smoothly transition to a new state over time.
1275
1333
  * Returns a promise that resolves when the animation completes and gets rejected if the animation is cancelled.
@@ -1290,84 +1348,93 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1290
1348
 
1291
1349
  declare module '@mappedin/react-native-sdk/wrappers/common/events' {
1292
1350
  export enum EVENT {
1293
- READY = "READY",
1294
- LOAD_VENUE = "LOAD_VENUE",
1295
- SHOW_VENUE = "SHOW_VENUE",
1296
- POLYGON_CLICKED = "POLYGON_CLICKED",
1297
- SET_MAP = "SET_MAP",
1298
- MAP_CHANGED = "MAP_CHANGED",
1299
- ROTATION_CHANGED = "ROTATION_CHANGED",
1300
- TILT_CHANGED = "TILT_CHANGED",
1301
- SET_ROTATION = "SET_ROTATION",
1302
- SET_TILT = "SET_TILT",
1303
- UPDATE_GEOLOCATION = "UPDATE_GEOLOCATION",
1304
- FOCUS_ON = "FOCUS_ON",
1305
- SET_POLYGON_COLOR = "SET_POLYGON_COLOR",
1306
- SET_BACKGROUND_COLOR = "SET_BACKGROUND_COLOR",
1307
- CLEAR_POLYGON_COLOR = "CLEAR_POLYGON_COLOR",
1308
- CLEAR_ALL_POLYGON_COLORS = "CLEAR_ALL_POLYGON_COLORS",
1309
- ADD_INTERACTIVE_POLYGON = "ADD_INTERACTIVE_POLYGON",
1310
- REMOVE_INTERACTIVE_POLYGONS = "REMOVE_INTERACTIVE_POLYGONS",
1311
- SET_SAFE_AREA = "SET_SAFE_AREA",
1312
- LABEL_ALL_LOCATIONS = "LABEL_ALL_LOCATIONS",
1313
- REMOVE_ALL_LABELS = "REMOVE_ALL_LABELS",
1314
- LABEL_POLYGON = "LABEL_POLYGON",
1315
- ENABLE_BLUE_DOT = "ENABLE_BLUE_DOT",
1316
- DISABLE_BLUE_DOT = "DISABLE_BLUE_DOT",
1317
- ENABLE_BEARING = "ENABLE_BEARING",
1318
- GET_NEAREST_NODE = "GET_NEAREST_NODE",
1319
- GET_BLUE_DOT_IS_FOLLOWING = "GET_BLUE_DOT_IS_FOLLOWING",
1320
- SET_BLUE_DOT_IS_FOLLOWING = "SET_BLUE_DOT_IS_FOLLOWING",
1321
- GET_DIRECTIONS = "GET_DIRECTIONS",
1322
- DESTROY = "DESTROY",
1323
- DATA_LOADED = "DATA_LOADED",
1324
- FIRST_MAP_LOADED = "FIRST_MAP_LOADED",
1325
- CREATE_MARKER = "CREATE_MARKER",
1326
- REMOVE_MARKER = "REMOVE_MARKER",
1327
- OVERRIDE_LOCATION = "OVERRIDE_LOCATION",
1328
- /**
1329
- * @deprecated
1330
- */
1331
- BLUE_DOT_UPDATED = "BLUE_DOT_UPDATED",
1332
- SET_JOURNEY_STEP = "SET_JOURNEY_STEP",
1333
- BLUEDOT_STATE_CHANGE = "BLUEDOT_STATE_CHANGE",
1334
- BLUEDOT_POSITION_UPDATE = "BLUEDOT_POSITION_UPDATE",
1335
- DRAW_PATH = "DRAW_PATH",
1336
- REMOVE_ALL_PATHS = "REMOVE_ALL_PATHS",
1337
- NOTHING_CLICKED = "NOTHING_CLICKED",
1338
- SET_STATE = "SET_STATE",
1339
- STATE_CHANGED = "STATE_CHANGED",
1340
- DRAW_JOURNEY = "DRAW_JOURNEY",
1341
- CLEAR_JOURNEY = "CLEAR_JOURNEY",
1342
- SET_COOKIE = "SET_COOKIE",
1343
- GET_NEAREST_NODE_BY_SCREEN_COORDINATES = "GET_NEAREST_NODE_BY_SCREEN_COORDINATES"
1351
+ READY = "READY",
1352
+ LOAD_VENUE = "LOAD_VENUE",
1353
+ SHOW_VENUE = "SHOW_VENUE",
1354
+ POLYGON_CLICKED = "POLYGON_CLICKED",
1355
+ SET_MAP = "SET_MAP",
1356
+ MAP_CHANGED = "MAP_CHANGED",
1357
+ ROTATION_CHANGED = "ROTATION_CHANGED",
1358
+ TILT_CHANGED = "TILT_CHANGED",
1359
+ CAMERA_SET = "CAMERA_SET",
1360
+ /**
1361
+ * @deprecated
1362
+ */
1363
+ SET_ROTATION = "SET_ROTATION",
1364
+ /**
1365
+ * @deprecated
1366
+ */
1367
+ SET_TILT = "SET_TILT",
1368
+ /**
1369
+ * @deprecated
1370
+ */
1371
+ FOCUS_ON_LEGACY = "FOCUS_ON_LEGACY",
1372
+ SET_MIN_ZOOM = "SET_MIN_ZOOM",
1373
+ SET_MAX_ZOOM = "SET_MAX_ZOOM",
1374
+ UPDATE_GEOLOCATION = "UPDATE_GEOLOCATION",
1375
+ FOCUS_ON = "FOCUS_ON",
1376
+ SET_POLYGON_COLOR = "SET_POLYGON_COLOR",
1377
+ SET_BACKGROUND_COLOR = "SET_BACKGROUND_COLOR",
1378
+ CLEAR_POLYGON_COLOR = "CLEAR_POLYGON_COLOR",
1379
+ CLEAR_ALL_POLYGON_COLORS = "CLEAR_ALL_POLYGON_COLORS",
1380
+ ADD_INTERACTIVE_POLYGON = "ADD_INTERACTIVE_POLYGON",
1381
+ REMOVE_INTERACTIVE_POLYGONS = "REMOVE_INTERACTIVE_POLYGONS",
1382
+ CAMERA_SET_SAFE_AREA_INSETS = "CAMERA_SET_SAFE_AREA_INSETS",
1383
+ LABEL_ALL_LOCATIONS = "LABEL_ALL_LOCATIONS",
1384
+ REMOVE_ALL_LABELS = "REMOVE_ALL_LABELS",
1385
+ LABEL_POLYGON = "LABEL_POLYGON",
1386
+ ENABLE_BLUE_DOT = "ENABLE_BLUE_DOT",
1387
+ DISABLE_BLUE_DOT = "DISABLE_BLUE_DOT",
1388
+ ENABLE_BEARING = "ENABLE_BEARING",
1389
+ GET_NEAREST_NODE = "GET_NEAREST_NODE",
1390
+ GET_BLUE_DOT_IS_FOLLOWING = "GET_BLUE_DOT_IS_FOLLOWING",
1391
+ SET_BLUE_DOT_IS_FOLLOWING = "SET_BLUE_DOT_IS_FOLLOWING",
1392
+ GET_DIRECTIONS = "GET_DIRECTIONS",
1393
+ DESTROY = "DESTROY",
1394
+ DATA_LOADED = "DATA_LOADED",
1395
+ FIRST_MAP_LOADED = "FIRST_MAP_LOADED",
1396
+ CREATE_MARKER = "CREATE_MARKER",
1397
+ REMOVE_MARKER = "REMOVE_MARKER",
1398
+ OVERRIDE_LOCATION = "OVERRIDE_LOCATION",
1399
+ SET_JOURNEY_STEP = "SET_JOURNEY_STEP",
1400
+ BLUEDOT_STATE_CHANGE = "BLUEDOT_STATE_CHANGE",
1401
+ BLUEDOT_POSITION_UPDATE = "BLUEDOT_POSITION_UPDATE",
1402
+ DRAW_PATH = "DRAW_PATH",
1403
+ REMOVE_ALL_PATHS = "REMOVE_ALL_PATHS",
1404
+ NOTHING_CLICKED = "NOTHING_CLICKED",
1405
+ SET_STATE = "SET_STATE",
1406
+ STATE_CHANGED = "STATE_CHANGED",
1407
+ DRAW_JOURNEY = "DRAW_JOURNEY",
1408
+ CLEAR_JOURNEY = "CLEAR_JOURNEY",
1409
+ SET_COOKIE = "SET_COOKIE",
1410
+ GET_NEAREST_NODE_BY_SCREEN_COORDINATES = "GET_NEAREST_NODE_BY_SCREEN_COORDINATES"
1344
1411
  }
1345
1412
  export enum WAYFINDING_EVENT {
1346
- GET_MAPS_IN_NAVIGATION = "GET_MAPS_IN_NAVIGATION",
1347
- SHOW_JOURNEY = "SHOW_JOURNEY",
1348
- START_NAVIGATION = "START_NAVIGATION",
1349
- STOP_NAVIGATION = "STOP_NAVIGATION",
1350
- SEEK = "SEEK",
1351
- GET_MODE = "GET_MODE",
1352
- EXIT_NAVIGATION = "EXIT_NAVIGATION"
1413
+ GET_MAPS_IN_NAVIGATION = "GET_MAPS_IN_NAVIGATION",
1414
+ SHOW_JOURNEY = "SHOW_JOURNEY",
1415
+ START_NAVIGATION = "START_NAVIGATION",
1416
+ STOP_NAVIGATION = "STOP_NAVIGATION",
1417
+ SEEK = "SEEK",
1418
+ GET_MODE = "GET_MODE",
1419
+ EXIT_NAVIGATION = "EXIT_NAVIGATION"
1353
1420
  }
1354
1421
  export enum BRIDGE_EVENT {
1355
- READY = "READY",
1356
- RESOLVE = "RESOLVE",
1357
- REJECT = "REJECT"
1422
+ READY = "READY",
1423
+ RESOLVE = "RESOLVE",
1424
+ REJECT = "REJECT"
1358
1425
  }
1359
1426
  export enum MINIMAP_EVENT {
1360
- LOAD_MINIMAP = "LOAD_MINIMAP",
1361
- SHOW_MINIMAP = "SHOW_MINIMAP",
1362
- READY = "MINIMAP_READY",
1363
- CACHE_IMAGE = "CACHE_IMAGE"
1427
+ LOAD_MINIMAP = "LOAD_MINIMAP",
1428
+ SHOW_MINIMAP = "SHOW_MINIMAP",
1429
+ READY = "MINIMAP_READY",
1430
+ CACHE_IMAGE = "CACHE_IMAGE"
1364
1431
  }
1365
1432
  }
1366
1433
 
1367
1434
  declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1368
- import { IDirectionsResult, MappedinMap, MappedinNode, TBlueDotPositionUpdate, TBlueDotStateChange, TGetVenueOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFloatingLabelPolygonOptions, TFlatLabelPolygonOptions, TPathOptions, TShowVenueOptions, STATE, TGeolocationObject, TEnableBlueDotOptions, MappedinLocation } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1435
+ import { IDirectionsResult, MappedinMap, MappedinNode, TBlueDotPositionUpdate, TBlueDotStateChange, TGetVenueOptions, TFloatingLabelPolygonOptions, TFlatLabelPolygonOptions, TAnimatePositionOptions, TPathOptions, TShowVenueOptions, STATE, TGeolocationObject, TEnableBlueDotOptions, MappedinLocation, TLabelAllLocationFloatingLabelOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1369
1436
  import { TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common/types';
1370
- import { BRIDGE_EVENT, EVENT, MINIMAP_EVENT } from '@mappedin/react-native-sdk/wrappers/common';
1437
+ import { BRIDGE_EVENT, EVENT, MINIMAP_EVENT, TFocusOnOptionsLegacySerializable, TReactNativeFlatLabelAllLocationsLegacy, TReactNativeFlatLabelAllLocations } from '@mappedin/react-native-sdk/wrappers/common';
1371
1438
  import { TSerializableJourneyOptions, TFocusOnOptionsSerializable, TSerializedLocation, TSerializedNode, TSerializedPolygon } from '@mappedin/react-native-sdk/wrappers/common/types';
1372
1439
  export type BRIDGE_EVENT_PAYLOADS = {
1373
1440
  [BRIDGE_EVENT.READY]: {
@@ -1479,6 +1546,12 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1479
1546
  mapId: string;
1480
1547
  };
1481
1548
  };
1549
+ [EVENT.CAMERA_SET]: {
1550
+ msgID: string;
1551
+ data: {
1552
+ positionOptions?: TAnimatePositionOptions;
1553
+ };
1554
+ };
1482
1555
  [EVENT.SET_ROTATION]: {
1483
1556
  msgID: string;
1484
1557
  data: {
@@ -1491,12 +1564,35 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1491
1564
  tilt: number;
1492
1565
  };
1493
1566
  };
1567
+ [EVENT.CAMERA_SET_SAFE_AREA_INSETS]: {
1568
+ msgID: string;
1569
+ data: {
1570
+ safeAreaInsets: {
1571
+ top: number;
1572
+ bottom: number;
1573
+ left: number;
1574
+ right: number;
1575
+ };
1576
+ };
1577
+ };
1578
+ [EVENT.CLEAR_POLYGON_COLOR]: {
1579
+ msgID: string;
1580
+ data: {
1581
+ polygonId: string;
1582
+ };
1583
+ };
1494
1584
  [EVENT.FOCUS_ON]: {
1495
1585
  msgID: string;
1496
1586
  data: {
1497
1587
  focusOptions: TFocusOnOptionsSerializable;
1498
1588
  };
1499
1589
  };
1590
+ [EVENT.FOCUS_ON_LEGACY]: {
1591
+ msgID: string;
1592
+ data: {
1593
+ focusOptions: TFocusOnOptionsLegacySerializable;
1594
+ };
1595
+ };
1500
1596
  [EVENT.SET_POLYGON_COLOR]: {
1501
1597
  msgID: string;
1502
1598
  data: {
@@ -1526,25 +1622,12 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1526
1622
  msgID: string;
1527
1623
  data?: null;
1528
1624
  };
1529
- [EVENT.SET_SAFE_AREA]: {
1530
- msgID: string;
1531
- data?: {
1532
- padding: {
1533
- top: number;
1534
- bottom: number;
1535
- left: number;
1536
- right: number;
1537
- };
1538
- };
1539
- };
1540
1625
  [EVENT.LABEL_ALL_LOCATIONS]: {
1541
1626
  msgID: string;
1542
1627
  data: {
1543
- options: (Omit<TLabelAllLocationFlatLabelOptions, 'locations'> & {
1544
- locations?: string[];
1545
- }) | (Omit<TLabelAllLocationFloatingLabelOptions, 'locations'> & {
1628
+ options?: (Omit<TReactNativeFlatLabelAllLocations, 'locations'> | Omit<TLabelAllLocationFloatingLabelOptions, 'locations'> | Omit<TReactNativeFlatLabelAllLocationsLegacy, 'locations'>) & {
1546
1629
  locations?: string[];
1547
- });
1630
+ };
1548
1631
  };
1549
1632
  };
1550
1633
  [EVENT.REMOVE_ALL_LABELS]: {
@@ -1555,7 +1638,12 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1555
1638
  msgID: string;
1556
1639
  data: {
1557
1640
  polygonId: string;
1558
- options: TFloatingLabelPolygonOptions | TFlatLabelPolygonOptions;
1641
+ options: (TFloatingLabelPolygonOptions | TFlatLabelPolygonOptions) & {
1642
+ /**
1643
+ * @deprecated
1644
+ */
1645
+ legacyLabels?: boolean;
1646
+ };
1559
1647
  };
1560
1648
  };
1561
1649
  [EVENT.ENABLE_BLUE_DOT]: {
@@ -1586,10 +1674,30 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1586
1674
  msgID: string;
1587
1675
  data: null;
1588
1676
  };
1677
+ [EVENT.SET_MIN_ZOOM]: {
1678
+ msgID: string;
1679
+ data: {
1680
+ zoomLevel: number;
1681
+ };
1682
+ };
1683
+ [EVENT.SET_MAX_ZOOM]: {
1684
+ msgID: string;
1685
+ data: {
1686
+ zoomLevel: number;
1687
+ };
1688
+ };
1589
1689
  [EVENT.CREATE_MARKER]: {
1590
1690
  msgID: string;
1591
1691
  data: {
1592
- nodeIdOrCoordinate: any;
1692
+ nodeOrCoordinate: {
1693
+ type: 'Node';
1694
+ id: string;
1695
+ } | {
1696
+ type: 'Coordinate';
1697
+ mapId: string;
1698
+ lat: number;
1699
+ lon: number;
1700
+ };
1593
1701
  contentHtml: string;
1594
1702
  options: any;
1595
1703
  };
@@ -1652,13 +1760,18 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1652
1760
  }
1653
1761
 
1654
1762
  declare module '@mappedin/react-native-sdk/wrappers/common/types' {
1655
- import type { MappedinNode, MappedinPolygon, TFocusOnOptions, TJourneyOptions, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1763
+ import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
1764
+ import type { MappedinNode, MappedinPolygon, TFocusOnOptions, TJourneyOptions, TFloatingLabelPolygonOptions, TFlatLabelPolygonOptions, TShowVenueOptions, TLabelAllLocationFlatLabelOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1656
1765
  export type TFocusOnOptionsSerializable = Omit<TFocusOnOptions, 'targets'> & {
1657
1766
  targets: {
1658
1767
  nodes?: MappedinNode['id'][];
1659
1768
  polygons?: MappedinPolygon['id'][];
1660
1769
  };
1661
1770
  };
1771
+ export type TFocusOnOptionsLegacySerializable = Omit<TFocusOptionsLegacy, 'nodes' | 'polygons'> & {
1772
+ nodes?: MappedinNode['id'][];
1773
+ polygons?: MappedinPolygon['id'][];
1774
+ };
1662
1775
  export type TSerializedNode = {
1663
1776
  id: string;
1664
1777
  type: 'Node';
@@ -1698,6 +1811,30 @@ declare module '@mappedin/react-native-sdk/wrappers/common/types' {
1698
1811
  noAuth?: boolean;
1699
1812
  language?: string;
1700
1813
  };
1814
+ export type TReactNativeFloatingLabelPolygonOptions = TFloatingLabelPolygonOptions & {
1815
+ /**
1816
+ * @deprecated
1817
+ */
1818
+ legacyLabels?: false | undefined;
1819
+ flatLabels?: false | undefined;
1820
+ };
1821
+ export type TReactNativeFlatLabelPolygonOptions = TFlatLabelPolygonOptions & ({
1822
+ /**
1823
+ * @deprecated
1824
+ */
1825
+ legacyLabels: true;
1826
+ } | {
1827
+ flatLabels: true;
1828
+ });
1829
+ export type TReactNativeFlatLabelAllLocationsLegacy = Omit<TLabelAllLocationFlatLabelOptions, 'flatLabels'> & {
1830
+ /**
1831
+ * @deprecated
1832
+ */
1833
+ legacyLabels: true;
1834
+ };
1835
+ export type TReactNativeFlatLabelAllLocations = TLabelAllLocationFlatLabelOptions & {
1836
+ flatLabels: true;
1837
+ };
1701
1838
  }
1702
1839
 
1703
1840
  declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
@@ -1712,752 +1849,967 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
1712
1849
  }
1713
1850
  }
1714
1851
 
1715
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types' {
1716
- export type TGetVenueOptions = {
1717
- accessToken?: string;
1718
- clientId?: string;
1719
- clientSecret?: string;
1720
- baseUrl?: string;
1721
- includeHidden?: boolean;
1722
- noAuth?: boolean;
1723
- perspective?: string;
1724
- language?: string;
1725
- headers?: {
1726
- [key in string]: string;
1727
- };
1728
- venue: string;
1729
- things?: any;
1730
- };
1731
- export type TGetVenueOptionsInternal = {
1732
- baseUrl?: string;
1733
- supplementaryUrl?: string;
1734
- noAuth?: boolean;
1735
- includeHidden?: boolean;
1736
- apiGateway?: string;
1737
- authorization?: string;
1738
- /**
1739
- * @deprecated 2D support will be removed in the future
1740
- */
1741
- do2D?: boolean;
1742
- things?: any;
1743
- headers?: any;
1744
- };
1745
- }
1746
-
1747
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
1748
- import { Navigator } from '@mappedin/react-native-sdk/core/packages/navigator';
1749
- import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
1750
- import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
1751
- import { MappedinEvent } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent';
1752
- import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
1753
- import { MappedinLocationRankings } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings';
1754
- import { MappedinLocationState } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationState';
1755
- import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap';
1756
- import { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
1757
- import { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
1758
- import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
1759
- import { MappedinRankings } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinRankings';
1760
- import { MappedinTheme } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme';
1761
- import { MappedinVenue } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue';
1762
- import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
1763
- export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
1764
- export enum CollectionType {
1765
- CATEGORY = "categories",
1766
- EVENT = "events",
1767
- LOCATION = "locations",
1768
- MAPGROUP = "mapGroups",
1769
- MAP = "maps",
1770
- NODE = "nodes",
1771
- POLYGON = "polygons",
1772
- VORTEX = "vortexes"
1773
- }
1774
- type TAccessors = {
1775
- [CollectionType.CATEGORY]: MappedinCategory;
1776
- [CollectionType.EVENT]: MappedinEvent;
1777
- [CollectionType.LOCATION]: MappedinLocation;
1778
- [CollectionType.MAPGROUP]: MappedinMapGroup;
1779
- [CollectionType.MAP]: MappedinMap;
1780
- [CollectionType.NODE]: MappedinNode;
1781
- [CollectionType.POLYGON]: MappedinPolygon;
1782
- [CollectionType.VORTEX]: MappedinVortex;
1783
- };
1784
- const THINGS: {
1785
- categories: typeof MappedinCategory;
1786
- locations: typeof MappedinLocation;
1787
- vortexes: typeof MappedinVortex;
1788
- maps: typeof MappedinMap;
1789
- nodes: typeof MappedinNode;
1790
- polygons: typeof MappedinPolygon;
1791
- venue: typeof MappedinVenue;
1792
- events: typeof MappedinEvent;
1793
- mapGroups: typeof MappedinMapGroup;
1794
- themes: typeof MappedinTheme;
1795
- locationStates: typeof MappedinLocationState;
1796
- locationRankings: typeof MappedinLocationRankings;
1797
- rankings: typeof MappedinRankings;
1798
- };
1799
- export type TTHINGS = keyof typeof THINGS;
1800
- export class Mappedin {
1801
- #private;
1802
- perspective: any;
1803
- things: any;
1804
- options: any;
1805
- updatedAt?: string;
1806
- categories: MappedinCategory[];
1807
- locations: MappedinLocation[];
1808
- vortexes: MappedinVortex[];
1809
- maps: MappedinMap[];
1810
- nodes: MappedinNode[];
1811
- polygons: MappedinPolygon[];
1812
- venue: MappedinVenue;
1813
- events: MappedinEvent[];
1814
- mapGroups: MappedinMapGroup[];
1815
- themes: MappedinTheme[];
1816
- locationStates: MappedinLocationState[];
1852
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface' {
1853
+ import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
1854
+ import CameraControls from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraControls';
1855
+ import { Vector2, Vector3 } from 'three';
1856
+ import { changeListenerFn, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
1857
+ import RENDER from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
1858
+ import { INTERNAL_EVENT_PAYLOAD } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
1859
+ import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
1860
+ import Tween, { Easing } from '@tweenjs/tween.js';
1861
+ export type TFocusOptionsLegacy = {
1817
1862
  /**
1818
- * @deprecated use polygonRankings instead
1819
- * TODO: remove when we know that nobody is using this
1863
+ * An array of Nodes to focus in on
1820
1864
  */
1821
- locationRankings: MappedinLocationRankings[];
1822
- rankings?: MappedinRankings;
1865
+ nodes?: (MappedinNode | MappedinNode['id'])[];
1823
1866
  /**
1824
- * @hidden
1825
- * @internal
1867
+ * An array of Polygons to focus on. It's the center of the bounds of all Polygons, designed to fit everything into view.
1826
1868
  */
1827
- _categoriesById?: {
1828
- [id: string]: MappedinCategory;
1829
- };
1830
- /**
1831
- * @hidden
1832
- * @internal
1833
- */
1834
- _locationsById?: {
1835
- [id: string]: MappedinLocation;
1836
- };
1837
- /**
1838
- * @hidden
1839
- * @internal
1840
- */
1841
- _vortexesById?: {
1842
- [id: string]: MappedinVortex;
1843
- };
1844
- /**
1845
- * @hidden
1846
- * @internal
1847
- */
1848
- _mapsById?: {
1849
- [id: string]: MappedinMap;
1850
- };
1869
+ polygons?: (MappedinPolygon | MappedinPolygon['id'])[];
1851
1870
  /**
1852
- * @hidden
1853
- * @internal
1871
+ * The duration the focus animation should last for.
1872
+ * @defaultValue `100`
1854
1873
  */
1855
- _nodesById?: {
1856
- [id: string]: MappedinNode;
1857
- };
1874
+ duration?: number;
1858
1875
  /**
1859
- * @hidden
1860
- * @internal
1876
+ * Whether to zoom the camera in or out, or just pan it.
1877
+ * @defaultValue `true`
1861
1878
  */
1862
- _polygonsById?: {
1863
- [id: string]: MappedinPolygon;
1864
- };
1879
+ changeZoom?: boolean;
1865
1880
  /**
1866
- * @hidden
1867
- * @internal
1881
+ * The animation curve to use for zooming in. Uses the animateCamera one by default.
1868
1882
  */
1869
- _eventsById?: {
1870
- [id: string]: MappedinEvent;
1871
- };
1883
+ curve?: typeof Easing;
1872
1884
  /**
1873
- * @hidden
1874
- * @internal
1885
+ * Camera tilt between 0 (top-down) to 1 (from the side)
1875
1886
  */
1876
- _mapGroupsById?: {
1877
- [id: string]: MappedinMapGroup;
1878
- };
1887
+ tilt?: number;
1879
1888
  /**
1880
- * @hidden
1881
- * @internal
1889
+ * Rotation in degrees
1882
1890
  */
1883
- _locationStatesById?: {
1884
- [id: string]: MappedinLocationState;
1885
- };
1891
+ rotation?: number;
1886
1892
  /**
1887
- * @hidden
1888
- * @internal
1893
+ * You can overide the {{#crossLink "MapView/focusZoomFactor:property"}}{{/crossLink}} for a specific {{#crossLink "MapView/focusOn:method"}}{{/crossLink}} call, rather than globally, if you like.
1889
1894
  */
1890
- _locationRankingsById?: {
1891
- [id: string]: MappedinLocationRankings;
1892
- };
1895
+ focusZoomFactor?: number;
1893
1896
  /**
1894
- * @hidden
1895
- * @internal
1897
+ * Sets a floor for how close you can zoom in on the scene. If it's lower than mapView.controls.minZoom, it's ignored.
1898
+ * @defaultValue: 0
1896
1899
  */
1897
- _rankingsById?: {
1898
- [id: string]: MappedinRankings;
1899
- };
1900
+ minZoom?: number;
1901
+ padding?: TPadding;
1902
+ points?: any[];
1903
+ };
1904
+ export interface ICore {
1905
+ new (container: HTMLElement, venue: Mappedin, options?: TMapViewOptions): ICore;
1900
1906
  /**
1901
- * @hidden
1902
1907
  * @internal
1903
1908
  */
1904
- _categoriesByExternalId?: {
1905
- [id: string]: MappedinCategory;
1906
- };
1909
+ currentScale: number;
1910
+ imageFlippingEnabled: boolean;
1911
+ imageFlippingCache: any;
1912
+ cachedPadding: any;
1913
+ polygonMeshesById: any;
1914
+ textLabelsByPolygonId: any;
1915
+ renderer: any;
1916
+ scene: any;
1917
+ cameraParameters: Vector2;
1918
+ resolution: Vector2;
1919
+ determineNewLabelSize: any;
1920
+ on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
1921
+ off<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
1922
+ publish<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, payload?: INTERNAL_EVENT_PAYLOAD[EVENT_NAME]): void;
1907
1923
  /**
1908
- * @hidden
1909
- * @internal
1924
+ * Manual camera controls for MapView. Generally you should be using the functions on MapView like {{#crossLink "MapView/focusOn:method"}}{{/crossLink}},
1925
+ * but if you have some cool animations in mind, you can do it with the {{#crossLink "CameraControls"}}{{/crossLink}}.
1926
+ * Some of the functions don't do anything in 2D.
1927
+ *
1910
1928
  */
1911
- _locationsByExternalId?: {
1912
- [id: string]: MappedinLocation;
1913
- };
1929
+ controls?: typeof CameraControls;
1914
1930
  /**
1915
- * @hidden
1916
- * @internal
1931
+ * The Venue data this MapView is using.
1932
+ *
1933
+ * @property venue {MappedinVenue}
1934
+ * @final
1917
1935
  */
1918
- _vortexesByExternalId?: {
1919
- [id: string]: MappedinVortex;
1920
- };
1936
+ readonly venue: Mappedin;
1921
1937
  /**
1922
- * @hidden
1923
- * @internal
1938
+ * The div MapView is using.
1939
+ *
1940
+ * @property container {Div}
1941
+ * @final
1924
1942
  */
1925
- _mapsByExternalId?: {
1926
- [id: string]: MappedinMap;
1927
- };
1943
+ readonly container: HTMLElement;
1928
1944
  /**
1929
- * @hidden
1930
- * @internal
1945
+ * The ID of the Map currently being displayed.
1946
+ *
1931
1947
  */
1932
- _nodesByExternalId?: {
1933
- [id: string]: MappedinNode;
1934
- };
1948
+ readonly currentMap: string;
1935
1949
  /**
1936
- * @hidden
1937
- * @internal
1950
+ * Change this factor to influence how much the camera zooms in on a {@link IMapView3D.focusOn} call.
1951
+ *
1952
+ * @property focusZoomFactor {Integer}
1953
+ * @default 3
1938
1954
  */
1939
- _polygonsByExternalId?: {
1940
- [id: string]: MappedinPolygon;
1941
- };
1955
+ focusZoomFactor: number;
1942
1956
  /**
1943
- * @hidden
1944
- * @internal
1957
+ * Returns the value you should call {@link CameraControls.setZoom} on to fit the Polygon exactly.
1958
+ *
1959
+ * @return The zoom level that will fit the Polygon
1945
1960
  */
1946
- _eventsByExternalId?: {
1947
- [id: string]: MappedinEvent;
1948
- };
1961
+ getZoomLevelForPolygon(props: {
1962
+ /**
1963
+ * The Polygon or Polygon ID to get the zoom level for
1964
+ */
1965
+ polygonOrPolygonId: MappedinPolygon | string;
1966
+ }): number;
1949
1967
  /**
1950
- * @hidden
1951
- * @internal
1968
+ * Returns the value you should call {@link CameraControls.setZoom} on to fit the {@link IMapView3D.currentMap} exactly.
1969
+ *
1970
+ * @return The zoom level that will fit the {@link IMapView3D.currentMap}.
1952
1971
  */
1953
- _mapGroupsByExternalId?: {
1954
- [id: string]: MappedinMapGroup;
1955
- };
1972
+ getZoomLevelForCurrentMap(): number;
1956
1973
  /**
1957
- * @hidden
1958
- * @internal
1974
+ * Returns the angle that points to north, in radians, from the default orientation.
1975
+ *
1976
+ * @return The angle to north from the default orientation, in radians.
1959
1977
  */
1960
- _locationStatesByExternalId?: {
1961
- [id: string]: MappedinLocationState;
1962
- };
1978
+ getNorth(): number;
1963
1979
  /**
1964
- * @hidden
1965
- * @internal
1980
+ * Takes an element on the DOM and rotates it such that the top is pointing north. It will rotate with the camera, staying locked
1981
+ * on north. If you would like to align it do a different direction, or a different side of the element, pass in an offset. This
1982
+ * is how you would do a compass rose.
1983
+ *
1984
+ * This will modify your element's transform.
1985
+ *
1986
+ * @param element The element on the page to rotate.
1987
+ * @param offset The amount to offset the rotation by, in radians.
1988
+ *
1966
1989
  */
1967
- _locationRankingsByExternalId?: {
1968
- [id: string]: MappedinLocationRankings;
1969
- };
1990
+ lockNorth(element: HTMLElement, offset?: number): void;
1970
1991
  /**
1971
- * @hidden
1972
- * @internal
1992
+ * Stops the MapView from trying to rotate your element with the camera. Do this if you remove the element, or want to stop it from rotating.
1993
+ * @param element The node to stop rotating. It won't reset the transform, just leave it as is.
1973
1994
  */
1974
- _rankingsByExternalId?: {
1975
- [id: string]: MappedinRankings;
1976
- };
1977
- getCollectionItemById<T extends keyof TAccessors, I extends string>(name: T, id: I): TAccessors[T] | null;
1995
+ unlockNorth(element: HTMLElement): void;
1996
+ currentInteractionEvent: string;
1997
+ interactivePolygons: any;
1998
+ highlightedPolygons: any;
1999
+ cameraPlane: any;
1978
2000
  /**
2001
+ * This is called when an interactive Polygon is clicked on.
2002
+ * You will almost certainly want to replace this with your own function in your client app.
2003
+ * Return "false" if you have consumed the event and it shouldn't bubble down to other Polygons beneath this one.
1979
2004
  *
1980
- * [experimental] Hydrate the Mappedin instance using a response from either {@link IMappedin.toString()}, {@link getVenueBundle} or by downloading the bundle manually
2005
+ * @param polygonId polygonId passed in when tapping an interactive polygon
1981
2006
  */
1982
- hydrate(mappedinSerializableData: string | object): Promise<undefined>;
1983
- images: any;
1984
- scenes: any;
1985
- fetch(): Promise<void>;
1986
- constructor(options: TGetVenueOptionsInternal & TGetVenueOptions);
2007
+ onPolygonClicked(polygonId: string): boolean | void;
2008
+ onMapChanged(map: string): void;
2009
+ getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
2010
+ getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
2011
+ convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
2012
+ setPadding(padding: {
2013
+ top: number;
2014
+ left: number;
2015
+ bottom: number;
2016
+ right: number;
2017
+ }): void;
1987
2018
  /**
1988
- * @hidden
2019
+ * This is fired when the user taps/clicks on the MapView without hitting an interactive Polygon.
2020
+ * You will almost certainly want to replace this with your own function in your client app.
2021
+ * You would probably use this to clear any Polygon highlighting, in certain situations.
1989
2022
  */
1990
- navigator?: Navigator;
2023
+ onNothingClicked(): void;
2024
+ smartCollisionEngine: any;
2025
+ mapObjects: any;
1991
2026
  /**
1992
- * Export venue data to JSON (for storage, encryption, etc)
2027
+ * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
2028
+ * but if you are doing something weird, or have your own special tween for something, you will want to call this function.
2029
+ * You can call it as often as you want, it just sets a flag that we need to render again, and renders a few frames if we weren't already doing that.
2030
+ * Ignored in 2D.
1993
2031
  */
1994
- toJSON(): any;
2032
+ tryRendering(renderMode?: typeof RENDER): void;
2033
+ setMap(mapOrMapId: MappedinMap | string): Promise<null>;
2034
+ getPositionNode(node: MappedinNode): Vector3;
2035
+ cameraObject: any;
2036
+ setBackgroundColor(color: number | string, alpha?: number): void;
2037
+ mapManager: any;
2038
+ focusOn(focusOptions: TFocusOptionsLegacy): Tween;
2039
+ canvasWidth: number;
2040
+ canvasHeight: number;
1995
2041
  /**
1996
- * Export venue data to String
2042
+ * Resets the MapView to the default state.
1997
2043
  */
1998
- toString(): string;
2044
+ resetState(): void;
2045
+ destroy(): void;
1999
2046
  }
2000
- export {};
2001
2047
  }
2002
2048
 
2003
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation' {
2004
- import type { TCategory, TLocation, TColor, TGalleryImage, TLogo, TOpeningHours, TPhone, TPicture, TSiblingGroup, TSocial } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2005
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2006
- import type { MappedinLocationState } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationState';
2007
- import type { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
2008
- import type { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2009
- import { MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
2010
- export function getCurrentLocationState(location: MappedinLocation, states: MappedinLocationState[], date?: Date): MappedinLocationState | undefined;
2011
- export type TOperationHoursMap = {
2012
- [key in string]: TOpeningHours[];
2049
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types' {
2050
+ export type TGetVenueOptions = {
2051
+ accessToken?: string;
2052
+ clientId?: string;
2053
+ clientSecret?: string;
2054
+ baseUrl?: string;
2055
+ includeHidden?: boolean;
2056
+ noAuth?: boolean;
2057
+ perspective?: string;
2058
+ language?: string;
2059
+ headers?: {
2060
+ [key in string]: string;
2061
+ };
2062
+ venue: string;
2063
+ things?: any;
2013
2064
  };
2014
- /**
2015
- * A {@link MappedinLocation} is something like a store or washroom on a {@link MappedinMap}. It has an ID and will be linked to zero or more {@link MappedinNode}s and {@link MappedinPolygon}s.
2016
- *
2017
- * A Location's Nodes and Polygons can be on multiple Maps, or in multiple non-adjacent places on the same Map.
2018
- * For example, all washroom at a given Venue could belong to one Location, or a department store could live on multiple floors. A Washroom Location might a have a few Polygons spread throughout the Venue for each one that exists, but a single store might just have one presence, and therefore one Polygon. Some Locations just have a single point and only have Nodes.
2019
- *
2020
- * A Location can have more properties (typically things like 'name', 'externalId', 'type', 'categories', 'description', 'logo', etc).
2021
- *
2022
- * The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Locations. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2023
- *
2024
- * See below for an example a 'things' object with available Location properties specified:
2025
- *
2026
- * things: {
2027
- * venue: [],
2028
- * locations: ['venue', 'name', 'type', 'icon', 'logo', 'language', 'externalId', 'description', 'categories', 'phone', 'operationHours', 'social', 'tags', 'parents', 'sortOrder'],
2029
- * categories: [],
2030
- * maps: []
2031
- * }
2032
- *
2033
- * @class MappedinLocation
2034
- */
2035
- export class MappedinLocation extends MappedinNavigatable {
2065
+ export type TGetVenueOptionsInternal = {
2066
+ baseUrl?: string;
2067
+ supplementaryUrl?: string;
2068
+ noAuth?: boolean;
2069
+ includeHidden?: boolean;
2070
+ apiGateway?: string;
2071
+ authorization?: string;
2072
+ /**
2073
+ * @deprecated 2D support will be removed in the future
2074
+ */
2075
+ do2D?: boolean;
2076
+ things?: any;
2077
+ headers?: any;
2078
+ };
2079
+ }
2080
+
2081
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2082
+ import { Navigator } from '@mappedin/react-native-sdk/core/packages/navigator';
2083
+ import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
2084
+ import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
2085
+ import { MappedinEvent } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent';
2086
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2087
+ import { MappedinLocationRankings } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings';
2088
+ import { MappedinLocationState } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationState';
2089
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap';
2090
+ import { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
2091
+ import { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
2092
+ import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2093
+ import { MappedinRankings } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinRankings';
2094
+ import { MappedinTheme } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme';
2095
+ import { MappedinVenue } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue';
2096
+ import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
2097
+ export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
2098
+ export enum CollectionType {
2099
+ CATEGORY = "categories",
2100
+ EVENT = "events",
2101
+ LOCATION = "locations",
2102
+ MAPGROUP = "mapGroups",
2103
+ MAP = "maps",
2104
+ NODE = "nodes",
2105
+ POLYGON = "polygons",
2106
+ VORTEX = "vortexes"
2107
+ }
2108
+ type TAccessors = {
2109
+ [CollectionType.CATEGORY]: MappedinCategory;
2110
+ [CollectionType.EVENT]: MappedinEvent;
2111
+ [CollectionType.LOCATION]: MappedinLocation;
2112
+ [CollectionType.MAPGROUP]: MappedinMapGroup;
2113
+ [CollectionType.MAP]: MappedinMap;
2114
+ [CollectionType.NODE]: MappedinNode;
2115
+ [CollectionType.POLYGON]: MappedinPolygon;
2116
+ [CollectionType.VORTEX]: MappedinVortex;
2117
+ };
2118
+ const THINGS: {
2119
+ categories: typeof MappedinCategory;
2120
+ locations: typeof MappedinLocation;
2121
+ vortexes: typeof MappedinVortex;
2122
+ maps: typeof MappedinMap;
2123
+ nodes: typeof MappedinNode;
2124
+ polygons: typeof MappedinPolygon;
2125
+ venue: typeof MappedinVenue;
2126
+ events: typeof MappedinEvent;
2127
+ mapGroups: typeof MappedinMapGroup;
2128
+ themes: typeof MappedinTheme;
2129
+ locationStates: typeof MappedinLocationState;
2130
+ locationRankings: typeof MappedinLocationRankings;
2131
+ rankings: typeof MappedinRankings;
2132
+ };
2133
+ export type TTHINGS = keyof typeof THINGS;
2134
+ export class Mappedin {
2036
2135
  #private;
2037
- states: TLocation['states'];
2038
- id: string;
2039
- name: string;
2040
- type: string;
2041
- description?: string;
2042
- sortOrder?: number;
2043
- logo?: TLogo;
2044
- phone?: TPhone;
2045
- social?: TSocial;
2046
- color?: TColor;
2047
- shortName?: string;
2048
- detailsUrl?: string;
2049
- tags?: string[];
2050
- externalId?: string;
2051
- showLabelWhenImagePresent?: boolean;
2052
- picture?: TPicture;
2053
- operationHours?: TOpeningHours[] | undefined;
2054
- siblingGroups?: TSiblingGroup[] | undefined;
2055
- gallery?: TGalleryImage[] | undefined;
2056
- constructor(mappedin: Mappedin, data: any);
2057
- categories: TCategory[];
2136
+ perspective: any;
2137
+ things: any;
2138
+ options: any;
2139
+ updatedAt?: string;
2140
+ categories: MappedinCategory[];
2141
+ locations: MappedinLocation[];
2142
+ vortexes: MappedinVortex[];
2143
+ maps: MappedinMap[];
2144
+ nodes: MappedinNode[];
2145
+ polygons: MappedinPolygon[];
2146
+ venue: MappedinVenue;
2147
+ events: MappedinEvent[];
2148
+ mapGroups: MappedinMapGroup[];
2149
+ themes: MappedinTheme[];
2150
+ locationStates: MappedinLocationState[];
2058
2151
  /**
2059
- * Polygons this Location is attached to.
2060
- *
2061
- * @property polygons
2062
- * @type [MappedinPolygon]
2152
+ * @deprecated use polygonRankings instead
2153
+ * TODO: remove when we know that nobody is using this
2063
2154
  */
2064
- get polygons(): MappedinPolygon[];
2065
- set polygons(polygons: MappedinPolygon[]);
2155
+ locationRankings: MappedinLocationRankings[];
2156
+ rankings?: MappedinRankings;
2066
2157
  /**
2067
- * Ranking for this location.
2158
+ * @hidden
2159
+ * @internal
2068
2160
  */
2069
- get rank(): number | null;
2161
+ _categoriesById?: {
2162
+ [id: string]: MappedinCategory;
2163
+ };
2070
2164
  /**
2071
- * Nodes this Location is attached to.
2072
- *
2073
- * @property nodes
2074
- * @type [MappedinNode]
2165
+ * @hidden
2166
+ * @internal
2075
2167
  */
2076
- get nodes(): MappedinNode[];
2077
- set nodes(nodes: MappedinNode[]);
2168
+ _locationsById?: {
2169
+ [id: string]: MappedinLocation;
2170
+ };
2078
2171
  /**
2079
- * Parent of this Location, if any. Used in cases where one Location is inside another, more "important" Location.
2080
- *
2081
- * @property parent
2082
- * @type MappedinLocation
2172
+ * @hidden
2173
+ * @internal
2083
2174
  */
2084
- get parent(): MappedinLocation | undefined;
2085
- set parent(parent: MappedinLocation | undefined);
2086
- get state(): MappedinLocationState | undefined;
2087
- clone(): MappedinLocation;
2088
- get nodeOperationHours(): TOperationHoursMap;
2089
- static hydrate(locations: any, mappedin: Mappedin): MappedinLocation[];
2090
- static fetch(mappedin: Mappedin): Promise<MappedinLocation[]>;
2091
- toJSON(): any;
2092
- }
2093
- }
2094
-
2095
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon' {
2096
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2097
- import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2098
- import type { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
2099
- import { MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
2100
- /**
2101
- * The {@link MappedinPolygon} class represents the 3D shape of a {@link MappedinLocation} on a {{@link MappedinMap}. Polygons have access to Locations they belong to, and any entrances to the Polygon.
2102
- *
2103
- * A Polygon can have more properties but usually the default is sufficient. The {@link Mappedin}'things' object is where you would specify what properties you want to download for Polygons. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2104
- *
2105
- * @class MappedinPolygon
2106
- */
2107
- export class MappedinPolygon extends MappedinNavigatable {
2108
- #private;
2109
- geometry: any;
2175
+ _vortexesById?: {
2176
+ [id: string]: MappedinVortex;
2177
+ };
2110
2178
  /**
2111
- * Node ID.
2112
- *
2113
- * @property id {string}
2179
+ * @hidden
2180
+ * @internal
2114
2181
  */
2115
- id: string;
2182
+ _mapsById?: {
2183
+ [id: string]: MappedinMap;
2184
+ };
2116
2185
  /**
2117
- * ID of Map that Polygon is located on.
2118
- *
2119
- * @property map {string}
2186
+ * @hidden
2187
+ * @internal
2120
2188
  */
2121
- map: string;
2122
- layer?: string;
2123
- layerId?: string;
2124
- name?: string;
2125
- externalId?: string;
2126
- vertexes?: {
2127
- x: number;
2128
- y: number;
2129
- }[];
2130
- canvasBounds?: {
2131
- align: string;
2132
- maxHeight: number;
2133
- maxWidth: number;
2134
- rotation: number;
2135
- x: number;
2136
- y: number;
2189
+ _nodesById?: {
2190
+ [id: string]: MappedinNode;
2137
2191
  };
2138
- constructor(mappedin: Mappedin, data: any);
2139
2192
  /**
2140
- * Locations attached to the Polygon.
2141
- *
2142
- * @property locations {[MappedinLocation]}
2193
+ * @hidden
2194
+ * @internal
2143
2195
  */
2144
- get locations(): MappedinLocation[];
2196
+ _polygonsById?: {
2197
+ [id: string]: MappedinPolygon;
2198
+ };
2145
2199
  /**
2146
- * Polygon's entrance Nodes.
2147
- *
2148
- * @property entrances {[MappedinNode]}
2200
+ * @hidden
2201
+ * @internal
2149
2202
  */
2150
- get entrances(): MappedinNode[];
2151
- set entrances(entrances: MappedinNode[]);
2203
+ _eventsById?: {
2204
+ [id: string]: MappedinEvent;
2205
+ };
2152
2206
  /**
2153
- * Ranking for this polygon.
2207
+ * @hidden
2208
+ * @internal
2154
2209
  */
2155
- get rank(): {
2156
- score: number;
2157
- node: string;
2158
- } | null;
2159
- static hydrate(polygons: any, mappedin: Mappedin): MappedinPolygon[];
2160
- static fetch(mappedin: Mappedin): Promise<MappedinPolygon[]>;
2161
- toJSON(): any;
2162
- }
2163
- }
2164
-
2165
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode' {
2166
- import type { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2167
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2168
- import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2169
- import type { TOpeningHours } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2170
- import { MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
2171
- /**
2172
- * A {@link MappedinNode} represents a position, anchored to a specific {@link MappedinMap}.
2173
- *
2174
- * A Node can have more properties but usually the default is sufficient. The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Nodes. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2175
- *
2176
- * @class MappedinNode
2177
- */
2178
- export class MappedinNode extends MappedinNavigatable {
2179
- #private;
2210
+ _mapGroupsById?: {
2211
+ [id: string]: MappedinMapGroup;
2212
+ };
2180
2213
  /**
2181
- * Node ID.
2182
- * @property id {string}
2214
+ * @hidden
2215
+ * @internal
2183
2216
  */
2184
- id: string;
2217
+ _locationStatesById?: {
2218
+ [id: string]: MappedinLocationState;
2219
+ };
2185
2220
  /**
2186
- * ID of Map that the Node is located on.
2187
- *
2188
- * @property map {string}
2221
+ * @hidden
2222
+ * @internal
2189
2223
  */
2190
- map: string;
2224
+ _locationRankingsById?: {
2225
+ [id: string]: MappedinLocationRankings;
2226
+ };
2191
2227
  /**
2192
- * X coordinate of Node's position.
2193
- * @property x {number}
2228
+ * @hidden
2229
+ * @internal
2194
2230
  */
2195
- x: number;
2231
+ _rankingsById?: {
2232
+ [id: string]: MappedinRankings;
2233
+ };
2196
2234
  /**
2197
- * Y coordinate of Node's position.
2198
- * @property y {number}
2235
+ * @hidden
2236
+ * @internal
2199
2237
  */
2200
- y: number;
2238
+ _categoriesByExternalId?: {
2239
+ [id: string]: MappedinCategory;
2240
+ };
2201
2241
  /**
2202
- * Operation Hours of this node. A Location may have different operation hours per node, for example 2 washrooms
2242
+ * @hidden
2243
+ * @internal
2203
2244
  */
2204
- operationHours?: TOpeningHours[];
2205
- externalId?: string;
2206
- constructor(mappedin: Mappedin, data: any);
2245
+ _locationsByExternalId?: {
2246
+ [id: string]: MappedinLocation;
2247
+ };
2207
2248
  /**
2208
- * Adjacent Nodes.
2209
- *
2210
- * @property paths
2211
- * @type [MappedinNode]
2249
+ * @hidden
2250
+ * @internal
2212
2251
  */
2213
- get paths(): MappedinNode[];
2214
- set paths(paths: MappedinNode[]);
2252
+ _vortexesByExternalId?: {
2253
+ [id: string]: MappedinVortex;
2254
+ };
2215
2255
  /**
2216
- * Locations attached to this Node.
2217
- *
2218
- * @property locations
2219
- * @type [MappedinLocation]
2256
+ * @hidden
2257
+ * @internal
2220
2258
  */
2221
- get locations(): MappedinLocation[];
2259
+ _mapsByExternalId?: {
2260
+ [id: string]: MappedinMap;
2261
+ };
2222
2262
  /**
2223
- * Polygon that this node is part of
2263
+ * @hidden
2264
+ * @internal
2224
2265
  */
2225
- get polygon(): MappedinPolygon;
2226
- static hydrate(nodes: any, mappedin: Mappedin): MappedinNode[];
2227
- static fetch(mappedin: Mappedin): Promise<MappedinNode[]>;
2228
- toJSON(): any;
2229
- }
2230
- }
2231
-
2232
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory' {
2233
- /**
2234
- * Collection of all Categories within the Venue.
2235
- *
2236
- * @property categories
2237
- * @type [MappedinCategory]
2238
- */
2239
- import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2240
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2241
- import type { TPicture } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2242
- /**
2243
- * A {@link MappedinCategory} is a collection of similar Locations.
2244
- *
2245
- * A Category can have more properties such as 'name', or 'parents' (for hierarchical categories) as well.
2246
- * For example, you may have a Fashion category, which has a Men's Fashion and Women's Fashion category. A Men's clothing store would belong to the Men’s Fashion category, but not necessarily be present in the Fashion category's list of Locations.
2247
- *
2248
- * The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Categories. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2249
- *
2250
- * See below for an example a 'things' object with available Category properties specified:
2251
- *
2252
- * things: {
2253
- * venue: [],
2254
- * locations: [],
2255
- * categories: ['venue', 'name', 'language', 'externalId', 'parents'],
2256
- * maps: []
2257
- * }
2258
- *
2259
- * @class MappedinCategory
2260
- */
2261
- export class MappedinCategory {
2262
- #private;
2263
- name?: string | undefined;
2264
- externalId?: string | undefined;
2265
- parents?: string[] | undefined;
2266
- id?: string | undefined;
2267
- icon?: TPicture | undefined;
2268
- constructor(mappedin: Mappedin, data: any);
2266
+ _nodesByExternalId?: {
2267
+ [id: string]: MappedinNode;
2268
+ };
2269
+ /**
2270
+ * @hidden
2271
+ * @internal
2272
+ */
2273
+ _polygonsByExternalId?: {
2274
+ [id: string]: MappedinPolygon;
2275
+ };
2276
+ /**
2277
+ * @hidden
2278
+ * @internal
2279
+ */
2280
+ _eventsByExternalId?: {
2281
+ [id: string]: MappedinEvent;
2282
+ };
2283
+ /**
2284
+ * @hidden
2285
+ * @internal
2286
+ */
2287
+ _mapGroupsByExternalId?: {
2288
+ [id: string]: MappedinMapGroup;
2289
+ };
2290
+ /**
2291
+ * @hidden
2292
+ * @internal
2293
+ */
2294
+ _locationStatesByExternalId?: {
2295
+ [id: string]: MappedinLocationState;
2296
+ };
2297
+ /**
2298
+ * @hidden
2299
+ * @internal
2300
+ */
2301
+ _locationRankingsByExternalId?: {
2302
+ [id: string]: MappedinLocationRankings;
2303
+ };
2304
+ /**
2305
+ * @hidden
2306
+ * @internal
2307
+ */
2308
+ _rankingsByExternalId?: {
2309
+ [id: string]: MappedinRankings;
2310
+ };
2311
+ getCollectionItemById<T extends keyof TAccessors, I extends string>(name: T, id: I): TAccessors[T] | null;
2269
2312
  /**
2270
- * Locations in this Category.
2271
2313
  *
2272
- * @property locations
2273
- * @type [MappedinLocation]
2314
+ * [experimental] Hydrate the Mappedin instance using a response from either {@link IMappedin.toString()}, {@link getVenueBundle} or by downloading the bundle manually
2315
+ * @param mappedinSerializableData Mappedin data that was serialized or exported as JSON
2316
+ * @param shouldPopulateBundledImagesAsBlobs Takes the scenes and images from a bundle and maps them as blobs to where they exist as URLs in the bundle. False by default
2317
+ */
2318
+ hydrate(mappedinSerializableData: string | object, shouldPopulateBundledImagesAsBlobs?: boolean): Promise<undefined>;
2319
+ images: any;
2320
+ scenes: any;
2321
+ fetch(): Promise<void>;
2322
+ constructor(options: TGetVenueOptionsInternal & TGetVenueOptions);
2323
+ /**
2324
+ * @hidden
2325
+ */
2326
+ navigator?: Navigator;
2327
+ /**
2328
+ * Export venue data to JSON (for storage, encryption, etc)
2274
2329
  */
2275
- get locations(): MappedinLocation[];
2276
- static hydrate(categories: any, mappedin: Mappedin): MappedinCategory[];
2277
- static fetch(mappedin: Mappedin): Promise<MappedinCategory[]>;
2278
2330
  toJSON(): any;
2331
+ /**
2332
+ * Export venue data to String
2333
+ */
2334
+ toString(): string;
2279
2335
  }
2336
+ export {};
2280
2337
  }
2281
2338
 
2282
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap' {
2283
- import type { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2339
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation' {
2340
+ import type { TCategory, TLocation, TColor, TGalleryImage, TLogo, TOpeningHours, TPhone, TPicture, TSiblingGroup, TSocial } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2284
2341
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2285
- import type { TGeoReference } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2286
- import type { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
2287
- import { MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCoordinate';
2342
+ import type { MappedinLocationState } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationState';
2343
+ import type { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
2344
+ import type { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2345
+ import { MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
2346
+ export function getCurrentLocationState(location: MappedinLocation, states: MappedinLocationState[], date?: Date): MappedinLocationState | undefined;
2347
+ export type TOperationHoursMap = {
2348
+ [key in string]: TOpeningHours[];
2349
+ };
2288
2350
  /**
2289
- * A {@link MappedinMap} belonging to a specific {@link MappedinVenue}. Typically represents a certain floor. Give this to a {@link MiMapView} to display to the user.
2351
+ * A {@link MappedinLocation} is something like a store or washroom on a {@link MappedinMap}. It has an ID and will be linked to zero or more {@link MappedinNode}s and {@link MappedinPolygon}s.
2290
2352
  *
2291
- * A Map can have more properties such as 'elevation', 'name' (e.g. Level 1), and 'shortName' (e.g. L1). The elevation property can be used to determine the order of the floors (first, second, etc). Elevation is 0 based, going up and down in integers representing the number of floors above or below 0, which is ground level.
2353
+ * A Location's Nodes and Polygons can be on multiple Maps, or in multiple non-adjacent places on the same Map.
2354
+ * For example, all washroom at a given Venue could belong to one Location, or a department store could live on multiple floors. A Washroom Location might a have a few Polygons spread throughout the Venue for each one that exists, but a single store might just have one presence, and therefore one Polygon. Some Locations just have a single point and only have Nodes.
2292
2355
  *
2293
- * The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Maps. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2356
+ * A Location can have more properties (typically things like 'name', 'externalId', 'type', 'categories', 'description', 'logo', etc).
2294
2357
  *
2295
- * See below for an example a 'things' object with available Map properties specified:
2358
+ * The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Locations. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2359
+ *
2360
+ * See below for an example a 'things' object with available Location properties specified:
2296
2361
  *
2297
2362
  * things: {
2298
2363
  * venue: [],
2299
- * locations: [],
2364
+ * locations: ['venue', 'name', 'type', 'icon', 'logo', 'language', 'externalId', 'description', 'categories', 'phone', 'operationHours', 'social', 'tags', 'parents', 'sortOrder'],
2300
2365
  * categories: [],
2301
- * maps: ['name', 'elevation', 'shortName']
2366
+ * maps: []
2302
2367
  * }
2303
2368
  *
2304
- * @class MappedinMap
2369
+ * @class MappedinLocation
2305
2370
  */
2306
- export class MappedinMap {
2371
+ export class MappedinLocation extends MappedinNavigatable {
2307
2372
  #private;
2373
+ states: TLocation['states'];
2308
2374
  id: string;
2309
- group: string;
2310
2375
  name: string;
2311
- shortName: string;
2312
- elevation: number;
2313
- scale?: number;
2314
- x_scale?: number;
2315
- perspectiveId?: string;
2316
- width: number;
2317
- height: number;
2318
- georeference: TGeoReference[];
2376
+ type: string;
2377
+ description?: string;
2378
+ sortOrder?: number;
2379
+ logo?: TLogo;
2380
+ phone?: TPhone;
2381
+ social?: TSocial;
2382
+ color?: TColor;
2383
+ shortName?: string;
2384
+ detailsUrl?: string;
2385
+ tags?: string[];
2386
+ externalId?: string;
2387
+ showLabelWhenImagePresent?: boolean;
2388
+ picture?: TPicture;
2389
+ operationHours?: TOpeningHours[] | undefined;
2390
+ siblingGroups?: TSiblingGroup[] | undefined;
2391
+ gallery?: TGalleryImage[] | undefined;
2319
2392
  constructor(mappedin: Mappedin, data: any);
2320
- _scale: number;
2393
+ categories: TCategory['id'][];
2321
2394
  /**
2322
- * Polygons on this Map.
2395
+ * Polygons this Location is attached to.
2323
2396
  *
2324
- * @property polygons {[MappedinPolygon]}
2397
+ * @property polygons
2398
+ * @type [MappedinPolygon]
2325
2399
  */
2326
- get polygons(): MappedinPolygon[] | undefined;
2400
+ get polygons(): MappedinPolygon[];
2401
+ set polygons(polygons: MappedinPolygon[]);
2327
2402
  /**
2328
- * Map Group this map belongs to.
2329
- *
2330
- * @property mapGroup {MappedinMapGroup}
2403
+ * Ranking for this location.
2331
2404
  */
2332
- get mapGroup(): MappedinMapGroup | null;
2405
+ get rank(): number | null;
2333
2406
  /**
2334
- * Create coordinate using lat/lon
2407
+ * Nodes this Location is attached to.
2335
2408
  *
2336
- * @param lat latitude of coordinate
2337
- * @param lon longitude of coordinate
2409
+ * @property nodes
2410
+ * @type [MappedinNode]
2338
2411
  */
2339
- createCoordinate(lat: number, lon: number): MappedinCoordinate;
2412
+ get nodes(): MappedinNode[];
2413
+ set nodes(nodes: MappedinNode[]);
2340
2414
  /**
2415
+ * Parent of this Location, if any. Used in cases where one Location is inside another, more "important" Location.
2341
2416
  *
2342
- * @returns map rotation in degrees from North
2417
+ * @property parent
2418
+ * @type MappedinLocation
2343
2419
  */
2344
- getNorth(): any;
2345
- static hydrate(maps: any, mappedin: Mappedin): MappedinMap[];
2346
- static fetch(mappedin: Mappedin): Promise<MappedinMap[]>;
2420
+ get parent(): MappedinLocation | undefined;
2421
+ set parent(parent: MappedinLocation | undefined);
2422
+ get state(): MappedinLocationState | undefined;
2423
+ clone(): MappedinLocation;
2424
+ get nodeOperationHours(): TOperationHoursMap;
2425
+ static hydrate(locations: any, mappedin: Mappedin): MappedinLocation[];
2426
+ static fetch(mappedin: Mappedin): Promise<MappedinLocation[]>;
2347
2427
  toJSON(): any;
2348
2428
  }
2349
2429
  }
2350
2430
 
2351
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent' {
2352
- import type { TImage } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2431
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon' {
2353
2432
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2354
2433
  import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2434
+ import type { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
2435
+ import { MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
2355
2436
  /**
2356
- * An event.
2437
+ * The {@link MappedinPolygon} class represents the 3D shape of a {@link MappedinLocation} on a {{@link MappedinMap}. Polygons have access to Locations they belong to, and any entrances to the Polygon.
2357
2438
  *
2358
- * @class MappedinEvent
2439
+ * A Polygon can have more properties but usually the default is sufficient. The {@link Mappedin}'things' object is where you would specify what properties you want to download for Polygons. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2440
+ *
2441
+ * @class MappedinPolygon
2359
2442
  */
2360
- export class MappedinEvent {
2443
+ export class MappedinPolygon extends MappedinNavigatable {
2361
2444
  #private;
2445
+ geometry: any;
2446
+ /**
2447
+ * Node ID.
2448
+ *
2449
+ * @property id {string}
2450
+ */
2362
2451
  id: string;
2363
- type: string;
2364
- name: string;
2365
- description?: string | undefined;
2366
- image?: TImage | undefined;
2367
- startDate?: number | undefined;
2368
- endDate?: number | undefined;
2369
- showDate?: number | undefined;
2452
+ /**
2453
+ * ID of Map that Polygon is located on.
2454
+ *
2455
+ * @property map {string}
2456
+ */
2457
+ map: string;
2458
+ layer?: string;
2459
+ layerId?: string;
2460
+ name?: string;
2461
+ externalId?: string;
2462
+ vertexes?: {
2463
+ x: number;
2464
+ y: number;
2465
+ }[];
2466
+ canvasBounds?: {
2467
+ align: string;
2468
+ maxHeight: number;
2469
+ maxWidth: number;
2470
+ rotation: number;
2471
+ x: number;
2472
+ y: number;
2473
+ };
2370
2474
  constructor(mappedin: Mappedin, data: any);
2371
2475
  /**
2372
- * Location this Event is occuring at.
2476
+ * Locations attached to the Polygon.
2373
2477
  *
2374
- * @property location {MappedinLocation}
2478
+ * @property locations {[MappedinLocation]}
2375
2479
  */
2376
- location(): MappedinLocation | undefined;
2377
- static hydrate(events: any, mappedin: Mappedin): MappedinEvent[];
2378
- static fetch(mappedin: Mappedin): Promise<MappedinEvent[]>;
2480
+ get locations(): MappedinLocation[];
2481
+ /**
2482
+ * Polygon's entrance Nodes.
2483
+ *
2484
+ * @property entrances {[MappedinNode]}
2485
+ */
2486
+ get entrances(): MappedinNode[];
2487
+ set entrances(entrances: MappedinNode[]);
2488
+ /**
2489
+ * Ranking for this polygon.
2490
+ */
2491
+ get rank(): {
2492
+ score: number;
2493
+ node: string;
2494
+ } | null;
2495
+ static hydrate(polygons: any, mappedin: Mappedin): MappedinPolygon[];
2496
+ static fetch(mappedin: Mappedin): Promise<MappedinPolygon[]>;
2379
2497
  toJSON(): any;
2380
2498
  }
2381
2499
  }
2382
2500
 
2383
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup' {
2501
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode' {
2502
+ import type { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2384
2503
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2385
- import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap';
2504
+ import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2505
+ import type { TOpeningHours } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2506
+ import { MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
2386
2507
  /**
2387
- * A {@link MappedinMapGroup} is a collection of maps, usually representing the different floors of a single building. All Maps will be in a MapGroup, but if your Venue is only a single building (like a mall) you can likely ignore MapGroups entirely.
2508
+ * A {@link MappedinNode} represents a position, anchored to a specific {@link MappedinMap}.
2388
2509
  *
2389
- * @class MappedinMapGroup
2510
+ * A Node can have more properties but usually the default is sufficient. The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Nodes. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2511
+ *
2512
+ * @class MappedinNode
2390
2513
  */
2391
- export class MappedinMapGroup {
2514
+ export class MappedinNode extends MappedinNavigatable {
2392
2515
  #private;
2516
+ /**
2517
+ * Node ID.
2518
+ * @property id {string}
2519
+ */
2393
2520
  id: string;
2394
- name: string;
2521
+ /**
2522
+ * ID of Map that the Node is located on.
2523
+ *
2524
+ * @property map {string}
2525
+ */
2526
+ map: string;
2527
+ /**
2528
+ * X coordinate of Node's position.
2529
+ * @property x {number}
2530
+ */
2531
+ x: number;
2532
+ /**
2533
+ * Y coordinate of Node's position.
2534
+ * @property y {number}
2535
+ */
2536
+ y: number;
2537
+ /**
2538
+ * Operation Hours of this node. A Location may have different operation hours per node, for example 2 washrooms
2539
+ */
2540
+ operationHours?: TOpeningHours[];
2541
+ externalId?: string;
2395
2542
  constructor(mappedin: Mappedin, data: any);
2396
2543
  /**
2397
- * Maps within this MapGroup.
2544
+ * Latitude of node. This is expensive, especially if doing it for many/all nodes
2545
+ */
2546
+ get lat(): number;
2547
+ /**
2548
+ * Longitude of node. This is expensive, especially if doing it for many/all nodes
2549
+ */
2550
+ get lon(): number;
2551
+ /**
2552
+ * Adjacent Nodes.
2398
2553
  *
2399
- * @property maps {[MappedinMap]}
2554
+ * @property paths
2555
+ * @type [MappedinNode]
2400
2556
  */
2401
- get maps(): MappedinMap[];
2402
- static hydrate(mapGroups: any, mappedin: Mappedin): MappedinMapGroup[];
2403
- static fetch(mappedin: Mappedin): Promise<MappedinMapGroup[]>;
2557
+ get paths(): MappedinNode[];
2558
+ set paths(paths: MappedinNode[]);
2559
+ /**
2560
+ * Locations attached to this Node.
2561
+ *
2562
+ * @property locations
2563
+ * @type [MappedinLocation]
2564
+ */
2565
+ get locations(): MappedinLocation[];
2566
+ /**
2567
+ * Polygon that this node is part of
2568
+ */
2569
+ get polygon(): MappedinPolygon;
2570
+ static hydrate(nodes: any, mappedin: Mappedin): MappedinNode[];
2571
+ static fetch(mappedin: Mappedin): Promise<MappedinNode[]>;
2404
2572
  toJSON(): any;
2405
2573
  }
2406
2574
  }
2407
2575
 
2408
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue' {
2409
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2410
- import type { TLogo, TOpeningHours } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2576
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory' {
2411
2577
  /**
2412
- * A {@link MappedinVenue} is a specific place (like a mall) with one or more Maps (typically representing different floors) and Locations (stores, washrooms, elevators, etc).
2413
- *
2414
- * A Venue can have more properties such as 'name' and 'slug'. The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Venues. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2415
- *
2416
- * See below for an example a 'things' object with available Venue properties specified:
2417
- *
2418
- * things: {
2419
- * venue: ['slug', 'name', 'language', 'address', 'city', 'state', 'postal', 'telephone', 'latitude', 'longitude', 'website', 'operationHours'],
2420
- * locations: [],
2421
- * categories: [],
2422
- * maps: []
2423
- * }
2424
- *
2425
- *
2426
- * @class MappedinVenue
2427
- */
2428
- export class MappedinVenue {
2429
- #private;
2430
- defaultMap: string;
2431
- address: string;
2432
- city: string;
2433
- countrycode: string;
2434
- externalId: string;
2435
- id: string;
2436
- latitude?: number;
2437
- logo?: TLogo;
2438
- longitude?: number;
2439
- metadata?: any;
2440
- name: string;
2441
- operationHours?: TOpeningHours[];
2442
- postal: string;
2443
- slug: string;
2444
- state: string;
2445
- telephone: string;
2446
- tzid: string;
2447
- tzidOverride: string;
2448
- utcOffset: string;
2449
- website: string;
2450
- constructor(data: any);
2451
- static hydrate(data: any): MappedinVenue;
2452
- static fetch(mappedin: Mappedin): Promise<MappedinVenue>;
2453
- toJSON(): any;
2454
- }
2455
- }
2456
-
2457
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex' {
2578
+ * Collection of all Categories within the Venue.
2579
+ *
2580
+ * @property categories
2581
+ * @type [MappedinCategory]
2582
+ */
2583
+ import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2458
2584
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2585
+ import type { TPicture } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2459
2586
  /**
2460
- * A {@link MappedinVortex} is a special entity that represents a link between two or more {@link MappedinMap}s at a given {@link MappedinVenue}. It is typically something like an elevator or stairs. These are also known as Connections in some parts of the system.
2587
+ * A {@link MappedinCategory} is a collection of similar Locations.
2588
+ *
2589
+ * A Category can have more properties such as 'name', or 'parents' (for hierarchical categories) as well.
2590
+ * For example, you may have a Fashion category, which has a Men's Fashion and Women's Fashion category. A Men's clothing store would belong to the Men’s Fashion category, but not necessarily be present in the Fashion category's list of Locations.
2591
+ *
2592
+ * The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Categories. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2593
+ *
2594
+ * See below for an example a 'things' object with available Category properties specified:
2595
+ *
2596
+ * things: {
2597
+ * venue: [],
2598
+ * locations: [],
2599
+ * categories: ['venue', 'name', 'language', 'externalId', 'parents'],
2600
+ * maps: []
2601
+ * }
2602
+ *
2603
+ * @class MappedinCategory
2604
+ */
2605
+ export class MappedinCategory {
2606
+ #private;
2607
+ name?: string | undefined;
2608
+ externalId?: string | undefined;
2609
+ parents?: string[] | undefined;
2610
+ id?: string | undefined;
2611
+ icon?: TPicture | undefined;
2612
+ constructor(mappedin: Mappedin, data: any);
2613
+ /**
2614
+ * Locations in this Category.
2615
+ *
2616
+ * @property locations
2617
+ * @type [MappedinLocation]
2618
+ */
2619
+ get locations(): MappedinLocation[];
2620
+ static hydrate(categories: any, mappedin: Mappedin): MappedinCategory[];
2621
+ static fetch(mappedin: Mappedin): Promise<MappedinCategory[]>;
2622
+ toJSON(): any;
2623
+ }
2624
+ }
2625
+
2626
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap' {
2627
+ import type { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
2628
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2629
+ import type { TGeoReference } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2630
+ import type { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
2631
+ import { MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCoordinate';
2632
+ /**
2633
+ * 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.
2634
+ *
2635
+ * A Map can have more properties such as 'elevation', 'name' (e.g. Level 1), and 'shortName' (e.g. L1). The elevation property can be used to determine the order of the floors (first, second, etc). Elevation is 0 based, going up and down in integers representing the number of floors above or below 0, which is ground level.
2636
+ *
2637
+ * The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Maps. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2638
+ *
2639
+ * See below for an example a 'things' object with available Map properties specified:
2640
+ *
2641
+ * things: {
2642
+ * venue: [],
2643
+ * locations: [],
2644
+ * categories: [],
2645
+ * maps: ['name', 'elevation', 'shortName']
2646
+ * }
2647
+ *
2648
+ * @class MappedinMap
2649
+ */
2650
+ export class MappedinMap {
2651
+ #private;
2652
+ id: string;
2653
+ group: string;
2654
+ name: string;
2655
+ shortName: string;
2656
+ elevation: number;
2657
+ scale?: number;
2658
+ x_scale?: number;
2659
+ perspectiveId?: string;
2660
+ width: number;
2661
+ height: number;
2662
+ georeference: TGeoReference[];
2663
+ constructor(mappedin: Mappedin, data: any);
2664
+ _scale: number;
2665
+ /**
2666
+ * Polygons on this Map.
2667
+ *
2668
+ * @property polygons {[MappedinPolygon]}
2669
+ */
2670
+ get polygons(): MappedinPolygon[] | undefined;
2671
+ /**
2672
+ * Map Group this map belongs to.
2673
+ *
2674
+ * @property mapGroup {MappedinMapGroup}
2675
+ */
2676
+ get mapGroup(): MappedinMapGroup | null;
2677
+ /**
2678
+ * Create coordinate using mappedin units
2679
+ * @internal
2680
+ *
2681
+ * @param x x of coordinate
2682
+ * @param y y of coordinate
2683
+ */
2684
+ createCoordinateByXY(x: number, y: number): MappedinCoordinate;
2685
+ /**
2686
+ * Create coordinate using lat/lon
2687
+ *
2688
+ * @param lat latitude of coordinate
2689
+ * @param lon longitude of coordinate
2690
+ */
2691
+ createCoordinate(lat: number, lon: number): MappedinCoordinate;
2692
+ /**
2693
+ *
2694
+ * @returns map rotation in degrees from North
2695
+ */
2696
+ getNorth(): any;
2697
+ static hydrate(maps: any, mappedin: Mappedin): MappedinMap[];
2698
+ static fetch(mappedin: Mappedin): Promise<MappedinMap[]>;
2699
+ toJSON(): any;
2700
+ }
2701
+ }
2702
+
2703
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent' {
2704
+ import type { TImage } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2705
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2706
+ import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
2707
+ /**
2708
+ * An event.
2709
+ *
2710
+ * @class MappedinEvent
2711
+ */
2712
+ export class MappedinEvent {
2713
+ #private;
2714
+ id: string;
2715
+ type: string;
2716
+ name: string;
2717
+ description?: string | undefined;
2718
+ image?: TImage | undefined;
2719
+ startDate?: number | undefined;
2720
+ endDate?: number | undefined;
2721
+ showDate?: number | undefined;
2722
+ constructor(mappedin: Mappedin, data: any);
2723
+ /**
2724
+ * Location this Event is occuring at.
2725
+ *
2726
+ * @property location {MappedinLocation}
2727
+ */
2728
+ location(): MappedinLocation | undefined;
2729
+ static hydrate(events: any, mappedin: Mappedin): MappedinEvent[];
2730
+ static fetch(mappedin: Mappedin): Promise<MappedinEvent[]>;
2731
+ toJSON(): any;
2732
+ }
2733
+ }
2734
+
2735
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup' {
2736
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2737
+ import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap';
2738
+ /**
2739
+ * A {@link MappedinMapGroup} is a collection of maps, usually representing the different floors of a single building. All Maps will be in a MapGroup, but if your Venue is only a single building (like a mall) you can likely ignore MapGroups entirely.
2740
+ *
2741
+ * @class MappedinMapGroup
2742
+ */
2743
+ export class MappedinMapGroup {
2744
+ #private;
2745
+ id: string;
2746
+ name: string;
2747
+ constructor(mappedin: Mappedin, data: any);
2748
+ /**
2749
+ * Maps within this MapGroup.
2750
+ *
2751
+ * @property maps {[MappedinMap]}
2752
+ */
2753
+ get maps(): MappedinMap[];
2754
+ static hydrate(mapGroups: any, mappedin: Mappedin): MappedinMapGroup[];
2755
+ static fetch(mappedin: Mappedin): Promise<MappedinMapGroup[]>;
2756
+ toJSON(): any;
2757
+ }
2758
+ }
2759
+
2760
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue' {
2761
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2762
+ import type { TLogo, TOpeningHours } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
2763
+ /**
2764
+ * A {@link MappedinVenue} is a specific place (like a mall) with one or more Maps (typically representing different floors) and Locations (stores, washrooms, elevators, etc).
2765
+ *
2766
+ * A Venue can have more properties such as 'name' and 'slug'. The {@link Mappedin} 'things' object is where you would specify what properties you want to download for Venues. Only specify what you will actually use, to minmimze transfer time. Work with your Mappedin developer relations contact to set up any custom properties you need.
2767
+ *
2768
+ * See below for an example a 'things' object with available Venue properties specified:
2769
+ *
2770
+ * things: {
2771
+ * venue: ['slug', 'name', 'language', 'address', 'city', 'state', 'postal', 'telephone', 'latitude', 'longitude', 'website', 'operationHours'],
2772
+ * locations: [],
2773
+ * categories: [],
2774
+ * maps: []
2775
+ * }
2776
+ *
2777
+ *
2778
+ * @class MappedinVenue
2779
+ */
2780
+ export class MappedinVenue {
2781
+ #private;
2782
+ defaultMap: string;
2783
+ address: string;
2784
+ city: string;
2785
+ countrycode: string;
2786
+ externalId: string;
2787
+ id: string;
2788
+ latitude?: number;
2789
+ logo?: TLogo;
2790
+ longitude?: number;
2791
+ metadata?: any;
2792
+ name: string;
2793
+ operationHours?: TOpeningHours[];
2794
+ postal: string;
2795
+ slug: string;
2796
+ state: string;
2797
+ telephone: string;
2798
+ tzid: string;
2799
+ tzidOverride: string;
2800
+ utcOffset: string;
2801
+ website: string;
2802
+ constructor(data: any);
2803
+ static hydrate(data: any): MappedinVenue;
2804
+ static fetch(mappedin: Mappedin): Promise<MappedinVenue>;
2805
+ toJSON(): any;
2806
+ }
2807
+ }
2808
+
2809
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex' {
2810
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
2811
+ /**
2812
+ * A {@link MappedinVortex} is a special entity that represents a link between two or more {@link MappedinMap}s at a given {@link MappedinVenue}. It is typically something like an elevator or stairs. These are also known as Connections in some parts of the system.
2461
2813
  *
2462
2814
  * They can be marked (wheelchair) Accessible or not for pathfinding purposes. If you ask for Accessible directions, paths that include non-accessible Vortexes like Stairs will not be used.
2463
2815
  *
@@ -2949,11 +3301,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
2949
3301
  };
2950
3302
  backgroundColor?: {
2951
3303
  /**
2952
- * Foreground color of the marker when it is active
3304
+ * Background color of the marker when it is active
2953
3305
  */
2954
3306
  active?: string;
2955
3307
  /**
2956
- * Foreground color of the marker when it is inactive (grayed out due to being outranked by other labels around)
3308
+ * Background color of the marker when it is inactive (grayed out due to being outranked by other labels around)
2957
3309
  */
2958
3310
  inactive?: string;
2959
3311
  };
@@ -3006,13 +3358,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3006
3358
  RIGHT = "right"
3007
3359
  }
3008
3360
  class FloatingLabel extends BaseCollider implements ISmarterLabel {
3009
- #private;
3010
3361
  lines: number;
3011
- setColor: (textForegroundColor: any, textBackgroundColor?: any) => void;
3012
3362
  contextConfigured: boolean;
3013
3363
  fillText: TDrawFn | undefined;
3014
3364
  newStyle: {};
3015
3365
  style: TStyle;
3366
+ setColor: () => void;
3016
3367
  clearColor: () => void;
3017
3368
  zoomProportion: number;
3018
3369
  _cache: {};
@@ -3040,7 +3391,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3040
3391
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core' {
3041
3392
  import FakeGeolocation from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation';
3042
3393
  import { IStateMachine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine';
3043
- import { E_MARKER_STATE, E_BLUEDOT_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
3394
+ import { E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
3044
3395
  import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
3045
3396
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
3046
3397
  import { MappedinMap, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
@@ -3183,7 +3534,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3183
3534
  /**
3184
3535
  * Visiblity State of the BlueDot marker
3185
3536
  */
3186
- markerVisibility?: E_MARKER_STATE;
3537
+ markerVisibility?: E_BLUEDOT_MARKER_STATE;
3187
3538
  /**
3188
3539
  * Reason why BlueDot may be in the current state
3189
3540
  */
@@ -3208,6 +3559,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3208
3559
 
3209
3560
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip' {
3210
3561
  import './Mappedin.SmartTooltip.scss';
3562
+ import { COLLISION_RANKING_TIERS } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
3211
3563
  import HTMLCollider, { IHTMLCollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider';
3212
3564
  import { Vector3 } from 'three';
3213
3565
  import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
@@ -3243,7 +3595,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3243
3595
  selector?: string;
3244
3596
  map: string;
3245
3597
  padding?: number;
3246
- collisionRank?: number;
3598
+ collisionRank?: COLLISION_RANKING_TIERS;
3247
3599
  defaultAnchorType?: string;
3248
3600
  enabledAnchorTypes?: {
3249
3601
  [type: string]: boolean;
@@ -3553,533 +3905,56 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/Directive' {
3553
3905
  export default Directive;
3554
3906
  }
3555
3907
 
3556
- declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface' {
3557
- import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
3558
- import CameraControls from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraControls';
3559
- import { Vector2, Vector3 } from 'three';
3560
- import { changeListenerFn, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
3561
- import RENDER from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
3562
- import { INTERNAL_EVENT_PAYLOAD } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
3563
- import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
3564
- import Tween, { Easing } from '@tweenjs/tween.js';
3565
- export type TFocusOptionsLegacy = {
3566
- /**
3567
- * An array of Nodes to focus in on
3568
- */
3569
- nodes?: MappedinNode[];
3908
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed' {
3909
+ export class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD> {
3570
3910
  /**
3571
- * An array of Polygons to focus on. It's the center of the bounds of all Polygons, designed to fit everything into view.
3911
+ * @private
3572
3912
  */
3573
- polygons?: MappedinPolygon[] | string[];
3913
+ _subscribers: any;
3574
3914
  /**
3575
- * The duration the focus animation should last for.
3576
- * @defaultValue `100`
3915
+ * @private
3577
3916
  */
3578
- duration?: number;
3917
+ publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
3918
+ on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
3919
+ data: null;
3920
+ } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3921
+ off<EVENT_NAME extends keyof EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3579
3922
  /**
3580
- * Whether to zoom the camera in or out, or just pan it.
3581
- * @defaultValue `true`
3923
+ * @private
3582
3924
  */
3583
- changeZoom?: boolean;
3584
- /**
3585
- * The animation curve to use for zooming in. Uses the animateCamera one by default.
3586
- */
3587
- curve?: typeof Easing;
3588
- /**
3589
- * Camera tilt between 0 (top-down) to 1 (from the side)
3590
- */
3591
- tilt?: number;
3592
- /**
3593
- * Rotation in degrees
3594
- */
3595
- rotation?: number;
3596
- /**
3597
- * You can overide the {{#crossLink "MapView/focusZoomFactor:property"}}{{/crossLink}} for a specific {{#crossLink "MapView/focusOn:method"}}{{/crossLink}} call, rather than globally, if you like.
3598
- */
3599
- focusZoomFactor?: number;
3600
- /**
3601
- * Sets a floor for how close you can zoom in on the scene. If it's lower than mapView.controls.minZoom, it's ignored.
3602
- * @defaultValue: 0
3603
- */
3604
- minZoom?: number;
3605
- padding?: TPadding;
3606
- points?: any[];
3607
- };
3608
- export interface ICore {
3609
- new (container: HTMLElement, venue: Mappedin, options?: TMapViewOptions): ICore;
3610
- /**
3611
- * @internal
3612
- */
3613
- currentScale: number;
3614
- cachedPadding: any;
3615
- polygonMeshesById: any;
3616
- textLabelsByPolygonId: any;
3617
- renderer: any;
3618
- scene: any;
3619
- cameraParameters: Vector2;
3620
- resolution: Vector2;
3621
- determineNewLabelSize: any;
3622
- on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
3623
- off<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
3624
- publish<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, payload?: INTERNAL_EVENT_PAYLOAD[EVENT_NAME]): void;
3625
- /**
3626
- * Manual camera controls for MapView. Generally you should be using the functions on MapView like {{#crossLink "MapView/focusOn:method"}}{{/crossLink}},
3627
- * but if you have some cool animations in mind, you can do it with the {{#crossLink "CameraControls"}}{{/crossLink}}.
3628
- * Some of the functions don't do anything in 2D.
3629
- *
3630
- */
3631
- controls?: typeof CameraControls;
3632
- /**
3633
- * The Venue data this MapView is using.
3634
- *
3635
- * @property venue {MappedinVenue}
3636
- * @final
3637
- */
3638
- readonly venue: Mappedin;
3639
- /**
3640
- * The div MapView is using.
3641
- *
3642
- * @property container {Div}
3643
- * @final
3644
- */
3645
- readonly container: HTMLElement;
3646
- /**
3647
- * The ID of the Map currently being displayed.
3648
- *
3649
- */
3650
- readonly currentMap: string;
3651
- /**
3652
- * Change this factor to influence how much the camera zooms in on a {@link IMapView3D.focusOn} call.
3653
- *
3654
- * @property focusZoomFactor {Integer}
3655
- * @default 3
3656
- */
3657
- focusZoomFactor: number;
3658
- /**
3659
- * Returns the value you should call {@link CameraControls.setZoom} on to fit the Polygon exactly.
3660
- *
3661
- * @return The zoom level that will fit the Polygon
3662
- */
3663
- getZoomLevelForPolygon(props: {
3664
- /**
3665
- * The Polygon or Polygon ID to get the zoom level for
3666
- */
3667
- polygonOrPolygonId: MappedinPolygon | string;
3668
- }): number;
3669
- /**
3670
- * Returns the value you should call {@link CameraControls.setZoom} on to fit the {@link IMapView3D.currentMap} exactly.
3671
- *
3672
- * @return The zoom level that will fit the {@link IMapView3D.currentMap}.
3673
- */
3674
- getZoomLevelForCurrentMap(): number;
3675
- /**
3676
- * Returns the angle that points to north, in radians, from the default orientation.
3677
- *
3678
- * @return The angle to north from the default orientation, in radians.
3679
- */
3680
- getNorth(): number;
3681
- /**
3682
- * Takes an element on the DOM and rotates it such that the top is pointing north. It will rotate with the camera, staying locked
3683
- * on north. If you would like to align it do a different direction, or a different side of the element, pass in an offset. This
3684
- * is how you would do a compass rose.
3685
- *
3686
- * This will modify your element's transform.
3687
- *
3688
- * @param element The element on the page to rotate.
3689
- * @param offset The amount to offset the rotation by, in radians.
3690
- *
3691
- */
3692
- lockNorth(element: HTMLElement, offset?: number): void;
3693
- /**
3694
- * Stops the MapView from trying to rotate your element with the camera. Do this if you remove the element, or want to stop it from rotating.
3695
- * @param element The node to stop rotating. It won't reset the transform, just leave it as is.
3696
- */
3697
- unlockNorth(element: HTMLElement): void;
3698
- currentInteractionEvent: string;
3699
- interactivePolygons: any;
3700
- highlightedPolygons: any;
3701
- cameraPlane: any;
3702
- /**
3703
- * This is called when an interactive Polygon is clicked on.
3704
- * You will almost certainly want to replace this with your own function in your client app.
3705
- * Return "false" if you have consumed the event and it shouldn't bubble down to other Polygons beneath this one.
3706
- *
3707
- * @param polygonId polygonId passed in when tapping an interactive polygon
3708
- */
3709
- onPolygonClicked(polygonId: string): boolean | void;
3710
- onMapChanged(map: string): void;
3711
- getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
3712
- getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
3713
- convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
3714
- setPadding(padding: {
3715
- top: number;
3716
- left: number;
3717
- bottom: number;
3718
- right: number;
3719
- }): void;
3720
- /**
3721
- * This is fired when the user taps/clicks on the MapView without hitting an interactive Polygon.
3722
- * You will almost certainly want to replace this with your own function in your client app.
3723
- * You would probably use this to clear any Polygon highlighting, in certain situations.
3724
- */
3725
- onNothingClicked(): void;
3726
- smartCollisionEngine: any;
3727
- mapObjects: any;
3728
- /**
3729
- * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
3730
- * but if you are doing something weird, or have your own special tween for something, you will want to call this function.
3731
- * You can call it as often as you want, it just sets a flag that we need to render again, and renders a few frames if we weren't already doing that.
3732
- * Ignored in 2D.
3733
- */
3734
- tryRendering(renderMode?: typeof RENDER): void;
3735
- setMap(mapOrMapId: MappedinMap | string): Promise<null>;
3736
- getPositionNode(node: MappedinNode): Vector3;
3737
- cameraObject: any;
3738
- setBackgroundColor(color: number | string, alpha?: number): void;
3739
- mapManager: any;
3740
- focusOn(focusOptions: TFocusOptionsLegacy): Tween;
3741
- canvasWidth: number;
3742
- canvasHeight: number;
3743
- /**
3744
- * Resets the MapView to the default state.
3745
- */
3746
- resetState(): void;
3747
3925
  destroy(): void;
3748
3926
  }
3749
3927
  }
3750
3928
 
3751
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed' {
3752
- export class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD> {
3753
- /**
3754
- * @private
3755
- */
3756
- _subscribers: any;
3757
- /**
3758
- * @private
3759
- */
3760
- publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
3761
- on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
3762
- data: null;
3763
- } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3764
- off<EVENT_NAME extends keyof EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3765
- /**
3766
- * @private
3767
- */
3768
- destroy(): void;
3769
- }
3770
- }
3771
-
3772
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings' {
3773
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3774
- import type { TLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
3775
- /** One of these contains all the venue's rankings. * */
3776
- export class MappedinLocationRankings {
3777
- #private;
3778
- constructor(data: any);
3779
- locations: TLocation[];
3780
- static hydrate(locationRankings: any): MappedinLocationRankings;
3781
- static fetch(mappedin: Mappedin): Promise<MappedinLocationRankings>;
3782
- toJSON(): any;
3783
- }
3784
- }
3785
-
3786
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationState' {
3787
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3788
- /**
3789
- * A location state, that can belong to any number of {@link MappedinLocation}s.
3790
- * @class MappedinLocationState
3791
- */
3792
- export class MappedinLocationState {
3793
- #private;
3794
- constructor(data: any);
3795
- static hydrate(locationStates: any): MappedinLocationState[];
3796
- id: string;
3797
- name: string;
3798
- value: string;
3799
- static fetch(mappedin: Mappedin): Promise<MappedinLocationState[]>;
3800
- toJSON(): any;
3801
- }
3802
- }
3803
-
3804
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme' {
3805
- import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3806
- export class MappedinTheme {
3807
- #private;
3808
- /**
3809
- * Theme ID.
3810
- *
3811
- * @property id {string}
3812
- */
3813
- id: string;
3814
- constructor(data: any);
3815
- static hydrate(themes: any): MappedinTheme[];
3816
- static fetch(mappedin: Mappedin): Promise<MappedinTheme[]>;
3817
- toJSON(): any;
3818
- }
3819
- }
3820
-
3821
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
3822
- import { ISmartCollisionEngine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
3823
- import { Vector3 } from 'three';
3824
- export type TRange = [number, number, number, number];
3825
- type TCustomCollider<T> = ICollider & T;
3826
- export type TColliderStrategyProps = {
3827
- x: number;
3828
- y: number;
3829
- totalHeight?: number;
3830
- totalWidth?: number;
3831
- };
3832
- export type TColliderStrategy = {
3833
- name: string;
3834
- getBoundingBox: (TColliderStrategyProps: any) => TRange;
3835
- onStrategySelected: (collider: TCustomCollider<any>) => void;
3836
- };
3837
- export type TDimensions = {
3838
- width: number;
3839
- height: number;
3840
- };
3841
- export enum EColliderAction {
3842
- 'initial' = 0,
3843
- 'show' = 1,
3844
- 'hide' = 2
3845
- }
3846
- export interface ICollider {
3847
- dimensions: TDimensions;
3848
- screenPosition: [number, number];
3849
- currentStrategyName: string | null;
3850
- options?: Record<string, unknown>;
3851
- mapId: string;
3852
- visible: boolean;
3853
- rank: number;
3854
- _dirty?: boolean;
3855
- id: string;
3856
- setAction: (action: EColliderAction) => void;
3857
- action?: EColliderAction;
3858
- position: Vector3;
3859
- __engine?: ISmartCollisionEngine;
3860
- enable: () => void;
3861
- disable: () => void;
3862
- enabled: boolean;
3863
- promote?: () => void;
3864
- demote?: () => void;
3865
- setPriority?: (rank: number) => void;
3866
- resetPriority?: () => void;
3867
- readonly strategies: TColliderStrategy[];
3868
- colliderDidMount?: () => void;
3869
- colliderDidNotFindAHome?: () => void;
3870
- colliderDidGoOffscreen?: () => void;
3871
- colliderDidGoOutsideGrid?: () => void;
3872
- colliderDidUpdateVisiblity?: () => void;
3873
- colliderDidUpdatePosition?: (x: number, y: number) => void;
3874
- }
3875
- class BaseCollider implements ICollider {
3876
- __engine: any;
3877
- _initialRank: number;
3878
- screenPosition: [number, number];
3879
- currentStrategyName: null;
3880
- enabled: boolean;
3881
- options: any;
3882
- mapId: string;
3883
- id: string;
3884
- action: EColliderAction;
3885
- rank: number;
3886
- visible: boolean;
3887
- position: Vector3;
3888
- dimensions: {
3889
- width: number;
3890
- height: number;
3891
- };
3892
- flipIfNeeded(): void;
3893
- constructor(options: any);
3894
- setPriority(rank: any): void;
3895
- setAction(action: any): void;
3896
- resetPriority(): void;
3897
- promote(): void;
3898
- demote(): void;
3899
- get strategies(): TColliderStrategy[];
3900
- removeSelf(): void;
3901
- enable(): void;
3902
- disable(): void;
3903
- colliderDidUpdatePosition(x: any, y: any): void;
3904
- colliderDidNotFindAHome(): void;
3905
- colliderDidMount(): void;
3906
- colliderDidUpdateVisiblity(): void;
3907
- }
3908
- export default BaseCollider;
3909
- }
3910
-
3911
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave-text' {
3912
- export type TDrawFn = (ctx: CanvasRenderingContext2D, x: number, y: number) => void;
3913
- type TShave = (str: string, size: number, maxWidth: number, maxLines?: number, lineHeight?: number, options?: {
3914
- strokeText: boolean;
3915
- }) => {
3916
- maxWidth: number;
3917
- maxHeight: number;
3918
- lines: number;
3919
- draw: TDrawFn;
3920
- };
3921
- export const shaveText: TShave;
3922
- export {};
3923
- }
3924
-
3925
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
3926
- export default FakeGeolocation;
3927
- class FakeGeolocation {
3928
- constructor(options: any);
3929
- active: boolean;
3930
- positions: any[];
3931
- positionIndex: number;
3932
- timerList: any[];
3933
- timeElapsed: number;
3934
- startTime: number | undefined;
3935
- startPos: number;
3936
- endPos: number;
3937
- smoothingType: any;
3938
- isActive(): boolean;
3939
- setCallbacks(success: any, error: any, options: any): void;
3940
- watchPosition(success: any, error: any, options: any): void;
3941
- sendPositionResponse(position: any): void;
3942
- start(): void;
3943
- pause(): void;
3944
- speed: any;
3945
- setPositions(positions: any): void;
3946
- successCallback: any;
3947
- errorCallback: any;
3948
- options: any;
3949
- clearWatch(): void;
3950
- reset(): void;
3951
- }
3952
- }
3953
-
3954
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
3955
- import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
3956
- import { E_BLUEDOT_STATE, E_MARKER_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
3957
- /**
3958
- What we just learned about the user's position.
3959
- */
3960
- export enum ACTION {
3961
- gotPosition = 0,
3962
- gotPositionWithFloor = 1,
3963
- gotError = 2,
3964
- timedOut = 3,
3965
- disabledBlueDot = 4,
3966
- enabledBlueDot = 5
3967
- }
3968
- export interface IStateMachine extends IPubSub {
3969
- state: E_BLUEDOT_STATE;
3970
- markerState: E_MARKER_STATE | undefined;
3971
- transition: (action: ACTION) => void;
3972
- reset: () => void;
3973
- }
3974
- export enum STATEMACHINE_EVENT {
3975
- stateChanged = 0,
3976
- markerStateChanged = 1
3977
- }
3978
- const StateMachine: () => IStateMachine & IPubSub;
3979
- export default StateMachine;
3980
- }
3981
-
3982
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub' {
3983
- type TChangeEventData = {
3984
- oldValue: any;
3985
- newValue: any;
3986
- };
3987
- type TListenerFn = (data: TChangeEventData) => void;
3988
- export interface IPubSub {
3989
- publish: (eventName: any, data: TChangeEventData) => void;
3990
- on: (eventName: any, listenerFn: TListenerFn) => void;
3991
- off: (eventName: any, listenerFn: TListenerFn) => void;
3992
- destroy: () => void;
3993
- _subscribers: {
3994
- [eventName in any]?: TListenerFn[];
3995
- };
3996
- }
3997
- export class PubSub {
3998
- _subscribers: any;
3999
- publish(eventName: any, data: any): void;
4000
- on(eventName: any, fn: any): void;
4001
- off(eventName: any, fn: any): void;
4002
- destroy(): void;
4003
- }
4004
- export const PubSubLegacy: () => void;
4005
- export function tinyObservable<T>(store: T): T & IPubSub;
4006
- export {};
4007
- }
4008
-
4009
- declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4010
- import Search from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search';
4011
- import Analytics from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics';
4012
- import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4013
- import { getVenue, Mappedin, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4014
- import { PositionUpdater } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4015
- import type { TMapViewOptions, TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4016
- import { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4017
- import { MARKER_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Marker';
4018
- export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
4019
- export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
4020
- export type TMappedinInitializeOutput = {
4021
- mapView: MapView;
4022
- venue: Mappedin;
4023
- };
4024
- type _TGetVenueOptions = TGetVenueOptions & {
4025
- useVenueBundle?: false | undefined;
4026
- };
4027
- type _TGetVenueBundleOptions = TGetVenueBundleOptions & {
4028
- useVenueBundle: true;
4029
- };
4030
- type TMappedinInitializeOptions = {
4031
- mapView?: TMapViewOptions;
4032
- venue: _TGetVenueOptions | _TGetVenueBundleOptions;
4033
- firstMapSelector?: (venue: Mappedin) => MappedinMap | MappedinMap['id'];
4034
- };
3929
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraControls' {
3930
+ export default CameraControls;
4035
3931
  /**
3932
+ * The advanced, manual camera controls for {{#crossLink "MapView"}}{{/crossLink}}. You probably don't need to use this at all, instead relying on the MapView's {{#crossLink "MapView/focusOn:method"}}{{/crossLink}}, {{#crossLink "MapView/resetCamera:method"}}{{/crossLink}} and built in touch/mouse controls.
3933
+ * This class will let you do things like change the min/max zoom, tilt, and pan, attach to camera events, and move/animate the camera to specifc points.
4036
3934
  *
4037
- * @param el HTML Element where the mapView should be placed
4038
- * @param venue Venue Object returned by {@link getVenue}
4039
- * @param options MapView Options
4040
- * @returns
3935
+ * The camera works by setting an anchor point on the scene at ground level and pointing the camera at it. {{#crossLink "CameraControls/zoom:method"}}{{/crossLink}} controls how far the camera is from the anchor, and {{#crossLink "CameraControls/tilt:method"}}{{/crossLink}}/{{#crossLink "CameraControls/rotate:method"}}{{/crossLink}} controls the angle the camera is rotated about it.
3936
+ * The camera will always be pointed directly at the anchor point. {{#crossLink "CameraControls/pan:method"}}{{/crossLink}} or {{#crossLink "CameraControls/setPosition:method"}}{{/crossLink}} will move that anchor around on the 2D ground plane.
3937
+ *
3938
+ * Created for you automatically with a MapView, don't re-create yourself.
3939
+ * @type {any}
3940
+ *
3941
+ * @class CameraControls
4041
3942
  */
4042
- function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
4043
- export { COLLISION_RANKING_TIERS, STATE, E_SDK_EVENT, E_BLUEDOT_STATE_REASON, E_MARKER_STATE, E_BLUEDOT_EVENT, E_BLUEDOT_STATE, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4044
- export { Search, getVenue, showVenue, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
4045
- export type { TMappedinDirective } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinDirections';
4046
- export type { TMapViewOptions, TMappedinInitializeOptions, TJourneyOptions };
4047
- export type { TBlueDotPositionUpdate, TBlueDotStateChange, TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4048
- export * from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4049
- export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4050
- export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4051
- export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4052
- export type { TGetVenueOptions, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4053
- export { Mappedin, MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue';
3943
+ let CameraControls: any;
4054
3944
  }
4055
3945
 
4056
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider' {
4057
- import BaseCollider, { ICollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4058
- export type TRange = [number, number, number, number];
4059
- export type TDimensions = {
4060
- width: number;
4061
- height: number;
4062
- };
4063
- export interface IHTMLCollider extends ICollider {
4064
- containerEl: any;
4065
- contentEl: any;
4066
- }
4067
- class HTMLCollider extends BaseCollider {
4068
- contentEl: any;
4069
- containerEl: any;
4070
- removeSelf(): void;
4071
- enable(): void;
4072
- disable(): void;
4073
- colliderDidGoOffscreen(): void;
4074
- colliderDidNotFindAHome(): void;
4075
- colliderDidUpdatePosition(x: any, y: any): void;
4076
- colliderDidMount(): void;
4077
- colliderDidUpdateVisiblity(): void;
3946
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
3947
+ export default RENDER;
3948
+ namespace RENDER {
3949
+ const ANIMATED: string;
3950
+ const ALWAYS_ON_TOP: string;
3951
+ const ALL: string;
3952
+ const TWEEN: string;
4078
3953
  }
4079
- export default HTMLCollider;
4080
3954
  }
4081
3955
 
4082
3956
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView' {
3957
+ import './internal/Mappedin.css';
4083
3958
  import { Mappedin, MappedinCoordinate, MappedinLocation, MappedinMap, MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue';
4084
3959
  import { E_SDK_EVENT_PAYLOAD, TCreateCustomInnerHTMLTooltipOptions, TCreateCustomTooltipOptions, TCreateMarkerOptions, TCreateTextTooltipOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFloatingLabelPolygonOptions, TMapViewOptions, TPathOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4085
3960
  import { E_SDK_EVENT, STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
@@ -4408,6 +4283,316 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView' {
4408
4283
  }
4409
4284
  }
4410
4285
 
4286
+ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4287
+ import Search from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search';
4288
+ import Analytics from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics';
4289
+ import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4290
+ import { getVenue, getVenueBundle, Mappedin, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4291
+ import { PositionUpdater } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4292
+ import type { TMapViewOptions, TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4293
+ import { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4294
+ import { MARKER_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Marker';
4295
+ export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
4296
+ export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
4297
+ export type TMappedinInitializeOutput = {
4298
+ mapView: MapView;
4299
+ venue: Mappedin;
4300
+ };
4301
+ type _TGetVenueOptions = TGetVenueOptions & {
4302
+ useVenueBundle?: false | undefined;
4303
+ };
4304
+ type _TGetVenueBundleOptions = TGetVenueBundleOptions & {
4305
+ useVenueBundle: true;
4306
+ };
4307
+ type TMappedinInitializeOptions = {
4308
+ mapView?: TMapViewOptions;
4309
+ venue: _TGetVenueOptions | _TGetVenueBundleOptions;
4310
+ firstMapSelector?: (venue: Mappedin) => MappedinMap | MappedinMap['id'];
4311
+ };
4312
+ /**
4313
+ *
4314
+ * @param el HTML Element where the mapView should be placed
4315
+ * @param venue Venue Object returned by {@link getVenue}
4316
+ * @param options MapView Options
4317
+ * @returns
4318
+ */
4319
+ function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
4320
+ 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';
4321
+ export { Search, getVenue, getVenueBundle, showVenue, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
4322
+ export type { TMappedinDirective } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinDirections';
4323
+ export type { TMapViewOptions, TMappedinInitializeOptions, TJourneyOptions };
4324
+ export type { TBlueDotPositionUpdate, TBlueDotStateChange, TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4325
+ export * from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4326
+ export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4327
+ export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4328
+ export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4329
+ export type { TGetVenueOptions, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4330
+ export { Mappedin, MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue';
4331
+ }
4332
+
4333
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings' {
4334
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
4335
+ import type { TLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
4336
+ /** One of these contains all the venue's rankings. * */
4337
+ export class MappedinLocationRankings {
4338
+ #private;
4339
+ constructor(data: any);
4340
+ locations: TLocation[];
4341
+ static hydrate(locationRankings: any): MappedinLocationRankings;
4342
+ static fetch(mappedin: Mappedin): Promise<MappedinLocationRankings>;
4343
+ toJSON(): any;
4344
+ }
4345
+ }
4346
+
4347
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationState' {
4348
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
4349
+ /**
4350
+ * A location state, that can belong to any number of {@link MappedinLocation}s.
4351
+ * @class MappedinLocationState
4352
+ */
4353
+ export class MappedinLocationState {
4354
+ #private;
4355
+ constructor(data: any);
4356
+ static hydrate(locationStates: any): MappedinLocationState[];
4357
+ id: string;
4358
+ name: string;
4359
+ value: string;
4360
+ static fetch(mappedin: Mappedin): Promise<MappedinLocationState[]>;
4361
+ toJSON(): any;
4362
+ }
4363
+ }
4364
+
4365
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme' {
4366
+ import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
4367
+ export class MappedinTheme {
4368
+ #private;
4369
+ /**
4370
+ * Theme ID.
4371
+ *
4372
+ * @property id {string}
4373
+ */
4374
+ id: string;
4375
+ constructor(data: any);
4376
+ static hydrate(themes: any): MappedinTheme[];
4377
+ static fetch(mappedin: Mappedin): Promise<MappedinTheme[]>;
4378
+ toJSON(): any;
4379
+ }
4380
+ }
4381
+
4382
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
4383
+ import { ISmartCollisionEngine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
4384
+ import { Vector3 } from 'three';
4385
+ export type TRange = [number, number, number, number];
4386
+ type TCustomCollider<T> = ICollider & T;
4387
+ export type TColliderStrategyProps = {
4388
+ x: number;
4389
+ y: number;
4390
+ totalHeight?: number;
4391
+ totalWidth?: number;
4392
+ };
4393
+ export type TColliderStrategy = {
4394
+ name: string;
4395
+ getBoundingBox: (TColliderStrategyProps: any) => TRange;
4396
+ onStrategySelected: (collider: TCustomCollider<any>) => void;
4397
+ };
4398
+ export type TDimensions = {
4399
+ width: number;
4400
+ height: number;
4401
+ };
4402
+ export enum EColliderAction {
4403
+ 'initial' = 0,
4404
+ 'show' = 1,
4405
+ 'hide' = 2
4406
+ }
4407
+ export interface ICollider {
4408
+ dimensions: TDimensions;
4409
+ screenPosition: [number, number];
4410
+ currentStrategyName: string | null;
4411
+ options?: Record<string, unknown>;
4412
+ mapId: string;
4413
+ visible: boolean;
4414
+ rank: number;
4415
+ _dirty?: boolean;
4416
+ id: string;
4417
+ setAction: (action: EColliderAction) => void;
4418
+ action?: EColliderAction;
4419
+ position: Vector3;
4420
+ __engine?: ISmartCollisionEngine;
4421
+ enable: () => void;
4422
+ disable: () => void;
4423
+ enabled: boolean;
4424
+ promote?: () => void;
4425
+ demote?: () => void;
4426
+ setPriority?: (rank: number) => void;
4427
+ resetPriority?: () => void;
4428
+ readonly strategies: TColliderStrategy[];
4429
+ colliderDidMount?: () => void;
4430
+ colliderDidNotFindAHome?: () => void;
4431
+ colliderDidGoOffscreen?: () => void;
4432
+ colliderDidGoOutsideGrid?: () => void;
4433
+ colliderDidUpdateVisiblity?: () => void;
4434
+ colliderDidUpdatePosition?: (x: number, y: number) => void;
4435
+ }
4436
+ class BaseCollider implements ICollider {
4437
+ __engine: any;
4438
+ _initialRank: number;
4439
+ screenPosition: [number, number];
4440
+ currentStrategyName: null;
4441
+ enabled: boolean;
4442
+ options: any;
4443
+ mapId: string;
4444
+ id: string;
4445
+ action: EColliderAction;
4446
+ rank: number;
4447
+ visible: boolean;
4448
+ position: Vector3;
4449
+ dimensions: {
4450
+ width: number;
4451
+ height: number;
4452
+ };
4453
+ flipIfNeeded(): void;
4454
+ constructor(options: any);
4455
+ setPriority(rank: any): void;
4456
+ setAction(action: any): void;
4457
+ resetPriority(): void;
4458
+ promote(): void;
4459
+ demote(): void;
4460
+ get strategies(): TColliderStrategy[];
4461
+ removeSelf(): void;
4462
+ enable(): void;
4463
+ disable(): void;
4464
+ colliderDidUpdatePosition(x: any, y: any): void;
4465
+ colliderDidNotFindAHome(): void;
4466
+ colliderDidMount(): void;
4467
+ colliderDidUpdateVisiblity(): void;
4468
+ }
4469
+ export default BaseCollider;
4470
+ }
4471
+
4472
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave-text' {
4473
+ export type TDrawFn = (ctx: CanvasRenderingContext2D, x: number, y: number) => void;
4474
+ type TShave = (str: string, size: number, maxWidth: number, maxLines?: number, lineHeight?: number, options?: {
4475
+ strokeText: boolean;
4476
+ }) => {
4477
+ maxWidth: number;
4478
+ maxHeight: number;
4479
+ lines: number;
4480
+ draw: TDrawFn;
4481
+ };
4482
+ export const shaveText: TShave;
4483
+ export {};
4484
+ }
4485
+
4486
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
4487
+ export default FakeGeolocation;
4488
+ class FakeGeolocation {
4489
+ constructor(options: any);
4490
+ active: boolean;
4491
+ positions: any[];
4492
+ positionIndex: number;
4493
+ timerList: any[];
4494
+ timeElapsed: number;
4495
+ startTime: number | undefined;
4496
+ startPos: number;
4497
+ endPos: number;
4498
+ smoothingType: any;
4499
+ isActive(): boolean;
4500
+ setCallbacks(success: any, error: any, options: any): void;
4501
+ watchPosition(success: any, error: any, options: any): void;
4502
+ sendPositionResponse(position: any): void;
4503
+ start(): void;
4504
+ pause(): void;
4505
+ speed: any;
4506
+ setPositions(positions: any): void;
4507
+ successCallback: any;
4508
+ errorCallback: any;
4509
+ options: any;
4510
+ clearWatch(): void;
4511
+ reset(): void;
4512
+ }
4513
+ }
4514
+
4515
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
4516
+ import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
4517
+ import { E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4518
+ /**
4519
+ What we just learned about the user's position.
4520
+ */
4521
+ export enum ACTION {
4522
+ gotPosition = 0,
4523
+ gotPositionWithFloor = 1,
4524
+ gotError = 2,
4525
+ timedOut = 3,
4526
+ disabledBlueDot = 4,
4527
+ enabledBlueDot = 5
4528
+ }
4529
+ export interface IStateMachine extends IPubSub {
4530
+ state: E_BLUEDOT_STATE;
4531
+ markerState: E_BLUEDOT_MARKER_STATE | undefined;
4532
+ transition: (action: ACTION) => void;
4533
+ reset: () => void;
4534
+ }
4535
+ export enum STATEMACHINE_EVENT {
4536
+ stateChanged = 0,
4537
+ markerStateChanged = 1
4538
+ }
4539
+ const StateMachine: () => IStateMachine & IPubSub;
4540
+ export default StateMachine;
4541
+ }
4542
+
4543
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub' {
4544
+ type TChangeEventData = {
4545
+ oldValue: any;
4546
+ newValue: any;
4547
+ };
4548
+ type TListenerFn = (data: TChangeEventData) => void;
4549
+ export interface IPubSub {
4550
+ publish: (eventName: any, data: TChangeEventData) => void;
4551
+ on: (eventName: any, listenerFn: TListenerFn) => void;
4552
+ off: (eventName: any, listenerFn: TListenerFn) => void;
4553
+ destroy: () => void;
4554
+ _subscribers: {
4555
+ [eventName in any]?: TListenerFn[];
4556
+ };
4557
+ }
4558
+ export class PubSub {
4559
+ _subscribers: any;
4560
+ publish(eventName: any, data: any): void;
4561
+ on(eventName: any, fn: any): void;
4562
+ off(eventName: any, fn: any): void;
4563
+ destroy(): void;
4564
+ }
4565
+ export const PubSubLegacy: () => void;
4566
+ export function tinyObservable<T>(store: T): T & IPubSub;
4567
+ export {};
4568
+ }
4569
+
4570
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider' {
4571
+ import BaseCollider, { ICollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4572
+ export type TRange = [number, number, number, number];
4573
+ export type TDimensions = {
4574
+ width: number;
4575
+ height: number;
4576
+ };
4577
+ export interface IHTMLCollider extends ICollider {
4578
+ containerEl: any;
4579
+ contentEl: any;
4580
+ }
4581
+ class HTMLCollider extends BaseCollider {
4582
+ contentEl: any;
4583
+ containerEl: any;
4584
+ removeSelf(): void;
4585
+ enable(): void;
4586
+ disable(): void;
4587
+ colliderDidGoOffscreen(): void;
4588
+ colliderDidNotFindAHome(): void;
4589
+ colliderDidUpdatePosition(x: any, y: any): void;
4590
+ colliderDidMount(): void;
4591
+ colliderDidUpdateVisiblity(): void;
4592
+ }
4593
+ export default HTMLCollider;
4594
+ }
4595
+
4411
4596
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Journey' {
4412
4597
  import type Directive from '@mappedin/react-native-sdk/core/packages/navigator/Directive';
4413
4598
  import type INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
@@ -4520,98 +4705,9 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IL
4520
4705
  export default ILocation;
4521
4706
  }
4522
4707
 
4523
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraControls' {
4524
- export default CameraControls;
4525
- /**
4526
- * The advanced, manual camera controls for {{#crossLink "MapView"}}{{/crossLink}}. You probably don't need to use this at all, instead relying on the MapView's {{#crossLink "MapView/focusOn:method"}}{{/crossLink}}, {{#crossLink "MapView/resetCamera:method"}}{{/crossLink}} and built in touch/mouse controls.
4527
- * This class will let you do things like change the min/max zoom, tilt, and pan, attach to camera events, and move/animate the camera to specifc points.
4528
- *
4529
- * The camera works by setting an anchor point on the scene at ground level and pointing the camera at it. {{#crossLink "CameraControls/zoom:method"}}{{/crossLink}} controls how far the camera is from the anchor, and {{#crossLink "CameraControls/tilt:method"}}{{/crossLink}}/{{#crossLink "CameraControls/rotate:method"}}{{/crossLink}} controls the angle the camera is rotated about it.
4530
- * The camera will always be pointed directly at the anchor point. {{#crossLink "CameraControls/pan:method"}}{{/crossLink}} or {{#crossLink "CameraControls/setPosition:method"}}{{/crossLink}} will move that anchor around on the 2D ground plane.
4531
- *
4532
- * Created for you automatically with a MapView, don't re-create yourself.
4533
- * @type {any}
4534
- *
4535
- * @class CameraControls
4536
- */
4537
- let CameraControls: any;
4538
- }
4539
-
4540
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
4541
- export default RENDER;
4542
- namespace RENDER {
4543
- const ANIMATED: string;
4544
- const ALWAYS_ON_TOP: string;
4545
- const ALL: string;
4546
- const TWEEN: string;
4547
- }
4548
- }
4549
-
4550
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine' {
4551
- import { Vector3 } from 'three';
4552
- import './Mappedin.SmartCollisionEngine.scss';
4553
- import { ICollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4554
- export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
4555
- type TProjectFn = ({ position, mapId }: {
4556
- position: Vector3;
4557
- mapId: string;
4558
- }) => [number, number];
4559
- export interface ISmartCollisionEngine {
4560
- add: (colliderId: string, collider: ICollider) => void;
4561
- remove: (colliderId: string) => void;
4562
- init: (container: HTMLElement, projectFn: TProjectFn) => void;
4563
- resize: (container: HTMLElement) => void;
4564
- resort: () => void;
4565
- updatePosition: () => void;
4566
- updateVisibility: () => void;
4567
- makeCollidersDirty: () => void;
4568
- update: () => void;
4569
- destroy: () => void;
4570
- makeCollidersDirtyThrottled: (time: number) => void;
4571
- _makeCollidersDirtyThrottled?: [() => void, number];
4572
- }
4573
- const SmartCollisionEngine: () => ISmartCollisionEngine;
4574
- export default SmartCollisionEngine;
4575
- }
4576
-
4577
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search' {
4578
- export default Search;
4579
- /**
4580
- * A class to access the Mappedin Search API. This will be created for you as part of Mappedin.{{#crossLink "Mappedin/initailize:method"}}{{/crossLink}}, but you can also create one manually.
4581
- *
4582
- * @class Search
4583
- * @type {any}
4584
- * @param options {Object} A list of configuration options for the search API.
4585
- @param [options.venue] {String} The venue slug to search for
4586
- @param [options.key] {String} Your search key
4587
- @param [options.secret] {String} Your search secret
4588
- @param [options.smart] {Boolean} Whether the new Smart Search should be used.
4589
- @param [options.endpoint] {String} The endpoint for search.
4590
- @param [options.locations] {Array} Array of MappedinLocations for this venue. This is optional, but will enable fallback search.
4591
- @param [options.categories] {Array} Array of MappedinCategorys for this venue. This is optional, but will enable fallback search.
4592
- */
4593
- let Search: any;
4594
- }
4595
-
4596
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics' {
4597
- export default Analytics;
4598
- /**
4599
- * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
4600
- * This will be created for you as part of Mappedin.{{#crossLink "Mappedin/initialize:method"}}{{/crossLink}}, but you can also create one manually. You are mostly going to use `locationSelected`.
4601
- *
4602
- * @type {any}
4603
- *
4604
- * @class Analytics
4605
- * @param options {Object} A list of configuration options for the Analytics API.
4606
- * @param [options.key] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
4607
- * @param [options.secret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
4608
- * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
4609
- */
4610
- var Analytics: any;
4611
- }
4612
-
4613
4708
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Marker' {
4614
4709
  import './Mappedin.Marker.scss';
4710
+ import { COLLISION_RANKING_TIERS } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4615
4711
  import HTMLCollider, { IHTMLCollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider';
4616
4712
  import { Vector3 } from 'three';
4617
4713
  import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
@@ -4641,7 +4737,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4641
4737
  mapId: string;
4642
4738
  id?: string;
4643
4739
  anchor?: MARKER_ANCHOR;
4644
- collisionRank?: number;
4740
+ collisionRank?: COLLISION_RANKING_TIERS;
4645
4741
  };
4646
4742
  type TTooltipStyle = {
4647
4743
  top?: string;
@@ -4847,6 +4943,69 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4847
4943
  import { Vector3 } from "three/src/math/Vector3";
4848
4944
  }
4849
4945
 
4946
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search' {
4947
+ export default Search;
4948
+ /**
4949
+ * A class to access the Mappedin Search API. This will be created for you as part of Mappedin.{{#crossLink "Mappedin/initailize:method"}}{{/crossLink}}, but you can also create one manually.
4950
+ *
4951
+ * @class Search
4952
+ * @type {any}
4953
+ * @param options {Object} A list of configuration options for the search API.
4954
+ @param [options.venue] {String} The venue slug to search for
4955
+ @param [options.key] {String} Your search key
4956
+ @param [options.secret] {String} Your search secret
4957
+ @param [options.smart] {Boolean} Whether the new Smart Search should be used.
4958
+ @param [options.endpoint] {String} The endpoint for search.
4959
+ @param [options.locations] {Array} Array of MappedinLocations for this venue. This is optional, but will enable fallback search.
4960
+ @param [options.categories] {Array} Array of MappedinCategorys for this venue. This is optional, but will enable fallback search.
4961
+ */
4962
+ let Search: any;
4963
+ }
4964
+
4965
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics' {
4966
+ export default Analytics;
4967
+ /**
4968
+ * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
4969
+ * This will be created for you as part of Mappedin.{{#crossLink "Mappedin/initialize:method"}}{{/crossLink}}, but you can also create one manually. You are mostly going to use `locationSelected`.
4970
+ *
4971
+ * @type {any}
4972
+ *
4973
+ * @class Analytics
4974
+ * @param options {Object} A list of configuration options for the Analytics API.
4975
+ * @param [options.key] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
4976
+ * @param [options.secret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
4977
+ * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
4978
+ */
4979
+ var Analytics: any;
4980
+ }
4981
+
4982
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine' {
4983
+ import { Vector3 } from 'three';
4984
+ import './Mappedin.SmartCollisionEngine.scss';
4985
+ import { ICollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4986
+ export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
4987
+ type TProjectFn = ({ position, mapId }: {
4988
+ position: Vector3;
4989
+ mapId: string;
4990
+ }) => [number, number];
4991
+ export interface ISmartCollisionEngine {
4992
+ add: (colliderId: string, collider: ICollider) => void;
4993
+ remove: (colliderId: string) => void;
4994
+ init: (container: HTMLElement, projectFn: TProjectFn) => void;
4995
+ resize: (container: HTMLElement) => void;
4996
+ resort: () => void;
4997
+ updatePosition: () => void;
4998
+ updateVisibility: () => void;
4999
+ makeCollidersDirty: () => void;
5000
+ update: () => void;
5001
+ destroy: () => void;
5002
+ makeCollidersDirtyThrottled: (time: number) => void;
5003
+ _makeCollidersDirtyThrottled?: [() => void, number];
5004
+ }
5005
+ const SmartCollisionEngine: () => ISmartCollisionEngine;
5006
+ export default SmartCollisionEngine;
5007
+ }
5008
+
4850
5009
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.TaskScheduler' {
4851
5010
  export namespace UPDATE_ORDERING {
4852
5011
  const BEFORE_CAMERA: number;