@mappedin/mappedin-js 5.47.0 → 5.49.0

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.
@@ -12,7 +12,6 @@ declare module '@mappedin/mappedin-js' {
12
12
  import { MapView } from '@mappedin/mappedin-js/renderer/public/MapView';
13
13
  import type { Mappedin, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/mappedin-js/get-venue';
14
14
  import { getVenue, getVenueMVF, getVenueBundle, getVenueMaker, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, hydrateVenue, GET_VENUE_EVENT } from '@mappedin/mappedin-js/get-venue';
15
- import { PositionUpdater } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
16
15
  import type { TMapViewOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
17
16
  export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/mappedin-js/common/Mappedin.Logger';
18
17
  export type { Marker } from '@mappedin/mappedin-js/renderer/private/controllers/MarkersController';
@@ -59,7 +58,7 @@ declare module '@mappedin/mappedin-js' {
59
58
  */
60
59
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
61
60
  export { COLLISION_RANKING_TIERS, STATE, E_SDK_EVENT, E_BLUEDOT_STATE_REASON, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_EVENT, E_BLUEDOT_STATE, E_CAMERA_EVENT, E_CAMERA_DIRECTION, SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE, STACKED_MAPS_STATE, MARKER_ANCHOR, GEOLOCATION_STATUS, E_MAP_CHANGED_REASON, } from '@mappedin/mappedin-js/renderer/MapView.enums';
62
- export { getVenue, getVenueMVF, getVenueBundle, getVenueMaker, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, hydrateVenue, PositionUpdater, MappedinDestinationSet, GET_VENUE_EVENT, };
61
+ export { getVenue, getVenueMVF, getVenueBundle, getVenueMaker, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, hydrateVenue, MappedinDestinationSet, GET_VENUE_EVENT, };
63
62
  import DefaultAssetManager from '@mappedin/mappedin-js/renderer/internal/Mappedin.AssetManager';
64
63
  import type { TTileManagerOptions } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin.TileManager';
65
64
  import type { TShowWatermarkOptions } from '@mappedin/mappedin-js/renderer/private/controllers/WatermarkController';
@@ -972,197 +971,6 @@ declare module '@mappedin/mappedin-js/get-venue' {
972
971
  export function hydrateVenueMVF(mvfData: ParsedMVF): Promise<Mappedin>;
973
972
  }
974
973
 
975
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core' {
976
- import FakeGeolocation from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/fake-geolocation';
977
- import { IStateMachine } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine';
978
- import { E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/mappedin-js/renderer/MapView.enums';
979
- import PositionSmoothing from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/position-smoothing';
980
- import { PubSub, IPubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
981
- import { MappedinMap, MappedinNode } from '@mappedin/mappedin-js/get-venue';
982
- import { TGeolocationObject } from '@mappedin/mappedin-js/renderer/MapView.types';
983
- import type { ICore } from '@mappedin/mappedin-js/renderer/internal';
984
- import { BlueDotManager } from '@mappedin/mappedin-js/renderer/internal';
985
- export const DEFAULT_BLUE_DOT_COLOR = "#2266ff";
986
- /**
987
- * Position Updater Events
988
- * @internal
989
- */
990
- export enum E_POSITION_UPDATER_EVENT {
991
- POSITION_UPDATE = 0,
992
- ERROR = 1
993
- }
994
- export interface IPositionUpdater extends IPubSub {
995
- /**
996
- * Function that emits position updates
997
- */
998
- update: (position: TGeolocationObject) => void;
999
- /**
1000
- * Optional function to start listening
1001
- */
1002
- start?: (options?: any) => void;
1003
- /**
1004
- * Optional function to stop listening
1005
- */
1006
- stop?: () => void;
1007
- /**
1008
- * Function that emits an error in retrieving position
1009
- */
1010
- throwError?: (err: string) => void;
1011
- }
1012
- export class PositionUpdater extends PubSub implements IPositionUpdater {
1013
- update: (position: TGeolocationObject) => void;
1014
- throwError: (err: any) => void;
1015
- }
1016
- export type TEnableBlueDotOptions = {
1017
- /**
1018
- * Show Bearing
1019
- * @defaultValue false
1020
- */
1021
- showBearing?: boolean;
1022
- /**
1023
- * For venues that do not provide level updates, assume the user is always on the default map
1024
- * If this is false, and no level information is found from position updates, blueDotUpdate events will
1025
- * not include the nearest node
1026
- * This should probably be set true for single floor venues that have no level information in position updates
1027
- *
1028
- * @defaultValue false
1029
- */
1030
- allowImplicitFloorLevel?: boolean;
1031
- /**
1032
- * Smooth incoming position updates. Set to false if smoothing happens outside the SDK
1033
- * @defaultValue true
1034
- */
1035
- smoothing?: boolean;
1036
- /**
1037
- * Custom positionUpdater
1038
- * @defaultValue undefined
1039
- */
1040
- positionUpdater?: IPositionUpdater;
1041
- /**
1042
- * Override the default color of the Blue Dot. We interpolate other colors, (such as aura and bearing) from this base color
1043
- * @defaultValue '#2266ff'
1044
- */
1045
- baseColor?: string;
1046
- /**
1047
- * Whether to use the rotated view while following the user's position.
1048
- * @defaultValue false
1049
- */
1050
- useRotationMode?: boolean;
1051
- };
1052
- export type TUserData = {
1053
- state: E_BLUEDOT_STATE;
1054
- position: TGeolocationObject | null;
1055
- map: MappedinMap | null;
1056
- bearing: any;
1057
- nearestNode: any;
1058
- hasEverReceivedFloorLevel: boolean;
1059
- };
1060
- export interface IBlueDotCore extends IPubSub {
1061
- positionUpdater: IPositionUpdater | null;
1062
- positionSmoothing: PositionSmoothing;
1063
- locationUncertainTimeoutPeriod: number;
1064
- fallbackToGPSTimeoutPeriod: number;
1065
- enableBlueDot: (options?: TEnableBlueDotOptions) => void;
1066
- disableBlueDot: () => void;
1067
- enableBlueDotOptions: TEnableBlueDotOptions;
1068
- enabled: boolean;
1069
- enableTargetMapOverride: (mapId: MappedinMap['id'], options?: {
1070
- restoreWhenNewFloorLevelIsReceived: boolean;
1071
- }) => void;
1072
- disableTargetMapOverride: () => void;
1073
- targetMapOverride?: {
1074
- mapId: MappedinMap['id'];
1075
- lastStoredMapId?: MappedinMap['id'];
1076
- options?: {
1077
- restoreWhenNewFloorLevelIsReceived: boolean;
1078
- };
1079
- };
1080
- state: TBlueDotStateChange;
1081
- /**
1082
- Whether blue dot should be allowed with missing floor level information.
1083
- */
1084
- forceBlueDot: boolean;
1085
- /** Whether we have received floorLevel data and are on a floorLevel supported device */
1086
- hasEverReceivedFloorLevel: boolean;
1087
- /**
1088
- The state machine for the current state of the blue dot.
1089
- */
1090
- stateMachine: IStateMachine;
1091
- /**
1092
- The map the user's device is currently on.
1093
- */
1094
- userMap: MappedinMap | null;
1095
- /**
1096
- The position of the user's device.
1097
- */
1098
- userPosition: TGeolocationObject | null;
1099
- /**
1100
- The nearest node to the user's position.
1101
- */
1102
- nearestNode: any;
1103
- /**
1104
- The direction the user is moving.
1105
- */
1106
- bearing: any;
1107
- /**
1108
- * When bearing is set by updateBearing. undefined if overrideBearing is turned off
1109
- */
1110
- overrideBearing?: number;
1111
- /**
1112
- Everything in one object, for convenience.
1113
- */
1114
- userData: TUserData | null;
1115
- }
1116
- export type TBlueDotPositionUpdate = {
1117
- /**
1118
- * The {@link MappedinMap} Blue Dot position is on
1119
- */
1120
- map?: MappedinMap;
1121
- /**
1122
- * The nearest {@link MappedinNode} to the Blue Dot position
1123
- */
1124
- nearestNode?: MappedinNode;
1125
- /**
1126
- * Actual position of Blue Dot (post smoothing, if smoothing is enabled)
1127
- */
1128
- position?: TGeolocationObject;
1129
- /**
1130
- * Current Blue Dot bearing
1131
- */
1132
- bearing?: number;
1133
- };
1134
- export type TBlueDotStateChange = {
1135
- /**
1136
- * What we currently know about the user's position, and how confident we are.
1137
- */
1138
- name: E_BLUEDOT_STATE;
1139
- /**
1140
- * Visiblity state of the Blue Dot marker
1141
- */
1142
- markerVisibility?: E_BLUEDOT_MARKER_STATE;
1143
- /**
1144
- * Reason why Blue Dot may be in the current state
1145
- */
1146
- reason?: E_BLUEDOT_STATE_REASON;
1147
- /**
1148
- * Additional message to complement the reason
1149
- */
1150
- message?: GeolocationPositionError | string;
1151
- };
1152
- export const FALLBACK_TO_GPS_TIMEOUT = 10000;
1153
- type TBlueDotProps = {
1154
- data: any;
1155
- core: ICore;
1156
- manager: BlueDotManager;
1157
- };
1158
- export type TLatLonProps = [number, number];
1159
- const BlueDot: {
1160
- ({ data, core, manager }: TBlueDotProps): IBlueDotCore;
1161
- FakeGeolocation: typeof FakeGeolocation;
1162
- };
1163
- export default BlueDot;
1164
- }
1165
-
1166
974
  declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1167
975
  import type { MAP_RENDER_MODE, Mappedin, MappedinCoordinate, MappedinLocation, MappedinMap, MappedinNode, MappedinPolygon, ThingsOption } from '@mappedin/mappedin-js/get-venue';
1168
976
  import type { TFloatingLabelAppearance } from '@mappedin/mappedin-js/renderer/internal/Mappedin.FloatingLabel';
@@ -1172,6 +980,7 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1172
980
  import { TOOLTIP_ANCHOR } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip';
1173
981
  import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, CAMERA_EASING_MODE, E_MAP_CHANGED_REASON, STACKED_MAPS_STATE } from '@mappedin/mappedin-js/renderer/MapView.enums';
1174
982
  import { TOutdoorViewOptions, TOutdoorViewOptionsWithHeaders, TOutdoorViewOptionsWithAuthURL } from '@mappedin/mappedin-js/renderer/private/controllers/OutdoorViewController';
983
+ import { IPubSub, PubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
1175
984
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance, ThingsOption };
1176
985
  /** @internal */
1177
986
  export type Without<T, U> = {
@@ -1384,7 +1193,7 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1384
1193
  overviewPathOptions?: TPathOptions;
1385
1194
  overviewPathOnConnectionsOptions?: TPathOptions;
1386
1195
  showOverviewPathOnMap?: MappedinMap;
1387
- overviewPathMode?: 'always' | 'current-elevation-and-mapgroup';
1196
+ overviewPathMode?: 'always' | 'current-elevation-and-mapgroup' | 'current-elevation';
1388
1197
  overviewInactivePathSizeFactor?: number;
1389
1198
  overviewPathInactiveColor?: string;
1390
1199
  };
@@ -2404,10 +2213,11 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
2404
2213
  export type { default as Journey } from '@mappedin/mappedin-js/renderer/public/api/Journey';
2405
2214
  export type TStackedMapsOptions = {
2406
2215
  /**
2407
- * The vertical distance between maps in overview, in metres.
2216
+ * The vertical distance between maps in overview, in metres. When set to 'auto', will automatically determine
2217
+ * the ideal vertical spacing based on map content and dimensions.
2408
2218
  * @default 50
2409
2219
  */
2410
- verticalDistanceBetweenMaps?: number;
2220
+ verticalDistanceBetweenMaps?: number | 'auto';
2411
2221
  /**
2412
2222
  * Whether to show map level labels in overview.
2413
2223
  * @default true
@@ -2419,6 +2229,28 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
2419
2229
  */
2420
2230
  prioritizeJourneyMaps?: boolean;
2421
2231
  };
2232
+ export interface IPositionUpdater extends IPubSub {
2233
+ /**
2234
+ * Function that emits position updates
2235
+ */
2236
+ update: (position: TGeolocationObject) => void;
2237
+ /**
2238
+ * Optional function to start listening
2239
+ */
2240
+ start?: (options?: any) => void;
2241
+ /**
2242
+ * Optional function to stop listening
2243
+ */
2244
+ stop?: () => void;
2245
+ /**
2246
+ * Function that emits an error in retrieving position
2247
+ */
2248
+ throwError?: (err: string) => void;
2249
+ }
2250
+ export class PositionUpdater extends PubSub implements IPositionUpdater {
2251
+ update: (position: TGeolocationObject) => void;
2252
+ throwError: (err: any) => void;
2253
+ }
2422
2254
  }
2423
2255
 
2424
2256
  declare module '@mappedin/mappedin-js/common/Mappedin.Logger' {
@@ -3911,7 +3743,7 @@ declare module '@mappedin/mappedin-js/renderer/internal' {
3911
3743
  import { MappedinMap } from '@mappedin/mappedin-js/get-venue';
3912
3744
  import { Vector3 } from '@mappedin/mvf';
3913
3745
  export { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode, MappedinLocation, MappedinVenue, findPreferredLanguage, } from '@mappedin/mappedin-js/get-venue';
3914
- export type { TEnableBlueDotOptions, TFloatingLabelAppearance, TGeolocationObject, TPathOptions, TConnectionProps, TConnectionTemplateFn, TMarkerTemplateProps, TMarkerTemplateFn, TJourneyOptions, TPadding, TCreateMarkerOptions, TAnimationOptions, TCreateTooltipInternalOptions, TCreateTooltipCommonOptions, TCreateTooltipOptions, TCreateTextTooltipOptions, TCreateCustomInnerHTMLTooltipOptions, TCreateCustomTooltipOptions, TCreateThreeDMarkerOptions, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TMapViewOptionsLegacy, TFlatLabelOptions, TFlatLabelAppearance, TFloatingLabelPolygonOptions, TAddFlatLabelOptions, TAddFloatingLabelOptions, TLabelAllLocationCommonOptions, TLabelAllLocationFloatingLabelOptions, TLabelAllLocationFlatLabelOptions, TFloatingLabelAllLocationsOptions, TFlatLabelAllLocationsOptions, changeListenerFn, TMapClickEvent, E_SDK_EVENT_PAYLOAD, E_BLUEDOT_EVENT_PAYLOAD, CAMERA_EVENT_PAYLOAD, } from '@mappedin/mappedin-js/renderer/MapView.types';
3746
+ export type { TEnableBlueDotOptions, TFloatingLabelAppearance, TGeolocationObject, TPathOptions, TConnectionProps, TConnectionTemplateFn, TMarkerTemplateProps, TMarkerTemplateFn, TJourneyOptions, TPadding, TCreateMarkerOptions, TAnimationOptions, TCreateTooltipInternalOptions, TCreateTooltipCommonOptions, TCreateTooltipOptions, TCreateTextTooltipOptions, TCreateCustomInnerHTMLTooltipOptions, TCreateCustomTooltipOptions, TCreateThreeDMarkerOptions, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TMapViewOptionsLegacy, TFlatLabelOptions, TFlatLabelAppearance, TFloatingLabelPolygonOptions, TAddFlatLabelOptions, TAddFloatingLabelOptions, TLabelAllLocationCommonOptions, TLabelAllLocationFloatingLabelOptions, TLabelAllLocationFlatLabelOptions, TFloatingLabelAllLocationsOptions, TFlatLabelAllLocationsOptions, changeListenerFn, TMapClickEvent, E_SDK_EVENT_PAYLOAD, E_BLUEDOT_EVENT_PAYLOAD, CAMERA_EVENT_PAYLOAD, TStackedMapsOptions, } from '@mappedin/mappedin-js/renderer/MapView.types';
3915
3747
  export { labelThemes } from '@mappedin/mappedin-js/renderer/MapView.types';
3916
3748
  export { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, E_BLUEDOT_STATE_REASON, E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, E_CAMERA_DIRECTION, SAFE_AREA_INSET_TYPE, CAMERA_EASING_MODE, ANIMATION_TWEENS, STACKED_MAPS_STATE, } from '@mappedin/mappedin-js/renderer/MapView.enums';
3917
3749
  export { MAP_RENDER_MODE } from '@mappedin/mappedin-js/get-venue';
@@ -4069,7 +3901,8 @@ declare module '@mappedin/mappedin-js/renderer/internal' {
4069
3901
  * Types
4070
3902
  */
4071
3903
  export type { TSceneTransitionOptions } from '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.SceneManager';
4072
- export type { IPositionUpdater, IBlueDotCore } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
3904
+ export type { IBlueDotCore } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
3905
+ export type { IPositionUpdater } from '@mappedin/mappedin-js/renderer/MapView.types';
4073
3906
  export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
4074
3907
  export type { TColliderPosition } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider';
4075
3908
  export type { ICollider, TColliderStrategy } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider';
@@ -4344,6 +4177,14 @@ declare module '@mappedin/mappedin-js/renderer/MapView.enums' {
4344
4177
  */
4345
4178
  JOURNEY_CONNECTION_CLICK = "journey-connection-click"
4346
4179
  }
4180
+ /**
4181
+ * Position Updater Events
4182
+ * @internal
4183
+ */
4184
+ export enum E_POSITION_UPDATER_EVENT {
4185
+ POSITION_UPDATE = 0,
4186
+ ERROR = 1
4187
+ }
4347
4188
  }
4348
4189
 
4349
4190
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.AssetManager' {
@@ -6218,119 +6059,6 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.API.types' {
6218
6059
  };
6219
6060
  }
6220
6061
 
6221
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
6222
- export default FakeGeolocation;
6223
- class FakeGeolocation {
6224
- constructor(options: any);
6225
- active: boolean;
6226
- positions: any[];
6227
- positionIndex: number;
6228
- timerList: any[];
6229
- timeElapsed: number;
6230
- startTime: number | undefined;
6231
- startPos: number;
6232
- endPos: number;
6233
- smoothingType: any;
6234
- isActive(): boolean;
6235
- setCallbacks(success: any, error: any, options: any): void;
6236
- watchPosition(success: any, error: any, options: any): void;
6237
- sendPositionResponse(position: any): void;
6238
- start(): void;
6239
- pause(): void;
6240
- speed: any;
6241
- setPositions(positions: any): void;
6242
- successCallback: any;
6243
- errorCallback: any;
6244
- options: any;
6245
- clearWatch(): void;
6246
- reset(): void;
6247
- }
6248
- }
6249
-
6250
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
6251
- import { IPubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
6252
- import { E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE } from '@mappedin/mappedin-js/renderer/internal';
6253
- /**
6254
- What we just learned about the user's position.
6255
- */
6256
- export enum ACTION {
6257
- gotPosition = 0,
6258
- gotPositionWithFloor = 1,
6259
- gotError = 2,
6260
- timedOut = 3,
6261
- disabledBlueDot = 4,
6262
- enabledBlueDot = 5
6263
- }
6264
- export interface IStateMachine extends IPubSub {
6265
- state: E_BLUEDOT_STATE;
6266
- markerState: E_BLUEDOT_MARKER_STATE | undefined;
6267
- transition: (action: ACTION) => void;
6268
- reset: () => void;
6269
- }
6270
- export enum STATEMACHINE_EVENT {
6271
- stateChanged = 0,
6272
- markerStateChanged = 1
6273
- }
6274
- const StateMachine: () => IStateMachine & IPubSub;
6275
- export default StateMachine;
6276
- }
6277
-
6278
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/position-smoothing' {
6279
- export namespace SMOOTHING_TYPE {
6280
- let NONE: string;
6281
- let KALMAN: string;
6282
- }
6283
- export default PositionSmoothing;
6284
- class PositionSmoothing {
6285
- constructor(levelFilter: any);
6286
- smooth(pos: any): any;
6287
- smoothingType: any;
6288
- lastLocation: any;
6289
- levelFilter: any;
6290
- formatLocation(pos: any): {
6291
- type: string;
6292
- timestamp: any;
6293
- coords: {
6294
- latitude: any;
6295
- longitude: any;
6296
- accuracy: any;
6297
- floorLevel: any;
6298
- };
6299
- };
6300
- kalman(location: any, lastLocation: any): any;
6301
- latitudeKF: any;
6302
- longitudeKF: any;
6303
- setSmoothingType(smoothingType: any): void;
6304
- reset(): void;
6305
- }
6306
- }
6307
-
6308
- declare module '@mappedin/mappedin-js/renderer/internal/pub-sub' {
6309
- type TChangeEventData = {
6310
- oldValue: any;
6311
- newValue: any;
6312
- };
6313
- type TListenerFn = (data: TChangeEventData | any) => void;
6314
- export interface IPubSub {
6315
- publish: (eventName: any, data: TChangeEventData) => void;
6316
- on: (eventName: any, listenerFn: TListenerFn) => void;
6317
- off: (eventName: any, listenerFn: TListenerFn) => void;
6318
- destroy: () => void;
6319
- _subscribers: {
6320
- [eventName in any]?: TListenerFn[];
6321
- };
6322
- }
6323
- export class PubSub {
6324
- _subscribers: any;
6325
- publish(eventName: any, data: any): void;
6326
- on(eventName: any, fn: any): void;
6327
- off(eventName: any, fn: any): void;
6328
- destroy(): void;
6329
- }
6330
- export function tinyObservable<T>(store: T): T & IPubSub;
6331
- export {};
6332
- }
6333
-
6334
6062
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.FloatingLabel' {
6335
6063
  import './Mappedin.FloatingLabel.scss';
6336
6064
  import { BaseCollider } from '@mappedin/mappedin-js/renderer/internal';
@@ -6583,6 +6311,167 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.FloatingLabel'
6583
6311
  export default InternalFloatingLabel;
6584
6312
  }
