@mappedin/react-native-sdk 5.0.0-beta.3 → 5.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  // ../react-native-webview/lib/WebViewTypes
6
6
  // ../three
7
7
  // ../@tweenjs/tween.js
8
+ // ../minisearch
8
9
  // ../geojson
9
10
 
10
11
  declare module '@mappedin/react-native-sdk' {
@@ -14,19 +15,21 @@ declare module '@mappedin/react-native-sdk' {
14
15
  export type { TMiMiniMapProps } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap';
15
16
  export type { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
16
17
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
17
- export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
18
+ export type { TGetVenueOptions, TGetVenueBundleOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineSearchOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
18
19
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
19
20
  export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
20
21
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
21
22
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
22
- 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';
23
+ export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions, TBlueDotPositionUpdate, TBlueDotStateChange } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
23
24
  export type { TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptionsBase };
24
25
  export type TEnableBlueDotOptions = Omit<TEnableBlueDotOptionsBase, 'positionUpdater' | 'geolocationSource'>;
25
26
  export type TLabelAllLocationCommonOptions = Omit<TLabelAllLocationCommonOptionsBase, 'sortFunction' | 'translationMap'>;
27
+ export type { TMapViewRNOptions } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
28
+ export type { TMiMapViewVenueOptions } from '@mappedin/react-native-sdk/wrappers/common';
26
29
  export type { IDirectionsResult, MappedinDirections, TMappedinDirective } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
27
- export type { TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
30
+ export type { TShowVenueOptions, E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
28
31
  export { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
29
- export { E_GET_DIRECTIONS_MESSAGES, BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
32
+ export { BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
30
33
  }
31
34
 
32
35
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView' {
@@ -34,8 +37,9 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
34
37
  import { TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
35
38
  import { STATE } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
36
39
  import { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
37
- import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
40
+ import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
38
41
  import { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
42
+ import { TMapViewRNOptions } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
39
43
  export type TMiMapViewProps = {
40
44
  /**
41
45
  * The MapViewStore instance will be returned here
@@ -44,25 +48,12 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
44
48
  /**
45
49
  * Options to initialze MiMapView with
46
50
  */
47
- options: TMiMapViewOptions & {
48
- /**
49
- * Use a bundle for venue loading and cache it for faster subsequent loading
50
- * @beta
51
- */
52
- useBundle?: boolean;
53
- loadOptions?: {
54
- /**
55
- * By default, the SDK will merge all geometries by material to reduce the number of draw calls to the GPU
56
- * To rever back to using a single geometry for every polygon, pass `MAP_RENDER_MODE.MULTI_GEOMETRY`
57
- */
58
- mapRenderStrategy?: MAP_RENDER_MODE;
59
- };
60
- };
51
+ options: TMiMapViewOptions & TMapViewRNOptions;
61
52
  /**
62
53
  * Venue Data to render inside the MapView. This is returned by {@link getVenue} or {@link getVenueBundle}
63
54
  */
64
55
  venueData?: Mappedin;
65
- style?: any;
56
+ style?: React.CSSProperties;
66
57
  /**
67
58
  * Called when an interactive polygon is clicked
68
59
  */
@@ -125,7 +116,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
125
116
  /**
126
117
  * @category Component
127
118
  */
128
- export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "style" | "options" | "onFirstMapLoaded" | "onDataLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
119
+ export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "onFirstMapLoaded" | "venueData" | "options" | "style" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onDataLoaded" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
129
120
  }
130
121
 
131
122
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap' {
@@ -176,8 +167,8 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniM
176
167
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store' {
177
168
  import { RNMappedinController } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MappedinController';
178
169
  import { TReactNativeFlatLabelAllLocations, TReactNativeFlatLabelAllLocationsLegacy, TReactNativeFlatLabelPolygonOptions, TReactNativeFloatingLabelPolygonOptions, TSerializableJourneyOptions } from '@mappedin/react-native-sdk/wrappers/common';
179
- import type { TGeolocationObject, TEnableBlueDotOptions, TPathOptions, TFocusOnOptions, TAnimatePositionOptions, TLabelAllLocationFloatingLabelOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
180
- 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';
170
+ import type { TGeolocationObject, TEnableBlueDotOptions, TPathOptions, TFocusOnOptions, TAnimatePositionOptions, TLabelAllLocationFloatingLabelOptions, TMappedinOfflineSearchOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
171
+ import { STATE, Mappedin, MappedinNode, MappedinMap, MappedinLocation, MappedinDirections, MappedinCategory, MappedinPolygon, TGetVenueOptions, TShowVenueOptions, MappedinCoordinate, MappedinDestinationSet, TCreateMarkerOptions, E_BLUEDOT_STATE, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
181
172
  import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
182
173
  export class MapViewStore extends RNMappedinController {
183
174
  #private;
@@ -198,12 +189,18 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
198
189
  /**
199
190
  * @hidden
200
191
  */
201
- loadVenue(options: TGetVenueOptions, showVenueOptions: TShowVenueOptions): Promise<unknown>;
192
+ loadVenue(options: TGetVenueOptions, showVenueOptions: TShowVenueOptions & {
193
+ prepareSearch?: boolean;
194
+ searchOptions?: TMappedinOfflineSearchOptions;
195
+ }): Promise<unknown>;
202
196
  /**
203
197
  *
204
198
  * @hidden
205
199
  */
206
- showVenue(venueData: Mappedin, showVenueOptions: TShowVenueOptions): Promise<unknown>;
200
+ showVenue(venueData: Mappedin, showVenueOptions: TShowVenueOptions & {
201
+ prepareSearch?: boolean;
202
+ searchOptions?: TMappedinOfflineSearchOptions;
203
+ }): Promise<unknown>;
207
204
  /**
208
205
  * Clear any cached venue bundles that were downloaded as part of LOAD_VENUE with useBundle: true
209
206
  * This ensure that the next time keys are passed in, we get a fresh bundle
@@ -392,6 +389,32 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
392
389
  * Draw a path based on a list of Nodes
393
390
  */
394
391
  drawPath(pathNodesOrNodeIds: (MappedinNode | MappedinNode['id'])[], pathOptions: TPathOptions): Promise<unknown>;
392
+ OfflineSearch: {
393
+ /**
394
+ *
395
+ * @param query String to search for
396
+ */
397
+ search: (query: string) => Promise<TMappedinOfflineSearchResult[]>;
398
+ /**
399
+ *
400
+ * @param query Get a list of suggestions for query
401
+ */
402
+ suggest: (query: string) => Promise<TMappedinOfflineSearchSuggestions>;
403
+ addQuery: (params: {
404
+ /**
405
+ * Query string to match for this object
406
+ */
407
+ query: string;
408
+ /**
409
+ * Object that is returned when query matches
410
+ */
411
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
412
+ /**
413
+ * Optional weight to multiply by the score
414
+ */
415
+ weight?: number;
416
+ }) => Promise<unknown>;
417
+ };
395
418
  /**
396
419
  * @hidden
397
420
  */
@@ -408,8 +431,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/index.rn' {
408
431
  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';
409
432
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
410
433
  export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
411
- export type { TGetVenueBundleOptions, TGetVenueOptions, TMappedinDirective, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
412
- export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
434
+ export type { TGetVenueBundleOptions, TGetVenueOptions, TMappedinDirective, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions } from '@mappedin/react-native-sdk/core/packages/get-venue';
435
+ export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings, MAP_RENDER_MODE, OfflineSearch, MappedinCollectionType } from '@mappedin/react-native-sdk/core/packages/get-venue';
413
436
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
414
437
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
415
438
  }
@@ -421,6 +444,53 @@ declare module '@mappedin/react-native-sdk/wrappers/common' {
421
444
  export { PubSub } from '@mappedin/react-native-sdk/wrappers/common/pub-sub';
422
445
  }
423
446
 
447
+ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types' {
448
+ import { MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
449
+ import { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
450
+ import type { MappedinCategory, MappedinLocation, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult } from '@mappedin/react-native-sdk/core/packages/get-venue';
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
+ export type TMapViewRNOptions = {
463
+ /**
464
+ * Use a bundle for venue loading and cache it for faster subsequent loading
465
+ * @beta
466
+ */
467
+ useBundle?: boolean;
468
+ loadOptions?: {
469
+ /**
470
+ * By default, the SDK will merge all geometries by material to reduce the number of draw calls to the GPU
471
+ * To rever back to using a single geometry for every polygon, pass `MAP_RENDER_MODE.MULTI_GEOMETRY`
472
+ */
473
+ mapRenderStrategy?: MAP_RENDER_MODE;
474
+ };
475
+ /**
476
+ * Generate a search index for venue when rendering map, instead of deferring to when the first search occurs.
477
+ * @default false
478
+ */
479
+ prepareSearch?: boolean;
480
+ /**
481
+ * Customize search weights
482
+ */
483
+ searchOptions?: TMappedinOfflineSearchOptions;
484
+ };
485
+ export type TMappedinOfflineSearchBridgeResult = Omit<TMappedinOfflineSearchResult, 'object'> & {
486
+ object: {
487
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
488
+ id: string;
489
+ };
490
+ };
491
+ export type TMappedinCustomSearchObject = MappedinLocation | MappedinCategory | Record<string, unknown>;
492
+ }
493
+
424
494
  declare module '@mappedin/react-native-sdk/wrappers/common/errors' {
425
495
  export enum ERROR {
426
496
  LOAD_VENUE_FAILED = "LOAD_VENUE_FAILED",
@@ -442,19 +512,21 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src' {
442
512
  export type { TMiMiniMapProps } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap';
443
513
  export type { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
444
514
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
445
- export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
515
+ export type { TGetVenueOptions, TGetVenueBundleOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineSearchOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
446
516
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
447
517
  export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
448
518
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
449
519
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
450
- 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';
520
+ export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions, TBlueDotPositionUpdate, TBlueDotStateChange } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
451
521
  export type { TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptionsBase };
452
522
  export type TEnableBlueDotOptions = Omit<TEnableBlueDotOptionsBase, 'positionUpdater' | 'geolocationSource'>;
453
523
  export type TLabelAllLocationCommonOptions = Omit<TLabelAllLocationCommonOptionsBase, 'sortFunction' | 'translationMap'>;
524
+ export type { TMapViewRNOptions } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
525
+ export type { TMiMapViewVenueOptions } from '@mappedin/react-native-sdk/wrappers/common';
454
526
  export type { IDirectionsResult, MappedinDirections, TMappedinDirective } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
455
- export type { TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
527
+ export type { TShowVenueOptions, E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
456
528
  export { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
457
- export { E_GET_DIRECTIONS_MESSAGES, BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
529
+ export { BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
458
530
  }
459
531
 
460
532
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MappedinController' {
@@ -501,21 +573,6 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/Mappedi
501
573
  }
502
574
  }
503
575
 
504
- declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types' {
505
- import { MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
506
- import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
507
- export type TPolygonColorOptions = {
508
- color: string;
509
- opacity?: number;
510
- textColor?: string;
511
- };
512
- export type { TFocusOptionsLegacy };
513
- export type TFocusOptionsLegacySerializable = Omit<TFocusOptionsLegacy, 'nodes' | 'polygons'> & {
514
- nodes: (MappedinNode | MappedinNode['id'])[];
515
- polygons: (MappedinPolygon['id'] | MappedinPolygon)[];
516
- };
517
- }
518
-
519
576
  declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
520
577
  import type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
521
578
  import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
@@ -540,6 +597,8 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
540
597
  export type { IDirectionsResult } from '@mappedin/react-native-sdk/core/packages/navigator';
541
598
  export type { TOperationHoursMap } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
542
599
  export type { TDirectionToOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
600
+ export { OfflineSearch } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch';
601
+ export type { TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch';
543
602
  /** API data types */
544
603
  export type { TLocationType, TNode, TImage, TLogo, TGalleryImage, TPhone, TSocial, TColor, TVortex, TPicture, TOpeningHours, TSiblingGroup, TState, TCategory, TEvent, TGeoReference, TMap, TMapGroup, TBuilding, TLocation, TPolygon, TPolygonRanking, TVenue, TMappedinAPI } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
545
604
  export type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
@@ -1591,7 +1650,10 @@ declare module '@mappedin/react-native-sdk/wrappers/common/events' {
1591
1650
  CLEAR_JOURNEY = "CLEAR_JOURNEY",
1592
1651
  SET_COOKIE = "SET_COOKIE",
1593
1652
  GET_NEAREST_NODE_BY_SCREEN_COORDINATES = "GET_NEAREST_NODE_BY_SCREEN_COORDINATES",
1594
- CLEAR_BUNDLE_CACHE = "CLEAR_BUNDLE_CACHE"
1653
+ CLEAR_BUNDLE_CACHE = "CLEAR_BUNDLE_CACHE",
1654
+ SEARCH = "SEARCH",
1655
+ SUGGEST = "SUGGEST",
1656
+ ADD_SEARCH_QUERY = "ADD_SEARCH_QUERY"
1595
1657
  }
1596
1658
  export enum WAYFINDING_EVENT {
1597
1659
  GET_MAPS_IN_NAVIGATION = "GET_MAPS_IN_NAVIGATION",
@@ -1621,7 +1683,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/events' {
1621
1683
  }
1622
1684
 
1623
1685
  declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1624
- 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';
1686
+ import { IDirectionsResult, MappedinMap, MappedinNode, TBlueDotPositionUpdate, TBlueDotStateChange, TGetVenueOptions, TFloatingLabelPolygonOptions, TFlatLabelPolygonOptions, TAnimatePositionOptions, TPathOptions, TShowVenueOptions, STATE, TGeolocationObject, TEnableBlueDotOptions, MappedinLocation, TLabelAllLocationFloatingLabelOptions, TMappedinOfflineSearchOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1625
1687
  import { TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common/types';
1626
1688
  import { BRIDGE_EVENT, EVENT, MINIMAP_EVENT, TFocusOnOptionsLegacySerializable, TReactNativeFlatLabelAllLocationsLegacy, TReactNativeFlatLabelAllLocations, NATIVE_EVENT } from '@mappedin/react-native-sdk/wrappers/common';
1627
1689
  import { TSerializableJourneyOptions, TFocusOnOptionsSerializable, TSerializedLocation, TSerializedNode, TSerializedPolygon } from '@mappedin/react-native-sdk/wrappers/common/types';
@@ -1695,12 +1757,32 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1695
1757
  options: TGetVenueOptions & {
1696
1758
  useBundle?: boolean;
1697
1759
  };
1698
- showVenueOptions: TShowVenueOptions;
1760
+ showVenueOptions: TShowVenueOptions & {
1761
+ /**
1762
+ * Generate a search index for venue when rendering map, instead of deferring to when the first search occurs.
1763
+ * @default false
1764
+ */
1765
+ prepareSearch?: boolean;
1766
+ /**
1767
+ * Customize search weights
1768
+ */
1769
+ searchOptions?: TMappedinOfflineSearchOptions;
1770
+ };
1699
1771
  };
1700
1772
  [EVENT.SHOW_VENUE]: {
1701
1773
  venueData: string;
1702
1774
  format: 'jsonstring';
1703
- showVenueOptions: TShowVenueOptions;
1775
+ showVenueOptions: TShowVenueOptions & {
1776
+ /**
1777
+ * Generate a search index for venue when rendering map, instead of deferring to when the first search occurs.
1778
+ * @default false
1779
+ */
1780
+ prepareSearch?: boolean;
1781
+ /**
1782
+ * Customize search weights
1783
+ */
1784
+ searchOptions?: TMappedinOfflineSearchOptions;
1785
+ };
1704
1786
  };
1705
1787
  [EVENT.SET_MAP]: {
1706
1788
  mapId: string;
@@ -1827,6 +1909,20 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1827
1909
  y: number;
1828
1910
  map?: MappedinMap['id'];
1829
1911
  };
1912
+ [EVENT.SEARCH]: {
1913
+ query: string;
1914
+ };
1915
+ [EVENT.SUGGEST]: {
1916
+ query: string;
1917
+ };
1918
+ [EVENT.ADD_SEARCH_QUERY]: {
1919
+ query: string;
1920
+ object: {
1921
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
1922
+ id: string;
1923
+ };
1924
+ weight?: number;
1925
+ };
1830
1926
  };
1831
1927
  }
1832
1928
 
@@ -1861,7 +1957,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/types' {
1861
1957
  departureMarkerTemplateString?: string;
1862
1958
  color?: string;
1863
1959
  };
1864
- export type TMiMapViewOptions = TShowVenueOptions & {
1960
+ export type TMiMapViewVenueOptions = {
1865
1961
  /**
1866
1962
  * Client ID
1867
1963
  */
@@ -1882,6 +1978,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/types' {
1882
1978
  noAuth?: boolean;
1883
1979
  language?: string;
1884
1980
  };
1981
+ export type TMiMapViewOptions = TShowVenueOptions & TMiMapViewVenueOptions;
1885
1982
  export type TReactNativeFloatingLabelPolygonOptions = TFloatingLabelPolygonOptions & {
1886
1983
  /**
1887
1984
  * @deprecated
@@ -1918,190 +2015,467 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
1918
2015
  }
1919
2016
  }
1920
2017
 
1921
- declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
1922
- import { BRIDGE_EVENT, BRIDGE_EVENT_PAYLOADS } from '@mappedin/react-native-sdk/wrappers/common';
1923
- import { PubSub } from '@mappedin/react-native-sdk/wrappers/common';
1924
- export function uuid(): string;
1925
- export class MappedinController {
1926
- #private;
1927
- privateEventBus: PubSub<{
1928
- REJECT: {
1929
- msgID?: string | undefined;
1930
- data: any;
1931
- };
1932
- RESOLVE: {
1933
- msgID?: string | undefined;
1934
- data: any;
1935
- };
1936
- READY: {
1937
- msgID?: string | undefined;
1938
- data: null;
1939
- };
1940
- LOG: {
1941
- msgID?: string | undefined;
1942
- data: string;
1943
- };
1944
- GET_IMAGE: {
1945
- msgID?: string | undefined;
1946
- data: {
1947
- fileName: string;
1948
- };
1949
- };
1950
- GET_MAP_POLYGONS: {
1951
- msgID?: string | undefined;
1952
- data: {
1953
- mapId: string;
1954
- };
1955
- };
1956
- MINIMAP_READY: {
1957
- msgID?: string | undefined;
1958
- data: null;
1959
- };
1960
- SHOW_MINIMAP: {
1961
- msgID?: string | undefined;
1962
- data: {
1963
- format: "jsonstring";
1964
- venueData: string;
1965
- options: import("./types").TMiMapViewOptions;
1966
- };
1967
- };
1968
- LOAD_MINIMAP: {
1969
- msgID?: string | undefined;
1970
- data: {
1971
- options: import("../react-native-sdk/src").TGetVenueOptions;
1972
- };
1973
- };
1974
- CACHE_IMAGE: {
1975
- msgID?: string | undefined;
1976
- data: {
1977
- url?: string | undefined;
1978
- options: import("../react-native-sdk/src").TGetVenueOptions;
1979
- locationId: string;
1980
- polygonHighlightColor?: string | undefined;
1981
- focusOptions?: Omit<import("./types").TFocusOnOptionsSerializable, "targets"> | undefined;
1982
- };
1983
- };
1984
- CLEAR_BUNDLE_CACHE: {
1985
- msgID?: string | undefined;
1986
- data: null;
1987
- };
1988
- NOTHING_CLICKED: {
1989
- msgID?: string | undefined;
1990
- data: null;
1991
- };
1992
- STATE_CHANGED: {
1993
- msgID?: string | undefined;
1994
- data: {
1995
- state: import("../react-native-sdk/src").STATE;
1996
- };
1997
- };
1998
- DATA_LOADED: {
1999
- msgID?: string | undefined;
2000
- data: {
2001
- venueData: any;
2002
- };
2003
- };
2004
- FIRST_MAP_LOADED: {
2005
- msgID?: string | undefined;
2006
- data: {
2007
- venueData?: any;
2008
- };
2009
- };
2010
- MAP_CHANGED: {
2011
- msgID?: string | undefined;
2012
- data: {
2013
- mapId: string;
2014
- };
2015
- };
2016
- POLYGON_CLICKED: {
2017
- msgID?: string | undefined;
2018
- data: {
2019
- polygonId: string;
2020
- };
2021
- };
2022
- ROTATION_CHANGED: {
2023
- msgID?: string | undefined;
2024
- data: {
2025
- rotation: number;
2026
- };
2027
- };
2028
- TILT_CHANGED: {
2029
- msgID?: string | undefined;
2030
- data: {
2031
- tilt: number;
2032
- };
2033
- };
2034
- UPDATE_GEOLOCATION: {
2035
- msgID?: string | undefined;
2036
- data: {
2037
- msgID: undefined;
2038
- data: unknown;
2039
- };
2040
- };
2041
- BLUEDOT_STATE_CHANGE: {
2042
- msgID?: string | undefined;
2043
- data: {
2044
- stateChange: import("../../core/packages/renderer").TBlueDotStateChange;
2045
- };
2046
- };
2047
- BLUEDOT_POSITION_UPDATE: {
2048
- msgID?: string | undefined;
2049
- data: {
2050
- update: Omit<import("../../core/packages/renderer").TBlueDotPositionUpdate, "map" | "nearestNode"> & {
2051
- nearestNode?: string | undefined;
2052
- map?: string | undefined;
2053
- };
2054
- };
2055
- };
2056
- SET_JOURNEY_STEP: {
2057
- msgID?: string | undefined;
2058
- data: {
2059
- step: number;
2060
- };
2061
- };
2062
- LOAD_VENUE: {
2063
- msgID?: string | undefined;
2064
- data: {
2065
- options: import("../react-native-sdk/src").TGetVenueOptions & {
2066
- useBundle?: boolean | undefined;
2067
- };
2068
- showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions;
2069
- };
2070
- };
2071
- SHOW_VENUE: {
2072
- msgID?: string | undefined;
2073
- data: {
2074
- venueData: string;
2075
- format: "jsonstring";
2076
- showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions;
2077
- };
2078
- };
2079
- SET_MAP: {
2080
- msgID?: string | undefined;
2081
- data: {
2082
- mapId: string;
2083
- };
2084
- };
2085
- CAMERA_SET: {
2086
- msgID?: string | undefined;
2087
- data: {
2088
- positionOptions?: import("../react-native-sdk/src").TAnimatePositionOptions | undefined;
2089
- };
2090
- };
2091
- SET_ROTATION: {
2092
- msgID?: string | undefined;
2093
- data: {
2094
- rotation: number;
2095
- };
2096
- };
2097
- SET_TILT: {
2098
- msgID?: string | undefined;
2099
- data: {
2100
- tilt: number;
2101
- };
2102
- };
2103
- CAMERA_SET_SAFE_AREA_INSETS: {
2104
- msgID?: string | undefined;
2018
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface' {
2019
+ import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
2020
+ import { Vector2, Vector3 } from 'three';
2021
+ import { changeListenerFn, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
2022
+ import RENDER from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
2023
+ import { INTERNAL_EVENT_PAYLOAD } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
2024
+ import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
2025
+ import Tween, { Easing } from '@tweenjs/tween.js';
2026
+ export type TFocusOptionsLegacy = {
2027
+ /**
2028
+ * An array of Nodes to focus in on
2029
+ */
2030
+ nodes?: (MappedinNode | MappedinNode['id'])[];
2031
+ /**
2032
+ * An array of Polygons to focus on. It's the center of the bounds of all Polygons, designed to fit everything into view.
2033
+ */
2034
+ polygons?: (MappedinPolygon | MappedinPolygon['id'])[];
2035
+ /**
2036
+ * The duration (in ms) the focus animation should last for.
2037
+ * @defaultValue `100`
2038
+ */
2039
+ duration?: number;
2040
+ /**
2041
+ * Whether to zoom the camera in or out, or just pan it.
2042
+ * @defaultValue `true`
2043
+ */
2044
+ changeZoom?: boolean;
2045
+ /**
2046
+ * The animation curve to use for zooming in. Uses the animateCamera one by default.
2047
+ */
2048
+ curve?: typeof Easing;
2049
+ /**
2050
+ * Camera tilt between 0 (top-down) to 1 (from the side)
2051
+ */
2052
+ tilt?: number;
2053
+ /**
2054
+ * Rotation in degrees
2055
+ */
2056
+ rotation?: number;
2057
+ /**
2058
+ * You can overide the {{#crossLink "MapView/focusZoomFactor:property"}}{{/crossLink}} for a specific {{#crossLink "MapView/focusOn:method"}}{{/crossLink}} call, rather than globally, if you like.
2059
+ */
2060
+ focusZoomFactor?: number;
2061
+ /**
2062
+ * Sets a floor for how close you can zoom in on the scene. If it's lower than mapView.controls.minZoom, it's ignored.
2063
+ * @defaultValue: 0
2064
+ */
2065
+ minZoom?: number;
2066
+ padding?: TPadding;
2067
+ points?: any[];
2068
+ };
2069
+ export interface ICore {
2070
+ new (container: HTMLElement, venue: Mappedin, options?: TMapViewOptions): ICore;
2071
+ /**
2072
+ * @internal
2073
+ */
2074
+ currentScale: number;
2075
+ loadOptions?: TMapViewOptions['loadOptions'];
2076
+ imageFlippingEnabled: boolean;
2077
+ imageFlippingCache: any;
2078
+ cachedPadding: any;
2079
+ polygonMeshesById: any;
2080
+ textLabelsByPolygonId: any;
2081
+ renderer: any;
2082
+ scene: any;
2083
+ cameraParameters: Vector2;
2084
+ resolution: Vector2;
2085
+ determineNewLabelSize: any;
2086
+ on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2087
+ off<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2088
+ publish<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, payload?: INTERNAL_EVENT_PAYLOAD[EVENT_NAME]): void;
2089
+ /**
2090
+ * Manual camera controls for MapView. Generally you should be using the functions on MapView like {{#crossLink "MapView/focusOn:method"}}{{/crossLink}},
2091
+ * but if you have some cool animations in mind, you can do it with the {{#crossLink "CameraControls"}}{{/crossLink}}.
2092
+ * Some of the functions don't do anything in 2D.
2093
+ *
2094
+ */
2095
+ controls: any;
2096
+ /**
2097
+ * The Venue data this MapView is using.
2098
+ *
2099
+ * @property venue {MappedinVenue}
2100
+ * @final
2101
+ */
2102
+ readonly venue: Mappedin;
2103
+ /**
2104
+ * The div MapView is using.
2105
+ *
2106
+ * @property container {Div}
2107
+ * @final
2108
+ */
2109
+ readonly container: HTMLElement;
2110
+ /**
2111
+ * The ID of the Map currently being displayed.
2112
+ *
2113
+ */
2114
+ readonly currentMap: string;
2115
+ /**
2116
+ * Change this factor to influence how much the camera zooms in on a {@link IMapView3D.focusOn} call.
2117
+ *
2118
+ * @property focusZoomFactor {Integer}
2119
+ * @default 3
2120
+ */
2121
+ focusZoomFactor: number;
2122
+ /**
2123
+ * Returns the value you should call {@link CameraControls.setZoom} on to fit the Polygon exactly.
2124
+ *
2125
+ * @return The zoom level that will fit the Polygon
2126
+ */
2127
+ getZoomLevelForPolygon(props: {
2128
+ /**
2129
+ * The Polygon or Polygon ID to get the zoom level for
2130
+ */
2131
+ polygonOrPolygonId: MappedinPolygon | string;
2132
+ }): number;
2133
+ /**
2134
+ * Returns the value you should call {@link CameraControls.setZoom} on to fit the {@link IMapView3D.currentMap} exactly.
2135
+ *
2136
+ * @return The zoom level that will fit the {@link IMapView3D.currentMap}.
2137
+ */
2138
+ getZoomLevelForCurrentMap(): number;
2139
+ /**
2140
+ * Returns the angle that points to north, in radians, from the default orientation.
2141
+ *
2142
+ * @return The angle to north from the default orientation, in radians.
2143
+ */
2144
+ getNorth(): number;
2145
+ /**
2146
+ * Takes an element on the DOM and rotates it such that the top is pointing north. It will rotate with the camera, staying locked
2147
+ * 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
2148
+ * is how you would do a compass rose.
2149
+ *
2150
+ * This will modify your element's transform.
2151
+ *
2152
+ * @param element The element on the page to rotate.
2153
+ * @param offset The amount to offset the rotation by, in radians.
2154
+ *
2155
+ */
2156
+ lockNorth(element: HTMLElement, offset?: number): void;
2157
+ /**
2158
+ * 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.
2159
+ * @param element The node to stop rotating. It won't reset the transform, just leave it as is.
2160
+ */
2161
+ unlockNorth(element: HTMLElement): void;
2162
+ currentInteractionEvent: string;
2163
+ interactivePolygons: any;
2164
+ highlightedPolygons: any;
2165
+ cameraPlane: any;
2166
+ /**
2167
+ * Called any time a user touches or clicks the map. Only fires on "single" touches/clicks.
2168
+ *
2169
+ * @param position Object containing the latitude & longitude of the location touched on the map
2170
+ * @param polygons Array of polygon IDs that were touched, in order of front to back.
2171
+ * @param nearBlueDot Whether the touch was close enough to the Blue Dot to be considered a touch on the Blue Dot.
2172
+ */
2173
+ onMapClicked(position: {
2174
+ latitude: number;
2175
+ longitude: number;
2176
+ }, polygons: string[], nearBlueDot: boolean): void;
2177
+ /**
2178
+ * This is called when an interactive Polygon is clicked on.
2179
+ * You will almost certainly want to replace this with your own function in your client app.
2180
+ * Return "false" if you have consumed the event and it shouldn't bubble down to other Polygons beneath this one.
2181
+ *
2182
+ * @param polygonId polygonId passed in when tapping an interactive polygon
2183
+ */
2184
+ onPolygonClicked(polygonId: string): boolean | void;
2185
+ onMapChanged(map: string): void;
2186
+ getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
2187
+ getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
2188
+ /**
2189
+ * Takes an x/y pair in Mappedin coordinate space and gives you a Vector3 in scene space
2190
+ * @param nodeOrCoordinate a node or coordinate
2191
+ */
2192
+ convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
2193
+ /**
2194
+ * Converts a Vector-like object into a MappedinCoordinate for a map.
2195
+ * @param position an object with x and y, like a Vector3
2196
+ * @param mapClass An optional map; otherwise, the current map will be used.
2197
+ */
2198
+ convert3DMapPositionToCoordinate(position: {
2199
+ x: number;
2200
+ y: number;
2201
+ }, mapClass?: MappedinMap): MappedinCoordinate;
2202
+ setPadding(padding: {
2203
+ top: number;
2204
+ left: number;
2205
+ bottom: number;
2206
+ right: number;
2207
+ }): void;
2208
+ /**
2209
+ * This is fired when the user taps/clicks on the MapView without hitting an interactive Polygon.
2210
+ * You will almost certainly want to replace this with your own function in your client app.
2211
+ * You would probably use this to clear any Polygon highlighting, in certain situations.
2212
+ */
2213
+ onNothingClicked(): void;
2214
+ smartCollisionEngine: any;
2215
+ mapObjects: any;
2216
+ /**
2217
+ * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
2218
+ * but if you are doing something weird, or have your own special tween for something, you will want to call this function.
2219
+ * 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.
2220
+ * Ignored in 2D.
2221
+ */
2222
+ tryRendering(renderMode?: typeof RENDER): void;
2223
+ setMap(mapOrMapId: MappedinMap | string): Promise<null>;
2224
+ getPositionNode(node: MappedinNode): Vector3;
2225
+ cameraObject: any;
2226
+ setBackgroundColor(color: number | string, alpha?: number): void;
2227
+ mapManager: any;
2228
+ focusOn(focusOptions: TFocusOptionsLegacy): Tween;
2229
+ canvasWidth: number;
2230
+ canvasHeight: number;
2231
+ /**
2232
+ * Resets the MapView to the default state.
2233
+ */
2234
+ resetState(): void;
2235
+ destroy(): void;
2236
+ }
2237
+ }
2238
+
2239
+ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2240
+ import { BRIDGE_EVENT, BRIDGE_EVENT_PAYLOADS } from '@mappedin/react-native-sdk/wrappers/common';
2241
+ import { PubSub } from '@mappedin/react-native-sdk/wrappers/common';
2242
+ export function uuid(): string;
2243
+ export class MappedinController {
2244
+ #private;
2245
+ privateEventBus: PubSub<{
2246
+ REJECT: {
2247
+ msgID?: string | undefined;
2248
+ data: any;
2249
+ };
2250
+ RESOLVE: {
2251
+ msgID?: string | undefined;
2252
+ data: any;
2253
+ };
2254
+ READY: {
2255
+ msgID?: string | undefined;
2256
+ data: null;
2257
+ };
2258
+ LOG: {
2259
+ msgID?: string | undefined;
2260
+ data: string;
2261
+ };
2262
+ GET_IMAGE: {
2263
+ msgID?: string | undefined;
2264
+ data: {
2265
+ fileName: string;
2266
+ };
2267
+ };
2268
+ GET_MAP_POLYGONS: {
2269
+ msgID?: string | undefined;
2270
+ data: {
2271
+ mapId: string;
2272
+ };
2273
+ };
2274
+ MINIMAP_READY: {
2275
+ msgID?: string | undefined;
2276
+ data: null;
2277
+ };
2278
+ SHOW_MINIMAP: {
2279
+ msgID?: string | undefined;
2280
+ data: {
2281
+ format: "jsonstring";
2282
+ venueData: string;
2283
+ options: import("./types").TMiMapViewOptions;
2284
+ };
2285
+ };
2286
+ LOAD_MINIMAP: {
2287
+ msgID?: string | undefined;
2288
+ data: {
2289
+ options: import("../react-native-sdk/src").TGetVenueOptions;
2290
+ };
2291
+ };
2292
+ CACHE_IMAGE: {
2293
+ msgID?: string | undefined;
2294
+ data: {
2295
+ url?: string | undefined;
2296
+ options: import("../react-native-sdk/src").TGetVenueOptions;
2297
+ locationId: string;
2298
+ polygonHighlightColor?: string | undefined;
2299
+ focusOptions?: Omit<import("./types").TFocusOnOptionsSerializable, "targets"> | undefined;
2300
+ };
2301
+ };
2302
+ CLEAR_BUNDLE_CACHE: {
2303
+ msgID?: string | undefined;
2304
+ data: null;
2305
+ };
2306
+ NOTHING_CLICKED: {
2307
+ msgID?: string | undefined;
2308
+ data: null;
2309
+ };
2310
+ STATE_CHANGED: {
2311
+ msgID?: string | undefined;
2312
+ data: {
2313
+ state: import("../react-native-sdk/src").STATE;
2314
+ };
2315
+ };
2316
+ DATA_LOADED: {
2317
+ msgID?: string | undefined;
2318
+ data: {
2319
+ venueData: any;
2320
+ };
2321
+ };
2322
+ FIRST_MAP_LOADED: {
2323
+ msgID?: string | undefined;
2324
+ data: {
2325
+ venueData?: any;
2326
+ };
2327
+ };
2328
+ MAP_CHANGED: {
2329
+ msgID?: string | undefined;
2330
+ data: {
2331
+ mapId: string;
2332
+ };
2333
+ };
2334
+ POLYGON_CLICKED: {
2335
+ msgID?: string | undefined;
2336
+ data: {
2337
+ polygonId: string;
2338
+ };
2339
+ };
2340
+ ROTATION_CHANGED: {
2341
+ msgID?: string | undefined;
2342
+ data: {
2343
+ rotation: number;
2344
+ };
2345
+ };
2346
+ TILT_CHANGED: {
2347
+ msgID?: string | undefined;
2348
+ data: {
2349
+ tilt: number;
2350
+ };
2351
+ };
2352
+ UPDATE_GEOLOCATION: {
2353
+ msgID?: string | undefined;
2354
+ data: {
2355
+ msgID: undefined;
2356
+ data: unknown;
2357
+ };
2358
+ };
2359
+ BLUEDOT_STATE_CHANGE: {
2360
+ msgID?: string | undefined;
2361
+ data: {
2362
+ stateChange: import("../react-native-sdk/src").TBlueDotStateChange;
2363
+ };
2364
+ };
2365
+ BLUEDOT_POSITION_UPDATE: {
2366
+ msgID?: string | undefined;
2367
+ data: {
2368
+ update: Omit<import("../react-native-sdk/src").TBlueDotPositionUpdate, "map" | "nearestNode"> & {
2369
+ nearestNode?: string | undefined;
2370
+ map?: string | undefined;
2371
+ };
2372
+ };
2373
+ };
2374
+ SET_JOURNEY_STEP: {
2375
+ msgID?: string | undefined;
2376
+ data: {
2377
+ step: number;
2378
+ };
2379
+ };
2380
+ LOAD_VENUE: {
2381
+ msgID?: string | undefined;
2382
+ data: {
2383
+ options: import("../react-native-sdk/src").TGetVenueOptions & {
2384
+ useBundle?: boolean | undefined;
2385
+ };
2386
+ showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
2387
+ prepareSearch?: boolean | undefined;
2388
+ searchOptions?: Partial<{
2389
+ stopWords?: string[] | undefined;
2390
+ searchTags?: boolean | undefined;
2391
+ searchDescriptions?: boolean | undefined;
2392
+ searchTagsInCategories?: boolean | undefined; /**
2393
+ * Handle rejection from the other side, typically when the request results in an error
2394
+ * @hidden
2395
+ searchDescriptionsInCategories?: boolean | undefined;
2396
+ jsonIndex?: string | undefined;
2397
+ useLocationRank?: boolean | undefined;
2398
+ emitAnalyticsEvents?: boolean | undefined;
2399
+ constants: {
2400
+ PRIMARY_INDEX_FUZZYNESS: number;
2401
+ PRIMARY_INDEX_WEIGHT: number;
2402
+ SECONDARY_INDEX_WEIGHT: number;
2403
+ LOCATION_NAME_WEIGHT: number;
2404
+ CATEGORY_NAME_WEIGHT: number;
2405
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
2406
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
2407
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
2408
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
2409
+ LOCATION_DEFAULT_RANK: number;
2410
+ RATIO_OF_FUZZY_TO_EXACT: number;
2411
+ RATIO_OF_PREFIX_TO_EXACT: number;
2412
+ };
2413
+ }> | undefined;
2414
+ };
2415
+ };
2416
+ };
2417
+ SHOW_VENUE: {
2418
+ msgID?: string | undefined;
2419
+ data: {
2420
+ venueData: string;
2421
+ format: "jsonstring";
2422
+ showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
2423
+ prepareSearch?: boolean | undefined;
2424
+ searchOptions?: Partial<{
2425
+ stopWords?: string[] | undefined;
2426
+ searchTags?: boolean | undefined;
2427
+ searchDescriptions?: boolean | undefined;
2428
+ searchTagsInCategories?: boolean | undefined; /**
2429
+ * Handle rejection from the other side, typically when the request results in an error
2430
+ * @hidden
2431
+ searchDescriptionsInCategories?: boolean | undefined;
2432
+ jsonIndex?: string | undefined;
2433
+ useLocationRank?: boolean | undefined;
2434
+ emitAnalyticsEvents?: boolean | undefined;
2435
+ constants: {
2436
+ PRIMARY_INDEX_FUZZYNESS: number;
2437
+ PRIMARY_INDEX_WEIGHT: number;
2438
+ SECONDARY_INDEX_WEIGHT: number;
2439
+ LOCATION_NAME_WEIGHT: number;
2440
+ CATEGORY_NAME_WEIGHT: number;
2441
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
2442
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
2443
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
2444
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
2445
+ LOCATION_DEFAULT_RANK: number;
2446
+ RATIO_OF_FUZZY_TO_EXACT: number;
2447
+ RATIO_OF_PREFIX_TO_EXACT: number;
2448
+ };
2449
+ }> | undefined;
2450
+ };
2451
+ };
2452
+ };
2453
+ SET_MAP: {
2454
+ msgID?: string | undefined;
2455
+ data: {
2456
+ mapId: string;
2457
+ };
2458
+ };
2459
+ CAMERA_SET: {
2460
+ msgID?: string | undefined;
2461
+ data: {
2462
+ positionOptions?: import("../react-native-sdk/src").TAnimatePositionOptions | undefined;
2463
+ };
2464
+ };
2465
+ SET_ROTATION: {
2466
+ msgID?: string | undefined;
2467
+ data: {
2468
+ rotation: number;
2469
+ };
2470
+ };
2471
+ SET_TILT: {
2472
+ msgID?: string | undefined;
2473
+ data: {
2474
+ tilt: number;
2475
+ };
2476
+ };
2477
+ CAMERA_SET_SAFE_AREA_INSETS: {
2478
+ msgID?: string | undefined;
2105
2479
  data: {
2106
2480
  safeAreaInsets: {
2107
2481
  top: number;
@@ -2176,7 +2550,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2176
2550
  msgID?: string | undefined;
2177
2551
  data: {
2178
2552
  polygonId: string;
2179
- options: (import("../react-native-sdk/src").TFlatLabelPolygonOptions | import("../react-native-sdk/src").TFloatingLabelPolygonOptions) & {
2553
+ options: (import("../react-native-sdk/src").TFloatingLabelPolygonOptions | import("../react-native-sdk/src").TFlatLabelPolygonOptions) & {
2180
2554
  legacyLabels?: boolean | undefined;
2181
2555
  };
2182
2556
  };
@@ -2303,275 +2677,77 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2303
2677
  map?: string | undefined;
2304
2678
  };
2305
2679
  };
2306
- }>;
2307
- /**
2308
- * Message received from the other side of the bridge
2309
- * @hidden
2310
- */
2311
- onMessageReceived<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload: {
2312
- data: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2313
- msgID?: string;
2314
- }): void;
2315
- /**
2316
- * Send a message to the other side of the bridge
2317
- *
2318
- * @hidden
2319
- */
2320
- sendMessage<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: {
2321
- msgID?: string;
2322
- data: BRIDGE_EVENT_PAYLOADS[EVENT_NAME] | null;
2323
- }): void;
2324
- /**
2325
- * Handle resolution from the other side, with a value if one was expected
2326
- * @hidden
2327
- */
2328
- protected handleResolution: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2329
- msgID: string;
2330
- data: {
2331
- payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2680
+ SEARCH: {
2681
+ msgID?: string | undefined;
2682
+ data: {
2683
+ query: string;
2684
+ };
2332
2685
  };
2333
- }) => void;
2334
- /**
2335
- * Handle rejection from the other side, typically when the request results in an error
2336
- * @hidden
2337
- */
2338
- protected handleRejection: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2339
- msgID: string;
2340
- data: {
2341
- payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2686
+ SUGGEST: {
2687
+ msgID?: string | undefined;
2688
+ data: {
2689
+ query: string;
2690
+ };
2342
2691
  };
2343
- }) => void;
2344
- /**
2345
- * Emitting a message without expecting a response
2346
- * @hidden
2347
- */
2348
- emit<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): void;
2692
+ ADD_SEARCH_QUERY: {
2693
+ msgID?: string | undefined;
2694
+ data: {
2695
+ query: string;
2696
+ object: {
2697
+ type: "MappedinLocation" | "MappedinCategory" | "Custom";
2698
+ id: string;
2699
+ };
2700
+ weight?: number | undefined;
2701
+ };
2702
+ };
2703
+ }>;
2349
2704
  /**
2350
- * Emitting a message and waiting for a reponse, via a promise
2705
+ * Message received from the other side of the bridge
2351
2706
  * @hidden
2352
2707
  */
2353
- emitAsync<T, EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): Promise<T>;
2354
- }
2355
- }
2356
-
2357
- declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface' {
2358
- import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
2359
- import { Vector2, Vector3 } from 'three';
2360
- import { changeListenerFn, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
2361
- import RENDER from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
2362
- import { INTERNAL_EVENT_PAYLOAD } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
2363
- import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
2364
- import Tween, { Easing } from '@tweenjs/tween.js';
2365
- export type TFocusOptionsLegacy = {
2366
- /**
2367
- * An array of Nodes to focus in on
2368
- */
2369
- nodes?: (MappedinNode | MappedinNode['id'])[];
2370
- /**
2371
- * An array of Polygons to focus on. It's the center of the bounds of all Polygons, designed to fit everything into view.
2372
- */
2373
- polygons?: (MappedinPolygon | MappedinPolygon['id'])[];
2374
- /**
2375
- * The duration (in ms) the focus animation should last for.
2376
- * @defaultValue `100`
2377
- */
2378
- duration?: number;
2379
- /**
2380
- * Whether to zoom the camera in or out, or just pan it.
2381
- * @defaultValue `true`
2382
- */
2383
- changeZoom?: boolean;
2384
- /**
2385
- * The animation curve to use for zooming in. Uses the animateCamera one by default.
2386
- */
2387
- curve?: typeof Easing;
2388
- /**
2389
- * Camera tilt between 0 (top-down) to 1 (from the side)
2390
- */
2391
- tilt?: number;
2392
- /**
2393
- * Rotation in degrees
2394
- */
2395
- rotation?: number;
2396
- /**
2397
- * You can overide the {{#crossLink "MapView/focusZoomFactor:property"}}{{/crossLink}} for a specific {{#crossLink "MapView/focusOn:method"}}{{/crossLink}} call, rather than globally, if you like.
2398
- */
2399
- focusZoomFactor?: number;
2400
- /**
2401
- * Sets a floor for how close you can zoom in on the scene. If it's lower than mapView.controls.minZoom, it's ignored.
2402
- * @defaultValue: 0
2403
- */
2404
- minZoom?: number;
2405
- padding?: TPadding;
2406
- points?: any[];
2407
- };
2408
- export interface ICore {
2409
- new (container: HTMLElement, venue: Mappedin, options?: TMapViewOptions): ICore;
2410
- /**
2411
- * @internal
2412
- */
2413
- currentScale: number;
2414
- loadOptions?: TMapViewOptions['loadOptions'];
2415
- imageFlippingEnabled: boolean;
2416
- imageFlippingCache: any;
2417
- cachedPadding: any;
2418
- polygonMeshesById: any;
2419
- textLabelsByPolygonId: any;
2420
- renderer: any;
2421
- scene: any;
2422
- cameraParameters: Vector2;
2423
- resolution: Vector2;
2424
- determineNewLabelSize: any;
2425
- on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2426
- off<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2427
- publish<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, payload?: INTERNAL_EVENT_PAYLOAD[EVENT_NAME]): void;
2428
- /**
2429
- * Manual camera controls for MapView. Generally you should be using the functions on MapView like {{#crossLink "MapView/focusOn:method"}}{{/crossLink}},
2430
- * but if you have some cool animations in mind, you can do it with the {{#crossLink "CameraControls"}}{{/crossLink}}.
2431
- * Some of the functions don't do anything in 2D.
2432
- *
2433
- */
2434
- controls: any;
2435
- /**
2436
- * The Venue data this MapView is using.
2437
- *
2438
- * @property venue {MappedinVenue}
2439
- * @final
2440
- */
2441
- readonly venue: Mappedin;
2442
- /**
2443
- * The div MapView is using.
2444
- *
2445
- * @property container {Div}
2446
- * @final
2447
- */
2448
- readonly container: HTMLElement;
2449
- /**
2450
- * The ID of the Map currently being displayed.
2451
- *
2452
- */
2453
- readonly currentMap: string;
2454
- /**
2455
- * Change this factor to influence how much the camera zooms in on a {@link IMapView3D.focusOn} call.
2456
- *
2457
- * @property focusZoomFactor {Integer}
2458
- * @default 3
2459
- */
2460
- focusZoomFactor: number;
2461
- /**
2462
- * Returns the value you should call {@link CameraControls.setZoom} on to fit the Polygon exactly.
2463
- *
2464
- * @return The zoom level that will fit the Polygon
2465
- */
2466
- getZoomLevelForPolygon(props: {
2467
- /**
2468
- * The Polygon or Polygon ID to get the zoom level for
2469
- */
2470
- polygonOrPolygonId: MappedinPolygon | string;
2471
- }): number;
2472
- /**
2473
- * Returns the value you should call {@link CameraControls.setZoom} on to fit the {@link IMapView3D.currentMap} exactly.
2474
- *
2475
- * @return The zoom level that will fit the {@link IMapView3D.currentMap}.
2476
- */
2477
- getZoomLevelForCurrentMap(): number;
2478
- /**
2479
- * Returns the angle that points to north, in radians, from the default orientation.
2480
- *
2481
- * @return The angle to north from the default orientation, in radians.
2482
- */
2483
- getNorth(): number;
2484
- /**
2485
- * Takes an element on the DOM and rotates it such that the top is pointing north. It will rotate with the camera, staying locked
2486
- * 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
2487
- * is how you would do a compass rose.
2488
- *
2489
- * This will modify your element's transform.
2490
- *
2491
- * @param element The element on the page to rotate.
2492
- * @param offset The amount to offset the rotation by, in radians.
2493
- *
2494
- */
2495
- lockNorth(element: HTMLElement, offset?: number): void;
2496
- /**
2497
- * 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.
2498
- * @param element The node to stop rotating. It won't reset the transform, just leave it as is.
2499
- */
2500
- unlockNorth(element: HTMLElement): void;
2501
- currentInteractionEvent: string;
2502
- interactivePolygons: any;
2503
- highlightedPolygons: any;
2504
- cameraPlane: any;
2505
- /**
2506
- * Called any time a user touches or clicks the map. Only fires on "single" touches/clicks.
2507
- *
2508
- * @param position Object containing the latitude & longitude of the location touched on the map
2509
- * @param polygons Array of polygon IDs that were touched, in order of front to back.
2510
- * @param nearBlueDot Whether the touch was close enough to the Blue Dot to be considered a touch on the Blue Dot.
2511
- */
2512
- onMapClicked(position: {
2513
- latitude: number;
2514
- longitude: number;
2515
- }, polygons: string[], nearBlueDot: boolean): void;
2516
- /**
2517
- * This is called when an interactive Polygon is clicked on.
2518
- * You will almost certainly want to replace this with your own function in your client app.
2519
- * Return "false" if you have consumed the event and it shouldn't bubble down to other Polygons beneath this one.
2520
- *
2521
- * @param polygonId polygonId passed in when tapping an interactive polygon
2522
- */
2523
- onPolygonClicked(polygonId: string): boolean | void;
2524
- onMapChanged(map: string): void;
2525
- getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
2526
- getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
2527
- /**
2528
- * Takes an x/y pair in Mappedin coordinate space and gives you a Vector3 in scene space
2529
- * @param nodeOrCoordinate a node or coordinate
2530
- */
2531
- convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
2708
+ onMessageReceived<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload: {
2709
+ data: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2710
+ msgID?: string;
2711
+ }): void;
2532
2712
  /**
2533
- * Converts a Vector-like object into a MappedinCoordinate for a map.
2534
- * @param position an object with x and y, like a Vector3
2535
- * @param mapClass An optional map; otherwise, the current map will be used.
2713
+ * Send a message to the other side of the bridge
2714
+ *
2715
+ * @hidden
2536
2716
  */
2537
- convert3DMapPositionToCoordinate(position: {
2538
- x: number;
2539
- y: number;
2540
- }, mapClass?: MappedinMap): MappedinCoordinate;
2541
- setPadding(padding: {
2542
- top: number;
2543
- left: number;
2544
- bottom: number;
2545
- right: number;
2717
+ sendMessage<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: {
2718
+ msgID?: string;
2719
+ data: BRIDGE_EVENT_PAYLOADS[EVENT_NAME] | null;
2546
2720
  }): void;
2547
2721
  /**
2548
- * This is fired when the user taps/clicks on the MapView without hitting an interactive Polygon.
2549
- * You will almost certainly want to replace this with your own function in your client app.
2550
- * You would probably use this to clear any Polygon highlighting, in certain situations.
2722
+ * Handle resolution from the other side, with a value if one was expected
2723
+ * @hidden
2551
2724
  */
2552
- onNothingClicked(): void;
2553
- smartCollisionEngine: any;
2554
- mapObjects: any;
2725
+ protected handleResolution: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2726
+ msgID: string;
2727
+ data: {
2728
+ payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2729
+ };
2730
+ }) => void;
2555
2731
  /**
2556
- * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
2557
- * but if you are doing something weird, or have your own special tween for something, you will want to call this function.
2558
- * 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.
2559
- * Ignored in 2D.
2732
+ * Handle rejection from the other side, typically when the request results in an error
2733
+ * @hidden
2560
2734
  */
2561
- tryRendering(renderMode?: typeof RENDER): void;
2562
- setMap(mapOrMapId: MappedinMap | string): Promise<null>;
2563
- getPositionNode(node: MappedinNode): Vector3;
2564
- cameraObject: any;
2565
- setBackgroundColor(color: number | string, alpha?: number): void;
2566
- mapManager: any;
2567
- focusOn(focusOptions: TFocusOptionsLegacy): Tween;
2568
- canvasWidth: number;
2569
- canvasHeight: number;
2735
+ protected handleRejection: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2736
+ msgID: string;
2737
+ data: {
2738
+ payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2739
+ };
2740
+ }) => void;
2570
2741
  /**
2571
- * Resets the MapView to the default state.
2742
+ * Emitting a message without expecting a response
2743
+ * @hidden
2572
2744
  */
2573
- resetState(): void;
2574
- destroy(): void;
2745
+ emit<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): void;
2746
+ /**
2747
+ * Emitting a message and waiting for a reponse, via a promise
2748
+ * @hidden
2749
+ */
2750
+ emitAsync<T, EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): Promise<T>;
2575
2751
  }
2576
2752
  }
2577
2753
 
@@ -3661,6 +3837,229 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavig
3661
3837
  }
3662
3838
  }
3663
3839
 
3840
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch' {
3841
+ import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3842
+ import type { SearchOptions } from 'minisearch';
3843
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
3844
+ import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
3845
+ export const removeAccents: (it: string) => string;
3846
+ export type { SearchOptions };
3847
+ /**
3848
+ * A {@link Mappedin.OfflineSearch} is an offline search module
3849
+ *
3850
+ *
3851
+ * @class Mappedin.OfflineSearch
3852
+ */
3853
+ type TOfflineSearchAllOptions = {
3854
+ /**
3855
+ * Array of stopwords to ignore when searching, default: english stopwords
3856
+ */
3857
+ stopWords?: string[];
3858
+ /**
3859
+ * Index location tags - typically better to use either tags or descriptions, depending on what's available
3860
+ * @default true
3861
+ */
3862
+ searchTags?: boolean;
3863
+ /**
3864
+ * Index location descriptions - typically better to use either tags or descriptions, depending on what's available
3865
+ * @default true
3866
+ */
3867
+ searchDescriptions?: boolean;
3868
+ /**
3869
+ * Also index all tags for every location in every category (caution: this may slow down indexing and search)
3870
+ * @default false
3871
+ */
3872
+ searchTagsInCategories?: boolean;
3873
+ /**
3874
+ * Also index all tags for every location in every category (caution: this may slow down indexing and search)
3875
+ * @default false
3876
+ */
3877
+ searchDescriptionsInCategories?: boolean;
3878
+ /**
3879
+ * Initialize Search with a previously indexed JSON string (outputted by OfflineSearch.toJSON())
3880
+ */
3881
+ jsonIndex?: string;
3882
+ /**
3883
+ * Use the location polygons' rank in weighing results
3884
+ */
3885
+ useLocationRank?: boolean;
3886
+ /**
3887
+ * Emit Analytics events when doing search
3888
+ * @default true when running in production
3889
+ */
3890
+ emitAnalyticsEvents?: boolean;
3891
+ /**
3892
+ * Fine tune search constants
3893
+ */
3894
+ constants: {
3895
+ /**
3896
+ * Fuzziness index for location names and tags
3897
+ * @default 0.09
3898
+ */
3899
+ PRIMARY_INDEX_FUZZYNESS: number;
3900
+ /**
3901
+ * Multiplier for location names (1 by default)
3902
+ * @default 1
3903
+ */
3904
+ PRIMARY_INDEX_WEIGHT: number;
3905
+ /**
3906
+ * Multiplier for descriptions
3907
+ * @default 0.025
3908
+ */
3909
+ SECONDARY_INDEX_WEIGHT: number;
3910
+ /**
3911
+ * Multiplier for location names
3912
+ * @default 1
3913
+ */
3914
+ LOCATION_NAME_WEIGHT: number;
3915
+ /**
3916
+ * Multiplier for category names
3917
+ * @default 0.5
3918
+ */
3919
+ CATEGORY_NAME_WEIGHT: number;
3920
+ /**
3921
+ * Multiplier for category locations' descriptions
3922
+ * @default 0.0005
3923
+ */
3924
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
3925
+ /**
3926
+ * Multiplier for category locations' tags
3927
+ * @default 0.0005
3928
+ */
3929
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
3930
+ /**
3931
+ * Multiplier for category locations' names
3932
+ * @default 0.01
3933
+ */
3934
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
3935
+ /**
3936
+ * Multiplier for location tags
3937
+ * @default 0.05
3938
+ */
3939
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
3940
+ /**
3941
+ * Default rank when one isn't available in the data, default = 1
3942
+ * @default 1
3943
+ */
3944
+ LOCATION_DEFAULT_RANK: number;
3945
+ /**
3946
+ * Ratio of Fuzzy Searches of Location names and tags relative to exact
3947
+ * @default 0.01
3948
+ */
3949
+ RATIO_OF_FUZZY_TO_EXACT: number;
3950
+ /**
3951
+ * Ratio of Prefix Searches of Location names and tags relative to exact
3952
+ * @default 0.2
3953
+ */
3954
+ RATIO_OF_PREFIX_TO_EXACT: number;
3955
+ };
3956
+ };
3957
+ export type TMappedinOfflineAllSearchMatch = {
3958
+ /**
3959
+ * The term that was found
3960
+ */
3961
+ term: string;
3962
+ /**
3963
+ * Term's weight
3964
+ */
3965
+ weight: number;
3966
+ /**
3967
+ * What field the search matched on
3968
+ */
3969
+ matchesOn: string;
3970
+ /**
3971
+ * The value of that field
3972
+ */
3973
+ value?: string;
3974
+ };
3975
+ export type TMappedinOfflineSearchOptions = Partial<TOfflineSearchAllOptions>;
3976
+ export type TMappedinOfflineSearchResult = {
3977
+ /**
3978
+ * Type describing the object
3979
+ */
3980
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
3981
+ /**
3982
+ * Details on why the result was returned
3983
+ */
3984
+ matches: TMappedinOfflineAllSearchMatch[];
3985
+ /**
3986
+ * Found object
3987
+ */
3988
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
3989
+ /**
3990
+ * Total score of the result
3991
+ */
3992
+ score: number;
3993
+ };
3994
+ export type TMappedinOfflineSearchSuggestions = {
3995
+ /**
3996
+ * Total number of suggestions generated
3997
+ */
3998
+ total: number;
3999
+ /**
4000
+ * List of suggestions
4001
+ */
4002
+ hits: {
4003
+ /**
4004
+ * Suggestion text
4005
+ */
4006
+ text: string;
4007
+ }[];
4008
+ };
4009
+ /**
4010
+ * A {@link OfflineSearch} is an offline search module. It can be initialized at any time by passing the {@link Mappedin} object and a set of {@link TMappedinOfflineAllSearchOptions} options.
4011
+ *
4012
+ *
4013
+ * @class Mappedin.OfflineSearch
4014
+ */
4015
+ export class OfflineSearch {
4016
+ #private;
4017
+ constructor(
4018
+ /**
4019
+ * Mappedin Venue Object, typically returned by `getVenue`/`showVenue`
4020
+ */
4021
+ mappedin: Mappedin, options?: TMappedinOfflineSearchOptions);
4022
+ /**
4023
+ * Get Suggestions for term
4024
+ */
4025
+ suggest(
4026
+ /**
4027
+ * Search term
4028
+ */
4029
+ term: string): Promise<TMappedinOfflineSearchSuggestions>;
4030
+ /**
4031
+ * Search for a term
4032
+ */
4033
+ search(
4034
+ /**
4035
+ * Search term
4036
+ */
4037
+ term: string): Promise<TMappedinOfflineSearchResult[]>;
4038
+ /**
4039
+ * Export search index to JSON for storage/caching - this would avoid having to re-index
4040
+ * on page reload
4041
+ */
4042
+ toJSON(): Promise<string>;
4043
+ /**
4044
+ * Add a custom query to the search index
4045
+ */
4046
+ addQuery(params: {
4047
+ /**
4048
+ * Query string to match for this object
4049
+ */
4050
+ query: string;
4051
+ /**
4052
+ * Object that is returned when query matches
4053
+ */
4054
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
4055
+ /**
4056
+ * Optional weight to multiply by the score
4057
+ */
4058
+ weight?: number;
4059
+ }): Promise<void>;
4060
+ }
4061
+ }
4062
+
3664
4063
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types' {
3665
4064
  /**
3666
4065
  * This file contains the API types for MappedinSDK - before they get turned into Classes
@@ -4999,8 +5398,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4999
5398
  export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
5000
5399
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
5001
5400
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
5002
- export type { TGetVenueOptions, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
5003
- export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
5401
+ export type { TGetVenueOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch } from '@mappedin/react-native-sdk/core/packages/get-venue';
5402
+ export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
5004
5403
  export { BundleAssetManager } from '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-manager';
5005
5404
  }
5006
5405
 
@@ -5935,6 +6334,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5935
6334
  }
5936
6335
 
5937
6336
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject' {
6337
+ export namespace TASK_PRIORITY {
6338
+ const VISIBLE_MAP_HIGH: number;
6339
+ const VISIBLE_MAP_LOW: number;
6340
+ const VISIBLE_MAP_MARKER: number;
6341
+ const ASYNC_MAP_HIGH: number;
6342
+ const ASYNC_MAP_LOW: number;
6343
+ const ASYNC_MAP_MARKER: number;
6344
+ const MAP_LOADED: number;
6345
+ }
5938
6346
  export const SCENE_FROM_LIVE_JSON: false;
5939
6347
  /**
5940
6348
  * A handle to a 3D marker added to a map.
@@ -6110,7 +6518,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6110
6518
  _popinChildObjects(): void;
6111
6519
  }
6112
6520
  import { PubSub } from "@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub";
6113
- import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.TaskScheduler";
6521
+ import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler";
6114
6522
  }
6115
6523
 
6116
6524
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search' {
@@ -6238,24 +6646,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-
6238
6646
  export { QuadTree, Rectangle };
6239
6647
  }
6240
6648
 
6241
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.TaskScheduler' {
6242
- export namespace UPDATE_ORDERING {
6243
- const BEFORE_CAMERA: number;
6244
- const CAMERA: number;
6245
- const AFTER_CAMERA: number;
6246
- const RENDER: number;
6247
- const AFTER_RENDER: number;
6248
- const AFTER_ALL_UPDATES: number;
6249
- }
6250
- export namespace TASK_PRIORITY {
6251
- const VISIBLE_MAP_HIGH: number;
6252
- const VISIBLE_MAP_LOW: number;
6253
- const VISIBLE_MAP_MARKER: number;
6254
- const ASYNC_MAP_HIGH: number;
6255
- const ASYNC_MAP_LOW: number;
6256
- const ASYNC_MAP_MARKER: number;
6257
- const MAP_LOADED: number;
6258
- }
6649
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler' {
6259
6650
  /**
6260
6651
  * A function that can be submitted to the Task Scheduler to run each frame for
6261
6652
  * some provided number of frames. A single update can be repeatedly submitted;
@@ -6289,22 +6680,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6289
6680
  * @param [options.userdata] {Any}
6290
6681
  * Arbitrary data that you can store along with this update.
6291
6682
  */
6292
- constructor(options?: {
6293
- callback?: Function | undefined;
6294
- frameCount?: number | undefined;
6295
- ordering?: number | undefined;
6296
- supersededBy?: [FrameUpdate] | undefined;
6297
- name?: string | undefined;
6298
- userdata?: any;
6299
- } | undefined);
6300
- _callback: Function | undefined;
6683
+ constructor(options: {
6684
+ callback: Function;
6685
+ frameCount?: number;
6686
+ ordering?: number;
6687
+ supersededBy?: Set<never>;
6688
+ name: string;
6689
+ userdata?: Record<string, any>;
6690
+ });
6691
+ _callback: Function;
6301
6692
  _frameCount: number;
6302
6693
  _ordering: number;
6303
- _supersededBy: Set<any>;
6304
- name: string | undefined;
6305
- userdata: any;
6694
+ _supersededBy: Set<never>;
6695
+ name: string;
6306
6696
  _remainingFrameCount: number;
6307
6697
  _lastFrameTime: number;
6698
+ userdata?: Record<string, any>;
6308
6699
  /**
6309
6700
  * Return the amount of time that this frame update took to execute during
6310
6701
  * its most recent execution, in milliseconds. If called during this frame
@@ -6344,24 +6735,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6344
6735
  * @param [options.userdata] {Any}
6345
6736
  * Arbitrary data that you can store along with this task.
6346
6737
  */
6347
- constructor(options?: {
6348
- callback?: Function | undefined;
6349
- group?: FrameTaskGroup | undefined;
6350
- priority?: number | undefined;
6351
- postponeOnAdd?: number | undefined;
6352
- name?: string | undefined;
6353
- userdata?: any;
6354
- } | undefined);
6355
- _callback: Function | undefined;
6356
- _group: FrameTaskGroup | null;
6357
- _priority: number;
6738
+ constructor(options: {
6739
+ userdata: Record<string, any>;
6740
+ priority: number;
6741
+ group?: FrameTaskGroup;
6742
+ postponeOnAdd: number | boolean;
6743
+ name: string;
6744
+ lastFrameTime: number;
6745
+ callback: Function;
6746
+ });
6358
6747
  _postponed: number | boolean;
6359
- name: string | undefined;
6360
- userdata: any;
6748
+ userdata: Record<string, any>;
6749
+ _priority: number;
6750
+ _group: FrameTaskGroup | null;
6751
+ name: string;
6752
+ _lastFrameTime: number;
6753
+ _callback: Function;
6361
6754
  _complete: boolean;
6362
6755
  _scheduled: boolean;
6363
6756
  _cancelled: boolean;
6364
- _lastFrameTime: number;
6365
6757
  /**
6366
6758
  * Return true if this task has been run at least once.
6367
6759
  *
@@ -6408,18 +6800,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6408
6800
  * @param [options.userdata] {Any}
6409
6801
  * Arbitrary data that you can store along with this task group.
6410
6802
  */
6411
- constructor(options?: {
6412
- onComplete?: Function | undefined;
6413
- priority?: number | undefined;
6414
- postponeOnAdd?: number | undefined;
6415
- name?: string | undefined;
6416
- userdata?: any;
6417
- } | undefined);
6803
+ constructor(options: {
6804
+ onComplete?: Function;
6805
+ priority?: number;
6806
+ userdata: Record<string, any>;
6807
+ postponeOnAdd: number | boolean;
6808
+ name: string;
6809
+ });
6810
+ _postponed: number | boolean;
6418
6811
  _onComplete: Function;
6419
6812
  _priority: number;
6420
- _postponed: number | boolean;
6421
- name: string | undefined;
6422
- userdata: any;
6813
+ userdata: Record<string, any>;
6814
+ name: string;
6423
6815
  _tasks: Set<any>;
6424
6816
  _scheduledTasks: Set<any>;
6425
6817
  _scheduled: boolean;
@@ -6438,13 +6830,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6438
6830
  * @method tasks
6439
6831
  * @return {[FrameTask]} list of tasks in this group
6440
6832
  */
6441
- getTasks(): [FrameTask];
6833
+ getTasks(): any[];
6442
6834
  /**
6443
6835
  * Empty this task group. This will trivially satisfy `isComplete`.
6444
6836
  *
6445
6837
  * @method clear
6446
6838
  */
6447
6839
  clear(): void;
6840
+ /**
6841
+ * Return one arbitrary incomplete task from this group, or undefined if
6842
+ * there are none.
6843
+ *
6844
+ * @method _popTask
6845
+ * @return {FrameTask} arbitrary scheduled task
6846
+ * @private
6847
+ */
6848
+ _popTask(): any;
6448
6849
  }
6449
6850
  /**
6450
6851
  * A timer for the task scheduler that uses real wall-time to determine if there's
@@ -6454,6 +6855,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6454
6855
  * @private
6455
6856
  */
6456
6857
  export class RealTimeTimer {
6858
+ _maxMillisecondsPerFrame: number;
6859
+ _time: number;
6457
6860
  /**
6458
6861
  * @constructor
6459
6862
  * @param [options] {Object} Options for the timer
@@ -6462,10 +6865,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6462
6865
  * or equal to this value, then another task may be executed
6463
6866
  */
6464
6867
  constructor(options?: {
6465
- maxMillisecondsPerFrame?: any;
6466
- } | undefined);
6467
- _maxMillisecondsPerFrame: any;
6468
- _time: any;
6868
+ maxMillisecondsPerFrame?: number;
6869
+ });
6469
6870
  /**
6470
6871
  * Begin timing a frame.
6471
6872
  *
@@ -6487,6 +6888,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6487
6888
  * @private
6488
6889
  */
6489
6890
  export class FixedTimer {
6891
+ _ticks: number;
6892
+ maxTasksPerFrame: number;
6490
6893
  /**
6491
6894
  * @constructor
6492
6895
  * @param [options] {Object} Options for the timer
@@ -6495,10 +6898,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6495
6898
  * Can be modified as the `maxTasksPerFrame` property on this boject.
6496
6899
  */
6497
6900
  constructor(options?: {
6498
- maxTasksPerFrame?: any;
6499
- } | undefined);
6500
- maxTasksPerFrame: any;
6501
- _ticks: number;
6901
+ maxTasksPerFrame?: number;
6902
+ });
6502
6903
  /**
6503
6904
  * Begin timing a frame.
6504
6905
  *
@@ -6542,11 +6943,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6542
6943
  * performance information.
6543
6944
  */
6544
6945
  constructor(options?: {
6545
- timer?: any;
6546
- performance?: any;
6547
- } | undefined);
6548
- _timer: any;
6549
- _performance: any;
6946
+ timer?: RealTimeTimer;
6947
+ performance?: boolean;
6948
+ });
6949
+ _timer: RealTimeTimer;
6950
+ _performance: boolean;
6550
6951
  _scheduledUpdatesByOrdering: Multimap;
