@mappedin/mappedin-js 5.16.0 → 5.18.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.
@@ -4,18 +4,19 @@
4
4
  // ../three
5
5
  // ../@tweenjs/tween.js
6
6
  // ../minisearch
7
+ // ../n8ao
8
+ // ../postprocessing
7
9
 
8
10
  declare module '@mappedin/mappedin-js' {
9
11
  import { MapView } from '@mappedin/mappedin-js/renderer/public/MapView';
10
- import { getVenue, getVenueMVF, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/mappedin-js/get-venue';
12
+ import { getVenue, getVenueMVF, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions, hydrateVenue } from '@mappedin/mappedin-js/get-venue';
11
13
  import { PositionUpdater } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
12
14
  import type { TMapViewOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
13
- import { MARKER_ANCHOR } from '@mappedin/mappedin-js/renderer/internal/Mappedin.Marker';
14
15
  export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/mappedin-js/--/common/Mappedin.Logger';
15
16
  export type { Marker } from '@mappedin/mappedin-js/renderer/private/controllers/MarkersController';
16
17
  export type { Path } from '@mappedin/mappedin-js/renderer/private/controllers/PathsController';
17
18
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/mappedin-js/navigator';
18
- export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/mappedin-js/navigator';
19
+ export type { IDirectionsResult, TSimplifyDirectionsOptions, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES, } from '@mappedin/mappedin-js/navigator';
19
20
  /**
20
21
  * APIs for TypeDoc
21
22
  */
@@ -25,6 +26,8 @@ declare module '@mappedin/mappedin-js' {
25
26
  export type { BlueDot } from '@mappedin/mappedin-js/renderer/public/api/BlueDot';
26
27
  export type { Markers } from '@mappedin/mappedin-js/renderer/public/api/Markers';
27
28
  export type { Paths } from '@mappedin/mappedin-js/renderer/public/api/Paths';
29
+ export type { StackedMaps } from '@mappedin/mappedin-js/renderer/public/api/StackedMaps';
30
+ export type { OutdoorView } from '@mappedin/mappedin-js/renderer/public/api/OutdoorView';
28
31
  export type { TOOLTIP_ANCHOR } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip';
29
32
  export type TMappedinInitializeOutput = {
30
33
  mapView: MapView;
@@ -49,10 +52,11 @@ declare module '@mappedin/mappedin-js' {
49
52
  * @returns
50
53
  */
51
54
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
52
- 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, } from '@mappedin/mappedin-js/renderer/MapView.enums';
53
- export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, MappedinDestinationSet, MARKER_ANCHOR, };
55
+ 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, } from '@mappedin/mappedin-js/renderer/MapView.enums';
56
+ export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, hydrateVenue, PositionUpdater, MappedinDestinationSet, };
54
57
  import DefaultAssetManager from '@mappedin/mappedin-js/renderer/internal/Mappedin.AssetManager';
55
58
  import { TTileManagerOptions } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin.TileManager';
59
+ import { TShowWatermarkOptions } from '@mappedin/mappedin-js/renderer/private/controllers/WatermarkController';
56
60
  /**
57
61
  * @internal
58
62
  */
@@ -66,13 +70,13 @@ declare module '@mappedin/mappedin-js' {
66
70
  * @internal
67
71
  */
68
72
  DefaultAssetManager as AssetManager, };
69
- export type { TMappedinDirective } from '@mappedin/mappedin-js/get-venue/MappedinDirections';
73
+ export type { TMappedinDirective, IAction, IActionArrival, IActionDeparture, IActionExitVortex, IActionTakeVortex, IActionTurn, } from '@mappedin/mappedin-js/get-venue/MappedinDirections';
70
74
  export type { TMappedinInitializeOptions };
71
75
  export * from '@mappedin/mappedin-js/renderer/MapView.types';
72
76
  export type { MapView } from '@mappedin/mappedin-js/renderer/public/MapView';
73
- export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, default as CameraController, } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
74
- export type { TGetVenueOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions, } from '@mappedin/mappedin-js/get-venue';
75
- export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE, setFetchFn, MappedinCollectionType, } from '@mappedin/mappedin-js/get-venue';
77
+ export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraInteractionsSetOptions, TCameraAnimationOptions, default as CameraController, } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
78
+ export type { TGetVenueOptions, TGetVenueBundleOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions, TDirectionToOptions, TPicture, TImage, TColor, TGalleryImage, TOpeningHours, TPhone, TSiblingGroup, TSocial, TState, TGeoReference, TPolygonRanking, TOperationHoursMap, TAccessors, } from '@mappedin/mappedin-js/get-venue';
79
+ export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE, setFetchFn, MappedinCollectionType, MappedinLocationState, } from '@mappedin/mappedin-js/get-venue';
76
80
  /**
77
81
  * @internal
78
82
  * @hidden
@@ -81,7 +85,31 @@ declare module '@mappedin/mappedin-js' {
81
85
  */
82
86
  export { CustomerAnalytics } from '@mappedin/mappedin-js/get-venue';
83
87
  export { BundleAssetManager } from '@mappedin/mappedin-js/renderer/bundle-asset-manager';
88
+ /**
89
+ * @deprecated Use {@link OutdoorView} instead.
90
+ * Enable Tile Manager to render outdoor tiles around the venue. Must be called before {@link showVenue}.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * __enableTileManager({
95
+ * provider: new AzureOutdoorContextProvider(
96
+ * venue.options.language,
97
+ * 256,
98
+ * "Your Azure API Key",
99
+ * undefined //Omitted when using API Key.
100
+ * )
101
+ * });
102
+ * ```
103
+ */
84
104
  export function __enableTileManager(options?: TTileManagerOptions): void;
105
+ /**
106
+ * @hidden
107
+ * @internal
108
+ *
109
+ * Show a Mappedin logo in the 3D scene. Must be called before {@link showVenue}.
110
+ */
111
+ export function __showWatermark(options?: TShowWatermarkOptions): void;
112
+ export type { TTileManagerOptions, TILE_RENDER_MODES } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin.TileManager';
85
113
  export {
86
114
  /**
87
115
  * @internal
@@ -115,6 +143,7 @@ declare module '@mappedin/mappedin-js/renderer/public/MapView' {
115
143
  import { BlueDot } from '@mappedin/mappedin-js/renderer/public/api/BlueDot';
116
144
  import { Camera } from '@mappedin/mappedin-js/renderer/public/api/Camera';
117
145
  import { StackedMaps } from '@mappedin/mappedin-js/renderer/public/api/StackedMaps';
146
+ import OutdoorView from '@mappedin/mappedin-js/renderer/public/api/OutdoorView';
118
147
  /**
119
148
  * Primary API class for controlling and interacting with a 3D map.
120
149
  */
@@ -153,9 +182,13 @@ declare module '@mappedin/mappedin-js/renderer/public/MapView' {
153
182
  */
154
183
  options: TMapViewOptions;
155
184
  /**
156
- * @hidden
185
+ * API for showing multiple maps as a vertical stack.
157
186
  */
158
187
  StackedMaps: StackedMaps;
188
+ /**
189
+ * API to control outdoor context rendering.
190
+ */
191
+ OutdoorView: OutdoorView;
159
192
  /**
160
193
  * @hidden
161
194
  */
@@ -597,6 +630,15 @@ declare module '@mappedin/mappedin-js/renderer/public/MapView' {
597
630
  * @returns An array of {@link MappedinPolygon} instances intersecting the given coordinate.
598
631
  */
599
632
  getPolygonsAtScreenCoordinate(x: number, y: number, options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
633
+ /**
634
+ * Create a {@link MappedinCoordinate} on a given {@link MappedinMap} from an XY-coordinate on screen.
635
+ *
636
+ * @param x The x value of a screen coordinate.
637
+ * @param y The y value of a screen coordinate.
638
+ * @param map The {@link MappedinMap} the coordinate should belong to.
639
+ * @returns A {@link MappedinCoordinate} on the given map.
640
+ */
641
+ getMappedinCoordinateAtScreenCoordinate(x: number, y: number, map: MappedinMap): MappedinCoordinate;
600
642
  /**
601
643
  * Destroy the mapView instance and reclaim memory.
602
644
  *
@@ -644,6 +686,7 @@ declare module '@mappedin/mappedin-js/get-venue' {
644
686
  export { MappedinRankings } from '@mappedin/mappedin-js/get-venue/MappedinRankings';
645
687
  export { MappedinDestinationSet } from '@mappedin/mappedin-js/get-venue/MappedinDestinationSet';
646
688
  export { MappedinNavigatable } from '@mappedin/mappedin-js/get-venue/MappedinNavigatable';
689
+ export { MappedinLocationState } from '@mappedin/mappedin-js/get-venue/MappedinLocationState';
647
690
  /**
648
691
  * @internal
649
692
  * @hidden
@@ -651,7 +694,7 @@ declare module '@mappedin/mappedin-js/get-venue' {
651
694
  * Export this only so our internal pre-built products can use it. We don't want to document it for external developers.
652
695
  */
653
696
  export { default as CustomerAnalytics } from '@mappedin/mappedin-js/get-venue/Mappedin.CustomerAnalytics';
654
- export type { TTHINGS } from '@mappedin/mappedin-js/get-venue/Mappedin';
697
+ export type { TTHINGS, TAccessors } from '@mappedin/mappedin-js/get-venue/Mappedin';
655
698
  export type { TMappedinDirective } from '@mappedin/mappedin-js/get-venue/MappedinDirections';
656
699
  export type { IDirectionsResult } from '@mappedin/mappedin-js/navigator';
657
700
  export type { TOperationHoursMap } from '@mappedin/mappedin-js/get-venue/MappedinLocation';
@@ -690,6 +733,20 @@ declare module '@mappedin/mappedin-js/get-venue' {
690
733
  */
691
734
  mapRenderStrategy?: MAP_RENDER_MODE;
692
735
  };
736
+ /**
737
+ * @experimental
738
+ * Enable outdoor context. Requires multi-buffer rendering to be enabled
739
+ */
740
+ outdoorContext?: {
741
+ enabled?: boolean;
742
+ url?: string;
743
+ authURL?: string;
744
+ };
745
+ /**
746
+ * @experimental
747
+ * Enable multi-buffer rendering
748
+ */
749
+ multiBufferRendering?: boolean;
693
750
  };
694
751
  export { MAP_RENDER_MODE };
695
752
  /**
@@ -936,7 +993,12 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
936
993
  import type { Path } from '@mappedin/mappedin-js/renderer/private/controllers/PathsController';
937
994
  import { TOOLTIP_ANCHOR } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip';
938
995
  import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, MAP_RENDER_MODE, CAMERA_EASING_MODE } from '@mappedin/mappedin-js/renderer/MapView.enums';
996
+ import { TOutdoorViewControllerOptions } from '@mappedin/mappedin-js/renderer/private/controllers/OutdoorViewController';
939
997
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance };
998
+ export type Without<T, U> = {
999
+ [P in Exclude<keyof T, keyof U>]?: never;
1000
+ };
1001
+ export type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
940
1002
  /**
941
1003
  An extension of the GeolocationPosition type.
942
1004
  https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPosition
@@ -1024,6 +1086,27 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1024
1086
  * @defaultValue false
1025
1087
  */
1026
1088
  interactive?: boolean;
1089
+ /**
1090
+ * @experimental
1091
+ *
1092
+ * @defaultValue false
1093
+ * The path will be adjusted vertically to the tallest polygon altitude.
1094
+ */
1095
+ adjustedAltitude?: boolean;
1096
+ /**
1097
+ * @experimental
1098
+ *
1099
+ * The maximum altitude of the path in meters
1100
+ * @defaultValue Infinite
1101
+ */
1102
+ maxAdjustedAltitude?: number;
1103
+ /**
1104
+ * @experimental
1105
+ *
1106
+ * @defaultValue -Infinite
1107
+ * The minimum altitude of the path in meters
1108
+ */
1109
+ minAdjustedAltitude?: number;
1027
1110
  };
1028
1111
  export type TConnectionProps = {
1029
1112
  /**
@@ -1290,6 +1373,14 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1290
1373
  */
1291
1374
  outdoorGeometryLayers?: string[];
1292
1375
  };
1376
+ /**
1377
+ * Settings for experimental vector tile -based outdoor context
1378
+ * Requires `multiBufferRendering` to be enabled.
1379
+ * @experimental
1380
+ */
1381
+ outdoorView?: TOutdoorViewControllerOptions & {
1382
+ enabled?: boolean;
1383
+ };
1293
1384
  /**
1294
1385
  * First map to be rendered
1295
1386
  */
@@ -1457,6 +1548,10 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1457
1548
  * Customize the appearance of the Floating Labels and their pins
1458
1549
  */
1459
1550
  appearance?: TFloatingLabelAppearance;
1551
+ /**
1552
+ * Group analytics based ranking by {@link MappedinCategory.sortOrder} value
1553
+ */
1554
+ groupRankingByCategory?: boolean;
1460
1555
  };
1461
1556
  export type TAddFlatLabelOptions = {
1462
1557
  appearance?: TFlatLabelAppearance;
@@ -1466,6 +1561,10 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1466
1561
  rank?: COLLISION_RANKING_TIERS | number;
1467
1562
  appearance?: TFloatingLabelAppearance;
1468
1563
  interactive?: boolean;
1564
+ /**
1565
+ * Group analytics based ranking by {@link MappedinCategory.sortOrder} value
1566
+ */
1567
+ groupRankingByCategory?: boolean;
1469
1568
  };
1470
1569
  export type TLabelAllLocationCommonOptions = {
1471
1570
  /**
@@ -1530,6 +1629,10 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1530
1629
  export type TFloatingLabelAllLocationsOptions = TLabelAllLocationCommonOptions & {
1531
1630
  appearance?: TFloatingLabelAppearance;
1532
1631
  interactive?: boolean;
1632
+ /**
1633
+ * Group analytics based ranking by {@link MappedinCategory.sortOrder} value
1634
+ */
1635
+ groupRankingByCategory?: boolean;
1533
1636
  };
1534
1637
  /**
1535
1638
  * Options for controlling bulk location labelling
@@ -1585,6 +1688,7 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1585
1688
  [E_SDK_EVENT.STATE_CHANGE]: STATE;
1586
1689
  [E_SDK_EVENT.POLYGON_CLICKED]: MappedinPolygon;
1587
1690
  [E_SDK_EVENT.NOTHING_CLICKED]: undefined;
1691
+ [E_SDK_EVENT.OUTDOOR_VIEW_LOADED]: undefined;
1588
1692
  [E_SDK_EVENT.MAP_CHANGED]: MappedinMap;
1589
1693
  };
1590
1694
  /**
@@ -1633,53 +1737,6 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
1633
1737
  export type { default as Journey } from '@mappedin/mappedin-js/renderer/public/api/Journey';
1634
1738
  }
1635
1739
 
1636
- declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Marker' {
1637
- import './Mappedin.Marker.scss';
1638
- import { COLLISION_RANKING_TIERS, HTMLCollider } from '@mappedin/mappedin-js/renderer/internal';
1639
- import { Vector3 } from 'three';
1640
- import type { TColliderStrategy, IHTMLCollider } from '@mappedin/mappedin-js/renderer/internal';
1641
- /**
1642
- * @hidden
1643
- * @internal
1644
- */
1645
- export type TSmartMarkerOptions = {
1646
- contentHtml?: string;
1647
- position: Vector3;
1648
- mapId: string;
1649
- id?: string;
1650
- anchor?: MARKER_ANCHOR;
1651
- collisionRank?: COLLISION_RANKING_TIERS;
1652
- };
1653
- type TTooltipStyle = {
1654
- top?: string;
1655
- left?: string;
1656
- };
1657
- export enum MARKER_ANCHOR {
1658
- CENTER = 0,
1659
- TOP = 1,
1660
- BOTTOM = 2,
1661
- LEFT = 3,
1662
- RIGHT = 4
1663
- }
1664
- /**
1665
- * @hidden
1666
- * @internal
1667
- */
1668
- class InternalMarker extends HTMLCollider implements IHTMLCollider {
1669
- _el: Element | null;
1670
- style: TTooltipStyle;
1671
- polygon: any;
1672
- constructor(options: TSmartMarkerOptions);
1673
- get strategies(): TColliderStrategy[];
1674
- colliderDidMount(): void;
1675
- setAction(action: any): void;
1676
- colliderDidNotFindAHome(): void;
1677
- colliderDidGoOffscreen(): void;
1678
- colliderDidUpdateVisiblity(): void;
1679
- }
1680
- export default InternalMarker;
1681
- }
1682
-
1683
1740
  declare module '@mappedin/mappedin-js/renderer/private/controllers/MarkersController' {
1684
1741
  import { MappedinCoordinate, MappedinNode } from '@mappedin/mappedin-js/get-venue';
1685
1742
  import type { ICore, TCreateMarkerOptions, TAnimationOptions } from '@mappedin/mappedin-js/renderer/internal';
@@ -1698,11 +1755,16 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/MarkersContro
1698
1755
  /**
1699
1756
  * The container element for this marker. This element's position is automatically updated.
1700
1757
  */
1701
- get containerEl(): any;
1758
+ get containerEl(): HTMLDivElement;
1702
1759
  /**
1703
1760
  * The content that was provided when creating this marker.
1704
1761
  */
1705
- get contentEl(): any;
1762
+ get contentEl(): HTMLDivElement;
1763
+ /**
1764
+ * Force an update on the Marker. Call this if the contents of the Marker have changed since
1765
+ * it was created. Otherwise, the Marker may still collide as if it were the original size.
1766
+ */
1767
+ update(): void;
1706
1768
  }