6585
6313
 
6314
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core' {
6315
+ import FakeGeolocation from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/fake-geolocation';
6316
+ import { IStateMachine } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine';
6317
+ import { E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/mappedin-js/renderer/MapView.enums';
6318
+ import PositionSmoothing from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/position-smoothing';
6319
+ import { IPubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
6320
+ import { MappedinMap, MappedinNode } from '@mappedin/mappedin-js/get-venue';
6321
+ import { IPositionUpdater, TGeolocationObject } from '@mappedin/mappedin-js/renderer/MapView.types';
6322
+ import type { ICore } from '@mappedin/mappedin-js/renderer/internal';
6323
+ import { BlueDotManager } from '@mappedin/mappedin-js/renderer/internal';
6324
+ export const DEFAULT_BLUE_DOT_COLOR = "#2266ff";
6325
+ export type TEnableBlueDotOptions = {
6326
+ /**
6327
+ * Show Bearing
6328
+ * @defaultValue false
6329
+ */
6330
+ showBearing?: boolean;
6331
+ /**
6332
+ * For venues that do not provide level updates, assume the user is always on the default map
6333
+ * If this is false, and no level information is found from position updates, blueDotUpdate events will
6334
+ * not include the nearest node
6335
+ * This should probably be set true for single floor venues that have no level information in position updates
6336
+ *
6337
+ * @defaultValue false
6338
+ */
6339
+ allowImplicitFloorLevel?: boolean;
6340
+ /**
6341
+ * Smooth incoming position updates. Set to false if smoothing happens outside the SDK
6342
+ * @defaultValue true
6343
+ */
6344
+ smoothing?: boolean;
6345
+ /**
6346
+ * Custom positionUpdater
6347
+ * @defaultValue undefined
6348
+ */
6349
+ positionUpdater?: IPositionUpdater;
6350
+ /**
6351
+ * Override the default color of the Blue Dot. We interpolate other colors, (such as aura and bearing) from this base color
6352
+ * @defaultValue '#2266ff'
6353
+ */
6354
+ baseColor?: string;
6355
+ /**
6356
+ * Whether to use the rotated view while following the user's position.
6357
+ * @defaultValue false
6358
+ */
6359
+ useRotationMode?: boolean;
6360
+ };
6361
+ export type TUserData = {
6362
+ state: E_BLUEDOT_STATE;
6363
+ position: TGeolocationObject | null;
6364
+ map: MappedinMap | null;
6365
+ bearing: any;
6366
+ nearestNode: any;
6367
+ hasEverReceivedFloorLevel: boolean;
6368
+ };
6369
+ export interface IBlueDotCore extends IPubSub {
6370
+ positionUpdater: IPositionUpdater | null;
6371
+ positionSmoothing: PositionSmoothing;
6372
+ locationUncertainTimeoutPeriod: number;
6373
+ fallbackToGPSTimeoutPeriod: number;
6374
+ enableBlueDot: (options?: TEnableBlueDotOptions) => void;
6375
+ disableBlueDot: () => void;
6376
+ enableBlueDotOptions: TEnableBlueDotOptions;
6377
+ enabled: boolean;
6378
+ enableTargetMapOverride: (mapId: MappedinMap['id'], options?: {
6379
+ restoreWhenNewFloorLevelIsReceived: boolean;
6380
+ }) => void;
6381
+ disableTargetMapOverride: () => void;
6382
+ targetMapOverride?: {
6383
+ mapId: MappedinMap['id'];
6384
+ lastStoredMapId?: MappedinMap['id'];
6385
+ options?: {
6386
+ restoreWhenNewFloorLevelIsReceived: boolean;
6387
+ };
6388
+ };
6389
+ state: TBlueDotStateChange;
6390
+ /**
6391
+ Whether blue dot should be allowed with missing floor level information.
6392
+ */
6393
+ forceBlueDot: boolean;
6394
+ /** Whether we have received floorLevel data and are on a floorLevel supported device */
6395
+ hasEverReceivedFloorLevel: boolean;
6396
+ /**
6397
+ The state machine for the current state of the blue dot.
6398
+ */
6399
+ stateMachine: IStateMachine;
6400
+ /**
6401
+ The map the user's device is currently on.
6402
+ */
6403
+ userMap: MappedinMap | null;
6404
+ /**
6405
+ The position of the user's device.
6406
+ */
6407
+ userPosition: TGeolocationObject | null;
6408
+ /**
6409
+ The nearest node to the user's position.
6410
+ */
6411
+ nearestNode: any;
6412
+ /**
6413
+ The direction the user is moving.
6414
+ */
6415
+ bearing: any;
6416
+ /**
6417
+ * When bearing is set by updateBearing. undefined if overrideBearing is turned off
6418
+ */
6419
+ overrideBearing?: number;
6420
+ /**
6421
+ Everything in one object, for convenience.
6422
+ */
6423
+ userData: TUserData | null;
6424
+ }
6425
+ export type TBlueDotPositionUpdate = {
6426
+ /**
6427
+ * The {@link MappedinMap} Blue Dot position is on
6428
+ */
6429
+ map?: MappedinMap;
6430
+ /**
6431
+ * The nearest {@link MappedinNode} to the Blue Dot position
6432
+ */
6433
+ nearestNode?: MappedinNode;
6434
+ /**
6435
+ * Actual position of Blue Dot (post smoothing, if smoothing is enabled)
6436
+ */
6437
+ position?: TGeolocationObject;
6438
+ /**
6439
+ * Current Blue Dot bearing
6440
+ */
6441
+ bearing?: number;
6442
+ };
6443
+ export type TBlueDotStateChange = {
6444
+ /**
6445
+ * What we currently know about the user's position, and how confident we are.
6446
+ */
6447
+ name: E_BLUEDOT_STATE;
6448
+ /**
6449
+ * Visiblity state of the Blue Dot marker
6450
+ */
6451
+ markerVisibility?: E_BLUEDOT_MARKER_STATE;
6452
+ /**
6453
+ * Reason why Blue Dot may be in the current state
6454
+ */
6455
+ reason?: E_BLUEDOT_STATE_REASON;
6456
+ /**
6457
+ * Additional message to complement the reason
6458
+ */
6459
+ message?: GeolocationPositionError | string;
6460
+ };
6461
+ export const FALLBACK_TO_GPS_TIMEOUT = 10000;
6462
+ type TBlueDotProps = {
6463
+ data: any;
6464
+ core: ICore;
6465
+ manager: BlueDotManager;
6466
+ };
6467
+ export type TLatLonProps = [number, number];
6468
+ const BlueDot: {
6469
+ ({ data, core, manager }: TBlueDotProps): IBlueDotCore;
6470
+ FakeGeolocation: typeof FakeGeolocation;
6471
+ };
6472
+ export default BlueDot;
6473
+ }
6474
+
6586
6475
  declare module '@mappedin/mappedin-js/renderer/private/controllers/OutdoorViewController' {
6587
6476
  import './OutdoorViewController.scss';
6588
6477
  import type { ICore } from '@mappedin/mappedin-js/renderer/internal';
@@ -6702,6 +6591,32 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/OutdoorViewCo
6702
6591
  export default OutdoorViewController;
6703
6592
  }
6704
6593
 
6594
+ declare module '@mappedin/mappedin-js/renderer/internal/pub-sub' {
6595
+ type TChangeEventData = {
6596
+ oldValue: any;
6597
+ newValue: any;
6598
+ };
6599
+ type TListenerFn = (data: TChangeEventData | any) => void;
6600
+ export interface IPubSub {
6601
+ publish: (eventName: any, data: TChangeEventData) => void;
6602
+ on: (eventName: any, listenerFn: TListenerFn) => void;
6603
+ off: (eventName: any, listenerFn: TListenerFn) => void;
6604
+ destroy: () => void;
6605
+ _subscribers: {
6606
+ [eventName in any]?: TListenerFn[];
6607
+ };
6608
+ }
6609
+ export class PubSub {
6610
+ _subscribers: any;
6611
+ publish(eventName: any, data: any): void;
6612
+ on(eventName: any, fn: any): void;
6613
+ off(eventName: any, fn: any): void;
6614
+ destroy(): void;
6615
+ }
6616
+ export function tinyObservable<T>(store: T): T & IPubSub;
6617
+ export {};
6618
+ }
6619
+
6705
6620
  declare module '@mappedin/mappedin-js/renderer/private/controllers/BlueDotController' {
6706
6621
  import type { IBlueDotCore, ICore, TEnableBlueDotOptions } from '@mappedin/mappedin-js/renderer/internal';
6707
6622
  import { E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT, MappedinMap, PubSub } from '@mappedin/mappedin-js/renderer/internal';
@@ -7563,14 +7478,14 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.TaskScheduler' {
7563
7478
  declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.SceneManager' {
7564
7479
  import { MappedinMap } from '@mappedin/mappedin-js/get-venue';
7565
7480
  import type { ICore, TCameraAnimationOptions, TFocusOnCameraOptions, TCameraTargets, MapViewStackScene } from '@mappedin/mappedin-js/renderer/internal';
7566
- import { MapObject, MapViewScene } from '@mappedin/mappedin-js/renderer/internal';
7481
+ import { MapObject, MapViewScene, type TStackedMapsOptions } from '@mappedin/mappedin-js/renderer/internal';
7567
7482
  export type TSceneTransitionOptions = {
7568
7483
  /**
7569
7484
  * Map to set as active during the transition. This will decide where the camera will be positioned, as well as which
7570
7485
  * colliders are enabled.
7571
7486
  */
7572
7487
  activeMap?: MappedinMap;
7573
- verticalDistanceBetweenMaps?: number;
7488
+ verticalDistanceBetweenMaps?: TStackedMapsOptions['verticalDistanceBetweenMaps'];
7574
7489
  /**
7575
7490
  * Whether to auto focus on the active map or leave the camera where it is.
7576
7491
  * For single building venues, this should look the same way it did with MapManager
@@ -8224,14 +8139,17 @@ declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.Sce
8224
8139
  }
8225
8140
 
8226
8141
  declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.StackScene' {
8142
+ import type { Object3D } from 'three';
8227
8143
  import { Box3, Mesh } from 'three';
8228
- import { MappedinMap } from '@mappedin/mappedin-js/get-venue';
8229
- import type { ICore, SceneManager, TSceneTransitionOptions } from '@mappedin/mappedin-js/renderer/internal';
8230
- import { MapObject, MapViewScene } from '@mappedin/mappedin-js/renderer/internal';
8144
+ import type { MappedinMap } from '@mappedin/mappedin-js/get-venue';
8145
+ import type { ICore, SceneManager, TSceneTransitionOptions, MapObject } from '@mappedin/mappedin-js/renderer/internal';
8146
+ import { MapViewScene } from '@mappedin/mappedin-js/renderer/internal';
8231
8147
  export const DEFAULT_VERTICAL_DISTANCE_BETWEEN_MAPS = 50;
8232
8148
  class MapViewStackScene extends MapViewScene {
8233
8149
  #private;
8234
8150
  containerBoxHelper: Box3;
8151
+ get cachedIdealVerticalDistance(): number | undefined;
8152
+ set cachedIdealVerticalDistance(value: number | undefined);
8235
8153
  viewportBox: any;
8236
8154
  currentMapWrapperMesh: any;
8237
8155
  currentMapWrapperBoxHelper: any;
@@ -8244,7 +8162,7 @@ declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.Sta
8244
8162
  createStackBoundingBox(): void;
8245
8163
  focusOnStackBox(transitionOptions?: TSceneTransitionOptions): Promise<unknown>;
8246
8164
  unmount(): void;
8247
- computeMapZ(mo: MapObject, index: number, transitionOptions?: TSceneTransitionOptions): number;
8165
+ computeMapZ(mo: MapObject, index: number, verticalDistanceBetweenMaps?: number | 'auto'): number;
8248
8166
  prepare(sceneManager: SceneManager, transitionOptions?: TSceneTransitionOptions): Promise<void>;
8249
8167
  postRender(): void;
8250
8168
  expandMaps: (mapObjects: MapObject[], transitionOptions: TSceneTransitionOptions) => {
@@ -8260,8 +8178,22 @@ declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.Sta
8260
8178
  createMapLabels: () => void;
8261
8179
  updateLabels: () => void;
8262
8180
  destroyLabels: () => void;
8181
+ helpers: Object3D[];
8182
+ debug2DBox: HTMLElement[];
8183
+ /**
8184
+ * Get the first two floor distance as the ideal vertical distance
8185
+ * cached the result to avoid recomputation.
8186
+ * this is a temporary solution to provide an ideal stackedmap vertical distance between floors.
8187
+ * the problem with this approach:
8188
+ * 1. it only considers the first two floors
8189
+ * 2. if the camera panned higher then this computation will be wrong
8190
+ * 3. since cache is at module level, any cercumstances changes will not be reflected: camera rotation
8191
+ */
8192
+ getIdealVerticalDistance(): number | undefined;
8193
+ focusOnCurrentMap(transitionOptions?: TSceneTransitionOptions): Promise<unknown>;
8263
8194
  }
8264
8195
  export default MapViewStackScene;
8196
+ export function isValidBoxNumber(v: number): boolean;
8265
8197
  }
8266
8198
 
8267
8199
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Element' {
@@ -8874,10 +8806,10 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/BillboardMana
8874
8806
  }
