@mappedin/mappedin-js 6.0.1-alpha.12 → 6.0.1-alpha.14

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.
@@ -240,6 +240,7 @@ declare module '@mappedin/mappedin-js/maker/src/map-view' {
240
240
  import MapData from '@mappedin/mappedin-js/maker/src/map-data';
241
241
  import { ICamera, ILabels, IMapView, IMarkers, IPaths, TUpdateState, TNavigationTarget, TGetDirectionsOptions, INavigation } from '@mappedin/mappedin-js/maker/src/map-view-interface';
242
242
  import { Directions, Label } from '@mappedin/mappedin-js/maker/src/map-view-objects';
243
+ import { Exporter } from '@mappedin/mappedin-js/packages/legacy-renderer/public/api/Exporter';
243
244
  /**
244
245
  * Represents a map with all the interactive features, controls, and actions.
245
246
  */
@@ -270,6 +271,10 @@ declare module '@mappedin/mappedin-js/maker/src/map-view' {
270
271
  * @type {INavigation}
271
272
  */
272
273
  Navigation: INavigation;
274
+ /**
275
+ * Export controller for the map.
276
+ */
277
+ Exporter: Exporter;
273
278
  /**
274
279
  * Constructs a {@link MapView} instance
275
280
  *
@@ -285,7 +290,7 @@ declare module '@mappedin/mappedin-js/maker/src/map-view' {
285
290
  /**
286
291
  * @internal - unused until we use GeoJSON API underneath
287
292
  */
288
- addMap(mapData: MapData): Promise<MapData>;
293
+ addMap: (mapData: MapData) => Promise<MapData>;
289
294
  /**
290
295
  * Updates the state {@link TUpdateState} of a given target on the map.
291
296
  *
@@ -1117,15 +1122,15 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1117
1122
  */
1118
1123
  export type TGeometryState = {
1119
1124
  /**
1120
- * Color of the geometry element.
1125
+ * Color of the geometry element. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1121
1126
  */
1122
1127
  color: string | 'initial';
1123
1128
  /**
1124
- * Color of the geometry element when hovered over.
1129
+ * Color of the geometry element when hovered over. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1125
1130
  */
1126
1131
  hoverColor: string | 'initial';
1127
1132
  /**
1128
- * Indicates if the geometry element is interactive.
1133
+ * Indicates if the geometry element is interactive. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1129
1134
  */
1130
1135
  interactive: boolean;
1131
1136
  };
@@ -1366,73 +1371,73 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1366
1371
  */
1367
1372
  export type TAddPathOptions = {
1368
1373
  /**
1369
- * Path Colour
1374
+ * Path Colour. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1370
1375
  *
1371
1376
  * @defaultValue #4b90e2
1372
1377
  */
1373
1378
  color?: string;
1374
1379
  /**
1375
- * Colour of path pulse
1380
+ * Colour of path pulse. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1376
1381
  *
1377
1382
  * @defaultValue '#ffffff'
1378
1383
  */
1379
1384
  pulseColor?: string;
1380
1385
  /**
1381
- * Number of iterations to pulse to indicate direction
1386
+ * Number of iterations to pulse to indicate direction.
1382
1387
  *
1383
1388
  * @defaultValue 1
1384
1389
  */
1385
1390
  pulseIterations?: number;
1386
1391
  /**
1387
- * How many milliseconds to wait before starting the next pulse after the current pulse travels the entirety of the path
1392
+ * How many milliseconds to wait before starting the next pulse after the current pulse travels the entirety of the path.
1388
1393
  *
1389
1394
  * @defaultValue 750
1390
1395
  */
1391
1396
  pulsePauseDuration?: number;
1392
1397
  /**
1393
- * Radius of path at nearest zoom, in metres
1398
+ * Radius of path at nearest zoom, in metres.
1394
1399
  *
1395
1400
  * @defaultValue 1.8
1396
1401
  */
1397
1402
  nearRadius?: number;
1398
1403
  /**
1399
- * Radius of path at furthest zoom, in metres
1404
+ * Radius of path at furthest zoom, in metres.
1400
1405
  *
1401
1406
  * @defaultValue 2.3 times nearRadius
1402
1407
  */
1403
1408
  farRadius?: number;
1404
1409
  /**
1405
- * Zoom level in meters where the path size is `nearRadius`
1410
+ * Zoom level in meters where the path size is `nearRadius`.
1406
1411
  *
1407
1412
  * @defaultValue 375
1408
1413
  */
1409
1414
  nearZoom?: number;
1410
1415
  /**
1411
- * Zoom level in meters where the path size is `farRadius`tions.nearRadius
1416
+ * Zoom level in meters where the path size is `farRadius`.
1412
1417
  *
1413
1418
  * @defaultValue 10000
1414
1419
  */
1415
1420
  farZoom?: number;
1416
1421
  /**
1417
- * Duration of path drawing
1422
+ * Duration of path drawing in milliseconds.
1418
1423
  *
1419
1424
  * @defaultValue 1500
1420
1425
  */
1421
1426
  drawDuration?: number;
1422
1427
  /**
1423
- * Show arrows on path
1428
+ * Show arrows on path.
1424
1429
  *
1425
1430
  * @defaultValue false
1426
1431
  */
1427
1432
  displayArrowsOnPath?: boolean;
1428
1433
  /**
1429
- * Animate arrows on path
1434
+ * Animate arrows on path.
1430
1435
  *
1431
1436
  * @defaultValue true
1432
1437
  */
1433
1438
  animateArrowsOnPath?: boolean;
1434
1439
  /**
1435
- * Flatten the path to a 2D line
1440
+ * Flatten the path to a 2D line.
1436
1441
  *
1437
1442
  * @defaultValue false
1438
1443
  */
@@ -1456,21 +1461,21 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1456
1461
  */
1457
1462
  interactive?: boolean;
1458
1463
  /**
1459
- * The path will be adjusted vertically to the tallest polygon altitude.
1464
+ * The path will be adjusted vertically to the tallest altitude along the path.
1460
1465
  * The altitude is in meters.
1461
1466
  *
1462
1467
  * @defaultValue false
1463
1468
  */
1464
1469
  adjustedAltitude?: boolean;
1465
1470
  /**
1466
- * The maximum altitude of the path in meters
1471
+ * The maximum altitude of the path in meters.
1467
1472
  * The altitude is in meters.
1468
1473
  *
1469
1474
  * @defaultValue Infinite
1470
1475
  */
1471
1476
  maxAdjustedAltitude?: number;
1472
1477
  /**
1473
- * The minimum altitude of the path in meters
1478
+ * The minimum altitude of the path in meters.
1474
1479
  * The altitude is in meters.
1475
1480
  *
1476
1481
  * @defaultValue -Infinite
@@ -1488,7 +1493,7 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1488
1493
  margin?: number;
1489
1494
  text?: {
1490
1495
  /**
1491
- * Number of lines to display when text spans multiple lines
1496
+ * Number of lines to display when text spans multiple lines.
1492
1497
  */
1493
1498
  numLines?: number;
1494
1499
  /**
@@ -1496,21 +1501,21 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1496
1501
  */
1497
1502
  size?: number;
1498
1503
  /**
1499
- * Maxiumum width of text in pixels
1504
+ * Maxiumum width of text in pixels.
1500
1505
  */
1501
1506
  maxWidth?: number;
1502
1507
  /**
1503
- * Line height sets the height of a line box. It's commonly used to set the distance between lines of text
1508
+ * Line height sets the height of a line box. It's commonly used to set the distance between lines of text.
1504
1509
  *
1505
1510
  * @default 1.2
1506
1511
  */
1507
1512
  lineHeight?: number;
1508
1513
  /**
1509
- * Text foreground color in hex
1514
+ * Text foreground color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1510
1515
  */
1511
1516
  foregroundColor?: string;
1512
1517
  /**
1513
- * Text background color in hex
1518
+ * Text background color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1514
1519
  */
1515
1520
  backgroundColor?: string;
1516
1521
  };
@@ -1522,21 +1527,21 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1522
1527
  size?: number;
1523
1528
  foregroundColor?: {
1524
1529
  /**
1525
- * Foreground color of the marker in hex when it is active
1530
+ * Foreground color of the marker when it is active. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1526
1531
  */
1527
1532
  active?: string;
1528
1533
  /**
1529
- * Foreground color of the marker in hex when it is inactive (grayed out due to being outranked by other labels around)
1534
+ * Foreground color of the marker when it is inactive (grayed out due to being outranked by other labels around). Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1530
1535
  */
1531
1536
  inactive?: string;
1532
1537
  };
1533
1538
  backgroundColor?: {
1534
1539
  /**
1535
- * Background color of the marker in hex when it is active
1540
+ * Background color of the marker when it is active. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1536
1541
  */
1537
1542
  active?: string;
1538
1543
  /**
1539
- * Background color of the marker in hex when it is inactive (grayed out due to being outranked by other labels around)
1544
+ * Background color of the marker when it is inactive (grayed out due to being outranked by other labels around). Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1540
1545
  */
1541
1546
  inactive?: string;
1542
1547
  };
@@ -1706,8 +1711,8 @@ declare module '@mappedin/mappedin-js/maker/src/map-view-interface' {
1706
1711
  */
1707
1712
  export type TDrawNavigationOptions = {
1708
1713
  /**
1709
- * What color to highlight departure and destination polygons
1710
- * Pass false to disable
1714
+ * Color to highlight departure and destination spaces. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
1715
+ * Pass false to disable.
1711
1716
  * @default '#7babc8'
1712
1717
  */
1713
1718
  polygonHighlightColor?: string | false;
@@ -2215,6 +2220,37 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/internal' {
2215
2220
  export { setAssetManager };
2216
2221
  }
2217
2222
 
2223
+ declare module '@mappedin/mappedin-js/packages/legacy-renderer/public/api/Exporter' {
2224
+ import { ExportController } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
2225
+ /**
2226
+ * @hidden
2227
+ */
2228
+ export type TGLTFExportOptions = {
2229
+ onlyVisible?: boolean;
2230
+ binary?: boolean;
2231
+ scale?: number;
2232
+ };
2233
+ /**
2234
+ * API to export the scene.
2235
+ *
2236
+ * @hidden
2237
+ */
2238
+ export class Exporter {
2239
+ #private;
2240
+ /**
2241
+ * @hidden
2242
+ * @internal
2243
+ */
2244
+ constructor(controller: ExportController);
2245
+ /**
2246
+ * Exports the current scene as a GLTF file.
2247
+ *
2248
+ * @hidden
2249
+ */
2250
+ getCurrentSceneGLTF(userOptions: TGLTFExportOptions): Promise<Blob>;
2251
+ }
2252
+ }
2253
+
2218
2254
  declare module '@mappedin/mappedin-js/maker/src/map-data-interace' {
2219
2255
  import type { Annotation, Connection, Coordinate, Door, Floor, MapObject, PointOfInterest, Space } from '@mappedin/mappedin-js/maker/src/map-data-objects';
2220
2256
  /**
@@ -2338,6 +2374,7 @@ declare module '@mappedin/mappedin-js/packages/get-venue/Mappedin.types' {
2338
2374
  clientId: string;
2339
2375
  clientSecret: string;
2340
2376
  venue: string;
2377
+ accessToken: string;
2341
2378
  };
2342
2379
  export type TAllGetVenueOptions = TGetVenueOptions | TGetVenueMVFOptions | (TProcessedMVFOptions & {
2343
2380
  perspective?: string;
@@ -3040,8 +3077,8 @@ declare module '@mappedin/mappedin-js/packages/get-venue/MappedinLocation' {
3040
3077
  }
3041
3078
 
3042
3079
  declare module '@mappedin/mappedin-js/packages/get-venue/MappedinCoordinate' {
3043
- import { MappedinNode, Mappedin } from '@mappedin/mappedin-js/packages/get-venue/internal';
3044
3080
  import type { MappedinMap } from '@mappedin/mappedin-js/packages/get-venue/internal';
3081
+ import { Mappedin, MappedinNode } from '@mappedin/mappedin-js/packages/get-venue/internal';
3045
3082
  export type TMappedinCoordinateOptions = {
3046
3083
  map: MappedinMap;
3047
3084
  mappedin: Mappedin;
@@ -3104,6 +3141,11 @@ declare module '@mappedin/mappedin-js/packages/get-venue/MappedinCoordinate' {
3104
3141
  * Get Nearest Node to Coordinate, which can then be used for navigation
3105
3142
  */
3106
3143
  get nearestNode(): MappedinNode;
3144
+ /**
3145
+ * Get the {@link MappedinNode}s within a radius of the {@link MappedinCoordinate}.
3146
+ * @param radius - The radius in metres.
3147
+ */
3148
+ nodesInRadius(radius: number): MappedinNode[];
3107
3149
  toJSON(): {
3108
3150
  x: number;
3109
3151
  y: number;
@@ -3788,6 +3830,7 @@ declare module '@mappedin/mappedin-js/packages/get-venue/Mappedin.MVF.utils' {
3788
3830
  export const STATIC_MVF_FILES: readonly ["connection.json", "manifest.geojson", "map.geojson", "node.geojson", "styles.json", "mapstack.geojson"];
3789
3831
  export type TStaticMVFFiles = (typeof STATIC_MVF_FILES)[number];
3790
3832
  export function processObstructions(obstructionCollection: ObstructionCollection, entrances: EntranceCollection): ObstructionCollection;
3833
+ export function splitObstructionByAllEntrances(wall: ObstructionWallFeature, entrances: EntranceFeature[]): ObstructionWallFeature[];
3791
3834
  export function isPolygonStyle(style: PolygonStyle | LineStringStyle | undefined): style is PolygonStyle & LineStringStyle;
3792
3835
  export function getStylesMap(styles: StyleCollection): WithIDs<MVFStyle>;
3793
3836
  }
@@ -4930,7 +4973,10 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/private/Core.inte
4930
4973
  * An object containing all outlined polygons.
4931
4974
  */
4932
4975
  outlinedPolygons: Map<string, MappedinPolygon>;
4933
- cameraPlane: any;
4976
+ /**
4977
+ * A plane that is parallel to the ground and is used for raycasting.
4978
+ */
4979
+ worldPlane: Mesh;
4934
4980
  getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string | null): Vector3;
4935
4981
  currentScale: number;
4936
4982
  getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
@@ -7279,7 +7325,7 @@ declare module '@mappedin/mappedin-js/packages/get-venue/pub-sub.typed' {
7279
7325
  * @template EVENT_PAYLOAD - The type of the event payload.
7280
7326
  * @template EVENT - The type of the event.
7281
7327
  */
7282
- export class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD> {
7328
+ export class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EVENT_PAYLOAD> {
7283
7329
  /**
7284
7330
  * @private
7285
7331
  * @internal
@@ -9149,73 +9195,76 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/private/controlle
9149
9195
  import type { ICore, MappedinPolygon, Collider } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
9150
9196
  import { BlueDotManager, Path } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
9151
9197
  class EventSystem {
9152
- core: ICore;
9153
- blueDotManager?: BlueDotManager;
9154
- rendererDomElement: any;
9155
- currentHover: string | null;
9156
- hoverLabel: any;
9157
- hoverColor: Color;
9158
- options: {
9159
- disableHover: boolean;
9160
- };
9161
- constructor(core: ICore);
9162
- setBlueDotManager: (blueDotManager: any) => void;
9163
- touchCount: number;
9164
- zoomOut(): void;
9165
- zoomIn(event: any): void;
9166
- onPointerMove: (event: any) => void;
9167
- onPointerUp: (event: any) => void;
9168
- /**
9169
- * We've confirmed that a map click has occured, so handle that here
9170
- */
9171
- handleMapClick(event: any): void;
9172
- onPointerDown: (event: any) => void;
9173
- incrementTouches: (event: any) => void;
9174
- decrementTouches: (event: any) => void;
9175
- clearMouse: () => void;
9176
- getMousePos: (event: any) => {
9177
- x: any;
9178
- y: any;
9179
- };
9180
- getScaledMousePos: (event: any) => {
9181
- x: number;
9182
- y: number;
9183
- };
9184
- cursorPos: {
9185
- x: number;
9186
- y: number;
9187
- };
9188
- mouse: {
9189
- x: number;
9190
- y: number;
9191
- };
9192
- mouseDownStart: {
9193
- time: number;
9194
- clientX: number;
9195
- clientY: number;
9196
- };
9197
- scaledCursorPos: {
9198
- x: number;
9199
- y: number;
9200
- };
9201
- hasTouched: boolean;
9202
- calculateMouseCoordinates: (event: any) => void;
9203
- getMouseRayIntersects: (objects: Object3D | Object3D[]) => import("three").Intersection<Object3D<import("three").Object3DEventMap>>[];
9204
- detectCollidersUnderMouse: () => Collider[];
9205
- detectPolygonsUnderMouse: () => string[];
9206
- detectPathsUnderMouse: () => Path[];
9207
- detectWatermarkUnderMouse: () => boolean;
9208
- detectMapsUnderMouse: () => (import("../../internal").MappedinMap | null)[];
9209
- getMouseMapPosition: () => {
9210
- x: number;
9211
- y: number;
9212
- };
9213
- checkMouseIntersectsBlueDot: () => boolean;
9214
- doHoverEffect: () => void;
9215
- onPolygonHoverOut: (polygonId: string) => false | undefined;
9216
- onPolygonHoverOver: (polygon: MappedinPolygon | string) => false | undefined;
9217
- setHoverColor: (color: string) => void;
9218
- destroy(): void;
9198
+ core: ICore;
9199
+ blueDotManager?: BlueDotManager;
9200
+ rendererDomElement: any;
9201
+ currentHover: string | null;
9202
+ hoverLabel: any;
9203
+ hoverColor: Color;
9204
+ options: {
9205
+ disableHover: boolean;
9206
+ };
9207
+ constructor(core: ICore);
9208
+ setBlueDotManager: (blueDotManager: any) => void;
9209
+ touchCount: number;
9210
+ zoomOut(): void;
9211
+ zoomIn(event: any): void;
9212
+ onPointerMove: (event: any) => void;
9213
+ onPointerUp: (event: any) => void;
9214
+ /**
9215
+ * We've confirmed that a map click has occured, so handle that here
9216
+ */
9217
+ handleMapClick(event: any): void;
9218
+ onPointerDown: (event: any) => void;
9219
+ incrementTouches: (event: any) => void;
9220
+ decrementTouches: (event: any) => void;
9221
+ clearMouse: () => void;
9222
+ getMousePos: (event: any) => {
9223
+ x: any;
9224
+ y: any;
9225
+ };
9226
+ getScaledMousePos: (event: any) => {
9227
+ x: number;
9228
+ y: number;
9229
+ };
9230
+ cursorPos: {
9231
+ x: number;
9232
+ y: number;
9233
+ };
9234
+ mouse: {
9235
+ x: number;
9236
+ y: number;
9237
+ };
9238
+ mouseDownStart: {
9239
+ time: number;
9240
+ clientX: number;
9241
+ clientY: number;
9242
+ };
9243
+ scaledCursorPos: {
9244
+ x: number;
9245
+ y: number;
9246
+ };
9247
+ hasTouched: boolean;
9248
+ calculateMouseCoordinates: (event: any) => void;
9249
+ getMouseRayIntersects: (objects: Object3D | Object3D[]) => import("three").Intersection<Object3D<import("three").Object3DEventMap>>[];
9250
+ detectCollidersUnderMouse: () => Collider[];
9251
+ detectPolygonsUnderMouse: () => string[];
9252
+ detectPathsUnderMouse: () => Path[];
9253
+ detectWatermarkUnderMouse: () => boolean;
9254
+ detectMapsUnderMouse: () => (import("../../internal").MappedinMap | null)[];
9255
+ /**
9256
+ * Gets mouse click position in x y map coordinates
9257
+ */
9258
+ getMouseMapPosition: () => {
9259
+ x: number;
9260
+ y: number;
9261
+ };
9262
+ checkMouseIntersectsBlueDot: () => boolean;
9263
+ doHoverEffect: () => void;
9264
+ onPolygonHoverOut: (polygonId: string) => false | undefined;
9265
+ onPolygonHoverOver: (polygon: MappedinPolygon | string) => false | undefined;
9266
+ setHoverColor: (color: string) => void;
9267
+ destroy(): void;
9219
9268
  }
9220
9269
  export default EventSystem;
9221
9270
  }
@@ -9356,115 +9405,141 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/private/controlle
9356
9405
  import { STACKED_MAPS_STATE, MapViewScene, MapViewStackScene, CAMERA_EASING_MODE } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
9357
9406
  import type { ICore, TCameraTransform } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
9358
9407
  enum ACTION {
9359
- enable = "enable",
9360
- disable = "disable",
9361
- showOverview = "showOverview",
9362
- zoomInToMap = "zoomInToMap",
9363
- scrollToMap = "scrollToMap"
9408
+ enable = "enable",
9409
+ disable = "disable",
9410
+ showOverview = "showOverview",
9411
+ zoomInToMap = "zoomInToMap",
9412
+ scrollToMap = "scrollToMap",
9413
+ restack = "restack"
9364
9414
  }
9365
9415
  type TTargetTransitionFunction = ((options: TParams) => () => Promise<void>) | ((options: TParams) => void);
9366
9416
  type TParams = {
9367
- map: MappedinMap;
9417
+ map: MappedinMap;
9368
9418
  } | {
9369
- directions: MappedinDirections | MappedinDirections[];
9419
+ directions: MappedinDirections | MappedinDirections[];
9370
9420
  } | {
9371
- stackScene: MapViewStackScene;
9372
- directions: MappedinDirections | MappedinDirections[];
9373
- verticalDistanceBetweenMaps?: number;
9421
+ stackScene: MapViewStackScene;
9422
+ directions: MappedinDirections | MappedinDirections[];
9423
+ verticalDistanceBetweenMaps?: number;
9374
9424
  } | {
9375
- stackScene: MapViewStackScene;
9376
- verticalDistanceBetweenMaps?: number;
9377
- map: MappedinMap;
9378
- nodes: MappedinNode[];
9425
+ stackScene: MapViewStackScene;
9426
+ verticalDistanceBetweenMaps?: number;
9427
+ map: MappedinMap;
9428
+ nodes: MappedinNode[];
9379
9429
  } | {
9380
- stackScene: MapViewStackScene;
9381
- map: MappedinMap;
9382
- nodes: MappedinNode[];
9383
- rotation: number;
9384
- cameraTransform?: TCameraTransform;
9385
- verticalDistanceBetweenMaps?: number;
9430
+ stackScene: MapViewStackScene;
9431
+ map: MappedinMap;
9432
+ nodes: MappedinNode[];
9433
+ rotation: number;
9434
+ cameraTransform?: TCameraTransform;
9435
+ verticalDistanceBetweenMaps?: number;
9386
9436
  };
9387
9437
  type TActionFn = [STACKED_MAPS_STATE, TTargetTransitionFunction[]];
9388
9438
  type TState = {
9389
- [stateName in STACKED_MAPS_STATE]?: {
9390
- actions: {
9391
- [actionName in ACTION]?: TActionFn;
9439
+ [stateName in STACKED_MAPS_STATE]?: {
9440
+ actions: {
9441
+ [actionName in ACTION]?: TActionFn;
9442
+ };
9392
9443
  };
9393
- };
9394
9444
  };
9395
9445
  export type TInternalTransitionOptions = {
9396
- animate?: boolean;
9446
+ animate?: boolean;
9397
9447
  };
9398
9448
  export type TStackedMapsOptions = {
9399
- verticalDistanceBetweenMaps?: number;
9400
- mapLabels?: boolean;
9449
+ /**
9450
+ * The vertical distance between maps in overview, in metres.
9451
+ * @default 50
9452
+ */
9453
+ verticalDistanceBetweenMaps?: number;
9454
+ /**
9455
+ * Whether to show map level labels in overview.
9456
+ * @default true
9457
+ */
9458
+ mapLabels?: boolean;
9459
+ /**
9460
+ * Whether to show only Journey maps in the stack if a Journey is active and the current map is part of the Journey.
9461
+ * @default true
9462
+ */
9463
+ prioritizeJourneyMaps?: boolean;
9401
9464
  };
9402
9465
  class StackedMapsController {
9403
- #private;
9404
- options: TStackedMapsOptions;
9405
- enabled: boolean;
9406
- stackScene: MapViewStackScene;
9407
- directions: MappedinDirections | MappedinDirections[];
9408
- constructor(core: ICore);
9409
- needsUpdate: boolean;
9410
- currentState: STACKED_MAPS_STATE;
9411
- mapsInJourney: MappedinMap[];
9412
- getZoomIntoMapOptions: (params: TParams) => (MapViewScene | {
9413
- activeMap: MappedinMap;
9414
- focusOn: {
9415
- targets: {
9416
- nodes: MappedinNode[];
9417
- };
9418
- options: {
9419
- zoom?: number | undefined;
9420
- tilt: number;
9421
- rotation: number;
9422
- position?: MappedinNode | import("../../internal").MappedinCoordinate | undefined;
9423
- easing: CAMERA_EASING_MODE;
9424
- };
9425
- };
9426
- })[] | undefined;
9427
- getDisableOptions: (params: TParams) => (MapViewScene | {
9428
- activeMap: MappedinMap;
9429
- })[] | undefined;
9430
- getShowOverviewOptions: (params: TParams) => (MapViewStackScene | {
9431
- activeMap: MappedinMap;
9432
- focusOn: {
9433
- options: {
9434
- tilt: number;
9435
- duration: number;
9436
- };
9437
- };
9438
- verticalDistanceBetweenMaps: number | undefined;
9439
- })[] | undefined;
9440
- getScrollToMapOptions: (params: TParams) => (MapViewStackScene | {
9441
- focusOn: {
9442
- targets: {
9443
- nodes: MappedinNode[];
9444
- };
9445
- options: {
9446
- tilt: number;
9447
- easing: CAMERA_EASING_MODE;
9448
- };
9449
- };
9450
- activeMap: MappedinMap;
9451
- })[] | undefined;
9452
- getEnableOptions: (params: TParams) => void;
9453
- getShowOverviewTransition: (options: any, inTransit?: boolean) => () => Promise<void>;
9454
- getZoomInToMapTransition: (options: any) => () => Promise<void>;
9455
- getScrollToMapTransition: (options: any, inTransit?: boolean) => () => Promise<void>;
9456
- getDisableTransition: (options: any) => () => Promise<void>;
9457
- getEnableTransition: () => () => void;
9458
- states: TState;
9459
- transition(currentState: STACKED_MAPS_STATE, actionName: ACTION): TTargetTransitionFunction[] | void;
9460
- exec(transitions: TTargetTransitionFunction[] | void, params: TParams): Promise<void>;
9461
- disable: () => Promise<void>;
9462
- enable: (opts?: TStackedMapsOptions) => Promise<void>;
9463
- get nodesInJourney(): MappedinNode[];
9464
- showOverview: () => Promise<void>;
9465
- scrollToMap: (map: MappedinMap) => Promise<void>;
9466
- zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
9467
- get currentMap(): MappedinMap;
9466
+ #private;
9467
+ options: TStackedMapsOptions;
9468
+ enabled: boolean;
9469
+ stackScene: MapViewStackScene;
9470
+ constructor(core: ICore);
9471
+ needsUpdate: boolean;
9472
+ currentState: STACKED_MAPS_STATE;
9473
+ mapsInStack: MappedinMap[];
9474
+ getZoomIntoMapOptions: (params: TParams) => (MapViewScene | {
9475
+ activeMap: MappedinMap;
9476
+ focusOn: {
9477
+ targets: {
9478
+ nodes: MappedinNode[];
9479
+ };
9480
+ options: {
9481
+ zoom?: number | undefined;
9482
+ tilt: number;
9483
+ rotation: number;
9484
+ position?: MappedinNode | import("../../internal").MappedinCoordinate | undefined;
9485
+ easing: CAMERA_EASING_MODE;
9486
+ };
9487
+ };
9488
+ })[] | undefined;
9489
+ getDisableOptions: (params: TParams) => (MapViewScene | {
9490
+ activeMap: MappedinMap;
9491
+ })[] | undefined;
9492
+ getShowOverviewOptions: (params: TParams) => (MapViewStackScene | {
9493
+ activeMap: MappedinMap;
9494
+ focusOn: {
9495
+ options: {
9496
+ tilt: number;
9497
+ duration: number;
9498
+ };
9499
+ };
9500
+ verticalDistanceBetweenMaps: number | undefined;
9501
+ })[] | undefined;
9502
+ getScrollToMapOptions: (params: TParams) => (MapViewStackScene | {
9503
+ focusOn: {
9504
+ targets: {
9505
+ nodes: MappedinNode[];
9506
+ };
9507
+ options: {
9508
+ tilt: number;
9509
+ easing: CAMERA_EASING_MODE;
9510
+ };
9511
+ };
9512
+ activeMap: MappedinMap;
9513
+ })[] | undefined;
9514
+ getRestackOptions: (params: TParams) => (MapViewStackScene | {
9515
+ activeMap: MappedinMap;
9516
+ focusOn: {
9517
+ options: {
9518
+ tilt: number;
9519
+ duration: number;
9520
+ };
9521
+ };
9522
+ verticalDistanceBetweenMaps: number | undefined;
9523
+ })[] | undefined;
9524
+ getEnableOptions: () => void;
9525
+ getShowOverviewTransition: (options: any, inTransit?: boolean) => () => Promise<void>;
9526
+ getZoomInToMapTransition: (options: any) => () => Promise<void>;
9527
+ getScrollToMapTransition: (options: any, inTransit?: boolean) => () => Promise<void>;
9528
+ getRestackTransition: (options: any, inTransit?: boolean) => () => Promise<void>;
9529
+ getDisableTransition: (options: any) => () => Promise<void>;
9530
+ getEnableTransition: () => () => void;
9531
+ states: TState;
9532
+ get determineMapStack(): MappedinMap[];
9533
+ transition(currentState: STACKED_MAPS_STATE, actionName: ACTION): TTargetTransitionFunction[] | void;
9534
+ exec(transitions: TTargetTransitionFunction[] | void, params: TParams): Promise<void>;
9535
+ disable: () => Promise<void>;
9536
+ enable: (opts?: TStackedMapsOptions) => Promise<void>;
9537
+ get nodesInJourneyOrMap(): any[];
9538
+ showOverview: () => Promise<void>;
9539
+ scrollToMap: (map: MappedinMap) => Promise<void>;
9540
+ restack: (options?: TStackedMapsOptions) => Promise<void>;
9541
+ zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
9542
+ get currentMap(): MappedinMap;
9468
9543
  }
9469
9544
  export default StackedMapsController;
9470
9545
  }
@@ -9954,7 +10029,7 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/private/controlle
9954
10029
  /**
9955
10030
  * Exports the current scene as a GLTF file.
9956
10031
  */
9957
- getCurrentSceneGLTF(userOptions: TGLTFExportOptions): Promise<Blob>;
10032
+ getCurrentSceneGLTF: (userOptions: TGLTFExportOptions) => Promise<Blob>;
9958
10033
  }
9959
10034
  }
9960
10035
 
@@ -9978,6 +10053,7 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/private/controlle
9978
10053
  */
9979
10054
  getVisibleLayersForLoadedMap(map: MappedinMap): string[] | undefined;
9980
10055
  addGeoJSONLayer(layerName: string, featureOrFeatureCollection: Feature<Polygon, GeoJsonProperties | null> | FeatureCollection<Polygon, GeoJsonProperties | null>): Promise<void>;
10056
+ removeGeoJSONLayer(layerName: string): Promise<void>;
9981
10057
  }
9982
10058
  export default LayerController;
9983
10059
  }
@@ -11458,7 +11534,7 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/private/Core' {
11458
11534
  resolution: Vector2;
11459
11535
  cameraParameters: any;
11460
11536
  controls: typeof Mappedin.CameraControls;
11461
- cameraPlane: Mesh;
11537
+ worldPlane: Mesh;
11462
11538
  canvasWidth: number;
11463
11539
  canvasHeight: number;
11464
11540
  cachedPadding: TPadding;
@@ -11584,6 +11660,10 @@ declare module '@mappedin/mappedin-js/packages/get-venue/MappedinNavigatable' {
11584
11660
  * Exclude all the vortexes matching the given IDs
11585
11661
  */
11586
11662
  excludedVortexIds?: string[];
11663
+ /**
11664
+ * Exclude all the nodes matching the given IDs
11665
+ */
11666
+ excludedNodeIds?: string[];
11587
11667
  /**
11588
11668
  * @experimental
11589
11669
  * Apply line-of-sight simplifying to directions. This will attempt to remove unnecessary nodes between turns.
@@ -12398,6 +12478,7 @@ declare module '@mappedin/mappedin-js/packages/get-venue/Mappedin.cache' {
12398
12478
  get polygonsByMapId(): Map<string, MappedinPolygon[]>;
12399
12479
  get nodesByMapId(): Map<string, MappedinNode[]>;
12400
12480
  findNearestNodeOnMap(mapId: string, coordinate: MappedinCoordinate): MappedinNode;
12481
+ findNodeWithinRadiusOnMap(mapId: string, coordinate: MappedinCoordinate, radius: number): MappedinNode[];
12401
12482
  get locationsByMapId(): Map<string, MappedinLocation[]>;
12402
12483
  static instances: Map<Mappedin, MappedinCache>;
12403
12484
  static create(mappedin: Mappedin): MappedinCache;
@@ -12504,13 +12585,15 @@ declare module '@mappedin/mappedin-js/packages/navigator/NavigationGraph' {
12504
12585
  * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
12505
12586
  * @param includedVortexIds set - optional, exclude all the vertexes matching the given IDs
12506
12587
  * @param excludedVortexIds set - optional, exclude all the vertexes matching the given IDs
12588
+ * @param excludedNodeIds set - optional, exclude all the nodes matching the given IDs
12507
12589
  */
12508
- aStar({ originIds, destinationNodeIds, accessible, includedVortexIds, excludedVortexIds, }: {
12590
+ aStar({ originIds, destinationNodeIds, accessible, includedVortexIds, excludedVortexIds, excludedNodeIds, }: {
12509
12591
  originIds: string[];
12510
12592
  destinationNodeIds: string[];
12511
12593
  accessible: boolean;
12512
12594
  includedVortexIds?: Set<string>;
12513
12595
  excludedVortexIds?: Set<string>;
12596
+ excludedNodeIds?: Set<string>;
12514
12597
  }): Edge[];
12515
12598
  getDistance(origin: INode, destination: INode): number;
12516
12599
  getShortestEuclideanDistance(origin: INode, destinations: INode[]): number;
@@ -12577,10 +12660,11 @@ declare module '@mappedin/mappedin-js/packages/navigator/Navigator' {
12577
12660
  * @param includedVortexIds set - optional, exclude all the vertexes matching the given IDs
12578
12661
  * @param excludedVortexIds set - optional, exclude all the vertexes matching the given IDs
12579
12662
  */
12580
- getDirections({ originIds, destinationNodeIds, accessible, departFrom, arriveAt, includedVortexIds, excludedVortexIds, simplify, }: {
12663
+ getDirections({ originIds, destinationNodeIds, accessible, departFrom, arriveAt, includedVortexIds, excludedVortexIds, excludedNodeIds, simplify, }: {
12581
12664
  originIds: string[];
12582
12665
  includedVortexIds?: Set<string>;
12583
12666
  excludedVortexIds?: Set<string>;
12667
+ excludedNodeIds?: Set<string>;
12584
12668
  destinationNodeIds: string[];
12585
12669
  accessible: boolean;
12586
12670
  departFrom?: ILocation;
@@ -12628,7 +12712,7 @@ declare module '@mappedin/mappedin-js/maker/src/api-cms/api-cms' {
12628
12712
  import { MapData, TShow3DMapOptions } from '@mappedin/mappedin-js/maker/src';
12629
12713
  import { IDirectionsResult, MappedinMap } from '@mappedin/mappedin-js/packages/get-venue';
12630
12714
  import { FloatingLabel, Marker as LegacyMarker } from '@mappedin/mappedin-js/cms/src';
12631
- import { JourneyController } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
12715
+ import { ExportController, JourneyController } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
12632
12716
  import Core from '@mappedin/mappedin-js/packages/legacy-renderer/private/Core';
12633
12717
  import { Coordinate, Door, Floor, MapDataInternal, MapObject, PointOfInterest, Space } from '@mappedin/mappedin-js/maker/src/map-data-objects';
12634
12718
  import { MapView } from '@mappedin/mappedin-js/maker/src/map-view';
@@ -12653,6 +12737,7 @@ declare module '@mappedin/mappedin-js/maker/src/api-cms/api-cms' {
12653
12737
  journey?: JourneyController;
12654
12738
  Navigation: Navigation;
12655
12739
  auto: DefaultTheme['auto'];
12740
+ exportController?: ExportController;
12656
12741
  constructor(el: HTMLElement, mapView: MapView, optionsWithDefaults: TShow3DMapOptions);
12657
12742
  get currentFloor(): Floor;
12658
12743
  setFloor(floor: Floor | string): void;
@@ -14084,37 +14169,6 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/public/api/Camera
14084
14169
  }
14085
14170
  }
14086
14171
 
14087
- declare module '@mappedin/mappedin-js/packages/legacy-renderer/public/api/Exporter' {
14088
- import { ExportController } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
14089
- /**
14090
- * @hidden
14091
- */
14092
- export type TGLTFExportOptions = {
14093
- onlyVisible?: boolean;
14094
- binary?: boolean;
14095
- scale?: number;
14096
- };
14097
- /**
14098
- * API to export the scene.
14099
- *
14100
- * @hidden
14101
- */
14102
- export class Exporter {
14103
- #private;
14104
- /**
14105
- * @hidden
14106
- * @internal
14107
- */
14108
- constructor(controller: ExportController);
14109
- /**
14110
- * Exports the current scene as a GLTF file.
14111
- *
14112
- * @hidden
14113
- */
14114
- getCurrentSceneGLTF(userOptions: TGLTFExportOptions): Promise<Blob>;
14115
- }
14116
- }
14117
-
14118
14172
  declare module '@mappedin/mappedin-js/packages/legacy-renderer/public/api/StackedMaps' {
14119
14173
  import { MappedinMap } from '@mappedin/mappedin-js/packages/get-venue';
14120
14174
  import { STACKED_MAPS_STATE, StackedMapsController, TCameraTransform } from '@mappedin/mappedin-js/packages/legacy-renderer/internal';
@@ -14220,6 +14274,26 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/public/api/Stacke
14220
14274
  * @returns Promise when all animations are complete.
14221
14275
  */
14222
14276
  zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
14277
+ /**
14278
+ * @experimental
14279
+ *
14280
+ * Used when in {@link STACKED_MAPS_STATE.OVERVIEW | OVERVIEW} state to replace the maps in the
14281
+ * current stack if there is a new Journey or Journey is cleared.
14282
+ *
14283
+ * @param options - Options to adjust the overview. Each option defaults to the setting passed in {@link enable}, unless provided.
14284
+ *
14285
+ * @example
14286
+ * ```ts
14287
+ * mapView.Journey.draw(...);
14288
+ * mapView.StackedMaps.enable();
14289
+ * mapView.StackedMaps.showOverview();
14290
+ * mapView.Journey.clear();
14291
+ * mapView.StackedMaps.restack();
14292
+ * ```
14293
+ *
14294
+ * @returns Promise when all animations are complete.
14295
+ */
14296
+ restack: (options?: TStackedMapsOptions) => Promise<void>;
14223
14297
  /**
14224
14298
  * @experimental
14225
14299
  *
@@ -14311,6 +14385,12 @@ declare module '@mappedin/mappedin-js/packages/legacy-renderer/public/api/Layers
14311
14385
  * Adds a GeoJSON Feature or FeatureCollection to the map as a layer. The layer name must be unique
14312
14386
  */
14313
14387
  addGeoJSONLayer(layerName: string, featureOrFeatureCollection: Feature<Polygon, GeoJsonProperties | null> | FeatureCollection<Polygon, GeoJsonProperties | null>): Promise<void> | undefined;
14388
+ /**
14389
+ * @experimental
14390
+ * Hides a GeoJSON layer from the map and removes it from the list of layers.
14391
+ * It will not appear in {@link getAllLayersForMap} afterwards and can be overwritten by a new layer with the same name.
14392
+ */
14393
+ removeGeoJSONLayer(layerName: string): Promise<void> | undefined;
14314
14394
  }
14315
14395
  export default LayerController;
14316
14396
  }