@mappedin/mappedin-js 4.0.18 → 4.0.21

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.
@@ -1,15 +1,12 @@
1
1
  // Generated by dts-bundle v0.7.3
2
2
  // Dependencies for this module:
3
3
  // ../three
4
- // ../three/src/core/Object3D
5
- // ../three/src/math/Vector3
6
4
  // ../@tweenjs/tween.js
7
- // ../three/src/math/Color
8
5
  // ../geojson
9
6
 
10
7
  declare module '@mappedin/mappedin-js' {
11
8
  import Search from '@mappedin/mappedin-js/renderer/internal/Mappedin.Search';
12
- import Analytics from '@mappedin/mappedin-js/renderer/internal/Mappedin.Analytics';
9
+ import Analytics from '@mappedin/mappedin-js/get-venue/Mappedin.Analytics';
13
10
  import { MapView } from '@mappedin/mappedin-js/renderer/MapView';
14
11
  import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/mappedin-js/get-venue';
15
12
  import { PositionUpdater } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
@@ -58,8 +55,9 @@ declare module '@mappedin/mappedin-js' {
58
55
  export type { MapView } from '@mappedin/mappedin-js/renderer/MapView';
59
56
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/mappedin-js/renderer/Camera';
60
57
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/mappedin-js/renderer/Camera';
61
- export type { TGetVenueOptions, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, TShowVenueOptions } from '@mappedin/mappedin-js/get-venue';
62
- export { Mappedin, MappedinDirections, MAP_RENDER_MODE } from '@mappedin/mappedin-js/get-venue';
58
+ export type { TGetVenueOptions, TShowVenueOptions } from '@mappedin/mappedin-js/get-venue';
59
+ export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, MAP_RENDER_MODE } from '@mappedin/mappedin-js/get-venue';
60
+ export { BundleAssetManager } from '@mappedin/mappedin-js/renderer/bundle-asset-manager';
63
61
  }
64
62
 
65
63
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Search' {
@@ -81,21 +79,88 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Search' {
81
79
  let Search: any;
82
80
  }
83
81
 