8875
8807
 
8876
8808
  declare module '@mappedin/mappedin-js/renderer/private/controllers/StackedMapsController' {
8877
- import { MappedinDirections, MappedinMap, MappedinNode } from '@mappedin/mappedin-js/get-venue';
8809
+ import type { MappedinDirections, MappedinMap, MappedinNode } from '@mappedin/mappedin-js/get-venue';
8878
8810
  import { STACKED_MAPS_STATE, MapViewScene, MapViewStackScene, CAMERA_EASING_MODE } from '@mappedin/mappedin-js/renderer/internal';
8879
8811
  import type { ICore, TCameraTransform, TCameraAnimationOptions } from '@mappedin/mappedin-js/renderer/internal';
8880
- import { TStackedMapsOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
8812
+ import type { TStackedMapsOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
8881
8813
  enum ACTION {
8882
8814
  enable = "enable",
8883
8815
  disable = "disable",
@@ -8963,7 +8895,7 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/StackedMapsCo
8963
8895
  tilt: number;
8964
8896
  };
8965
8897
  };
8966
- verticalDistanceBetweenMaps: number | undefined;
8898
+ verticalDistanceBetweenMaps: number | "auto" | undefined;
8967
8899
  })[] | undefined;
8968
8900
  getScrollToMapOptions: (params: TParams) => (MapViewStackScene | {
8969
8901
  focusOn: {
@@ -8986,7 +8918,7 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/StackedMapsCo
8986
8918
  duration: number;
8987
8919
  };
8988
8920
  };
8989
- verticalDistanceBetweenMaps: number | undefined;
8921
+ verticalDistanceBetweenMaps: number | "auto" | undefined;
8990
8922
  })[] | undefined;