6551
6952
  _scheduledTasksByPriority: Multimap;
6552
6953
  _postponedTasks: Set<any>;
@@ -6554,18 +6955,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6554
6955
  _updatesToRunThisFrame: any[];
6555
6956
  _lastFrameTime: number;
6556
6957
  _updatesRunLastFrame: Set<any>;
6557
- /**
6558
- * Run all scheduled updates, and re-schedule another animation frame if any
6559
- * scheduled updates still exist. If any scheduled update specifies
6560
- * `shouldRunTasksAfterCompletion`, this will also run queued tasks until the
6561
- * frame time runs out.
6562
- *
6563
- * @method update
6564
- * @param timestamp {number} the current animation time, as returned from
6565
- * `performance.now()`; will be automatically filled in by
6566
- * `requestAnimationFrame` when it triggers this as a callback
6567
- */
6568
- update(timestamp: number): void;
6569
6958
  /**
6570
6959
  * Empty the task scheduler's queue. All tasks in it will be cancelled.
6571
6960
  *
@@ -6585,6 +6974,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6585
6974
  * @method requestAnimationFrame
6586
6975
  */
6587
6976
  requestAnimationFrame(): void;
6977
+ /**
6978
+ * Run all scheduled updates, and re-schedule another animation frame if any
6979
+ * scheduled updates still exist. If any scheduled update specifies
6980
+ * `shouldRunTasksAfterCompletion`, this will also run queued tasks until the
6981
+ * frame time runs out.
6982
+ *
6983
+ * @method update
6984
+ * @param timestamp {number} the current animation time, as returned from
6985
+ * `performance.now()`; will be automatically filled in by
6986
+ * `requestAnimationFrame` when it triggers this as a callback
6987
+ */
6988
+ update(timestamp: number): void;
6588
6989
  /**
6589
6990
  * Execute all tasks that are currently pending, without regard for the
6590
6991
  * available frame time.
@@ -6609,7 +7010,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6609
7010
  * has not yet been run or if the scheduler has been cleared.
6610
7011
  */