1707
1769
  class MarkersController {
1708
1770
  #private;
@@ -1894,7 +1956,7 @@ declare module '@mappedin/mappedin-js/navigator' {
1894
1956
  import Navigator from '@mappedin/mappedin-js/navigator/Navigator';
1895
1957
  export { ACTION_TYPE, BEARING_TYPE } from '@mappedin/mappedin-js/navigator/Directive';
1896
1958
  export { Navigator, NavigationGraph };
1897
- export type { IDirectionsResult } from '@mappedin/mappedin-js/navigator/Navigator';
1959
+ export type { IDirectionsResult, TSimplifyDirectionsOptions } from '@mappedin/mappedin-js/navigator/Navigator';
1898
1960
  export { E_MESSAGES } from '@mappedin/mappedin-js/navigator/Navigator';
1899
1961
  export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/mappedin-js/--/common/Mappedin.Logger';
1900
1962
  }
@@ -2009,7 +2071,7 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FlatLabels' {
2009
2071
  }
2010
2072
 
2011
2073
  declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2012
- import { MappedinNode, MappedinPolygon } from '@mappedin/mappedin-js/get-venue';
2074
+ import { MappedinCoordinate, MappedinNode, MappedinPolygon } from '@mappedin/mappedin-js/get-venue';
2013
2075
  import { TAddFloatingLabelOptions, TFloatingLabelAllLocationsOptions, TFloatingLabelAppearance } from '@mappedin/mappedin-js/renderer/MapView.types';
2014
2076
  import FloatingLabelsController from '@mappedin/mappedin-js/renderer/private/controllers/FloatingLabelsController';
2015
2077
  /**
@@ -2044,11 +2106,11 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2044
2106
  * mapView.FloatingLabels.add(location.nodes[0], "Apple Store");
2045
2107
  * ```
2046
2108
  *
2047
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} to label.
2109
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} to label.
2048
2110
  * @param text The text to display on the label.
2049
2111
  * @param options
2050
2112
  */
2051
- add(polygonOrNode: MappedinPolygon | MappedinNode, text: string, options?: TAddFloatingLabelOptions): T;
2113
+ add(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, text: string, options?: TAddFloatingLabelOptions): T;
2052
2114
  /**
2053
2115
  * Update the appearance attributes of an already-existing label. If the
2054
2116
  * provided polygon or node does not have a label already, this is a no-op.
@@ -2061,10 +2123,10 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2061
2123
  * });
2062
2124
  * ```
2063
2125
  *
2064
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to update.
2126
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to update.
2065
2127
  * @param appearance The new {@link TFlatLabelAppearance} settings to apply to the polygon's label.
2066
2128
  */
2067
- setAppearance(polygonOrNode: MappedinPolygon | MappedinNode, appearance: TFloatingLabelAppearance): T;
2129
+ setAppearance(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, appearance: TFloatingLabelAppearance): T;
2068
2130
  /**
2069
2131
  * Remove a floating label from a single polygon or node.
2070
2132
  *
@@ -2077,9 +2139,9 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2077
2139
  * mapView.FloatingLabels.remove(polygon.entrances[0]);
2078
2140
  * ```
2079
2141
  *
2080
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to remove.
2142
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to remove.
2081
2143
  */
2082
- remove(polygonOrNode: MappedinPolygon | MappedinNode): T;
2144
+ remove(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): T;
2083
2145
  /**
2084
2146
  * Remove all floating labels from the venue.
2085
2147
  *
@@ -2105,9 +2167,9 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2105
2167
  * mapView.FloatingLabels.setPriority(polygon1, 1);
2106
2168
  * ```
2107
2169
  *
2108
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to update.
2170
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to update.
2109
2171
  */
2110
- setPriority(polygonOrNode: MappedinPolygon | MappedinNode, priority: number): T;
2172
+ setPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, priority: number): T;
2111
2173
  /**
2112
2174
  * Resets the priority of an existing floating label (or labels, in the case
2113
2175
  * of a polygon)
@@ -2122,9 +2184,9 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2122
2184
  * mapView.FloatingLabels.resetPriority();
2123
2185
  * ```
2124
2186
  *
2125
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to update.
2187
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to update.
2126
2188
  */
2127
- resetPriority(polygonOrNode: MappedinPolygon | MappedinNode): T;
2189
+ resetPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): T;
2128
2190
  }
2129
2191
  export class FloatingLabels implements IFloatingLabels {
2130
2192
  #private;
@@ -2133,18 +2195,18 @@ declare module '@mappedin/mappedin-js/renderer/public/api/FloatingLabels' {
2133
2195
  */
2134
2196
  constructor(controller: FloatingLabelsController);
2135
2197
  labelAllLocations(options?: TFloatingLabelAllLocationsOptions | undefined): void;
2136
- add(polygonOrNode: MappedinPolygon | MappedinNode, text: string, options?: TAddFloatingLabelOptions | undefined): void;
2137
- setAppearance(polygonOrNode: MappedinPolygon | MappedinNode, appearance: TFloatingLabelAppearance): void;
2138
- remove(polygonOrNode: MappedinPolygon | MappedinNode): void;
2198
+ add(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, text: string, options?: TAddFloatingLabelOptions | undefined): void;
2199
+ setAppearance(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, appearance: TFloatingLabelAppearance): void;
2200
+ remove(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): void;
2139
2201
  removeAll(): void;
2140
- setPriority(polygonOrNode: MappedinPolygon | MappedinNode, priority: number): void;
2141
- resetPriority(polygonOrNode: MappedinPolygon | MappedinNode): void;
2202
+ setPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, priority: number): void;
2203
+ resetPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): void;
2142
2204
  }
2143
2205
  }
2144
2206
 