8991
8923
  getEnableOptions: () => void;
8992
8924
  getShowOverviewTransition: (options: any, inTransit?: boolean) => () => Promise<void>;
@@ -9378,8 +9310,8 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/JourneyContro
9378
9310
  constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions | undefined, core: Core);
9379
9311
  setStep: (step: any) => void;
9380
9312
  setStepByPath: (path: Path) => void;
9381
- overviewPathMode: 'never' | 'always' | 'current-elevation-and-mapgroup';
9382
- setOverviewPathMode(mode: 'never' | 'always' | 'current-elevation-and-mapgroup'): void;
9313
+ overviewPathMode: 'never' | 'always' | 'current-elevation-and-mapgroup' | 'current-elevation';
9314
+ setOverviewPathMode(mode: 'never' | 'always' | 'current-elevation-and-mapgroup' | 'current-elevation'): void;
9383
9315
  static instance: JourneyController | null;
9384
9316
  static create(directions: MappedinDirections | MappedinDirections[], options: any, core: Core): JourneyController;
9385
9317
  destroy(): void;
@@ -11479,27 +11411,51 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.cache' {
11479
11411
  categories: {
11480
11412
  [id: string]: MappedinCategory;
11481
11413
  };
11414
+ categoriesByExternalId: {
11415
+ [externalId: string]: MappedinCategory;
11416
+ };
11482
11417
  locations: {
11483
11418
  [id: string]: MappedinLocation;
11484
11419
  };