6611
7012
  getUpdatesRunLastFrame(): Set<any>;
6612
- _executeOneTask(timestamp: any): void;
7013
+ _executeOneTask(timestamp: number): void;
6613
7014
  /**
6614
7015
  * Schedule an update to be run for the next `update.frameCount` frames. If
6615
7016
  * the update already exists in the scheduler, the update's frame count will
@@ -6619,7 +7020,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6619
7020
  * @method scheduleUpdate
6620
7021
  * @param task {FrameUpdate} the update to schedule
6621
7022
  */
6622
- scheduleUpdate(update: any): void;
7023
+ scheduleUpdate(update: FrameUpdate): void;
6623
7024
  /**
6624
7025
  * Schedule a task to be run during a frame update. This will also schedule
6625
7026
  * an animation frame to begin processing the task queue.
@@ -6634,7 +7035,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6634
7035
  * @method cancelUpdate
6635
7036
  * @param task {FrameUpdate} the update to cancel
6636
7037
  */
6637
- cancelUpdate(update: any): void;
7038
+ cancelUpdate(update: FrameUpdate): void;
6638
7039
  /**
6639
7040
  * If the given task or group is in the queue, remove it. Cancelling a
6640
7041
  * completed task is a no-op.
@@ -6645,7 +7046,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6645
7046
  * @method cancelTask
6646
7047
  * @param task {FrameTask or FrameTaskGroup} the task to cancel
6647
7048
  */