2145
2207
  declare module '@mappedin/mappedin-js/renderer/public/api/Camera' {
2146
2208
  import { E_CAMERA_DIRECTION } from '@mappedin/mappedin-js/renderer/MapView.enums';
2147
- import CameraController, { TCameraAnimationOptions, TCameraTargets, TCameraTransform, TFocusOnCameraOptions } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
2209
+ import CameraController, { TCameraAnimationOptions, TCameraInteractionsSetOptions, TCameraTargets, TCameraTransform, TFocusOnCameraOptions } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
2148
2210
  /**
2149
2211
  * API to control and respond to the state of the camera within the scene.
2150
2212
  */
@@ -2253,6 +2315,17 @@ declare module '@mappedin/mappedin-js/renderer/public/api/Camera' {
2253
2315
  * ```
2254
2316
  */
2255
2317
  interactions: {
2318
+ /**
2319
+ * Enable or disable specific user interactions.
2320
+ *
2321
+ * ```ts
2322
+ * mapView.Camera.interactions.set({ zoom: false });
2323
+ * ```
2324
+ *
2325
+ * @param options An object defining the interactions to switch on or off.
2326
+ *
2327
+ */
2328
+ set: (options: TCameraInteractionsSetOptions) => void;
2256
2329
  /**
2257
2330
  * Enable all user interactions.
2258
2331
  */
@@ -2590,6 +2663,161 @@ declare module '@mappedin/mappedin-js/renderer/public/api/Paths' {
2590
2663
  }
2591
2664
  }
2592
2665
 
2666
+ declare module '@mappedin/mappedin-js/renderer/public/api/StackedMaps' {
2667
+ import { MappedinMap } from '@mappedin/mappedin-js/get-venue';
2668
+ import { STACKED_MAPS_STATE, StackedMapsController, TCameraTransform } from '@mappedin/mappedin-js/renderer/internal';
2669
+ /**
2670
+ * API for showing multiple maps involved in a {@link Journey} as a vertical stack.
2671
+ */
2672
+ export class StackedMaps {
2673
+ #private;
2674
+ /**
2675
+ * @hidden
2676
+ */
2677
+ constructor(markersController: StackedMapsController);
2678
+ /**
2679
+ * @experimental
2680
+ * Enable Stacked Maps. A {@link Journey} must be drawn beforehand or this method will fail.
2681
+ * Use {@link showOverview} to expand the maps vertically after enabling.
2682
+ *
2683
+ * Upon enabling, map state will become {@link STATE.STACKED | STACKED} and Stacked Maps state will become {@link STACKED_MAPS_STATE.ACTIVE | ACTIVE}.
2684
+ *
2685
+ * @example
2686
+ * ```ts
2687
+ * // Create a Journey
2688
+ * const startLocation = mapView.venue.locations.find(...);
2689
+ * const endLocation = mapView.venue.locations.find(...);
2690
+ * mapView.Journey.draw(startLocation.directionsTo(endLocation));
2691
+ *
2692
+ * // Enable and show Stacked Maps Overview
2693
+ * mapView.StackedMaps.enable({
2694
+ * verticalDistanceBetweenMaps: 150
2695
+ * });
2696
+ * mapView.StackedMaps.showOverview();
2697
+ * ```
2698
+ *
2699
+ * @returns Promise when all animations are complete.
2700
+ */
2701
+ enable: (opts?: {
2702
+ verticalDistanceBetweenMaps?: number;
2703
+ }) => Promise<void>;
2704
+ /**
2705
+ * @experimental
2706
+ *
2707
+ * Disable Stacked Maps and zoom in to the current map. Stacked Maps state will become {@link STACKED_MAPS_STATE.INACTIVE | INACTIVE}.
2708
+ *
2709
+ * @example
2710
+ * ```ts
2711
+ * mapView.StackedMaps.disable();
2712
+ * ```
2713
+ *
2714
+ * @returns Promise when all animations are complete.
2715
+ */
2716
+ disable: () => Promise<void>;
2717
+ /**
2718
+ * @experimental
2719
+ *
2720
+ * Expand the maps in the current {@link Journey} vertically and add vertical paths between connections.
2721
+ * Stacked Maps must be enabled beforehand and state will become {@link STACKED_MAPS_STATE.OVERVIEW | OVERVIEW}.
2722
+ *
2723
+ * @example
2724
+ * ```ts
2725
+ * mapView.Journey.draw(...)
2726
+ * mapView.StackedMaps.enable();
2727
+ * mapView.StackedMaps.showOverview();
2728
+ * ```
2729
+ *
2730
+ * @returns Promise when all animations are complete.
2731
+ */
2732
+ showOverview: () => Promise<void>;
2733
+ /**
2734
+ * @experimental
2735
+ *
2736
+ * Scroll the camera to a specific map in {@link STACKED_MAPS_STATE.OVERVIEW | OVERVIEW} state.
2737
+ *
2738
+ * @example
2739
+ * ```ts
2740
+ * // Zoom into a clicked map if Stacked Maps is in Overview state
2741
+ * mapView.on(E_SDK_EVENT.CLICK, ({ maps }) => {
2742
+ * if (maps.length <= 0) return;
2743
+ * if (mapView.StackedMaps.state === STACKED_MAPS_STATE.OVERVIEW) {
2744
+ * mapView.StackedMaps.scrollToMap(maps[0]);
2745
+ * }
2746
+ * });
2747
+ * ```
2748
+ *
2749
+ * @returns Promise when all animations are complete.
2750
+ */
2751
+ scrollToMap: (map: MappedinMap) => Promise<void>;
2752
+ /**
2753
+ * @experimental
2754
+ *
2755
+ * Scroll and zoom into a specific map in {@link STACKED_MAPS_STATE.OVERVIEW | OVERVIEW} state. Stacked Maps state will become {@link STACKED_MAPS_STATE.ZOOMED_IN | ZOOMED_IN}.
2756
+ *
2757
+ * @example
2758
+ * ```ts
2759
+ * // Zoom into a clicked map if Stacked Maps is in Overview state
2760
+ * mapView.on(E_SDK_EVENT.CLICK, ({ maps }) => {
2761
+ * if (maps.length <= 0) return;
2762
+ * if (mapView.StackedMaps.state === STACKED_MAPS_STATE.OVERVIEW) {
2763
+ * mapView.StackedMaps.zoomInToMap(maps[0]);
2764
+ * }
2765
+ * });
2766
+ * ```
2767
+ *
2768
+ * @returns Promise when all animations are complete.
2769
+ */
2770
+ zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
2771
+ /**
2772
+ * @experimental
2773
+ *
2774
+ * Get the current state of Stacked Maps.
2775
+ *
2776
+ * @returns The current {@link STACKED_MAPS_STATE}
2777
+ */
2778
+ get state(): STACKED_MAPS_STATE;
2779
+ }
2780
+ }
2781
+
2782
+ declare module '@mappedin/mappedin-js/renderer/public/api/OutdoorView' {
2783
+ import { OutdoorViewController } from '@mappedin/mappedin-js/renderer/internal';
2784
+ /**
2785
+ * @experimental
2786
+ * API to control outdoor view rendering. Outdoor view can be enabled when
2787
+ * initializing the {@link MapView} with {@link TMapViewOptions.outdoorView.enabled}.
2788
+ * @example
2789
+ * ```typescript
2790
+ * const mapView = await showVenue(document.getElementById('mappedin-map'), venue, {
2791
+ * multiBufferRendering: true,
2792
+ * outdoorView: {
2793
+ * enabled: true,
2794
+ * },
2795
+ * });
2796
+ * ```
2797
+ */
2798
+ export class OutdoorView {
2799
+ #private;
2800
+ /**
2801
+ * @private
2802
+ */
2803
+ constructor(outdoorViewController: OutdoorViewController | undefined);
2804
+ /**
2805
+ *
2806
+ * @param style A style object conforming to the [Maplibre Style Spec](https://maplibre.org/maplibre-style-spec/)
2807
+ * @returns
2808
+ */
2809
+ setStyle(style: any): void;
2810
+ /**
2811
+ * * A position definition for the attribution control to be placed, can be in one of the corners of the map.
2812
+ *
2813
+ * @param {string} style A position definition
2814
+ * @returns
2815
+ */
2816
+ setAttributionPosition(position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'): void;
2817
+ }
2818
+ export default OutdoorView;
2819
+ }
2820
+
2593
2821
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip' {
2594
2822
  import './Mappedin.SmartTooltip.scss';
2595
2823
  import { HTMLCollider, COLLISION_RANKING_TIERS } from '@mappedin/mappedin-js/renderer/internal';
@@ -2802,7 +3030,14 @@ declare module '@mappedin/mappedin-js/renderer/MapView.enums' {
2802
3030
  /**
2803
3031
  * Emitted when the map is changed
2804
3032
  */
2805
- MAP_CHANGED = "MAP_CHANGED"
3033
+ MAP_CHANGED = "MAP_CHANGED",
3034
+ /**
3035
+ * Emitted when the outdoor view is ready. All currently requested tiles have loaded, and all fade and transition
3036
+ * animations have completed. {@link showVenue} is resolved when the indoor map is ready even if the outdoor tiles are not yet loaded.
3037
+ * Use this event to create a loading screen that ensures outdoor view is fully loaded and rendered.
3038
+ * @experimental
3039
+ */
3040
+ OUTDOOR_VIEW_LOADED = "OUTDOOR_VIEW_LOADED"
2806
3041
  }
2807
3042
  /**
2808
3043
  * @enum
@@ -2907,13 +3142,16 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin
2907
3142
  import Object3D from '@mappedin/mappedin-js/renderer/internal/object3D.destroy';
2908
3143
  import { Tile } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin.Tile';
2909
3144
  import { IOutdoorContextProvider } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Outdoor-Context.provider';
3145
+ /**
3146
+ * @deprecated Use {@link OutdoorView} instead.
3147
+ */
2910
3148
  export enum TILE_RENDER_MODES {
2911
3149
  NORMAL = 0,
2912
3150
  AGGRESSIVE = 1
2913
3151
  }
2914
3152
  export const TILE_COLOR = "#f0f0f1";
2915
3153
  /**
2916
- * @internal
3154
+ * @deprecated Use {@link OutdoorView} instead.
2917
3155
  */
2918
3156
  export type TTileManagerOptions = {
2919
3157
  tileRenderMode?: TILE_RENDER_MODES;
@@ -2964,6 +3202,29 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin
2964
3202
  }
2965
3203
  }
2966
3204
 
3205
+ declare module '@mappedin/mappedin-js/renderer/private/controllers/WatermarkController' {
3206
+ import { ICore } from '@mappedin/mappedin-js/renderer/private/Core.interface';
3207
+ import { Sprite } from 'three';
3208
+ type TPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center' | 'top' | 'bottom' | 'left' | 'right';
3209
+ export type TShowWatermarkOptions = {
3210
+ padding?: number;
3211
+ position?: TPosition;
3212
+ scale?: number;
3213
+ onClick?: () => void;
3214
+ };
3215
+ class WatermarkController {
3216
+ #private;
3217
+ static ENABLED: boolean;
3218
+ static OPTIONS: Required<TShowWatermarkOptions>;
3219
+ object: Sprite;
3220
+ constructor(core: ICore);
3221
+ show: () => void;
3222
+ hide: () => void;
3223
+ resize: () => void;
3224
+ }
3225
+ export default WatermarkController;
3226
+ }
3227
+
2967
3228
  declare module '@mappedin/mappedin-js/get-venue/MappedinDirections' {
2968
3229
  import { IDirectionsResult } from '@mappedin/mappedin-js/navigator';
2969
3230
  import { ACTION_TYPE, BEARING_TYPE } from '@mappedin/mappedin-js/navigator/Directive';
@@ -2971,23 +3232,23 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinDirections' {
2971
3232
  import type { MappedinMap } from '@mappedin/mappedin-js/get-venue/MappedinMap';
2972
3233
  import type { MappedinNode } from '@mappedin/mappedin-js/get-venue/MappedinNode';
2973
3234
  import type { MappedinVortex } from '@mappedin/mappedin-js/get-venue/MappedinVortex';
2974
- interface IActionDeparture {
3235
+ export interface IActionDeparture {
2975
3236
  type: ACTION_TYPE.DEPARTURE;
2976
3237
  }
2977
- interface IActionArrival {
3238
+ export interface IActionArrival {
2978
3239
  type: ACTION_TYPE.ARRIVAL;
2979
3240
  }
2980
- interface IActionTakeVortex {
3241
+ export interface IActionTakeVortex {
2981
3242
  type: ACTION_TYPE.TAKEVORTEX;
2982
3243
  toMap: MappedinMap;
2983
3244
  fromMap: MappedinMap;
2984
3245
  }
2985
- interface IActionExitVortex {
3246
+ export interface IActionExitVortex {
2986
3247
  type: ACTION_TYPE.EXITVORTEX;
2987
3248
  toMap: MappedinMap;
2988
3249
  fromMap: MappedinMap;
2989
3250
  }
2990
- interface IActionTurn {
3251
+ export interface IActionTurn {
2991
3252
  type: ACTION_TYPE.TURN;
2992
3253
  bearing: BEARING_TYPE;
2993
3254
  referencePosition?: string;
@@ -3019,7 +3280,6 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinDirections' {
3019
3280
  constructor(mappedin: Mappedin, directions: IDirectionsResult);
3020
3281
  toJSON(): IDirectionsResult;
3021
3282
  }
3022
- export {};
3023
3283
  }
3024
3284
 
3025
3285
  declare module '@mappedin/mappedin-js/renderer/private/controllers/CameraController' {
@@ -3068,6 +3328,10 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/CameraControl
3068
3328
  * See also {@link Camera.setSafeAreaInsets}.
3069
3329
  */
3070
3330
  safeAreaInsets?: TSafeAreaInsets;
3331
+ /**
3332
+ * Whether {@link Camera.minZoom} and {@link Camera.maxZoom} should be recalculated during the focusing animation.
3333
+ */
3334
+ updateZoomLimits?: boolean;
3071
3335
  };
3072
3336
  /**
3073
3337
  * A configuration of the camera in space.
@@ -3091,8 +3355,27 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/CameraControl
3091
3355
  position?: MappedinCoordinate | MappedinNode;
3092
3356
  };
3093
3357
  export type TCameraAnimationOptions = TAnimationOptions;
3358
+ /**
3359
+ * The configuration for camera interactions on or off.
3360
+ */
3361
+ export type TCameraInteractionsSetOptions = {
3362
+ /**
3363
+ * Enable or disable pan controls.
3364
+ */
3365
+ pan?: boolean;
3366
+ /**
3367
+ * Enable or disable zoom controls.
3368
+ */
3369
+ zoom?: boolean;
3370
+ /**
3371
+ * Enable or disable rotation and tilt controls.
3372
+ * See {@link maxTilt} for controlling the range of tilt.
3373
+ */
3374
+ rotationAndTilt?: boolean;
3375
+ };
3094
3376
  /**
3095
3377
  * The Camera object specifies a view of the map and allows manipulation of that view.
3378
+ * @internal
3096
3379
  */
3097
3380
  class CameraController extends PubSub<CAMERA_EVENT_PAYLOAD, E_CAMERA_EVENT> {
3098
3381
  #private;
@@ -3114,6 +3397,7 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/CameraControl
3114
3397
  set maxTilt(radians: number);
3115
3398
  get position(): MappedinCoordinate;
3116
3399
  interactions: {
3400
+ set: (options: TCameraInteractionsSetOptions) => void;
3117
3401
  enable: () => void;
3118
3402
  disable: () => void;
3119
3403
  };
@@ -3285,15 +3569,14 @@ declare module '@mappedin/mappedin-js/renderer/public/api/Journey' {
3285
3569
 
3286
3570
  declare module '@mappedin/mappedin-js/renderer' {
3287
3571
  import { MapView } from '@mappedin/mappedin-js/renderer/public/MapView';
3288
- import { getVenue, getVenueMVF, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/mappedin-js/get-venue';
3572
+ import { getVenue, getVenueMVF, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions, hydrateVenue } from '@mappedin/mappedin-js/get-venue';
3289
3573
  import { PositionUpdater } from '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
3290
3574
  import type { TMapViewOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
3291
- import { MARKER_ANCHOR } from '@mappedin/mappedin-js/renderer/internal/Mappedin.Marker';
3292
3575
  export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/mappedin-js/--/common/Mappedin.Logger';
3293
3576
  export type { Marker } from '@mappedin/mappedin-js/renderer/private/controllers/MarkersController';
3294
3577
  export type { Path } from '@mappedin/mappedin-js/renderer/private/controllers/PathsController';
3295
3578
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/mappedin-js/navigator';
3296
- export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/mappedin-js/navigator';
3579
+ export type { IDirectionsResult, TSimplifyDirectionsOptions, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES, } from '@mappedin/mappedin-js/navigator';
3297
3580
  /**
3298
3581
  * APIs for TypeDoc
3299
3582
  */
@@ -3303,6 +3586,8 @@ declare module '@mappedin/mappedin-js/renderer' {
3303
3586
  export type { BlueDot } from '@mappedin/mappedin-js/renderer/public/api/BlueDot';
3304
3587
  export type { Markers } from '@mappedin/mappedin-js/renderer/public/api/Markers';
3305
3588
  export type { Paths } from '@mappedin/mappedin-js/renderer/public/api/Paths';
3589
+ export type { StackedMaps } from '@mappedin/mappedin-js/renderer/public/api/StackedMaps';
3590
+ export type { OutdoorView } from '@mappedin/mappedin-js/renderer/public/api/OutdoorView';
3306
3591
  export type { TOOLTIP_ANCHOR } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip';
3307
3592
  export type TMappedinInitializeOutput = {
3308
3593
  mapView: MapView;
@@ -3327,10 +3612,11 @@ declare module '@mappedin/mappedin-js/renderer' {
3327
3612
  * @returns
3328
3613
  */
3329
3614
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
3330
- 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, } from '@mappedin/mappedin-js/renderer/MapView.enums';
3331
- export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, MappedinDestinationSet, MARKER_ANCHOR, };
3615
+ 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, } from '@mappedin/mappedin-js/renderer/MapView.enums';
3616
+ export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, hydrateVenue, PositionUpdater, MappedinDestinationSet, };
3332
3617
  import DefaultAssetManager from '@mappedin/mappedin-js/renderer/internal/Mappedin.AssetManager';
3333
3618
  import { TTileManagerOptions } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin.TileManager';
3619
+ import { TShowWatermarkOptions } from '@mappedin/mappedin-js/renderer/private/controllers/WatermarkController';
3334
3620
  /**
3335
3621
  * @internal
3336
3622
  */
@@ -3344,13 +3630,13 @@ declare module '@mappedin/mappedin-js/renderer' {
3344
3630
  * @internal
3345
3631
  */
3346
3632
  DefaultAssetManager as AssetManager, };
3347
- export type { TMappedinDirective } from '@mappedin/mappedin-js/get-venue/MappedinDirections';
3633
+ export type { TMappedinDirective, IAction, IActionArrival, IActionDeparture, IActionExitVortex, IActionTakeVortex, IActionTurn, } from '@mappedin/mappedin-js/get-venue/MappedinDirections';
3348
3634
  export type { TMappedinInitializeOptions };
3349
3635
  export * from '@mappedin/mappedin-js/renderer/MapView.types';
3350
3636
  export type { MapView } from '@mappedin/mappedin-js/renderer/public/MapView';
3351
- export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, default as CameraController, } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
3352
- export type { TGetVenueOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions, } from '@mappedin/mappedin-js/get-venue';
3353
- export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE, setFetchFn, MappedinCollectionType, } from '@mappedin/mappedin-js/get-venue';
3637
+ export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraInteractionsSetOptions, TCameraAnimationOptions, default as CameraController, } from '@mappedin/mappedin-js/renderer/private/controllers/CameraController';
3638
+ export type { TGetVenueOptions, TGetVenueBundleOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions, TDirectionToOptions, TPicture, TImage, TColor, TGalleryImage, TOpeningHours, TPhone, TSiblingGroup, TSocial, TState, TGeoReference, TPolygonRanking, TOperationHoursMap, TAccessors, } from '@mappedin/mappedin-js/get-venue';
3639
+ export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE, setFetchFn, MappedinCollectionType, MappedinLocationState, } from '@mappedin/mappedin-js/get-venue';
3354
3640
  /**
3355
3641
  * @internal
3356
3642
  * @hidden
@@ -3359,7 +3645,31 @@ declare module '@mappedin/mappedin-js/renderer' {
3359
3645
  */
3360
3646
  export { CustomerAnalytics } from '@mappedin/mappedin-js/get-venue';
3361
3647
  export { BundleAssetManager } from '@mappedin/mappedin-js/renderer/bundle-asset-manager';
3648
+ /**
3649
+ * @deprecated Use {@link OutdoorView} instead.
3650
+ * Enable Tile Manager to render outdoor tiles around the venue. Must be called before {@link showVenue}.
3651
+ *
3652
+ * @example
3653
+ * ```ts
3654
+ * __enableTileManager({
3655
+ * provider: new AzureOutdoorContextProvider(
3656
+ * venue.options.language,
3657
+ * 256,
3658
+ * "Your Azure API Key",
3659
+ * undefined //Omitted when using API Key.
3660
+ * )
3661
+ * });
3662
+ * ```
3663
+ */
3362
3664
  export function __enableTileManager(options?: TTileManagerOptions): void;
3665
+ /**
3666
+ * @hidden
3667
+ * @internal
3668
+ *
3669
+ * Show a Mappedin logo in the 3D scene. Must be called before {@link showVenue}.
3670
+ */
3671
+ export function __showWatermark(options?: TShowWatermarkOptions): void;
3672
+ export type { TTileManagerOptions, TILE_RENDER_MODES } from '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin.TileManager';
3363
3673
  export {
3364
3674
  /**
3365
3675
  * @internal
@@ -3376,70 +3686,6 @@ declare module '@mappedin/mappedin-js/renderer' {
3376
3686
  IOutdoorContextProvider, } from './internal/outdoor-context/Outdoor-Context.provider';
3377
3687
  }
3378
3688
 
3379
- declare module '@mappedin/mappedin-js/renderer/public/api/StackedMaps' {
3380
- import { MappedinMap } from '@mappedin/mappedin-js/get-venue';
3381
- import { STACKED_MAPS_STATE, StackedMapsController, TCameraTransform } from '@mappedin/mappedin-js/renderer/internal';
3382
- /**
3383
- * Stacked Maps API
3384
- */
3385
- export class StackedMaps {
3386
- #private;
3387
- /**
3388
- * @hidden
3389
- */
3390
- constructor(markersController: StackedMapsController);
3391
- /**
3392
- * @experimental
3393
- * Enable stacked maps, which can be used to view maps involved in current journey as a vertical stack
3394
- *
3395
- * @returns Promise when all animations are complete
3396
- */
3397
- enable: (opts?: {
3398
- verticalDistanceBetweenMaps?: number | undefined;
3399
- } | undefined) => Promise<void>;
3400
- /**
3401
- * @experimental
3402
- *
3403
- * Disables the current stacked maps experience and returns to the current map view
3404
- *
3405
- * @returns Promise when all animations are complete
3406
- */
3407
- disable: () => Promise<void>;
3408
- /**
3409
- * @experimental
3410
- *
3411
- * Expand the maps in current journey vertically and add vertical paths
3412
- *
3413
- * @returns Promise when all animations are complete
3414
- */
3415
- showOverview: () => Promise<void>;
3416
- /**
3417
- * @experimental
3418
- *
3419
- * Scroll to a specific map in the current journey (only available in Overview mode)
3420
- *
3421
- * @returns Promise when all animations are complete
3422
- */
3423
- scrollToMap: (map: MappedinMap) => Promise<void>;
3424
- /**
3425
- * @experimental
3426
- *
3427
- * Scroll and zoom to a specific map in the current journey (only available in Overview mode)
3428
- *
3429
- * @returns Promise when all animations are complete
3430
- */
3431
- zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform | undefined) => Promise<void>;
3432
- /**
3433
- * @experimental
3434
- *
3435
- * Get the current state (such as Overview or Zoomed In) of Stacked Maps
3436
- *
3437
- * @returns The current {@link STACKED_MAPS_STATE}
3438
- */
3439
- get state(): STACKED_MAPS_STATE;
3440
- }
3441
- }
3442
-
3443
3689
  declare module '@mappedin/mappedin-js/get-venue/Mappedin.types' {
3444
3690
  export type TGetVenueOptions = {
3445
3691
  accessToken?: string;
@@ -3519,7 +3765,7 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin' {
3519
3765
  POLYGON = "polygons",
3520
3766
  VORTEX = "vortexes"
3521
3767
  }
3522
- type TAccessors = {
3768
+ export type TAccessors = {
3523
3769
  [MappedinCollectionType.CATEGORY]: MappedinCategory;
3524
3770
  [MappedinCollectionType.EVENT]: MappedinEvent;
3525
3771
  [MappedinCollectionType.LOCATION]: MappedinLocation;
@@ -3969,6 +4215,15 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinPolygon' {
3969
4215
  x: number;
3970
4216
  y: number;
3971
4217
  }[];
4218
+ /**
4219
+ * @internal
4220
+ *
4221
+ * The center coordinate of the polygon used for positioning {@link FloatingLabels} for MVF venues.
4222
+ */
4223
+ center?: {
4224
+ x: number;
4225
+ y: number;
4226
+ };
3972
4227
  canvasBounds?: {
3973
4228
  align: string;
3974
4229
  maxHeight: number;
@@ -3977,6 +4232,8 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinPolygon' {
3977
4232
  x: number;
3978
4233
  y: number;
3979
4234
  };
4235
+ /** Category grouped ranking determined by the {@link MappedinCategory.sortOrder} and {@link rank} for this polygon. */
4236
+ categoryRank?: number;
3980
4237
  constructor(mappedin: Mappedin, data: any);
3981
4238
  /**
3982
4239
  * Map Object that this Polygon is located on.
@@ -4139,6 +4396,8 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinCategory' {
4139
4396
  id?: string | undefined;
4140
4397
  icon?: TPicture | undefined;
4141
4398
  iconFromDefaultList?: string | undefined;
4399
+ /** Category sort priority. */
4400
+ sortOrder?: number | undefined;
4142
4401
  constructor(mappedin: Mappedin, data: any);
4143
4402
  /**
4144
4403
  * Locations in this Category.
@@ -4185,6 +4444,7 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinMap' {
4185
4444
  name: string;
4186
4445
  shortName: string;
4187
4446
  elevation: number;
4447
+ subtitle?: string;
4188
4448
  scale?: number;
4189
4449
  layers: {
4190
4450
  visible: boolean;
@@ -4373,6 +4633,7 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinVenue' {
4373
4633
  name: string;
4374
4634
  code: string;
4375
4635
  }[];
4636
+ topLocations?: string[];
4376
4637
  constructor(mappedin: Mappedin, data: any);
4377
4638
  get metadata(): any;
4378
4639
  set metadata(value: any);
@@ -4400,6 +4661,7 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinVortex' {
4400
4661
  * @property id {string}
4401
4662
  */
4402
4663
  id: string;
4664
+ accessible?: boolean;
4403
4665
  name?: string;
4404
4666
  type?: string;
4405
4667
  weight?: number;
@@ -4538,8 +4800,26 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinNavigatable' {
4538
4800
  import { MappedinDestinationSet } from '@mappedin/mappedin-js/get-venue/MappedinDestinationSet';
4539
4801
  import { Mappedin } from '@mappedin/mappedin-js/get-venue/Mappedin';
4540
4802
  import { MappedinDirections } from '@mappedin/mappedin-js/get-venue/MappedinDirections';
4803
+ import { TSimplifyDirectionsOptions } from '@mappedin/mappedin-js/navigator';
4541
4804
  export type TDirectionToOptions = {
4805
+ /**
4806
+ * If true directions will only take accessible routes
4807
+ * @default false
4808
+ */
4542
4809
  accessible?: boolean;
4810
+ /**
4811
+ * Include all the vortexes matching the given IDs
4812
+ */
4813
+ includedVortexIds?: string[];
4814
+ /**
4815
+ * Exclude all the vortexes matching the given IDs
4816
+ */
4817
+ excludedVortexIds?: string[];
4818
+ /**
4819
+ * @experimental
4820
+ * Apply line-of-sight simplifying to directions. This will attempt to remove unnecessary nodes between turns.
4821
+ */
4822
+ simplify?: TSimplifyDirectionsOptions;
4543
4823
  };
4544
4824
  export abstract class MappedinNavigatable {
4545
4825
  #private;
@@ -4558,6 +4838,33 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinNavigatable' {
4558
4838
  }
4559
4839
  }
4560
4840
 
4841
+ declare module '@mappedin/mappedin-js/get-venue/MappedinLocationState' {
4842
+ import type { Mappedin } from '@mappedin/mappedin-js/get-venue/Mappedin';
4843
+ /**
4844
+ * A location state, that can belong to any number of {@link MappedinLocation}s.
4845
+ * @class MappedinLocationState
4846
+ */
4847
+ export class MappedinLocationState {
4848
+ #private;
4849
+ /**
4850
+ * @internal
4851
+ */
4852
+ constructor(data: any);
4853
+ /**
4854
+ * @internal
4855
+ */
4856
+ static hydrate(locationStates: any): MappedinLocationState[];
4857
+ id: string;
4858
+ name: string;
4859
+ value: string;
4860
+ /**
4861
+ * @internal
4862
+ */
4863
+ static fetch(mappedin: Mappedin): Promise<MappedinLocationState[]>;
4864
+ toJSON(): any;
4865
+ }
4866
+ }
4867
+
4561
4868
  declare module '@mappedin/mappedin-js/get-venue/Mappedin.CustomerAnalytics' {
4562
4869
  import { MappedinCategory, MappedinLocation, MappedinNavigatable } from '@mappedin/mappedin-js/get-venue';
4563
4870
  type AnalyticsOptions = {
@@ -4608,7 +4915,7 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.CustomerAnalytics' {
4608
4915
  class Analytics implements IInternalAnalytics {
4609
4916
  #private;
4610
4917
  constructor(options: AnalyticsOptions);
4611
- track(target: any, query: any): void;
4918
+ track(target: string, query: Record<string, any>): void;
4612
4919
  /**
4613
4920
  * Whenever a location is selected, you should fire this event. What "selected" means can vary by venue,
4614
4921
  * but a good rule of thumb is that you fire the event whenever you would show the location's details.
@@ -4915,6 +5222,7 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.API.types' {
4915
5222
  paths: {
4916
5223
  node: string;
4917
5224
  map: string;
5225
+ weight?: number;
4918
5226
  }[];
4919
5227
  [propName: string]: any;
4920
5228
  };
@@ -4965,6 +5273,8 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.API.types' {
4965
5273
  opens: string;
4966
5274
  closes: string;
4967
5275
  dayOfWeek: string[];
5276
+ validFrom?: string;
5277
+ validThrough?: string;
4968
5278
  };
4969
5279
  export type TSiblingGroup = {
4970
5280
  label: string;
@@ -5060,7 +5370,7 @@ declare module '@mappedin/mappedin-js/get-venue/Mappedin.API.types' {
5060
5370
  name?: string;
5061
5371
  entrances: {
5062
5372
  map: TMap['id'];
5063
- node: TNode['id'];
5373
+ id: TNode['id'];
5064
5374
  }[];
5065
5375
  };
5066
5376
  export type TPolygonRanking = {
@@ -5240,13 +5550,15 @@ declare module '@mappedin/mappedin-js/renderer/internal' {
5240
5550
  USER_MULTI_END = 24,
5241
5551
  FOCUSON_BEGIN = 25,
5242
5552
  USER_HANDS_ON = 26,
5243
- USER_HANDS_OFF = 27
5553
+ USER_HANDS_OFF = 27,
5554
+ OUTDOOR_VIEW_LOADED = 28
5244
5555
  }
5245
5556
  export type INTERNAL_EVENT_PAYLOAD = {
5246
5557
  [INTERNAL_EVENT.SET_SCENE_START]: undefined;
5247
5558
  [INTERNAL_EVENT.SET_SCENE_MAP]: undefined;
5248
5559
  [INTERNAL_EVENT.ON_FIRST_MAP_LOADED]: undefined;
5249
5560
  [INTERNAL_EVENT.TEXTURE_LOADED]: Texture;
5561
+ [INTERNAL_EVENT.OUTDOOR_VIEW_LOADED]: undefined;
5250
5562
  [INTERNAL_EVENT.RENDER]: undefined;
5251
5563
  [INTERNAL_EVENT.RENDER_NOW]: undefined;
5252
5564
  [INTERNAL_EVENT.UPDATE_FLIPPABLES]: undefined | boolean;
@@ -5315,6 +5627,8 @@ declare module '@mappedin/mappedin-js/renderer/internal' {
5315
5627
  export { default as SmartCollisionEngine } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollisionEngine';
5316
5628
  export { default as BillboardManager } from '@mappedin/mappedin-js/renderer/private/controllers/BillboardManager';
5317
5629
  export { default as StackedMapsController } from '@mappedin/mappedin-js/renderer/private/controllers/StackedMapsController';
5630
+ export { MultiBufferRenderer } from '@mappedin/mappedin-js/renderer/internal/Mappedin.Renderer';
5631
+ export { default as OutdoorViewController } from '@mappedin/mappedin-js/renderer/private/controllers/OutdoorViewController';
5318
5632
  /**
5319
5633
  * Types
5320
5634
  */
@@ -5541,6 +5855,49 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.FloatingLabel'
5541
5855
  export default FloatingLabel;
5542
5856
  }
5543
5857
 
5858
+ declare module '@mappedin/mappedin-js/renderer/private/controllers/OutdoorViewController' {
5859
+ import './OutdoorViewController.scss';
5860
+ import type { ICore } from '@mappedin/mappedin-js/renderer/internal';
5861
+ import { XOR } from '@mappedin/mappedin-js/renderer/MapView.types';
5862
+ export type TAttributionPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
5863
+ export type TOutdoorViewControllerOptionsWithHeaders = {
5864
+ url?: string;
5865
+ attributionPosition?: TAttributionPosition;
5866
+ headers: {
5867
+ [key: string]: string | null;
5868
+ };
5869
+ };
5870
+ export type TOutdoorViewControllerOptionsWithAuthURL = {
5871
+ url?: string;
5872
+ authURL?: string;
5873
+ attributionPosition?: TAttributionPosition;
5874
+ };
5875
+ export type TOutdoorViewControllerOptions = XOR<TOutdoorViewControllerOptionsWithHeaders, TOutdoorViewControllerOptionsWithAuthURL>;
5876
+ class OutdoorViewController {
5877
+ _attribution: any;
5878
+ core: ICore;
5879
+ map: any;
5880
+ enabled: boolean;
5881
+ url: string;
5882
+ authURL: string;
5883
+ headers?: TOutdoorViewControllerOptions['headers'];
5884
+ attributionPosition?: TAttributionPosition;
5885
+ loaded: boolean;
5886
+ constructor(core: ICore, options?: TOutdoorViewControllerOptions);
5887
+ module: any;
5888
+ load(): Promise<void>;
5889
+ get attributions(): any;
5890
+ hide(): void;
5891
+ show(): void;
5892
+ resize(): void;
5893
+ getRequestHeaders: () => Promise<TOutdoorViewControllerOptions['headers']>;
5894
+ render(): void;
5895
+ setStyle(style: any): void;
5896
+ setAttributionPosition(position: TAttributionPosition): void;
5897
+ }
5898
+ export default OutdoorViewController;
5899
+ }
5900
+
5544
5901
  declare module '@mappedin/mappedin-js/renderer/private/controllers/BlueDotController' {
5545
5902
  import type { IBlueDotCore, ICore, TEnableBlueDotOptions } from '@mappedin/mappedin-js/renderer/internal';
5546
5903
  import { E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT, PubSub } from '@mappedin/mappedin-js/renderer/internal';
@@ -5595,8 +5952,16 @@ declare module '@mappedin/mappedin-js/navigator/NavigationGraph' {
5595
5952
  * @param originIds array - of one or more node ids
5596
5953
  * @param destinationNodeIds array - of onr or more node ids
5597
5954
  * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
5955
+ * @param includedVortexIds set - optional, exclude all the vertexes matching the given IDs
5956
+ * @param excludedVortexIds set - optional, exclude all the vertexes matching the given IDs
5598
5957
  */
5599
- aStar(originIds: string[], destinationNodeIds: string[], accessible: boolean): Edge[];
5958
+ aStar({ originIds, destinationNodeIds, accessible, includedVortexIds, excludedVortexIds, }: {
5959
+ originIds: string[];
5960
+ destinationNodeIds: string[];
5961
+ accessible: boolean;
5962
+ includedVortexIds?: Set<string>;
5963
+ excludedVortexIds?: Set<string>;
5964
+ }): Edge[];
5600
5965
  getDistance(origin: INode, destination: INode): number;
5601
5966
  getShortestEuclideanDistance(origin: INode, destinations: INode[]): number;
5602
5967
  }
@@ -5609,46 +5974,68 @@ declare module '@mappedin/mappedin-js/navigator/Navigator' {
5609
5974
  import ILocation from '@mappedin/mappedin-js/navigator/interfaces/ILocation';
5610
5975
  import IMap from '@mappedin/mappedin-js/navigator/interfaces/IMap';
5611
5976
  import INode from '@mappedin/mappedin-js/navigator/interfaces/INode';
5977
+ import IPolygon from '@mappedin/mappedin-js/navigator/interfaces/IPolygon';
5612
5978
  import IVortex from '@mappedin/mappedin-js/navigator/interfaces/IVortex';
5613
5979
  export enum E_MESSAGES {
5614
- NO_VALID_PATH = "No Valid Path Available"
5980
+ NO_VALID_PATH = "No Valid Path Available"
5615
5981
  }
5616
5982
  export function differenceBetweenAngles(a: any, b: any): number;
5617
5983
  export interface IDirectionsResult {
5618
- distance: number;
5619
- path: INode[];
5620
- instructions: Directive[];
5984
+ distance: number;
5985
+ path: INode[];
5986
+ instructions: Directive[];
5621
5987
  }
5988
+ /**
5989
+ * @experimental
5990
+ * Configuration options for directions simplifying.
5991
+ */
5992
+ export type TSimplifyDirectionsOptions = {
5993
+ /**
5994
+ * Enable or disable simplifying.
5995
+ */
5996
+ enabled: boolean;
5997
+ /**
5998
+ * The radius of the buffer around the path.
5999
+ * @default 1.8
6000
+ */
6001
+ bufferRadius?: number;
6002
+ };
5622
6003
  class Navigator {
5623
- constructor({ locations, nodes, vortexes, maps, showVortexNames, }: {
5624
- locations: ILocation[];
5625
- nodes: INode[];
5626
- vortexes: IVortex[];
5627
- maps: IMap[];
5628
- showVortexNames?: boolean;
5629
- });
5630
- getClosestLocationInRay(startingEdge: Edge, angleThreshold?: number, distanceThreshold?: number): ILocation | null;
5631
- /**
5632
- * getDirections takes one or more origin node ids, one or more destination node ids
5633
- * and returns a distance, array of directives, and an array of nodes that define the
5634
- * path to take.
5635
- *
5636
- * The returned directives array defines nodes, vortexes, and locations along the path
5637
- * along with text directions.
5638
- *
5639
- * @param originIds array - of one or more node ids
5640
- * @param destinationNodeIds array - of onr or more node ids
5641
- * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
5642
- * @param departFrom ILocation - optional, id and name of a location to represent start of journey
5643
- * @param arriveAt ILocation - optional, id and name of a location to represent end of journey
5644
- */
5645
- getDirections({ originIds, destinationNodeIds, accessible, departFrom, arriveAt, }: {
5646
- originIds: string[];
5647
- destinationNodeIds: string[];
5648
- accessible: boolean;
5649
- departFrom?: ILocation;
5650
- arriveAt?: ILocation;
5651
- }): IDirectionsResult;
6004
+ constructor({ locations, nodes, vortexes, maps, polygons, showVortexNames, }: {
6005
+ locations: ILocation[];
6006
+ nodes: INode[];
6007
+ vortexes: IVortex[];
6008
+ maps: IMap[];
6009
+ polygons?: IPolygon[];
6010
+ showVortexNames?: boolean;
6011
+ });
6012
+ getClosestLocationInRay(startingEdge: Edge, angleThreshold?: number, distanceThreshold?: number): ILocation | null;
6013
+ /**
6014
+ * getDirections takes one or more origin node ids, one or more destination node ids
6015
+ * and returns a distance, array of directives, and an array of nodes that define the
6016
+ * path to take.
6017
+ *
6018
+ * The returned directives array defines nodes, vortexes, and locations along the path
6019
+ * along with text directions.
6020
+ *
6021
+ * @param originIds array - of one or more node ids
6022
+ * @param destinationNodeIds array - of onr or more node ids
6023
+ * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
6024
+ * @param departFrom ILocation - optional, id and name of a location to represent start of journey
6025
+ * @param arriveAt ILocation - optional, id and name of a location to represent end of journey
6026
+ * @param includedVortexIds set - optional, exclude all the vertexes matching the given IDs
6027
+ * @param excludedVortexIds set - optional, exclude all the vertexes matching the given IDs
6028
+ */
6029
+ getDirections({ originIds, destinationNodeIds, accessible, departFrom, arriveAt, includedVortexIds, excludedVortexIds, simplify, }: {
6030
+ originIds: string[];
6031
+ includedVortexIds?: Set<string>;
6032
+ excludedVortexIds?: Set<string>;
6033
+ destinationNodeIds: string[];
6034
+ accessible: boolean;
6035
+ departFrom?: ILocation;
6036
+ arriveAt?: ILocation;
6037
+ simplify?: TSimplifyDirectionsOptions;
6038
+ }): IDirectionsResult;
5652
6039
  }
5653
6040
  export default Navigator;
5654
6041
  }
@@ -5750,28 +6137,31 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/FlatLabelsCon
5750
6137
  declare module '@mappedin/mappedin-js/renderer/private/controllers/FloatingLabelsController' {
5751
6138
  import { FloatingLabel } from '@mappedin/mappedin-js/renderer/internal';
5752
6139
  import type { ICore, TFloatingLabelAllLocationsOptions, TAddFloatingLabelOptions, TFloatingLabelPolygonOptions, TFloatingLabelAppearance } from '@mappedin/mappedin-js/renderer/internal';
5753
- import { MappedinPolygon, MappedinNode } from '@mappedin/mappedin-js/get-venue';
6140
+ import { MappedinMap, MappedinPolygon, MappedinCoordinate, MappedinNode } from '@mappedin/mappedin-js/get-venue';
5754
6141
  export type TLabelRenderOptions = TFloatingLabelPolygonOptions & {
6142
+ id?: string;
5755
6143
  polygon?: MappedinPolygon;
5756
6144
  rank: number;
5757
- entranceNode: MappedinNode;
6145
+ entranceNode?: MappedinNode;
6146
+ map: MappedinMap;
5758
6147
  text: string;
5759
6148
  createDespiteImage: boolean | undefined;
6149
+ coordinate?: MappedinCoordinate;
5760
6150
  };
5761
6151
  class FloatingLabelsController {
5762
6152
  #private;
5763
6153
  core: ICore;
5764
- constructor(core: ICore);
5765
- addLabel(polygonOrNode: MappedinPolygon | MappedinNode, text: string, options?: TAddFloatingLabelOptions): FloatingLabel | FloatingLabel[] | null;
5766
- removeLabel(polygonOrNode: MappedinPolygon | MappedinNode, bulk?: boolean): void;
5767
- setPriority(polygonOrNode: MappedinPolygon | MappedinNode, rank: number): void;
5768
- resetPriority(polygonOrNode: MappedinPolygon | MappedinNode): void;
5769
- removeAllLabels(): void;
5770
- setAppearance(polygonOrNode: MappedinPolygon | MappedinNode, appearance: TFloatingLabelAppearance): void;
5771
- labelAllLocations(options?: TFloatingLabelAllLocationsOptions): FloatingLabel[];
5772
6154
  floatingLabels: {
5773
6155
  [key in MappedinNode['id']]: FloatingLabel;
5774
6156
  };
6157
+ constructor(core: ICore);
6158
+ addLabel(target: MappedinPolygon | MappedinNode | MappedinCoordinate, text: string, options?: TAddFloatingLabelOptions): FloatingLabel | FloatingLabel[] | null;
6159
+ removeLabel(target: MappedinPolygon | MappedinNode | MappedinCoordinate, bulk?: boolean): void;
6160
+ setPriority(target: MappedinPolygon | MappedinNode | MappedinCoordinate, rank: number): void;
6161
+ resetPriority(target: MappedinPolygon | MappedinNode | MappedinCoordinate): void;
6162
+ removeAllLabels(): void;
6163
+ setAppearance(target: MappedinPolygon | MappedinNode | MappedinCoordinate, appearance: TFloatingLabelAppearance): void;
6164
+ labelAllLocations(options?: TFloatingLabelAllLocationsOptions): FloatingLabel[];
5775
6165
  }
5776
6166
  export default FloatingLabelsController;
5777
6167
  }
@@ -5828,13 +6218,13 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Mappedin
5828
6218
  rendered: boolean;
5829
6219
  discardTexture(): void;
5830
6220
  applyTexture(): void;
5831
- render(metersPerTile: number, referenceMap: MappedinMap): any;
6221
+ render(metersPerTile: number, referenceMap: MappedinMap): Mesh;
5832
6222
  }
5833
6223
  }
5834
6224
 
5835
6225
  declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Outdoor-Context.provider' {
5836
6226
  /**
5837
- * @experimental
6227
+ * @deprecated Use {@link OutdoorView} instead.
5838
6228
  * The universal outdoor context interface
5839
6229
  */
5840
6230
  export interface IOutdoorContextProvider {
@@ -5849,7 +6239,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Outdoor-
5849
6239
  fetchAttribution?(zoomLevel: number, bounds: [number, number, number, number]): Promise<Response>;
5850
6240
  }
5851
6241
  /**
5852
- * @experimental
6242
+ * @deprecated Use {@link OutdoorView} instead.
5853
6243
  * Azure maps outdoor context class
5854
6244
  */
5855
6245
  export class AzureOutdoorContextProvider implements IOutdoorContextProvider {
@@ -5871,7 +6261,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Outdoor-
5871
6261
  fetchTile(tileX: number, tileY: number, zoom: number, signal: AbortSignal): Promise<Response>;
5872
6262
  }
5873
6263
  /**
5874
- * @experimental
6264
+ * @deprecated Use {@link OutdoorView} instead.
5875
6265
  * Google maps outdoor context class
5876
6266
  */
5877
6267
  export class GoogleOutdoorContextProvider implements IOutdoorContextProvider {
@@ -5890,7 +6280,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Outdoor-
5890
6280
  fetchTile(tileX: number, tileY: number, zoom: number, signal: any): Promise<Response>;
5891
6281
  }
5892
6282
  /**
5893
- * @experimental
6283
+ * @deprecated Use {@link OutdoorView} instead.
5894
6284
  * OpenStreetMap maps outdoor context class
5895
6285
  */
5896
6286
  export class OpenStreetMapOutdoorContext implements IOutdoorContextProvider {
@@ -5902,48 +6292,12 @@ declare module '@mappedin/mappedin-js/renderer/internal/outdoor-context/Outdoor-
5902
6292
  }
5903
6293
  }
5904
6294
 
5905
- declare module '@mappedin/mappedin-js/renderer/private/controllers/JourneyController' {
5906
- import type Directive from '@mappedin/mappedin-js/navigator/Directive';
5907
- import type INode from '@mappedin/mappedin-js/navigator/interfaces/INode';
5908
- import { Path } from '@mappedin/mappedin-js/renderer/internal';
5909
- import type { ICore, TJourneyOptions } from '@mappedin/mappedin-js/renderer/internal';
5910
- import { MappedinDirections } from '@mappedin/mappedin-js/get-venue';
5911
- export type TMappedinDirections = {
5912
- distance: number;
5913
- path: INode[];
5914
- instructions: Directive[];
5915
- };
5916
- /**
5917
- *
5918
- * The Journey class represents a journey from point A to point B. This includes any intermediate connections, such as stairs or elevators.
5919
- * The idea is to provide a higher level API with enough hooks to customize the experience. Also, to ensure only 1 journey is allowed at once.
5920
- * This version does not support "stacked view" - but that can be added in the future
5921
- *
5922
- * @internal
5923
- */
5924
- export class JourneyController {
5925
- #private;
5926
- distance: number;
5927
- accessible: boolean;
5928
- core: ICore;
5929
- activeDirections: MappedinDirections;
5930
- get isMultiFloor(): boolean;
5931
- get mapsInJourney(): any[];
5932
- get mapIdsInvolvedInJourney(): string[];
5933
- constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions | undefined, core: ICore);
5934
- setStep: (step: any) => void;
5935
- setStepByPath: (path: Path) => void;
5936
- static instance: JourneyController | null;
5937
- static create(directions: MappedinDirections | MappedinDirections[], options: any, core: ICore): JourneyController;
5938
- destroy(): void;
5939
- }
5940
- }
5941
-
5942
6295
  declare module '@mappedin/mappedin-js/renderer/private/Core.interface' {
5943
6296
  import { Vector2, Vector3, Mesh } from 'three';
5944
- import type { TPadding, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TileManager, BillboardManager, StackedMapsController } from '@mappedin/mappedin-js/renderer/internal';
6297
+ import type { TPadding, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TileManager, BillboardManager, StackedMapsController, SmartCollisionEngine, OutdoorViewController } from '@mappedin/mappedin-js/renderer/internal';
5945
6298
  import { BlueDotController, CameraController, STATE, MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode, changeListenerFn, RENDER, INTERNAL_EVENT_PAYLOAD, INTERNAL_EVENT, TaskScheduler, SceneManager, PubSub, FlatLabel, MapObject, PathsController, FloatingLabelsController, FlatLabelsController, PolygonColorsController, MarkersController, PolygonInteractionController, TooltipsController, PolygonStatesController, PolygonImagesController, ThreeDMarkersController, EventSystem } from '@mappedin/mappedin-js/renderer/internal';
5946
6299
  import Tween, { Easing } from '@tweenjs/tween.js';
6300
+ import WatermarkController from '@mappedin/mappedin-js/renderer/private/controllers/WatermarkController';
5947
6301
  export type TFocusOptionsLegacy = {
5948
6302
  /**
5949
6303
  * An array of Nodes to focus in on
@@ -5984,6 +6338,10 @@ declare module '@mappedin/mappedin-js/renderer/private/Core.interface' {
5984
6338
  * @defaultValue: 0
5985
6339
  */
5986
6340
  minZoom?: number;
6341
+ /**
6342
+ * Whether {@link Camera.minZoom} and {@link Camera.maxZoom} should be recalculated during the focusing animation.
6343
+ */
6344
+ updateZoomLimits?: boolean;
5987
6345
  padding?: TPadding;
5988
6346
  points?: any[];
5989
6347
  boundingBox?: any;
@@ -6017,6 +6375,8 @@ declare module '@mappedin/mappedin-js/renderer/private/Core.interface' {
6017
6375
  tileManager: TileManager;
6018
6376
  billboardManager: BillboardManager;
6019
6377
  stackedMaps: StackedMapsController;
6378
+ outdoorViewController?: OutdoorViewController;
6379
+ watermark: WatermarkController;
6020
6380
  state: STATE;
6021
6381
  options: TMapViewOptions & {
6022
6382
  onDataLoaded?: (data: Mappedin) => void;
@@ -6164,7 +6524,7 @@ declare module '@mappedin/mappedin-js/renderer/private/Core.interface' {
6164
6524
  bottom: number;
6165
6525
  right: number;
6166
6526
  }): void;
6167
- smartCollisionEngine: any;
6527
+ smartCollisionEngine: SmartCollisionEngine;
6168
6528
  mapObjects: Map<MappedinMap['id'], MapObject>;
6169
6529
  /**
6170
6530
  * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
@@ -6187,6 +6547,43 @@ declare module '@mappedin/mappedin-js/renderer/private/Core.interface' {
6187
6547
  }
6188
6548
  }
6189
6549
 
6550
+ declare module '@mappedin/mappedin-js/renderer/private/controllers/JourneyController' {
6551
+ import type Directive from '@mappedin/mappedin-js/navigator/Directive';
6552
+ import type INode from '@mappedin/mappedin-js/navigator/interfaces/INode';
6553
+ import { Path } from '@mappedin/mappedin-js/renderer/internal';
6554
+ import type { ICore, TJourneyOptions } from '@mappedin/mappedin-js/renderer/internal';
6555
+ import { MappedinDirections } from '@mappedin/mappedin-js/get-venue';
6556
+ export type TMappedinDirections = {
6557
+ distance: number;
6558
+ path: INode[];
6559
+ instructions: Directive[];
6560
+ };
6561
+ /**
6562
+ *
6563
+ * The Journey class represents a journey from point A to point B. This includes any intermediate connections, such as stairs or elevators.
6564
+ * The idea is to provide a higher level API with enough hooks to customize the experience. Also, to ensure only 1 journey is allowed at once.
6565
+ * This version does not support "stacked view" - but that can be added in the future
6566
+ *
6567
+ * @internal
6568
+ */
6569
+ export class JourneyController {
6570
+ #private;
6571
+ distance: number;
6572
+ accessible: boolean;
6573
+ core: ICore;
6574
+ activeDirections: MappedinDirections;
6575
+ get isMultiFloor(): boolean;
6576
+ get mapsInJourney(): any[];
6577
+ get mapIdsInvolvedInJourney(): string[];
6578
+ constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions | undefined, core: ICore);
6579
+ setStep: (step: any) => void;
6580
+ setStepByPath: (path: Path) => void;
6581
+ static instance: JourneyController | null;
6582
+ static create(directions: MappedinDirections | MappedinDirections[], options: any, core: ICore): JourneyController;
6583
+ destroy(): void;
6584
+ }
6585
+ }
6586
+
6190
6587
  declare module '@mappedin/mappedin-js/get-venue/MappedinLocationRankings' {
6191
6588
  import type { Mappedin } from '@mappedin/mappedin-js/get-venue/Mappedin';
6192
6589
  import type { TLocation } from '@mappedin/mappedin-js/get-venue/Mappedin.API.types';
@@ -6201,24 +6598,6 @@ declare module '@mappedin/mappedin-js/get-venue/MappedinLocationRankings' {
6201
6598
  }
6202
6599
  }
6203
6600
 
6204
- declare module '@mappedin/mappedin-js/get-venue/MappedinLocationState' {
6205
- import type { Mappedin } from '@mappedin/mappedin-js/get-venue/Mappedin';
6206
- /**
6207
- * A location state, that can belong to any number of {@link MappedinLocation}s.
6208
- * @class MappedinLocationState
6209
- */
6210
- export class MappedinLocationState {
6211
- #private;
6212
- constructor(data: any);
6213
- static hydrate(locationStates: any): MappedinLocationState[];
6214
- id: string;
6215
- name: string;
6216
- value: string;
6217
- static fetch(mappedin: Mappedin): Promise<MappedinLocationState[]>;
6218
- toJSON(): any;
6219
- }
6220
- }
6221
-
6222
6601
  declare module '@mappedin/mappedin-js/get-venue/MappedinTheme' {
6223
6602
  import type { Mappedin } from '@mappedin/mappedin-js/get-venue/Mappedin';
6224
6603
  export class MappedinTheme {
@@ -6245,7 +6624,8 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.RenderTasks' {
6245
6624
  ANIMATED = "animated",
6246
6625
  ALWAYS_ON_TOP = "always_on_top",
6247
6626
  ALL = "all",
6248
- TWEEN = "tween"
6627
+ TWEEN = "tween",
6628
+ ALL_WITHOUT_EFFECTS = "all_without_effects"
6249
6629
  }
6250
6630
  export default RENDER;
6251
6631
  }
@@ -6822,13 +7202,13 @@ declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.Sce
6822
7202
 
6823
7203
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
6824
7204
  export namespace TASK_PRIORITY {
6825
- const VISIBLE_MAP_HIGH: number;
6826
- const VISIBLE_MAP_LOW: number;
6827
- const VISIBLE_MAP_MARKER: number;
6828
- const ASYNC_MAP_HIGH: number;
6829
- const ASYNC_MAP_LOW: number;
6830
- const ASYNC_MAP_MARKER: number;
6831
- const MAP_LOADED: number;
7205
+ let VISIBLE_MAP_HIGH: number;
7206
+ let VISIBLE_MAP_LOW: number;
7207
+ let VISIBLE_MAP_MARKER: number;
7208
+ let ASYNC_MAP_HIGH: number;
7209
+ let ASYNC_MAP_LOW: number;
7210
+ let ASYNC_MAP_MARKER: number;
7211
+ let MAP_LOADED: number;
6832
7212
  }
6833
7213
  export const SCENE_FROM_LIVE_JSON: false;
6834
7214
  /**
@@ -6913,6 +7293,9 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
6913
7293
  boundingBox: {
6914
7294
  min: any;
6915
7295
  max: any;
7296
+ } | {
7297
+ min: any;
7298
+ max: any;
6916
7299
  } | undefined;
6917
7300
  loadPolygonNow(polygonId: any): void;
6918
7301
  _addElementToScene(element: any): void;
@@ -7039,16 +7422,16 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapObject' {
7039
7422
  _onRootObjectCreated(): void;
7040
7423
  _popinChildObjects(): void;
7041
7424
  }
7042
- import { PubSub } from "@mappedin/mappedin-js/renderer/internal/pub-sub";
7043
- import { FrameTaskGroup } from "@mappedin/mappedin-js/get-venue/Mappedin.TaskScheduler";
7425
+ import { PubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
7426
+ import { FrameTaskGroup } from '@mappedin/mappedin-js/get-venue/Mappedin.TaskScheduler';
7044
7427
  }
7045
7428
 
7046
7429
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.CameraLayers' {
7047
7430
  export default CAMERA_LAYER;
7048
7431
  namespace CAMERA_LAYER {
7049
- const STATIC: number;
7050
- const ANIMATED: number;
7051
- const ALWAYS_ON_TOP: number;
7432
+ let STATIC: number;
7433
+ let ANIMATED: number;
7434
+ let ALWAYS_ON_TOP: number;
7052
7435
  }
7053
7436
  }
7054
7437
 
@@ -7195,6 +7578,54 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.HTMLCollider' {
7195
7578
  export default HTMLCollider;
7196
7579
  }
7197
7580
 
7581
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Marker' {
7582
+ import './Mappedin.Marker.scss';
7583
+ import { COLLISION_RANKING_TIERS, HTMLCollider } from '@mappedin/mappedin-js/renderer/internal';
7584
+ import { Vector3 } from 'three';
7585
+ import type { TColliderStrategy, IHTMLCollider } from '@mappedin/mappedin-js/renderer/internal';
7586
+ /**
7587
+ * @hidden
7588
+ * @internal
7589
+ */
7590
+ export type TSmartMarkerOptions = {
7591
+ contentHtml?: string;
7592
+ position: Vector3;
7593
+ mapId: string;
7594
+ id?: string;
7595
+ anchor?: MARKER_ANCHOR;
7596
+ collisionRank?: COLLISION_RANKING_TIERS;
7597
+ };
7598
+ type TTooltipStyle = {
7599
+ top?: string;
7600
+ left?: string;
7601
+ };
7602
+ export enum MARKER_ANCHOR {
7603
+ CENTER = 0,
7604
+ TOP = 1,
7605
+ BOTTOM = 2,
7606
+ LEFT = 3,
7607
+ RIGHT = 4
7608
+ }
7609
+ /**
7610
+ * @hidden
7611
+ * @internal
7612
+ */
7613
+ class InternalMarker extends HTMLCollider implements IHTMLCollider {
7614
+ _el: Element | null;
7615
+ style: TTooltipStyle;
7616
+ polygon: any;
7617
+ constructor(options: TSmartMarkerOptions);
7618
+ get strategies(): TColliderStrategy[];
7619
+ colliderDidMount(): void;
7620
+ setAction(action: any): void;
7621
+ colliderDidNotFindAHome(): void;
7622
+ colliderDidUpdatePosition(pos: any): void;
7623
+ colliderDidGoOffscreen(): void;
7624
+ colliderDidUpdateVisiblity(): void;
7625
+ }
7626
+ export default InternalMarker;
7627
+ }
7628
+
7198
7629
  declare module '@mappedin/mappedin-js/renderer/private/scene-manager/MapView.Scene' {
7199
7630
  import { MappedinMap } from '@mappedin/mappedin-js/get-venue';
7200
7631
  import type { ICore, SceneManager, TSceneTransitionOptions } from '@mappedin/mappedin-js/renderer/internal';
@@ -7322,7 +7753,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Element' {
7322
7753
  };
7323
7754
  static scale: number;
7324
7755
  static overlayHeight: number;
7325
- static getDefaultMaterial(): any;
7756
+ static getDefaultMaterial(): MeshLambertMaterial;
7326
7757
  static getWeightedCenter(vertices: any): any;
7327
7758
  static getBoundingCentre(vertices: any): {
7328
7759
  x: number;
@@ -7345,7 +7776,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Element' {
7345
7776
  };
7346
7777
  load(): Promise<this>;
7347
7778
  _addLabel(poly: MappedinPolygon, mapClass: MappedinMap): void;
7348
- static imagesLoadingInProgress: Map<string, Promise<[any, any]>>;
7779
+ static imagesLoadingInProgress: Map<string, Promise<[Texture, MeshLambertMaterial]>>;
7349
7780
  _addImage(polygon: MappedinPolygon, mapClass: MappedinMap): void;
7350
7781
  static _normalizeColor(color: any): number;
7351
7782
  static _getMaterial(color: string, opacity: number, map: MappedinMap['id']): any;
@@ -7536,7 +7967,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/blue-dot-manager' {
7536
7967
  * @param {string} [options.baseColor] Base Color of Active Blue Dot that we use to interpolate into other variants
7537
7968
  */
7538
7969
  update(options: {
7539
- coordinates: any;
7970
+ coordinates: Coordinates;
7540
7971
  mode?: string | undefined;
7541
7972
  bearing?: number | undefined;
7542
7973
  radius: number;
@@ -7559,7 +7990,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/blue-dot-manager' {
7559
7990
  */
7560
7991
  cleanup(): void;
7561
7992
  }
7562
- import { PubSub } from "@mappedin/mappedin-js/renderer/internal/pub-sub";
7993
+ import { PubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
7563
7994
  }
7564
7995
 
7565
7996
  declare module '@mappedin/mappedin-js/renderer/private/controllers/EventSystem' {
@@ -7619,9 +8050,10 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/EventSystem'
7619
8050
  hasTouched: boolean;
7620
8051
  calculateMouseCoordinates: (event: any) => void;
7621
8052
  getMouseRayIntersects: (objects: Object3D | Object3D[]) => any;
7622
- detectCollidersUnderMouse: () => any;
8053
+ detectCollidersUnderMouse: () => any[];
7623
8054
  detectPolygonsUnderMouse: () => string[];
7624
8055
  detectPathsUnderMouse: () => Path[];
8056
+ detectWatermarkUnderMouse: () => boolean;
7625
8057
  detectMapsUnderMouse: () => any;
7626
8058
  getMouseMapPosition: () => {
7627
8059
  x: number;
@@ -7853,17 +8285,332 @@ declare module '@mappedin/mappedin-js/renderer/private/controllers/StackedMapsCo
7853
8285
  exec(transitions: TTargetTransitionFunction[] | void, params: TParams): Promise<void>;
7854
8286
  disable: () => Promise<void>;
7855
8287
  enable: (opts?: {
7856
- verticalDistanceBetweenMaps?: number | undefined;
7857
- } | undefined) => Promise<void>;
8288
+ verticalDistanceBetweenMaps?: number;
8289
+ }) => Promise<void>;
7858
8290
  get nodesInJourney(): MappedinNode[];
7859
8291
  showOverview: () => Promise<void>;
7860
8292
  scrollToMap: (map: MappedinMap) => Promise<void>;
7861
- zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform | undefined) => Promise<void>;
8293
+ zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
7862
8294
  get currentMap(): MappedinMap;
7863
8295
  }
7864
8296
  export default StackedMapsController;
7865
8297
  }
7866
8298
 
8299
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Renderer' {
8300
+ /**
8301
+ * A class that controls the rendering resources for a canvas output.
8302
+ *
8303
+ * @class Renderer
8304
+ * @private
8305
+ */
8306
+ export default class Renderer {
8307
+ /**
8308
+ * @constructor
8309
+ * @param renderOptions {Object} Options for rendering
8310
+ * @param [options.multiBufferRendering=false] {boolean}
8311
+ * Whether to use a multi-buffer renderer
8312
+ * @param [options.alpha=true] {boolean}
8313
+ * If true, will allow for a semi-transparent background
8314
+ * @param [options.antialias=false] {boolean}
8315
+ * If true, will attempt to antialias rendering if supported
8316
+ * @param [options.backgroundColor='#ffffff'] {Color | string}
8317
+ * The color that will be displayed behind the scene
8318
+ * @param [options.backgroundAlpha=1.0] {number}
8319
+ * The opacity of the background color
8320
+ * @param [options.xRayPath=true] {boolean}
8321
+ * If true, journey path will be visible through other objects
8322
+ * @param [options.onWebGLContextCreationError=null] {function}
8323
+ * A callback that will be triggered if WebGL context creation fails
8324
+ * @param [options.onWebGLContextLost=null] {function}
8325
+ * A callback that will be triggered if the WebGL context is killed
8326
+ * @param [options.onWebGLContextRestored=null] {function}
8327
+ * A callback that will be triggered when three.js reacquires a WebGL context
8328
+ * @param [options.onWebGLRendererError=null] {function}
8329
+ * A callback that will be triggered if the renderer throws an error
8330
+ */
8331
+ constructor(renderOptions: any);
8332
+ contextLost: boolean;
8333
+ implementation: SingleBufferRenderer | MultiBufferRenderer;
8334
+ onWebGLContextCreationError: any;
8335
+ onWebGLContextLost: any;
8336
+ onWebGLContextRestored: any;
8337
+ webGLContextCreationErrorListener: any;
8338
+ webGLContextLostListener: any;
8339
+ webGLContextRestoredListener: any;
8340
+ shouldConsiderAlpha: any;
8341
+ antialias: any;
8342
+ /**
8343
+ * Dispose of any resources and connections allocated by the renderer.
8344
+ *
8345
+ * @method destroy
8346
+ */
8347
+ destroy(): void;
8348
+ /**
8349
+ * Render the scene to the provided framebuffer. A null framebuffer will
8350
+ * render to the default canvas.
8351
+ *
8352
+ * @method render
8353
+ * @param renderTask {RENDER}
8354
+ * @param renderTarget {null or WebGLRenderTarget}
8355
+ * @param scene {Scene}
8356
+ * @param sceneCamera {Camera}
8357
+ */
8358
+ render(renderTask: RENDER, renderTarget: null, scene: Scene, sceneCamera: Camera): void;
8359
+ /**
8360
+ * Return the maximum supported anisotropy of this renderer.
8361
+ *
8362
+ * @method getMaxAnisotropy
8363
+ * @return {number}
8364
+ */
8365
+ getMaxAnisotropy(): number;
8366
+ /**
8367
+ * Return the size of the renderer's target.
8368
+ *
8369
+ * @method getBufferSize
8370
+ * @return {Vector2}
8371
+ */
8372
+ getBufferSize(): Vector2;
8373
+ /**
8374
+ * Return the WebGL context associated with this renderer, to ensure
8375
+ * other objects that use WebGL will put their textures in the same
8376
+ * context.
8377
+ *
8378
+ * @method context
8379
+ * @return {WebGLRenderingContext} context used by this renderer
8380
+ */
8381
+ getContext(): WebGLRenderingContext;
8382
+ /**
8383
+ * Preload a texture, I think. Not actually sure what this does. TODO.
8384
+ *
8385
+ * @method preloadTexture
8386
+ * @param texture {Texture}
8387
+ */
8388
+ preloadTexture(texture: Texture): void;
8389
+ /**
8390
+ * Set the renderer and all its internal buffers to the provided width and
8391
+ * height in pixels.
8392
+ *
8393
+ * @method setBufferSize
8394
+ * @param width {number}
8395
+ * @param height {number}
8396
+ */
8397
+ setBufferSize(width: number, height: number): void;
8398
+ get backgroundColor(): any;
8399
+ get backgroundAlpha(): number | undefined;
8400
+ /**
8401
+ * Set the color and opacity that will be drawn behind the scene.
8402
+ *
8403
+ * @method setBackgroundColor
8404
+ * @param color {Color}
8405
+ * @param alpha {number}
8406
+ */
8407
+ setBackgroundColor(color: Color, alpha?: number): void;
8408
+ /**
8409
+ * Assign an outdoor context to this renderer, which will be included as
8410
+ * part of the `STATIC` rendering pass.
8411
+ *
8412
+ * @method setMapboxOutdoorContext
8413
+ * @param {MapboxOutdoorContext} mapboxOutdoorContext context to draw
8414
+ */
8415
+ setMapboxOutdoorContext(mapboxOutdoorContext: MapboxOutdoorContext): void;
8416
+ domElement(): any;
8417
+ isAvailable(): boolean;
8418
+ disposeOfRenderLists(): void;
8419
+ reportWebGlContextCreationError(e: any): void;
8420
+ reportWebGlContextLost(e: any): void;
8421
+ reportWebGLContextRestored(): void;
8422
+ /**
8423
+ * Sometimes we have to use WebGL 1 because of a regression in Chrome
8424
+ * due to some unknown performance bug in Apple's OpenGL Angle backend on MacBook+Radeon GPU.
8425
+ * The official recommendation is to turn on Metal backed ANGLE in your Chrome's about:flags.
8426
+ * We can't force our users to do it, so we have to support both WebGL 1 & WebGL 2
8427
+ * See: https://bugs.chromium.org/p/chromium/issues/detail?id=1245448
8428
+ * The Method returns target WebGL version based on the hardware configuration.
8429
+ *
8430
+ * @param context WebGL context
8431
+ * @returns {1|2} WebGL version
8432
+ */
8433
+ getTargetWebGLVersion(context: any): 1 | 2;
8434
+ /**
8435
+ *
8436
+ * @param options
8437
+ * @returns {SingleBufferRenderer|MultiBufferRenderer}
8438
+ */
8439
+ getRenderer(options: any): SingleBufferRenderer | MultiBufferRenderer;
8440
+ }
8441
+ /**
8442
+ * A legacy renderer that renders all the elements in the scene to a single
8443
+ * buffer. Does not support things like transparent paths behind polygons
8444
+ * natively, but can potentially fake it.
8445
+ *
8446
+ * 2019/07/10 Terence Dickson
8447
+ * Generally has worse performance under average loads compared to the
8448
+ * multi-buffer renderer, as the multi-buffer renderer can avoid re-rendering
8449
+ * the entire map if only animated elements on the map have changed.
8450
+ *
8451
+ * @class SingleBufferRenderer
8452
+ * @private
8453
+ */
8454
+ class SingleBufferRenderer {
8455
+ constructor(renderOptions: any, targetWebGLVersion?: number);
8456
+ options: any;
8457
+ renderer: any;
8458
+ effectComposer: EffectComposer | undefined;
8459
+ backgroundColor: any;
8460
+ backgroundAlpha: number;
8461
+ mapboxOutdoorContext: any;
8462
+ /**
8463
+ * Dispose of the renderer.
8464
+ */
8465
+ destroy(): void;
8466
+ /**
8467
+ * Re-render the scene. This ignores the `renderTask` argument, as all
8468
+ * re-renders in the single-buffer renderer are full re-renders.
8469
+ *
8470
+ * @method render
8471
+ * @param renderTask {RENDER}
8472
+ * @param renderTarget {null or WebGLRenderTarget}
8473
+ * @param scene {Scene}
8474
+ * @param sceneCamera {Camera}
8475
+ */
8476
+ render(renderTask: RENDER, renderTarget: null, scene: Scene, sceneCamera: Camera): void;
8477
+ /**
8478
+ * Set the size of the renderer.
8479
+ *
8480
+ * @method setBufferSize
8481
+ * @param width {number}
8482
+ * @param height {number}
8483
+ */
8484
+ setBufferSize(width: number, height: number): void;
8485
+ width: number | undefined;
8486
+ height: number | undefined;
8487
+ /**
8488
+ * Set the color and opacity that will be drawn behind the scene.
8489
+ *
8490
+ * @method setBackgroundColor
8491
+ * @param color {Color}
8492
+ * @param alpha {number}
8493
+ */
8494
+ setBackgroundColor(color: Color, alpha: number): void;
8495
+ /**
8496
+ * Assign an outdoor context to this renderer.
8497
+ *
8498
+ * @method setMapboxOutdoorContext
8499
+ * @param {MapboxOutdoorContext} mapboxOutdoorContext context to draw
8500
+ */
8501
+ setMapboxOutdoorContext(mapboxOutdoorContext: MapboxOutdoorContext): void;
8502
+ }
8503
+ /**
8504
+ * Our new renderer that renders static elements to one buffer and animated
8505
+ * elements to another buffer, allowing only the latter buffer to be
8506
+ * re-rendered if the camera isn't moving. There is also a third buffer that
8507
+ * can be used to render elements that must appear always on top.
8508
+ *
8509
+ * Does not yet support antialiasing.
8510
+ *
8511
+ * 2019/07/10 Terence Dickson
8512
+ * Generally has better performance under average loads compared to the
8513
+ * single-buffer renderer, but does not work on IE 11.
8514
+ *
8515
+ * @class MultiBufferRenderer
8516
+ * @private
8517
+ */
8518
+ export class MultiBufferRenderer {
8519
+ constructor(renderOptions: any, targetWebGLVersion?: number);
8520
+ options: any;
8521
+ renderer: any;
8522
+ journeyOpacity: number | undefined;
8523
+ backgroundColor: any;
8524
+ backgroundAlpha: number | undefined;
8525
+ mapboxOutdoorContext: any;
8526
+ staticSceneRenderTarget: any;
8527
+ animatedSceneRenderTarget: any;
8528
+ alwaysOnTopSceneRenderTarget: any;
8529
+ outdoorViewRenderTarget: any;
8530
+ populateRenderTarget(renderTarget: any): void;
8531
+ createOutdoorViewTexture(): void;
8532
+ outdoorViewTexture: any;
8533
+ outdoorViewTextureProps: any;
8534
+ setupEffectComposer(): void;
8535
+ effectComposer: EffectComposer | undefined;
8536
+ setOutdoorViewTexture(texture: any): void;
8537
+ /**
8538
+ * Dispose of the renderer and its buffers.
8539
+ */
8540
+ destroy(): void;
8541
+ /**
8542
+ * Render the provided scene using the given camera, re-rendering only
8543
+ * the animated parts.
8544
+ *
8545
+ * @method renderAnimated
8546
+ * @param renderTarget {null or WebGLRenderTarget}
8547
+ * @param scene {Scene}
8548
+ * @param sceneCamera {Camera}
8549
+ */
8550
+ renderAnimated(renderTarget: null, scene: Scene, sceneCamera: Camera): void;
8551
+ /**
8552
+ * Render the provided scene using the given camera, re-rendering only
8553
+ * the parts that should appear on top of all other elements.
8554
+ *
8555
+ * @method renderAlwaysOnTop
8556
+ * @param renderTarget {null or WebGLRenderTarget}
8557
+ * @param scene {Scene}
8558
+ * @param sceneCamera {Camera}
8559
+ */
8560
+ renderAlwaysOnTop(renderTarget: null, scene: Scene, sceneCamera: Camera): void;
8561
+ /**
8562
+ * Render all of the scene layers, then combine them.
8563
+ *
8564
+ * @method renderAll
8565
+ * @param renderTarget {null or WebGLRenderTarget}
8566
+ * @param scene {Scene}
8567
+ * @param sceneCamera {Camera}
8568
+ */
8569
+ renderAll(renderTarget: null, scene: Scene, sceneCamera: Camera, renderAllIncludingOutdoorContext?: boolean): void;
8570
+ /**
8571
+ * Re-render the scene, depending on which parts of the scene have been
8572
+ * invalidated.
8573
+ *
8574
+ * @method render
8575
+ * @param renderTarget {null or WebGLRenderTarget}
8576
+ * @param scene {Scene}
8577
+ * @param sceneCamera {Camera}
8578
+ */
8579
+ render(renderTask: any, renderTarget: null, scene: Scene, sceneCamera: Camera): void;
8580
+ /**
8581
+ * Set the size of the renderer, composer, and all its internal buffers.
8582
+ *
8583
+ * @method setBufferSize
8584
+ * @param width {number}
8585
+ * @param height {number}
8586
+ */
8587
+ setBufferSize(width: number, height: number): void;
8588
+ width: number | undefined;
8589
+ height: number | undefined;
8590
+ /**
8591
+ * Set the color and opacity that will be drawn behind the scene.
8592
+ *
8593
+ * @method setBackgroundColor
8594
+ * @param color {Color}
8595
+ * @param alpha {number}
8596
+ */
8597
+ setBackgroundColor(color: Color, alpha: number): void;
8598
+ /**
8599
+ * Assign an outdoor context to this renderer.
8600
+ *
8601
+ * @method setMapboxOutdoorContext
8602
+ * @param {MapboxOutdoorContext} mapboxOutdoorContext context to draw
8603
+ */
8604
+ setMapboxOutdoorContext(mapboxOutdoorContext: MapboxOutdoorContext): void;
8605
+ setOutdoorViewController(outdoorViewController: any): void;
8606
+ outdoorViewController: any;
8607
+ toggleOutdoorViewVisiblity(visible: any): void;
8608
+ }
8609
+ import { RENDER } from '@mappedin/mappedin-js/renderer/internal';
8610
+ import { EffectComposer } from '@mappedin/mappedin-js/renderer/internal/Mappedin.EffectComposer';
8611
+ export {};
8612
+ }
8613
+
7867
8614
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.ui' {
7868
8615
  import { IBlueDotCore, BlueDotManager } from '@mappedin/mappedin-js/renderer/internal';
7869
8616
  import { IPubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
@@ -8016,7 +8763,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/utils' {
8016
8763
  }): {
8017
8764
  start(core: any): Promise<any>;
8018
8765
  };
8019
- export function getPrimaryLocationForPolygon(polygon: any, venue: any): any;
8766
+ export function getPrimaryLocationForPolygon(polygon: MappedinPolygon, venue: any): MappedinLocation;
8020
8767
  export function determineStartingMap(venue: any, options: any): any;
8021
8768
  }
8022
8769
 
@@ -8133,8 +8880,8 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MapManager' {
8133
8880
  tiltMaps(tilt: any): void;
8134
8881
  resize(): void;
8135
8882
  }
8136
- import { PubSub } from "@mappedin/mappedin-js/renderer/internal/pub-sub";
8137
- import MultiFloorView from "@mappedin/mappedin-js/renderer/internal/Mappedin.MultiFloorView";
8883
+ import { PubSub } from '@mappedin/mappedin-js/renderer/internal/pub-sub';
8884
+ import MultiFloorView from '@mappedin/mappedin-js/renderer/internal/Mappedin.MultiFloorView';
8138
8885
  }
8139
8886
 
8140
8887
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.DebugUI' {
@@ -8194,7 +8941,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.DebugUI' {
8194
8941
  * @param {string} description a description for the control (tooltip)
8195
8942
  * @param {DebugUIControl} control the control to add to the panel
8196
8943
  */
8197
- addDebugControl(category: string, name: string, description: string, control: any): void;
8944
+ addDebugControl(category: string, name: string, description: string, control: DebugUIControl): void;
8198
8945
  /**
8199
8946
  * Remove the given controls from the UI.
8200
8947
  *
@@ -8461,8 +9208,9 @@ declare module '@mappedin/mappedin-js/renderer/private/Core' {
8461
9208
  import { Mesh, PerspectiveCamera, Scene, Vector2 } from 'three';
8462
9209
  import '../internal/object3D.destroy';
8463
9210
  import type { TGetPolygonsAtCoordinateOptions, TMapViewOptions, TPadding } from '@mappedin/mappedin-js/renderer/internal';
8464
- import { Renderer, TaskScheduler, MapManager, FlatLabel, SmartCollisionEngine, PubSub, INTERNAL_EVENT, INTERNAL_EVENT_PAYLOAD, MapView, STATE, MapObject, SceneManager, TileManager, PathsController, FloatingLabelsController, FlatLabelsController, PolygonColorsController, MarkersController, PolygonInteractionController, TooltipsController, PolygonStatesController, PolygonImagesController, ThreeDMarkersController, EventSystem, BlueDotController, CameraController, BillboardManager, StackedMapsController } from '@mappedin/mappedin-js/renderer/internal';
9211
+ import { Renderer, TaskScheduler, MapManager, FlatLabel, SmartCollisionEngine, PubSub, INTERNAL_EVENT, INTERNAL_EVENT_PAYLOAD, MapView, STATE, MapObject, SceneManager, TileManager, PathsController, FloatingLabelsController, FlatLabelsController, PolygonColorsController, MarkersController, PolygonInteractionController, TooltipsController, PolygonStatesController, PolygonImagesController, ThreeDMarkersController, EventSystem, BlueDotController, CameraController, BillboardManager, StackedMapsController, OutdoorViewController } from '@mappedin/mappedin-js/renderer/internal';
8465
9212
  import { Mappedin as IMappedin, MappedinCoordinate, MappedinMap, MappedinNode } from '@mappedin/mappedin-js/get-venue';
9213
+ import WatermarkController from '@mappedin/mappedin-js/renderer/private/controllers/WatermarkController';
8466
9214
  export const raycaster: any;
8467
9215
  let Mappedin: any;
8468
9216
  /**
@@ -8502,6 +9250,8 @@ declare module '@mappedin/mappedin-js/renderer/private/Core' {
8502
9250
  threeDMarkers: ThreeDMarkersController;
8503
9251
  blueDot: BlueDotController;
8504
9252
  camera: CameraController;
9253
+ outdoorViewController?: OutdoorViewController;
9254
+ watermark: WatermarkController;
8505
9255
  options: TMapViewOptions & {
8506
9256
  onDataLoaded?: (data: IMappedin) => void;
8507
9257
  onFirstMapLoaded?: (data: IMappedin) => void;
@@ -8526,6 +9276,7 @@ declare module '@mappedin/mappedin-js/renderer/private/Core' {
8526
9276
  polygonMeshesById: Record<string, Mesh>;
8527
9277
  textLabelsByPolygonId: Record<string, FlatLabel>;
8528
9278
  labelOrientationDelay: number;
9279
+ isWebGL2: boolean;
8529
9280
  interactivePolygons: Record<string, boolean>;
8530
9281
  mapManager: MapManager | undefined;
8531
9282
  sceneManager: SceneManager | undefined;
@@ -8566,7 +9317,7 @@ declare module '@mappedin/mappedin-js/renderer/private/Core' {
8566
9317
  position: any;
8567
9318
  zoom: any;
8568
9319
  };
8569
- setPadding: (padding?: TPadding | undefined) => void;
9320
+ setPadding: (padding?: TPadding) => void;
8570
9321
  getZoomLevelForPolygon: (polygon: any) => any;
8571
9322
  getZoomLevelForCurrentMap: () => any;
8572
9323
  getZoomLevelForObject: (object: any) => any;
@@ -8579,7 +9330,7 @@ declare module '@mappedin/mappedin-js/renderer/private/Core' {
8579
9330
  * @param longitude {Number} Longitude of position
8580
9331
  * @returns A position you can use with a Marker either initially or to update later when the user (for example) moves
8581
9332
  */
8582
- getPositionLatLon: (lat: number, lon: number, map?: string | MappedinMap | null | undefined) => any;
9333
+ getPositionLatLon: (lat: number, lon: number, map?: string | MappedinMap | null) => any;
8583
9334
  lockNorth: (element: any, offset?: number) => void;
8584
9335
  unlockNorth: (element: any) => void;
8585
9336
  convertTo3DMapPosition: (nodeOrCoordinate: MappedinNode | MappedinCoordinate) => any;
@@ -8619,8 +9370,8 @@ declare module '@mappedin/mappedin-js/renderer/private/Core' {
8619
9370
  hideDebugUI: () => void;
8620
9371
  determineNewLabelSize: () => void;
8621
9372
  setMap: (map: string | MappedinMap) => Promise<null>;
8622
- getPolygonsAtScreenCoordinate: (x: number, y: number, options?: TGetPolygonsAtCoordinateOptions | undefined) => any;
8623
- getPolygonsAtCoordinate: (coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions | undefined) => any;
9373
+ getPolygonsAtScreenCoordinate: (x: number, y: number, options?: TGetPolygonsAtCoordinateOptions) => any;
9374
+ getPolygonsAtCoordinate: (coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions) => any;
8624
9375
  getNearestNodeByScreenCoordinate(x: number, y: number, mapOrMapId?: MappedinMap | MappedinMap['id']): MappedinNode;
8625
9376
  /**
8626
9377
  * Destroys instance and frees resources
@@ -8656,13 +9407,14 @@ declare module '@mappedin/mappedin-js/navigator/Edge' {
8656
9407
  distance: number;
8657
9408
  angle: number;
8658
9409
  weight: number;
8659
- constructor({ origin, destination, vortex, elevationDelta, distance, angle, }: {
9410
+ constructor({ origin, destination, vortex, elevationDelta, distance, angle, pathWeight, }: {
8660
9411
  origin: INode;
8661
9412
  destination: INode;
8662
9413
  vortex?: IVortex;
8663
9414
  elevationDelta?: number;
8664
9415
  distance?: number;
8665
9416
  angle?: number;
9417
+ pathWeight?: number;
8666
9418
  });
8667
9419
  }
8668
9420
  export default Edge;
@@ -8725,6 +9477,22 @@ declare module '@mappedin/mappedin-js/navigator/interfaces/ILocation' {
8725
9477
  export default ILocation;
8726
9478
  }
8727
9479
 
9480
+ declare module '@mappedin/mappedin-js/navigator/interfaces/IPolygon' {
9481
+ interface IPolygon {
9482
+ id: string;
9483
+ map: string;
9484
+ layer?: string;
9485
+ layerId?: string;
9486
+ externalId?: string;
9487
+ name?: string;
9488
+ vertexes: {
9489
+ x: number;
9490
+ y: number;
9491
+ }[];
9492
+ }
9493
+ export default IPolygon;
9494
+ }
9495
+
8728
9496
 
8729
9497
 
8730
9498
  declare module '@mappedin/mappedin-js/renderer/internal/quad-tree' {
@@ -8762,18 +9530,106 @@ declare module '@mappedin/mappedin-js/renderer/internal/quad-tree' {
8762
9530
  export { QuadTree, Rectangle };
8763
9531
  }
8764
9532
 
9533
+ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.EffectComposer' {
9534
+ import { N8AOPostPass } from 'n8ao';
9535
+ import { EffectComposer as PPEffectComposer, EffectPass, Pass, ShaderPass, RenderPass, ClearPass } from 'postprocessing';
9536
+ import type { PerspectiveCamera, Scene, Color, Texture } from 'three';
9537
+ import type { TMapViewOptions } from '@mappedin/mappedin-js/renderer/MapView.types';
9538
+ import { Uniform } from 'three';
9539
+ export type TCompositeUniforms = {
9540
+ animatedColorOpacity: Uniform;
9541
+ inputBuffer: Uniform;
9542
+ staticSceneColorTexture: Uniform;
9543
+ staticSceneDepthTexture: Uniform;
9544
+ animatedSceneColorTexture: Uniform;
9545
+ animatedSceneDepthTexture: Uniform;
9546
+ alwaysOnTopSceneColorTexture: Uniform;
9547
+ alwaysOnBottomSceneColorTexture: Uniform;
9548
+ };
9549
+ type TAmbientOcclusionOptions = Pick<TMapViewOptions, 'aoQuality' | 'aoResolution' | 'aoEnabled'>;
9550
+ export type TPostProcessingOptions = TAmbientOcclusionOptions & {
9551
+ antialias?: boolean;
9552
+ compositeUniforms?: TCompositeUniforms;
9553
+ };
9554
+ export type TPass = (RenderPass | ShaderPass | EffectPass | AmbientOcclusionPass) & {
9555
+ name: string;
9556
+ };
9557
+ export enum EAOQualities {
9558
+ performance = "Performance",
9559
+ low = "Low",
9560
+ medium = "Medium",
9561
+ high = "High",
9562
+ ultra = "Ultra"
9563
+ }
9564
+ export enum EPass {
9565
+ RenderPass = "RenderPass",
9566
+ CompositeRenderPass = "CompositeRenderPass",
9567
+ AmbientOcclusionPass = "AmbientOcclusionPass",
9568
+ EffectsPass = "EffectsPass",
9569
+ FinalPass = "FinalPass"
9570
+ }
9571
+ type TN8AOConfiguration = {
9572
+ aoSamples?: number;
9573
+ aoRadius?: number;
9574
+ denoiseSamples?: number;
9575
+ denoiseRadius?: number;
9576
+ distanceFalloff?: number;
9577
+ intensity?: number;
9578
+ denoiseIterations?: number;
9579
+ renderMode?: number;
9580
+ color?: Color;
9581
+ gammaCorrection?: boolean;
9582
+ logarithmicDepthBuffer?: boolean;
9583
+ screenSpaceRadius?: boolean;
9584
+ halfRes?: boolean;
9585
+ depthAwareUpsampling?: boolean;
9586
+ autoRenderBeauty?: boolean;
9587
+ };
9588
+ export class CustomRenderPass extends Pass {
9589
+ effectComposer: EffectComposer;
9590
+ clearPass: ClearPass;
9591
+ constructor(effectComposer: any);
9592
+ render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
9593
+ initialize(_: any, __: any, frameBufferType: any): void;
9594
+ }
9595
+ export class AmbientOcclusionPass extends N8AOPostPass {
9596
+ effectComposer: EffectComposer;
9597
+ cachePass: ShaderPass;
9598
+ constructor(effectComposer: EffectComposer, configuration: TN8AOConfiguration);
9599
+ setQualityMode(aoQuality: any): void;
9600
+ initialize(renderer: any, alpha: any, frameBufferType: any): void;
9601
+ render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
9602
+ }
9603
+ export class EffectComposer {
9604
+ options: TPostProcessingOptions;
9605
+ isWebGL2: boolean;
9606
+ effectComposer: PPEffectComposer;
9607
+ scene: Scene;
9608
+ camera: PerspectiveCamera;
9609
+ depthTexture?: Texture;
9610
+ renderer: any;
9611
+ constructor(renderer: any, options: TPostProcessingOptions);
9612
+ get initialized(): boolean;
9613
+ init(scene: Scene, camera: PerspectiveCamera): void;
9614
+ render(): void;
9615
+ setSize(width: number, height: number): void;
9616
+ getPassByName(passName: EPass): TPass | null;
9617
+ }
9618
+ export {};
9619
+ }
9620
+
8765
9621
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.MultiFloorView' {
8766
9622
  export namespace VIEW_STATE {
8767
- const SINGLE_FLOOR: string;
8768
- const MULTI_FLOOR: string;
9623
+ let SINGLE_FLOOR: string;
9624
+ let MULTI_FLOOR: string;
8769
9625
  }
8770
9626
  export namespace START {
8771
- const TOP: string;
8772
- const BOTTOM: string;
9627
+ let TOP: string;
9628
+ let BOTTOM: string;
8773
9629
  }
8774
9630
  export namespace DIR {
8775
- const DOWN: string;
8776
- const UP: string;
9631
+ let DOWN: string;
9632
+ let UP: string;
8777
9633
  }
8778
9634
  export default MultiFloorView;
8779
9635
  class MultiFloorView {