11420
+ locationsByExternalId: {
11421
+ [externalId: string]: MappedinLocation;
11422
+ };
11485
11423
  vortexes: {
11486
11424
  [id: string]: MappedinVortex;
11487
11425
  };
11426
+ vortexesByExternalId: {
11427
+ [externalId: string]: MappedinVortex;
11428
+ };
11488
11429
  maps: {
11489
11430
  [id: string]: MappedinMap;
11490
11431
  };
11432
+ mapsByExternalId: {
11433
+ [externalId: string]: MappedinMap;
11434
+ };
11491
11435
  nodes: {
11492
11436
  [id: string]: MappedinNode;
11493
11437
  };
11438
+ nodesByExternalId: {
11439
+ [externalId: string]: MappedinNode;
11440
+ };
11494
11441
  polygons: {
11495
11442
  [id: string]: MappedinPolygon;
11496
11443
  };
11444
+ polygonsByExternalId: {
11445
+ [externalId: string]: MappedinPolygon;
11446
+ };
11497
11447
  events: {
11498
11448
  [id: string]: MappedinEvent;
11499
11449
  };
11450
+ eventsByExternalId: {
11451
+ [externalId: string]: MappedinEvent;
11452
+ };
11500
11453
  mapGroups: {
11501
11454
  [id: string]: MappedinMapGroup;
11502
11455
  };