84
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Analytics' {
85
- export default Analytics;
82
+ declare module '@mappedin/mappedin-js/get-venue/Mappedin.Analytics' {
83
+ type AnalyticsOptions = {
84
+ clientId?: string;
85
+ clientSecret?: string;
86
+ accessToken?: string;
87
+ noAuth?: boolean;
88
+ venue: string;
89
+ testMode?: boolean | string;
90
+ context?: string;
91
+ };
86
92
  /**
87
- * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
88
- * 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`.
89
- *
90
- * @type {any}
91
- *
92
- * @class Analytics
93
- * @param options {Object} A list of configuration options for the Analytics API.
94
- * @param [options.key] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
95
- * @param [options.secret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
96
- * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
97
- */
98
- var Analytics: any;
93
+ * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
94
+ * 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`.
95
+ *
96
+ * @type {any}
97
+ *
98
+ * @class Analytics
99
+ * @param options {Object} A list of configuration options for the Analytics API.
100
+ * @param [options.clientId] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
101
+ * @param [options.clientSecret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
102
+ * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
103
+ * @param [options.context] {String} The context to pass with the analytics request. Defaults to "websdk".
104
+ * @param [options.noAuth] {Boolean} Whether authentication should not be sent with analytics requests.
105
+ * @param [options.testMode] {Boolean} Whether analytics events should be dropped because this is running in a test environment.
106
+ */
107
+ class Analytics {
108
+ #private;
109
+ constructor(options: AnalyticsOptions);
110
+ track(target: any, query: any): void;
111
+ /**
112
+ * Whenever a location is selected, you should fire this event. What "selected" means can vary by venue,
113
+ * but a good rule of thumb is that you fire the event whenever you would show the location's details.
114
+ * Typically this is when the user taps it's polygon on the map, picks it from search results or a category list.
115
+ * or deep links directly into the map.
116
+ * @method locationSelected
117
+ * @param location {MappedinLocation} The location the user selected.
118
+ */
119
+ locationSelected(location: any): void;
120
+ /**
121
+ * Whenever a category is selected, you should fire this event.
122
+ * @method categorySelected
123
+ * @param category {MappedinCategory} The category the user selected.
124
+ */
125
+ categorySelected(category: any): void;
126
+ mapViewLoaded(type: any, forced: any, benchmark: any, reason: any): void;
127
+ /**
128
+ * Whenever a user requests directions, you should fire this event.
129
+ * @method getDirections
130
+ * @param start {MappedinLocation} The start location for wayfinding.
131
+ * @param end {MappedinLocation} The end location for wayfinding.
132
+ */
133
+ getDirections(start: any, end: any): void;
134
+ getSessionID(): string;
135
+ getDeviceID(): string;
136
+ /**
137
+ * @param mode {Boolean} Indicates whether the user's geolocation is enabled.
138
+ */
139
+ setGeolocationMode(mode: any): void;
140
+ /**
141
+ * Track an event.
142
+ * @method trackBlueDotEvent
143
+ * @param event {String}
144
+ * event param should be a property of the {{#crossLink "Analytics/BLUEDOT_EVENT:property"}}{{/crossLink}} property.
145
+ */
146
+ trackBlueDotEvent(blueDotEvent: any): void;
147
+ trackSearch(searchAnalyticsObject: any): void;
148
+ trackSearchSuggest(searchAnalyticsObject: any): void;
149
+ /**
150
+ * Enum of valid bluedot events.
151
+ * Pass a property of this into the {{#crossLink "Analytics/trackBlueDotEvent:method"}}{{/crossLink}} method.
152
+ * Valid properties are: ATTEMPT_BLUEDOT, FOUND_POSITION, FOUND_FLOOR.
153
+ * @property BLUEDOT_EVENT {Object}
154
+ * @example
155
+ * Analytics.trackBlueDotEvent(Analytics.BLUEDOT_EVENT.ATTEMPT_BLUEDOT)
156
+ */
157
+ static BLUEDOT_EVENT: {
158
+ ATTEMPT_BLUEDOT: string;
159
+ FOUND_POSITION: string;
160
+ FOUND_FLOOR: string;
161
+ };
162
+ }
163
+ export default Analytics;
99
164
  }
100
165
 
101
166
  declare module '@mappedin/mappedin-js/renderer/MapView' {
@@ -497,7 +562,7 @@ declare module '@mappedin/mappedin-js/get-venue' {
497
562
  };
498
563
  };
499
564
  export { MAP_RENDER_MODE };
500
- export function getVenueMVF(userOptions: TGetVenueOptions): Promise<Mappedin>;
565
+ export function getVenueMVF(userOptions: TGetVenueBundleOptions): Promise<Mappedin>;
501
566
  /**
502
567
  * Get Venue Data for a Mappedin Venue
503
568
  */
@@ -545,7 +610,7 @@ declare module '@mappedin/mappedin-js/get-venue' {
545
610
  /**
546
611
  * @internal
547
612
  */
548
- export function downloadVenueBundleMVF(options: TGetVenueOptions,
613
+ export function downloadVenueBundleMVF(options: TGetVenueBundleOptions,
549
614
  /**
550
615
  * use Web Workers to speed up MVF parsing. This is likely only benefitial for larger venues,
551
616
  * and may be determental to smaller ones, hence it is off by default
@@ -1510,10 +1575,10 @@ declare module '@mappedin/mappedin-js/renderer/MapView.enums' {
1510
1575
  }
1511
1576
 
1512
1577
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.AssetManager' {
1513
- import { Texture, TextureLoader } from 'three';
1578
+ import { Texture } from 'three';
1514
1579
  import type { MappedinMap } from '@mappedin/mappedin-js/renderer';
1515
1580
  export default class DefaultAssetManager {
1516
- textureLoader: TextureLoader;
1581
+ textureLoader: any;
1517
1582
  loadMapPolygons(map: MappedinMap): Promise<any>;
1518
1583
  loadImage(url: string): Promise<Texture>;
1519
1584
  }
@@ -1777,6 +1842,7 @@ declare module '@mappedin/mappedin-js/renderer/Camera' {
1777
1842
  zoom?: number;
1778
1843
  tilt?: number;
1779
1844
  rotation?: number;
1845
+ position?: MappedinCoordinate | MappedinNode;
1780
1846
  };
1781
1847
  export const ANIMATION_TWEENS: {
1782
1848
  linear: any;
@@ -1853,6 +1919,26 @@ declare module '@mappedin/mappedin-js/renderer/Camera' {
1853
1919
  * Set the maximum distance (in meters) the camera is allowed to get from the ground.
1854
1920
  */
1855
1921
  set maxZoom(meters: number);
1922
+ /**
1923
+ * Get the current camera position, which is at the center of the map.
1924
+ * @returns the position as a coordinate
1925
+ */
1926
+ get position(): MappedinCoordinate;
1927
+ /**
1928
+ * User camera interactions
1929
+ */
1930
+ interactions: {
1931
+ /**
1932
+ * Enable all user interactions. This does not affect programmatic
1933
+ * Camera controls, such as `set` and `focusOn`
1934
+ */
1935
+ enable: () => void;
1936
+ /**
1937
+ * Disable all user interactions. This does not affect programmatic
1938
+ * Camera controls, such as `set` and `focusOn`
1939
+ */
1940
+ disable: () => void;
1941
+ };
1856
1942
  setSafeAreaInsets(insets: {
1857
1943
  top: number;
1858
1944
  left: number;
@@ -1886,6 +1972,18 @@ declare module '@mappedin/mappedin-js/renderer/Camera' {
1886
1972
  export default Camera;
1887
1973
  }
1888
1974
 
1975
+ declare module '@mappedin/mappedin-js/renderer/bundle-asset-manager' {
1976
+ import type { Texture } from 'three';
1977
+ import { Mappedin, MappedinMap } from '@mappedin/mappedin-js/renderer';
1978
+ import AssetManager from '@mappedin/mappedin-js/renderer/internal/Mappedin.AssetManager';
1979
+ export class BundleAssetManager extends AssetManager {
1980
+ venueData: Mappedin;
1981
+ constructor(venueData: Mappedin);
1982
+ loadMapPolygons(map: MappedinMap): Promise<Record<string, any>>;
1983
+ loadImage(url: string): Promise<Texture>;
1984
+ }
1985
+ }
1986
+
1889
1987
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip' {
1890
1988
  import './Mappedin.SmartTooltip.scss';
1891
1989
  import { COLLISION_RANKING_TIERS } from '@mappedin/mappedin-js/renderer/MapView.enums';
@@ -2086,7 +2184,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
2086
2184
  objectsDictionary: {};
2087
2185
  north: null;
2088
2186
  mapScale: null;
2089
- object: Object3D;
2187
+ object: any;
2090
2188
  labels: Set<any>;
2091
2189
  tooltips: Set<any>;
2092
2190
  markers: Set<any>;
@@ -2115,8 +2213,8 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
2115
2213
  enableImageFlipping(polygonId: any, rotation: any): void;
2116
2214
  elements: any;
2117
2215
  boundingBox: {
2118
- min: Vector3;
2119
- max: Vector3;
2216
+ min: any;
2217
+ max: any;
2120
2218
  } | undefined;
2121
2219
  loadPolygonNow(polygonId: any): void;
2122
2220
  _addElementToScene(element: any): void;
@@ -2193,10 +2291,10 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
2193
2291
  * @return {ThreeJSMarkerHandle} a unique identifier for the marker
2194
2292
  */
2195
2293
  addThreeJSMarker(options: {
2196
- object?: Object3D | undefined;
2197
- position?: Vector3 | undefined;
2294
+ object?: any;
2295
+ position?: any;
2198
2296
  rotation?: any;
2199
- scale?: Vector3 | undefined;
2297
+ scale?: any;
2200
2298
  }): ThreeJSMarkerHandle;
2201
2299
  /**
2202
2300
  * Remove the given `ThreeJSMarker` from this map.
@@ -2228,14 +2326,12 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
2228
2326
  _popinChildObjects(): void;
2229
2327
  }
2230
2328
  import { PubSub } from "@mappedin/mappedin-js/renderer/internal/pub-sub";
2231
- import { Object3D } from "three/src/core/Object3D";
2232
2329
  import { FrameTaskGroup } from "@mappedin/mappedin-js/renderer/internal/Mappedin.TaskScheduler";
2233
- import { Vector3 } from "three/src/math/Vector3";
2234
2330
  }
2235
2331
 
2236
2332
  declare module '@mappedin/mappedin-js/renderer' {
2237
2333
  import Search from '@mappedin/mappedin-js/renderer/internal/Mappedin.Search';
2238
- import Analytics from '@mappedin/mappedin-js/renderer/internal/Mappedin.Analytics';
2334
+ import Analytics from '@mappedin/mappedin-js/get-venue/Mappedin.Analytics';
2239
2335
  import { MapView } from '@mappedin/mappedin-js/renderer/MapView';
2240
2336
  import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/mappedin-js/get-venue';
2241
2337
  import { PositionUpdater } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
@@ -2284,8 +2380,9 @@ declare module '@mappedin/mappedin-js/renderer' {
2284
2380
  export type { MapView } from '@mappedin/mappedin-js/renderer/MapView';
2285
2381
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/mappedin-js/renderer/Camera';
2286
2382
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/mappedin-js/renderer/Camera';
2287
- export type { TGetVenueOptions, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, TShowVenueOptions } from '@mappedin/mappedin-js/get-venue';
2288
- export { Mappedin, MappedinDirections, MAP_RENDER_MODE } from '@mappedin/mappedin-js/get-venue';
2383
+ export type { TGetVenueOptions, TShowVenueOptions } from '@mappedin/mappedin-js/get-venue';
2384
+ export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, MAP_RENDER_MODE } from '@mappedin/mappedin-js/get-venue';
2385
+ export { BundleAssetManager } from '@mappedin/mappedin-js/renderer/bundle-asset-manager';
2289
2386
  }
2290
2387
 
2291
2388
  declare module '@mappedin/mappedin-js/get-venue/Mappedin.types' {
@@ -2347,6 +2444,7 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin' {
2347
2444
  import { MappedinTheme } from '@mappedin/mappedin-js/get-venue/MappedinTheme';
2348
2445
  import { MappedinVenue } from '@mappedin/mappedin-js/get-venue/MappedinVenue';
2349
2446
  import { MappedinVortex } from '@mappedin/mappedin-js/get-venue/MappedinVortex';
2447
+ import Analytics from '@mappedin/mappedin-js/get-venue/Mappedin.Analytics';
2350
2448
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
2351
2449
  export enum MappedinCollectionType {
2352
2450
  CATEGORY = "categories",
@@ -2575,9 +2673,11 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin' {
2575
2673
  */
2576
2674
  hydrate(mappedinSerializableData: string | object, shouldPopulateBundledImagesAsBlobs?: boolean): Promise<undefined>;
2577
2675
  images: any;
2676
+ imageBinaries?: Map<string, Uint8Array>;
2578
2677
  scenes: any;
2579
2678
  fetch(): Promise<void>;
2580
2679
  constructor(options: TGetVenueOptionsInternal & TGetVenueOptions);
2680
+ analytics: Analytics;
2581
2681
  /**
2582
2682
  * @hidden
2583
2683
  */
@@ -2725,6 +2825,7 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinPolygon' {
2725
2825
  y: number;
2726
2826
  z: number;
2727
2827
  };
2828
+ _isAbsolutelyPositioned?: boolean;
2728
2829
  };
2729
2830
  holes?: unknown[];
2730
2831
  textures?: {
@@ -3517,6 +3618,7 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.API.types' {
3517
3618
  venue: TVenue;
3518
3619
  vortexes: TVortex[];
3519
3620
  locationStates?: TLocationState[];
3621
+ imageBinaries?: Map<string, Uint8Array>;
3520
3622
  };
3521
3623
  }
3522
3624
 
@@ -3606,7 +3708,6 @@ declare module '@mappedin/mappedin-js/renderer/internal/pub-sub' {
3606
3708
 
3607
3709
  declare module '@mappedin/mappedin-js/renderer/Core.interface' {
3608
3710
  import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/mappedin-js/get-venue';
3609
- import CameraControls from '@mappedin/mappedin-js/renderer/internal/Mappedin.CameraControls';
3610
3711
  import { Vector2, Vector3 } from 'three';
3611
3712
  import { changeListenerFn, TMapViewOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
3612
3713
  import RENDER from '@mappedin/mappedin-js/renderer/internal/Mappedin.RenderTasks';
@@ -3682,7 +3783,7 @@ declare module '@mappedin/mappedin-js/renderer/Core.interface' {
3682
3783
  * Some of the functions don't do anything in 2D.
3683
3784
  *
3684
3785
  */
3685
- controls?: typeof CameraControls;
3786
+ controls: any;
3686
3787
  /**
3687
3788
  * The Venue data this MapView is using.
3688
3789
  *
@@ -3775,7 +3876,20 @@ declare module '@mappedin/mappedin-js/renderer/Core.interface' {
3775
3876
  onMapChanged(map: string): void;
3776
3877
  getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
3777
3878
  getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
3879
+ /**
3880
+ * Takes an x/y pair in Mappedin coordinate space and gives you a Vector3 in scene space
3881
+ * @param nodeOrCoordinate a node or coordinate
3882
+ */
3778
3883
  convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
3884
+ /**
3885
+ * Converts a Vector-like object into a MappedinCoordinate for a map.
3886
+ * @param position an object with x and y, like a Vector3
3887
+ * @param mapClass An optional map; otherwise, the current map will be used.
3888
+ */
3889
+ convert3DMapPositionToCoordinate(position: {
3890
+ x: number;
3891
+ y: number;
3892
+ }, mapClass?: MappedinMap): MappedinCoordinate;
3779
3893
  setPadding(padding: {
3780
3894
  top: number;
3781
3895
  left: number;
@@ -3953,8 +4067,8 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.LabelAtlas' {
3953
4067
  polygonMeshesById: any;
3954
4068
  polyId: any;
3955
4069
  map: any;
3956
- color: Color;
3957
- baseColor: Color;
4070
+ color: any;
4071
+ baseColor: any;
3958
4072
  hideOnCreate: boolean;
3959
4073
  hoverLabelText: any;
3960
4074
  fontSize: number;
@@ -3985,7 +4099,6 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.LabelAtlas' {
3985
4099
  index: any;
3986
4100
  layout(map: any, origin: any, size: any, rotation: any, uv: any, color: any): void;
3987
4101
  }
3988
- import { Color } from "three/src/math/Color";
3989
4102
  export {};
3990
4103
  }
3991
4104
 
@@ -4038,7 +4151,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider'
4038
4151
  getBoundingBox: (TColliderStrategyProps: any) => TRange;
4039
4152
  onStrategySelected: (collider: TCustomCollider<any>) => void;
4040
4153
  };
4041
- type TGetBoundingBox = ({ x, y }: {
4154
+ export type TGetBoundingBox = ({ x, y }: {
4042
4155
  x: any;
4043
4156
  y: any;
4044
4157
  }) => [number, number, number, number];
@@ -4099,7 +4212,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider'
4099
4212
  rank: number;
4100
4213
  visible: boolean;
4101
4214
  offscreen: boolean;
4102
- position: Vector3;
4215
+ position: any;
4103
4216
  dimensions: {
4104
4217
  width: number;
4105
4218
  height: number;
@@ -4291,11 +4404,11 @@ declare module '@mappedin/mappedin-js/renderer/internal/shave-text' {
4291
4404
  }
4292
4405
 
4293
4406
  declare module '@mappedin/mappedin-js/renderer/layers/EventSystem' {
4294
- import { Object3D, Raycaster } from 'three';
4407
+ import { Object3D } from 'three';
4295
4408
  import { MapView } from '@mappedin/mappedin-js/renderer';
4296
4409
  import { ICore } from '@mappedin/mappedin-js/renderer/Core.interface';
4297
4410
  import BlueDotManager from '@mappedin/mappedin-js/renderer/internal/blue-dot-manager';
4298
- export const raycaster: Raycaster;
4411
+ export const raycaster: any;
4299
4412
  class EventSystemLayer {
4300
4413
  mapView: MapView;
4301
4414
  core: ICore;
@@ -4338,7 +4451,7 @@ declare module '@mappedin/mappedin-js/renderer/layers/EventSystem' {
4338
4451
  };
4339
4452
  hasTouched: boolean;
4340
4453
  calculateMouseCoordinates: (event: any) => void;
4341
- getMouseRayIntersects: (objects: Object3D | Object3D[]) => import("three").Intersection[];
4454
+ getMouseRayIntersects: (objects: Object3D | Object3D[]) => any;
4342
4455
  detectPolygonsUnderMouse: () => any[];
4343
4456
  getMouseMapPosition: () => {
4344
4457
  x: number;
@@ -4913,175 +5026,187 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.TaskScheduler'
4913
5026
  }
4914
5027
 
4915
5028
  declare module '@mappedin/mappedin-js/get-venue/Mappedin.MVF.types' {
4916
- import { FeatureCollection, Polygon, Point, MultiPolygon } from 'geojson';
5029
+ import { FeatureCollection, Polygon, Point, MultiPolygon, Position } from 'geojson';
4917
5030
  type ManifestFile = {
4918
- type: 'file';
4919
- name: string;
5031
+ type: 'file';
5032
+ name: string;
4920
5033
  };
4921
5034
  type ManifestFolder = {
4922
- type: 'folder';
4923
- name: string;
4924
- children: ManifestFile[];
5035
+ type: 'folder';
5036
+ name: string;
5037
+ children: ManifestFile[];
4925
5038
  };
4926
5039
  type OpeningHours = {
4927
- opens: string;
4928
- closes: string;
4929
- dayOfWeek: string;
4930
- validFrom?: string;
4931
- validThrough?: string;
5040
+ opens: string;
5041
+ closes: string;
5042
+ dayOfWeek: string;
5043
+ validFrom?: string;
5044
+ validThrough?: string;
4932
5045
  };
4933
5046
  type Image = {
4934
- original?: string;
4935
- xlarge?: string;
4936
- xxlarge?: string;
4937
- medium?: string;
4938
- '140x140'?: string;
4939
- xsmall?: string;
4940
- xxsmall?: string;
4941
- '66x66'?: string;
4942
- small?: string;
4943
- large?: string;
5047
+ original?: string;
5048
+ xlarge?: string;
5049
+ xxlarge?: string;
5050
+ medium?: string;
5051
+ '140x140'?: string;
5052
+ xsmall?: string;
5053
+ xxsmall?: string;
5054
+ '66x66'?: string;
5055
+ small?: string;
5056
+ large?: string;
4944
5057
  };
4945
5058
  type PolygonImage = string;
4946
5059
  type Phone = {
4947
- number: string;
4948
- extension?: string;
5060
+ number: string;
5061
+ extension?: string;
4949
5062
  };
4950
5063
  type Link = {
4951
- label: string;
4952
- url: string;
5064
+ label: string;
5065
+ url: string;
4953
5066
  };
4954
5067
  type Social = {
4955
- facebook?: string;
4956
- twitter?: string;
4957
- instagram?: string;
4958
- website?: string;
5068
+ facebook?: string;
5069
+ twitter?: string;
5070
+ instagram?: string;
5071
+ website?: string;
4959
5072
  };
4960
5073
  type LocationState = {
4961
- type: string;
4962
- start?: string;
4963
- end?: string;
4964
- };
4965
- type ImageTransform = {
4966
- position: {
4967
- x: number;
4968
- y: number;
4969
- z: number;
4970
- };
4971
- rotation: number;
4972
- scale: {
4973
- x: number;
4974
- y: number;
4975
- };
5074
+ type: string;
5075
+ start?: string;
5076
+ end?: string;
4976
5077
  };
4977
5078
  type SiblingGroup = {
4978
- label: string;
4979
- siblings: string[];
5079
+ label: string;
5080
+ siblings: string[];
4980
5081
  };
4981
5082
  export type MILocationProperties = {
4982
- id: string;
4983
- address?: string | null;
4984
- categories: string[];
4985
- description?: string | null;
4986
- email?: string | null;
4987
- externalId?: string | null;
4988
- hours?: OpeningHours[] | null;
4989
- links?: Link[] | null;
4990
- logo?: Image | null;
4991
- name: string;
4992
- phone?: Phone | null;
4993
- picture?: Image | null;
4994
- services?: string | null;
4995
- siblingGroups?: SiblingGroup[] | null;
4996
- social?: Social | null;
4997
- spaces?: TLocationSpaceReference[] | null;
4998
- states?: LocationState[] | null;
4999
- type: string;
5083
+ id: string;
5084
+ address?: string | null;
5085
+ categories: string[];
5086
+ description?: string | null;
5087
+ email?: string | null;
5088
+ externalId?: string | null;
5089
+ hours?: OpeningHours[] | null;
5090
+ links?: Link[] | null;
5091
+ logo?: Image | null;
5092
+ name: string;
5093
+ phone?: Phone | null;
5094
+ picture?: Image | null;
5095
+ services?: string | null;
5096
+ siblingGroups?: SiblingGroup[] | null;
5097
+ social?: Social | null;
5098
+ spaces?: TLocationSpaceReference[] | null;
5099
+ states?: LocationState[] | null;
5100
+ type: string;
5000
5101
  };
5001
5102
  export type MICategoryProperties = {
5002
- id: string;
5003
- name: string;
5004
- picture?: Image;
5103
+ id: string;
5104
+ name: string;
5105
+ picture?: Image;
5005
5106
  };
5006
5107
  export type MIBuildingProperties = {
5007
- id: string;
5008
- name: string;
5009
- venue: string;
5108
+ id: string;
5109
+ name: string;
5110
+ venue: string;
5010
5111
  };
5011
5112
  export type MILevelProperties = {
5012
- id: string;
5013
- abbreviation?: string;
5014
- building?: string;
5015
- elevation?: number;
5016
- name: string;
5113
+ id: string;
5114
+ abbreviation?: string;
5115
+ building?: string;
5116
+ elevation?: number;
5117
+ name: string;
5017
5118
  };
5018
5119
  export type MIPolygonlikeProperties = {
5019
- id: string;
5020
- altitude?: string;
5021
- color?: string;
5022
- externalId?: string | null;
5023
- height?: string;
5024
- layer?: string;
5025
- level: string;
5026
- parent?: string | null;
5120
+ id: string;
5121
+ altitude?: string;
5122
+ color?: string;
5123
+ externalId?: string | null;
5124
+ height?: string;
5125
+ layer?: string;
5126
+ level: string;
5127
+ parent?: string | null;
5027
5128
  };
5028
5129
  type TPseudoNodeSpaceReference = {
5029
- node: string;
5030
- map: string;
5130
+ node: string;
5131
+ map: string;
5031
5132
  };
5032
5133
  export type TRealSpaceReference = {
5033
- id: string;
5034
- map: string;
5134
+ id: string;
5135
+ map: string;
5035
5136
  };
5036
5137
  type TLocationSpaceReference = TPseudoNodeSpaceReference | TRealSpaceReference;
5037
5138
  export type TEntrances = {
5038
- id: string;
5039
- level: string;
5139
+ id: string;
5140
+ level: string;
5040
5141
  };
5041
5142
  export type MISpaceProperties = MIPolygonlikeProperties & {
5042
- entrances: TEntrances[];
5143
+ entrances: TEntrances[];
5043
5144
  };
5044
5145
  export type MIObstructionProperties = MIPolygonlikeProperties;
5045
5146
  export type MIConnectionProperties = {
5046
- id: string;
5047
- accessible: boolean;
5048
- destinations: string[];
5049
- level: string;
5050
- multiplier: number;
5051
- name: string;
5052
- type: string;
5053
- weight: number;
5147
+ id: string;
5148
+ accessible: boolean;
5149
+ destinations: string[];
5150
+ level: string;
5151
+ multiplier: number;
5152
+ name: string;
5153
+ type: string;
5154
+ weight: number;
5054
5155
  };
5055
5156
  export type MINodeProperties = {
5056
- id: string;
5057
- accessible: boolean;
5058
- externalId: string | null;
5059
- level: string;
5060
- multiplier: number;
5061
- neighbors: string[];
5062
- weight: number;
5157
+ id: string;
5158
+ accessible: boolean;
5159
+ externalId: string | null;
5160
+ level: string;
5161
+ multiplier: number;
5162
+ neighbors: string[];
5163
+ weight: number;
5063
5164
  };
5064
5165
  export type MIManifestProperties = {
5065
- name: string;
5066
- folder_struct: (ManifestFolder | ManifestFile)[];
5067
- version: string;
5068
- time: string;
5166
+ name: string;
5167
+ folder_struct: (ManifestFolder | ManifestFile)[];
5168
+ version: string;
5169
+ time: string;
5069
5170
  };
5070
- export type MILayerStyleProperties = {
5071
- layer: string;
5072
- altitude: number;
5073
- color: string;
5074
- height: number;
5075
- opacity: number;
5171
+ export type MIStyle = {
5172
+ id: string;
5173
+ /** The altitude of the bottom of the geometry, in metres. */
5174
+ altitude: number;
5175
+ color: string;
5176
+ height: number;
5177
+ image?: PolygonImage;
5178
+ opacity: number;
5076
5179
  };
5077
- export type MIPolygonStyleProperties = {
5078
- id: string;
5079
- altitude: number;
5080
- color: string;
5081
- height: number;
5082
- image: PolygonImage;
5083
- imageTransform: ImageTransform;
5084
- opacity: number;
5180
+ export type MIImageInstance = {
5181
+ /** The local path or URL of the image. */
5182
+ path: string;
5183
+ /** The position of the centre of the image, in [long, lat] form. */
5184
+ position: Position;
5185
+ /** The altitude of the image, in metres. */
5186
+ altitude: number;
5187
+ /** Euler angles representing the rotation of the image, in degrees. Angles are in XYZ order. */
5188
+ rotation: {
5189
+ x: number;
5190
+ y: number;
5191
+ z: number;
5192
+ };
5193
+ /** The size of the image, in metres. */
5194
+ size: {
5195
+ x: number;
5196
+ y: number;
5197
+ };
5198
+ /** The portion of the image to display. */
5199
+ viewBox: {
5200
+ top: number;
5201
+ left: number;
5202
+ width: number;
5203
+ height: number;
5204
+ };
5205
+ /**
5206
+ * A space or obstruction to associate this image with. If provided,
5207
+ * changes to the polygon's visibility will affect this image.
5208
+ * */
5209
+ polygonId?: string;
5085
5210
  };
5086
5211
  export type MIGeoJSONManifestCollection = FeatureCollection<Point, MIManifestProperties>;
5087
5212
  export type MIGeoJSONBuildingCollection = FeatureCollection<Polygon, MIBuildingProperties>;
@@ -5092,25 +5217,35 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.MVF.types' {
5092
5217
  export type MIGeoJSONNodeCollection = FeatureCollection<Point, MINodeProperties>;
5093
5218
  export type MIGeoJSONLocationCollection = FeatureCollection<null, MILocationProperties>;
5094
5219
  export type MIGeoJSONCategoryCollection = FeatureCollection<null, MICategoryProperties>;
5095
- export type MIGeoJSONLayerStyleCollection = FeatureCollection<null, MILayerStyleProperties>;
5096
- export type MIGeoJSONPolygonStyleCollection = FeatureCollection<null, MIPolygonStyleProperties>;
5097
5220
  export type WithIDs<T> = Map<string, T>;
5221
+ export type MIStyleCollection = MIStyle[];
5098
5222
  /**
5099
- * The entire data collection for an MVF, in a single JSON collection.
5100
- *
5101
- */
5102
- export type MVFData = {
5103
- connection: WithIDs<MIGeoJSONConnectionCollection>;
5104
- level: WithIDs<MIGeoJSONLevelCollection>;
5105
- node: WithIDs<MIGeoJSONNodeCollection>;
5106
- obstruction: WithIDs<MIGeoJSONObstructionCollection>;
5107
- polygonStyle: WithIDs<MIGeoJSONPolygonStyleCollection>;
5108
- space: WithIDs<MIGeoJSONSpaceCollection>;
5109
- building: MIGeoJSONBuildingCollection;
5110
- category: MIGeoJSONCategoryCollection;
5111
- layerStyle: MIGeoJSONLayerStyleCollection;
5112
- location: MIGeoJSONLocationCollection;
5113
- manifest: MIGeoJSONManifestCollection;
5223
+ * A mapping of polygon IDs to style IDs;
5224
+ */
5225
+ export type MIPolygonStyle = {
5226
+ [key in string]: string;
5227
+ };
5228
+ export type MIImageInstanceCollection = MIImageInstance[];
5229
+ /**
5230
+ * The entire data collection for an MVF, in a single JSON collection.
5231
+ *
5232
+ */
5233
+ export type MVFDataJSON = {
5234
+ connection: WithIDs<MIGeoJSONConnectionCollection>;
5235
+ level: WithIDs<MIGeoJSONLevelCollection>;
5236
+ node: WithIDs<MIGeoJSONNodeCollection>;
5237
+ obstruction: WithIDs<MIGeoJSONObstructionCollection>;
5238
+ space: WithIDs<MIGeoJSONSpaceCollection>;
5239
+ building: MIGeoJSONBuildingCollection;
5240
+ category: MIGeoJSONCategoryCollection;
5241
+ style: MIStyleCollection;
5242
+ polygonStyle: WithIDs<MIPolygonStyle>;
5243
+ imageInstance: WithIDs<MIImageInstanceCollection>;
5244
+ location: MIGeoJSONLocationCollection;
5245
+ manifest: MIGeoJSONManifestCollection;
5246
+ };
5247
+ export type MVFData = MVFDataJSON & {
5248
+ imageBinaries: WithIDs<Uint8Array>;
5114
5249
  };
5115
5250
  export {};
5116
5251
  }
@@ -5164,23 +5299,6 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinTheme' {
5164
5299
  }
5165
5300
  }
5166
5301
 
5167
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.CameraControls' {
5168
- export default CameraControls;
5169
- /**
5170
- * 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.
5171
- * 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.
5172
- *
5173
- * 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.
5174
- * 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.
5175
- *
5176
- * Created for you automatically with a MapView, don't re-create yourself.
5177
- * @type {any}
5178
- *
5179
- * @class CameraControls
5180
- */
5181
- let CameraControls: any;
5182
- }
5183
-
5184
5302
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.RenderTasks' {
5185
5303
  export default RENDER;
5186
5304
  namespace RENDER {
@@ -5220,7 +5338,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollisionE
5220
5338
  screen: Rectangle;
5221
5339
  constructor(mapView: any, core: ICore);
5222
5340
  init: (container: HTMLDivElement, projectFn: ({ position, mapId }: {
5223
- position: Vector3;
5341
+ position: any;
5224
5342
  mapId: MappedinMap['id'];
5225
5343
  }) => {
5226
5344
  x: number;