6648
- cancelTask(task: FrameTask): void;
7049
+ cancelTask(task: FrameTask | FrameTaskGroup): void;
6649
7050
  /**
6650
7051
  * Set the provided task or group not to run, until it's resumed using `resumeTask`.
6651
7052
  *
@@ -6655,7 +7056,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6655
7056
  * @method postponeTask
6656
7057
  * @param task {FrameTask or FrameTaskGroup} the task to postpone
6657
7058
  */
6658
- postponeTask(task: FrameTask): void;
7059
+ postponeTask(task: FrameTask | FrameTaskGroup): void;
6659
7060
  /**
6660
7061
  * Allow a postponed task or task group to resume processing. This will also
6661
7062
  * request an animation frame to allow the resumed task to be processed.
@@ -6666,7 +7067,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6666
7067
  * @method resumeTask
6667
7068
  * @param task {FrameTask or FrameTaskGroup} the task to resume
6668
7069
  */
6669
- resumeTask(task: FrameTask): void;
7070
+ resumeTask(task: FrameTask | FrameTaskGroup): void;
6670
7071
  /**
6671
7072
  * Change the priority of the given scheduled task or task group.
6672
7073
  *
@@ -6674,7 +7075,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6674
7075
  * @param task {FrameTask or FrameTaskGroup} the task whose priority will be changed
6675
7076
  * @param priority {number} the priority to assign the task
6676
7077
  */