11456
+ mapGroupsByExternalId: {
11457
+ [externalId: string]: MappedinMapGroup;
11458
+ };
11503
11459
  locationStates: {
11504
11460
  [id: string]: MappedinLocationState;
11505
11461
  };
@@ -11539,6 +11495,93 @@ declare module '@mappedin/mappedin-js/renderer/internal/shave-text' {
11539
11495
  export {};
11540
11496
  }
11541
11497
 
11498
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
11499
+ export default FakeGeolocation;
11500
+ class FakeGeolocation {
11501
+ constructor(options: any);
11502
+ active: boolean;
11503
+ positions: any[];
11504
+ positionIndex: number;
11505
+ timerList: any[];
11506
+ timeElapsed: number;
11507
+ startTime: number | undefined;
11508
+ startPos: number;
11509
+ endPos: number;
11510
+ smoothingType: any;
11511
+ isActive(): boolean;
11512
+ setCallbacks(success: any, error: any, options: any): void;
11513
+ watchPosition(success: any, error: any, options: any): void;
11514
+ sendPositionResponse(position: any): void;
11515
+ start(): void;
11516
+ pause(): void;
11517
+ speed: any;
11518
+ setPositions(positions: any): void;
11519
+ successCallback: any;
11520
+ errorCallback: any;
11521
+ options: any;
11522
+ clearWatch(): void;
11523
+ reset(): void;
11524
+ }
11525
+ }
11526
+
11527
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
11528
+ import { IPubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
11529
+ import { E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE } from '@mappedin/mappedin-js/renderer/internal';
11530
+ /**
11531
+ What we just learned about the user's position.
11532
+ */
11533
+ export enum ACTION {
11534
+ gotPosition = 0,
11535
+ gotPositionWithFloor = 1,
11536
+ gotError = 2,
11537
+ timedOut = 3,
11538
+ disabledBlueDot = 4,
11539
+ enabledBlueDot = 5
11540
+ }
11541
+ export interface IStateMachine extends IPubSub {
11542
+ state: E_BLUEDOT_STATE;
11543
+ markerState: E_BLUEDOT_MARKER_STATE | undefined;
11544
+ transition: (action: ACTION) => void;
11545
+ reset: () => void;
11546
+ }
11547
+ export enum STATEMACHINE_EVENT {
11548
+ stateChanged = 0,
11549
+ markerStateChanged = 1
11550
+ }
11551
+ const StateMachine: () => IStateMachine & IPubSub;
11552
+ export default StateMachine;
11553
+ }
11554
+
11555
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/position-smoothing' {
11556
+ export namespace SMOOTHING_TYPE {
11557
+ let NONE: string;
11558
+ let KALMAN: string;
11559
+ }
11560
+ export default PositionSmoothing;
11561
+ class PositionSmoothing {
11562
+ constructor(levelFilter: any);
11563
+ smooth(pos: any): any;
11564
+ smoothingType: any;
11565
+ lastLocation: any;
11566
+ levelFilter: any;
11567
+ formatLocation(pos: any): {
11568
+ type: string;
11569
+ timestamp: any;
11570
+ coords: {
11571
+ latitude: any;
11572
+ longitude: any;
11573
+ accuracy: any;
11574
+ floorLevel: any;
11575
+ };
11576
+ };
11577
+ kalman(location: any, lastLocation: any): any;
11578
+ latitudeKF: any;
11579
+ longitudeKF: any;
11580
+ setSmoothingType(smoothingType: any): void;
11581
+ reset(): void;
11582
+ }
11583
+ }
11584
+
11542
11585
  declare module '@mappedin/mappedin-js/navigator/Edge' {
11543
11586
  import INode from '@mappedin/mappedin-js/navigator/interfaces/INode';
11544
11587
  import IVortex from '@mappedin/mappedin-js/navigator/interfaces/IVortex';