6677
- setTaskPriority(task: FrameTask, priority: number): void;
7078
+ setTaskPriority(task: FrameTask | FrameTaskGroup, priority: number): void;
6678
7079
  }
6679
7080
  /**
6680
7081
  * A map that maps a numeric key to a set of values.
@@ -6685,6 +7086,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6685
7086
  * @private
6686
7087
  */
6687
7088
  class Multimap {
7089
+ /**
7090
+ * @method constructor
7091
+ */
7092
+ constructor();
6688
7093
  _map: Map<any, any>;
6689
7094
  _size: number;
6690
7095
  _sortedKeys: any[];
@@ -6744,7 +7149,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6744
7149
  * @method values
6745
7150
  * @return {Iterator} iterator over the values in the map
6746
7151
  */
6747
- values(): Iterator<any, any, undefined>;
7152
+ values(): {
7153
+ [Symbol.iterator]: () => any;
7154
+ next: () => any;
7155
+ };
6748
7156
  /**
6749
7157
  * A list of keys in this set, sorted by numeric value. Not cloned,
6750
7158
  * for efficiency's sake, so please don't mutate it.
@@ -6752,7 +7160,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6752
7160
  * @method keys
6753
7161
  * @return {[number]} sorted list of numeric keys in the map
6754
7162
  */
6755
- keys(): [number];
7163
+ keys(): any[];
6756
7164
  /**
6757
7165
  * The number of elements in this multimap, equal to the sum of the sizes
6758
7166
  * of each key's set of values.