@mappedin/mappedin-js 6.0.1-beta.15 → 6.0.1-beta.16

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.
@@ -3,6 +3,7 @@
3
3
  // ../mappedin-js/@packages/internal/mvf-utils
4
4
  // ../mappedin-js/@mappedin/mvf
5
5
  // ../mappedin-js/@packages/internal/common/pubsub
6
+ // ../mappedin-js/@packages/internal/mvf-utils/mvf-utils
6
7
  // ../mappedin-js/@packages/internal/common/Mappedin.Logger
7
8
  // ../mappedin-js/geojson
8
9
  // ../mappedin-js/@packages/internal/common
@@ -37,11 +38,13 @@ declare module '@mappedin/mappedin-js' {
37
38
  import type { Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
38
39
  import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack } from '@mappedin/mvf';
39
40
  import { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
40
- import type { Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/mappedin-js/geojson/src';
41
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/mappedin-js/geojson/src';
41
42
  import { enableTestMode } from '@mappedin/mappedin-js/geojson/src';
42
43
  export type { PubSub } from '@packages/internal/common/pubsub';
43
44
  import { MappedinMapLibreOverlay } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
44
45
  import type { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
46
+ import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
47
+ import type { TBlueDotEvents, TBlueDotAction, TBlueDotState } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
45
48
  export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
46
49
  /**
47
50
  * Represents all the available antialiasing options.
@@ -167,6 +170,7 @@ declare module '@mappedin/mappedin-js' {
167
170
  token?: string;
168
171
  /**
169
172
  * A url to a style specification conforming to the [Maplibre Style Spec](https://maplibre.org/maplibre-style-spec/).
173
+ * Use the {@link Environment | `environment`} setting to switch environments.
170
174
  */
171
175
  style?: string;
172
176
  /**
@@ -354,7 +358,7 @@ declare module '@mappedin/mappedin-js' {
354
358
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
355
359
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
356
360
  export { parseMVF, unzipMVF, enableTestMode };
357
- export type { MapView, MapData, MappedinMapLibreOverlay, TEvents, TEventPayload, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, };
361
+ export type { MapView, MapData, MappedinMapLibreOverlay, TBlueDotEvents, TBlueDotAction, TBlueDotState, TEvents, TEventPayload, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, };
358
362
  export type * from 'geojson';
359
363
  export type { TUpdateState, TLabelState, TGeometryState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/mappedin-js/mappedin-js/src/types';
360
364
  export { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
@@ -423,6 +427,19 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
423
427
  constructor(internal: MapDataInternal, { search }?: {
424
428
  search?: TSearchOptions;
425
429
  });
430
+ /**
431
+ * Get the current environment.
432
+ *
433
+ * @example
434
+ * const env = mapData.getEnv();
435
+ * console.log(env.baseUri); // Get the API URL for the current environment
436
+ */
437
+ getEnv(): {
438
+ readonly baseUri: string;
439
+ readonly baseAuthUri: string;
440
+ readonly analyticsBaseUri: string;
441
+ readonly tileServerUri: string;
442
+ };
426
443
  /**
427
444
  * The name of the map.
428
445
  *
@@ -612,6 +629,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/events' {
612
629
  import type { Coordinate, Floor, MapObject, Space } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
613
630
  import type { Label, Marker, Model, Path } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
614
631
  import type { CameraTransform } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/camera-transform';
632
+ import type { TBlueDotEvents } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot';
615
633
  export type TFloorChangeReason = '' | 'blue-dot-floor-change' | 'elevation-change';
616
634
  export type TClickPayload = {
617
635
  /**
@@ -703,6 +721,18 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/events' {
703
721
  * Emitted when a user interaction with the map ends.
704
722
  */
705
723
  'user-interaction-end': undefined;
724
+ /**
725
+ * Emitted when the Blue Dot's position is updated.
726
+ */
727
+ 'blue-dot-position-update': TBlueDotEvents['position-update'];
728
+ /**
729
+ * Emitted when the Blue Dot's state changes.
730
+ */
731
+ 'blue-dot-state-change': TBlueDotEvents['state-change'];
732
+ /**
733
+ * Emitted when the Blue Dot encounters an error.
734
+ */
735
+ 'blue-dot-error': TBlueDotEvents['error'];
706
736
  } & TStackedMapsEvents;
707
737
  export type TEventPayload<EventName extends keyof TEvents> = TEvents[EventName] extends {
708
738
  data: null;
@@ -741,6 +771,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
741
771
  import { PubSub } from '@packages/internal/common';
742
772
  import type { LanguagePack, Places, TMapDataInternalOptions } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types';
743
773
  import { type LocalePackUrls } from '@packages/internal/mvf-utils';
774
+ import type { EnvControl } from '@packages/internal/mvf-utils/mvf-utils';
744
775
  import type { TGetDirectionsOptions, TNavigationTarget } from '@mappedin/mappedin-js/mappedin-js/src/types';
745
776
  import { type Directions, DirectionsInternal } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/directions';
746
777
  import { type THydrateMapDataBundle } from '@mappedin/mappedin-js/mappedin-js/src';
@@ -812,10 +843,17 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
812
843
  [languageCode: string]: LanguagePack;
813
844
  };
814
845
  binaryBundle?: Uint8Array;
846
+ envControl: EnvControl;
815
847
  /**
816
848
  * @internal
817
849
  */
818
850
  constructor(mvf: ParsedMVF, options: TMapDataInternalOptions);
851
+ getEnv(): {
852
+ readonly baseUri: string;
853
+ readonly baseAuthUri: string;
854
+ readonly analyticsBaseUri: string;
855
+ readonly tileServerUri: string;
856
+ };
819
857
  /**
820
858
  * Retrieves the map name.
821
859
  *
@@ -950,10 +988,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
950
988
  import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
951
989
  import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
952
990
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates } from '@mappedin/mappedin-js/mappedin-js/src/types';
953
- import type { Label, Marker, Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
991
+ import type { Label, Marker, Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
954
992
  import type { TEventPayload } from '@mappedin/mappedin-js/mappedin-js/src/events';
955
993
  import type { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
956
994
  import type { TShowStackOptions } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
995
+ import type { InspectorOption } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/inspector/inspector';
957
996
  export class MapView extends PubSub<TEvents> {
958
997
  #private;
959
998
  /**
@@ -1027,7 +1066,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1027
1066
  * // Update the color of a space to red.
1028
1067
  * map.updateState(space, { color: 'red' });
1029
1068
  */
1030
- updateState<T extends Space | MapObject | Label | Marker | Door | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1069
+ updateState<T extends Space | MapObject | Label | Marker | Shape | Door | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1031
1070
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1032
1071
  update: () => void;
1033
1072
  getMapData(): {
@@ -1077,7 +1116,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1077
1116
  * @hidden
1078
1117
  */
1079
1118
  updateWatermark(options: WatermarkUpdateOptions): void;
1080
- getState<T extends Space | MapObject | Label | Marker | Image | string>(target: T): TGetState<T> | undefined;
1119
+ getState<T extends Space | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T> | undefined;
1081
1120
  setHoverColor(c: string): void;
1082
1121
  getHoverColor(): string | undefined;
1083
1122
  /**
@@ -1195,7 +1234,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
1195
1234
  * @experimental
1196
1235
  * Enable debug interface
1197
1236
  */
1198
- enableDebug(): Promise<void>;
1237
+ enableDebug(opitons?: InspectorOption): Promise<void>;
1199
1238
  }
1200
1239
  }
1201
1240
 
@@ -1206,7 +1245,7 @@ declare module '@mappedin/mappedin-js/geojson/src' {
1206
1245
  import type { GroupContainerState } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
1207
1246
  import type { GeometryGroupState } from '@mappedin/mappedin-js/geojson/src/entities/geometry-group';
1208
1247
  import type { Position } from '@mappedin/mappedin-js/geojson/src/types/geometry';
1209
- import type { InsetPadding, RendererCoreOptions, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload } from '@mappedin/mappedin-js/geojson/src/types';
1248
+ import type { InsetPadding, InsetPaddingOption, RendererCoreOptions, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload } from '@mappedin/mappedin-js/geojson/src/types';
1210
1249
  import type { GeometryState } from '@mappedin/mappedin-js/geojson/src/components/mesh';
1211
1250
  import type { ShapeState, CustomGeometryBuilder } from '@mappedin/mappedin-js/geojson/src/components/custom';
1212
1251
  import type { ModelState } from '@mappedin/mappedin-js/geojson/src/components/model';
@@ -1230,7 +1269,7 @@ declare module '@mappedin/mappedin-js/geojson/src' {
1230
1269
  export type { GLTFExportOptions } from '@mappedin/mappedin-js/geojson/src/systems/exporter';
1231
1270
  export type { AttributionControlOptions, AttributionPosition } from '@mappedin/mappedin-js/geojson/src/systems/html-controls/system';
1232
1271
  export { ATTRIBUTION_POSITIONS } from '@mappedin/mappedin-js/geojson/src/systems/html-controls/system';
1233
- export type { AddPathOptions, AddMarkerOptions, AddLabelOptions, AnimateToOptions, FocusOnOptions, MapViewState, MarkerState, PathState, GroupContainerState, GeometryGroupState, ShapeState, CustomGeometryBuilder, LabelState, GeometryState, ModelState, EasingCurve, Camera, InsetPadding, Position, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, CollisionRankingTier, LabelAppearance, RendererCore, };
1272
+ export type { AddPathOptions, AddMarkerOptions, AddLabelOptions, AnimateToOptions, FocusOnOptions, MapViewState, MarkerState, PathState, GroupContainerState, GeometryGroupState, ShapeState, CustomGeometryBuilder, LabelState, GeometryState, ModelState, EasingCurve, Camera, InsetPadding, InsetPaddingOption, Position, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, CollisionRankingTier, LabelAppearance, RendererCore, };
1234
1273
  export function createRenderer(container: HTMLElement, options?: RendererCoreOptions & {
1235
1274
  [key: string]: any;
1236
1275
  }): Promise<RendererCore>;
@@ -1268,9 +1307,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay' {
1268
1307
  declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1269
1308
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1270
1309
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1271
- import type { Label, Marker, Model, Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
1310
+ import type { Label, Marker, Model, Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
1272
1311
  import type { EasingCurve } from '@mappedin/core-sdk/src/camera';
1273
1312
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1313
+ import type { InsetPaddingOption } from '@mappedin/mappedin-js/geojson/src';
1274
1314
  export type DeepRequired<T> = Required<{
1275
1315
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1276
1316
  }>;
@@ -1466,6 +1506,36 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1466
1506
  */
1467
1507
  coordinate: Coordinate;
1468
1508
  };
1509
+ /**
1510
+ * Represents the state of a shape.
1511
+ */
1512
+ export type TShapeState = {
1513
+ /**
1514
+ * The type of the shape.
1515
+ */
1516
+ type: 'Shape';
1517
+ /**
1518
+ * Whether Shpae is visible
1519
+ */
1520
+ visible: boolean;
1521
+ /**
1522
+ * The altitude of the shape.
1523
+ */
1524
+ altitude: number;
1525
+ /**
1526
+ * The color of the shape.
1527
+ */
1528
+ color: string;
1529
+ /**
1530
+ * The height of the shape.
1531
+ * Height cannot be updated at this time
1532
+ */
1533
+ height: number;
1534
+ /**
1535
+ * The opacity of the shape.
1536
+ */
1537
+ opacity: number;
1538
+ };
1469
1539
  /**
1470
1540
  * Defines the state for geometry elements like {@link Space} when updated.
1471
1541
  */
@@ -1523,9 +1593,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1523
1593
  /**
1524
1594
  * The type for updating the state of map elements (colors, texts, etc.).
1525
1595
  */
1526
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
1596
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
1527
1597
  export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
1528
- export type TGetEntityState<T> = T extends WALLS ? TWallsState : T extends DOORS ? TDoorsState : T extends Marker ? TMarkerState : T extends Model ? TModelState : T extends Label ? TLabelState : T extends Image ? TImageState : T extends Space | MapObject ? TGeometryState : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
1598
+ export type TGetEntityState<T> = T extends WALLS ? TWallsState : T extends DOORS ? TDoorsState : T extends Marker ? TMarkerState : T extends Shape ? TShapeState : T extends Model ? TModelState : T extends Label ? TLabelState : T extends Image ? TImageState : T extends Space | MapObject ? TGeometryState : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
1529
1599
  export type TGetState<T> = TGetEntityState<T> | undefined;
1530
1600
  /**
1531
1601
  * Options for {@link Camera} animations on the map.
@@ -1586,7 +1656,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1586
1656
  */
1587
1657
  maxZoomLevel?: number;
1588
1658
  /**
1589
- * Camera bearing when focusing on a target, in degrees.
1659
+ * Camera bearing when focusing on a target in degrees clockwise from North. 0 degrees is North, 90 degrees is East, 180 degrees is South, and 270 degrees is West.
1590
1660
  */
1591
1661
  bearing?: number;
1592
1662
  /**
@@ -1596,12 +1666,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1596
1666
  /**
1597
1667
  * Screen offsets for the camera focus.
1598
1668
  */
1599
- screenOffsets?: {
1600
- top: number;
1601
- right: number;
1602
- bottom: number;
1603
- left: number;
1604
- };
1669
+ screenOffsets?: InsetPaddingOption;
1605
1670
  };
1606
1671
  export type TCameraFocusOnTargets = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node;
1607
1672
  /**
@@ -1624,7 +1689,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1624
1689
  */
1625
1690
  zoomLevel?: number;
1626
1691
  /**
1627
- * Bearing for the camera target in degrees.
1692
+ * Bearing for the camera target in degrees clockwise from North. 0 degrees is North, 90 degrees is East, 180 degrees is South, and 270 degrees is West.
1628
1693
  */
1629
1694
  bearing?: number;
1630
1695
  /**
@@ -1894,7 +1959,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1894
1959
  * | 'right' | Anchors the marker on the right side, convenient for when space is limited on the left.|
1895
1960
  *
1896
1961
  */
1897
- export type TMarkerAnchor = 'center' | 'top' | 'left' | 'bottom' | 'right';
1962
+ export type TMarkerAnchor = 'center' | 'top' | 'left' | 'bottom' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
1898
1963
  /**
1899
1964
  * Options for controlling the behavior of the {@link Directions}.
1900
1965
  */
@@ -2007,7 +2072,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
2007
2072
  */
2008
2073
  height: number;
2009
2074
  /**
2010
- * Rotation of the image in degrees.
2075
+ * Rotation of the image in degrees clockwise from North. 0 degrees is North, 90 degrees is East, 180 degrees is South, and 270 degrees is West.
2011
2076
  *
2012
2077
  * @default 0
2013
2078
  */
@@ -2039,7 +2104,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
2039
2104
  * Optional. Specifies the anchor point of the marker, determining its position relative to its coordinates.
2040
2105
  * For the possible values and their descriptions, see {@link TMarkerAnchor}
2041
2106
  */
2042
- anchor?: TMarkerAnchor;
2107
+ anchor?: TMarkerAnchor | TMarkerAnchor[];
2043
2108
  /**
2044
2109
  * Whether the {@link Marker} should be clickable
2045
2110
  * @default false
@@ -2182,11 +2247,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
2182
2247
  */
2183
2248
  heading?: GeolocationPosition['coords']['heading'] | 'device' | undefined;
2184
2249
  /**
2185
- * Floor level to override.
2250
+ * Floor or floorId to override.
2186
2251
  * Set to `'device'` to reset to the device's floor level.
2187
2252
  * Set to `undefined` to disable floor level and show the BlueDot on all floors.
2188
2253
  */
2189
- floor?: Floor | 'device' | undefined;
2254
+ floorOrFloorId?: Floor | string | 'device' | undefined;
2190
2255
  };
2191
2256
  export type LanguagePackHydrationItem = {
2192
2257
  language: Language;
@@ -2194,6 +2259,120 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
2194
2259
  };
2195
2260
  }
2196
2261
 
2262
+ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
2263
+ import type { RendererCore } from '@mappedin/core-sdk';
2264
+ import { PubSub } from '@packages/internal/common';
2265
+ import { Coordinate, type Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2266
+ import type { TBlueDotOptions, TBlueDotPositionUpdate } from '@mappedin/mappedin-js/mappedin-js/src/types';
2267
+ import type { GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
2268
+ export type TBlueDotEvents = {
2269
+ /**
2270
+ * Emitted when the Blue Dot's position is updated.
2271
+ */
2272
+ 'position-update': {
2273
+ floor: Floor | undefined;
2274
+ heading: GeolocationPosition['coords']['heading'] | undefined;
2275
+ accuracy: GeolocationPosition['coords']['accuracy'] | undefined;
2276
+ coordinate: Coordinate;
2277
+ };
2278
+ /**
2279
+ * Emitted when the Blue Dot's state changes.
2280
+ */
2281
+ 'state-change': {
2282
+ /**
2283
+ * The new state of the Blue Dot.
2284
+ */
2285
+ state: TBlueDotState;
2286
+ /**
2287
+ * The action that caused the state change.
2288
+ */
2289
+ action: TBlueDotAction;
2290
+ };
2291
+ /**
2292
+ * Emitted when the Blue Dot encounters an error.
2293
+ */
2294
+ error: GeolocationPositionError;
2295
+ /**
2296
+ * Emitted when the Blue Dot's following state changes.
2297
+ */
2298
+ 'follow-change': {
2299
+ following: boolean;
2300
+ };
2301
+ };
2302
+ export type TBlueDotState = 'hidden' | 'active' | 'inactive' | 'disabled';
2303
+ export type TBlueDotAction = 'timeout' | 'error' | 'position-update' | 'enable' | 'disable';
2304
+ export type TBlueDotPositionUpdateWithFloor = Omit<TBlueDotPositionUpdate, 'floorOrFloorId'> & {
2305
+ floor?: Floor | 'device' | undefined;
2306
+ };
2307
+ export class BlueDot extends PubSub<TBlueDotEvents> {
2308
+ #private;
2309
+ state: TBlueDotState;
2310
+ /**
2311
+ * The direction the user is facing in degrees from north.
2312
+ */
2313
+ get heading(): GeolocationPosition['coords']['heading'] | undefined;
2314
+ /**
2315
+ * The accuracy of the current position in metres.
2316
+ */
2317
+ get accuracy(): GeolocationPosition['coords']['accuracy'] | undefined;
2318
+ /**
2319
+ * The coordinate of the current position.
2320
+ */
2321
+ get coordinate(): Coordinate | undefined;
2322
+ /**
2323
+ * The floor the Blue Dot is currently on. If undefined, the Blue Dot will appear on every floor.
2324
+ */
2325
+ get floor(): Floor | undefined;
2326
+ /**
2327
+ * @internal
2328
+ */
2329
+ constructor(core: RendererCore, geoJSONApi: GeoJsonApi);
2330
+ /**
2331
+ * Enable the Blue Dot. It will be hidden until a position is received either from the browser or by calling {@link BlueDot.update}.
2332
+ * @param options - The options to setup the Blue Dot.
2333
+ */
2334
+ enable(options?: TBlueDotOptions): void;
2335
+ /**
2336
+ * Disable the Blue Dot. It will be hidden and no longer update.
2337
+ */
2338
+ disable(): void;
2339
+ /**
2340
+ * Enable or disable the devices's geolocation listener to automatically position the Blue Dot.
2341
+ * If enabled, the device will request permission to access the user's precise location.
2342
+ * @param watch - Whether to enable or disable the listener.
2343
+ */
2344
+ watchDevicePosition(watch: boolean): void;
2345
+ /**
2346
+ * Manually override some position properties of the Blue Dot.
2347
+ * Accepts a full GeolocationPosition object or a partial {@link TBlueDotPositionUpdate} object.
2348
+ * @example Manually set the accuracy and heading
2349
+ * ```ts
2350
+ * api.BlueDot.update({ accuracy: 10, heading: 90 });
2351
+ * ```
2352
+ * @example Reset accuracy and heading to device values
2353
+ * ```ts
2354
+ * api.BlueDot.update({ accuracy: 'device', heading: 'device' });
2355
+ * ```
2356
+ */
2357
+ update(position: GeolocationPositionExtended | TBlueDotPositionUpdate | undefined): void;
2358
+ }
2359
+ type TStateTransitions = {
2360
+ [Action in TBlueDotAction]?: TBlueDotState;
2361
+ };
2362
+ type TStateMachine = {
2363
+ [State in TBlueDotState]: {
2364
+ actions: TStateTransitions;
2365
+ };
2366
+ };
2367
+ export const stateMachine: TStateMachine;
2368
+ export type GeolocationPositionExtended = GeolocationPosition & {
2369
+ coords: GeolocationPosition['coords'] & {
2370
+ readonly floorLevel?: number;
2371
+ };
2372
+ };
2373
+ export {};
2374
+ }
2375
+
2197
2376
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects' {
2198
2377
  export { Label } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/label';
2199
2378
  export { Marker } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/marker';
@@ -2219,25 +2398,30 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation' {
2219
2398
  */
2220
2399
  createMarkers?: {
2221
2400
  /**
2222
- * Controls whether a marker is created for the departure point.
2401
+ * Controls whether a marker is created for the departure point and allows a custom marker to be created.
2223
2402
  * @default true
2224
2403
  */
2225
- departure?: boolean;
2404
+ departure?: boolean | ((instruction: TDirectionInstruction) => Marker);
2226
2405
  /**
2227
- * Controls whether a marker is created for the destination point.
2406
+ * Controls whether a marker is created for the destination point and allows a custom marker to be created.
2228
2407
  * @default true
2229
2408
  */
2230
- destination?: boolean;
2409
+ destination?: boolean | ((instruction: TDirectionInstruction) => Marker);
2231
2410
  /**
2232
- * Controls whether markers are created for connection points.
2411
+ * Controls whether markers are created for connection points and allows a custom marker to be created.
2233
2412
  * @default true
2234
2413
  */
2235
- connection?: boolean;
2414
+ connection?: boolean | ((instruction: TDirectionInstruction) => Marker);
2236
2415
  };
2237
2416
  /**
2238
2417
  * Options for the path.
2239
2418
  */
2240
2419
  pathOptions?: {
2420
+ /**
2421
+ * duration in milliseconds for the path to be drawn
2422
+ * @default
2423
+ */
2424
+ drawDuration: number;
2241
2425
  /**
2242
2426
  * The color of the path.
2243
2427
  * @default '#40A9FF'
@@ -2724,6 +2908,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/camera-tr
2724
2908
  }
2725
2909
  }
2726
2910
 
2911
+ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot' {
2912
+ export { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
2913
+ export type { TBlueDotEvents } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
2914
+ }
2915
+
2727
2916
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node' {
2728
2917
  import type { NodeCollection } from '@mappedin/mvf';
2729
2918
  import Coordinate from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/coordinate';
@@ -3892,8 +4081,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
3892
4081
  import type MapObject from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/object';
3893
4082
  import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack } from '@mappedin/mvf';
3894
4083
  import type { PartialExcept } from '@mappedin/mvf/dist/locale';
3895
- import { LocalePackUrls } from '@packages/internal/mvf-utils';
3896
- import { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
4084
+ import type { LocalePackUrls } from '@packages/internal/mvf-utils';
4085
+ import type { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
4086
+ import type { EnvControl } from '@packages/internal/mvf-utils/mvf-utils';
3897
4087
  /**
3898
4088
  * Places are the main objects that can be searched for.
3899
4089
  */
@@ -3915,6 +4105,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
3915
4105
  };
3916
4106
  };
3917
4107
  export type TMapDataInternalOptions = {
4108
+ env?: EnvControl;
3918
4109
  enterprise?: boolean;
3919
4110
  outdoorViewToken?: string;
3920
4111
  localePacksUrls?: LocalePackUrls;
@@ -3931,11 +4122,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
3931
4122
  import type { Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
3932
4123
  import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack } from '@mappedin/mvf';
3933
4124
  import { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
3934
- import type { Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/mappedin-js/geojson/src';
4125
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/mappedin-js/geojson/src';
3935
4126
  import { enableTestMode } from '@mappedin/mappedin-js/geojson/src';
3936
4127
  export type { PubSub } from '@packages/internal/common/pubsub';
3937
4128
  import { MappedinMapLibreOverlay } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
3938
4129
  import type { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
4130
+ import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
4131
+ import type { TBlueDotEvents, TBlueDotAction, TBlueDotState } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
3939
4132
  export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
3940
4133
  /**
3941
4134
  * Represents all the available antialiasing options.
@@ -4061,6 +4254,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
4061
4254
  token?: string;
4062
4255
  /**
4063
4256
  * A url to a style specification conforming to the [Maplibre Style Spec](https://maplibre.org/maplibre-style-spec/).
4257
+ * Use the {@link Environment | `environment`} setting to switch environments.
4064
4258
  */
4065
4259
  style?: string;
4066
4260
  /**
@@ -4248,7 +4442,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
4248
4442
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
4249
4443
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
4250
4444
  export { parseMVF, unzipMVF, enableTestMode };
4251
- export type { MapView, MapData, MappedinMapLibreOverlay, TEvents, TEventPayload, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, };
4445
+ export type { MapView, MapData, MappedinMapLibreOverlay, TBlueDotEvents, TBlueDotAction, TBlueDotState, TEvents, TEventPayload, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, };
4252
4446
  export type * from 'geojson';
4253
4447
  export type { TUpdateState, TLabelState, TGeometryState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/mappedin-js/mappedin-js/src/types';
4254
4448
  export { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
@@ -4261,89 +4455,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
4261
4455
  export type { Analytics, TAnalyticsUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
4262
4456
  }
4263
4457
 
4264
- declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
4265
- import type { RendererCore } from '@mappedin/core-sdk';
4266
- import { PubSub } from '@packages/internal/common';
4267
- import type { GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
4268
- import type { TBlueDotOptions, TBlueDotPositionUpdate } from '@mappedin/mappedin-js/mappedin-js/src/types';
4269
- import { Coordinate, type Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
4270
- export type TBlueDotEvents = {
4271
- 'floor-change': {
4272
- reason: 'blue-dot-floor-change';
4273
- floorId: string;
4274
- };
4275
- };
4276
- export type TBlueDotState = 'hidden' | 'active' | 'inactive' | 'disabled';
4277
- export type TBlueDotAction = 'timeout' | 'error' | 'position-received' | 'enable' | 'disable';
4278
- export class BlueDot extends PubSub<TBlueDotEvents> {
4279
- #private;
4280
- state: TBlueDotState;
4281
- /**
4282
- * The direction the user is facing in degrees from north.
4283
- */
4284
- get heading(): GeolocationPosition['coords']['heading'] | undefined;
4285
- /**
4286
- * The accuracy of the current position in metres.
4287
- */
4288
- get accuracy(): GeolocationPosition['coords']['accuracy'] | undefined;
4289
- /**
4290
- * The coordinate of the current position.
4291
- */
4292
- get coordinate(): Coordinate | undefined;
4293
- /**
4294
- * The floor the Blue Dot is currently on. If undefined, the Blue Dot will appear on every floor.
4295
- */
4296
- get floor(): Floor | undefined;
4297
- /**
4298
- * @internal
4299
- */
4300
- constructor(core: RendererCore, geoJSONApi: GeoJsonApi);
4301
- /**
4302
- * Enable the Blue Dot. It will be hidden until a position is received either from the browser or by calling {@link BlueDot.update}.
4303
- * @param options - The options to setup the Blue Dot.
4304
- */
4305
- enable(options?: TBlueDotOptions): void;
4306
- /**
4307
- * Disable the Blue Dot. It will be hidden and no longer update.
4308
- */
4309
- disable(): void;
4310
- /**
4311
- * Enable or disable the devices's geolocation listener to automatically position the Blue Dot.
4312
- * If enabled, the device will request permission to access the user's precise location.
4313
- * @param watch - Whether to enable or disable the listener.
4314
- */
4315
- watchDevicePosition(watch: boolean): void;
4316
- /**
4317
- * Manually override some position properties of the Blue Dot.
4318
- * Accepts a full GeolocationPosition object or a partial {@link TBlueDotPositionUpdate} object.
4319
- * @example Manually set the accuracy and heading
4320
- * ```ts
4321
- * api.BlueDot.update({ accuracy: 10, heading: 90 });
4322
- * ```
4323
- * @example Reset accuracy and heading to device values
4324
- * ```ts
4325
- * api.BlueDot.update({ accuracy: 'device', heading: 'device' });
4326
- * ```
4327
- */
4328
- update(position: GeolocationPositionExtended | TBlueDotPositionUpdate | undefined): void;
4329
- }
4330
- type TStateTransitions = {
4331
- [Action in TBlueDotAction]?: TBlueDotState;
4332
- };
4333
- type TStateMachine = {
4334
- [State in TBlueDotState]: {
4335
- actions: TStateTransitions;
4336
- };
4337
- };
4338
- export const stateMachine: TStateMachine;
4339
- export type GeolocationPositionExtended = GeolocationPosition & {
4340
- coords: GeolocationPosition['coords'] & {
4341
- readonly floorLevel?: number;
4342
- };
4343
- };
4344
- export {};
4345
- }
4346
-
4347
4458
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes' {
4348
4459
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
4349
4460
  import { Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
@@ -4397,6 +4508,26 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes' {
4397
4508
  export {};
4398
4509
  }
4399
4510
 
4511
+ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/inspector/inspector' {
4512
+ import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
4513
+ import type { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
4514
+ import type { GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
4515
+ export class Inspector {
4516
+ storeStateToLocalStorageEnabled: boolean;
4517
+ constructor(mv: MapView, api: GeoJsonApi);
4518
+ setMapData(data: MapData): void;
4519
+ enable(options?: InspectorOption): Promise<void>;
4520
+ get enabled(): boolean;
4521
+ }
4522
+ export type InspectorState = {
4523
+ camera: {
4524
+ focusOnClick: boolean;
4525
+ padding: [number, number, number, number];
4526
+ };
4527
+ };
4528
+ export type InspectorOption = Partial<InspectorState>;
4529
+ }
4530
+
4400
4531
  declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
4401
4532
  import './marker.scss';
4402
4533
  import { Vector2 } from 'three';
@@ -4454,22 +4585,23 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
4454
4585
  rank: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["low", "medium", "high", "always-visible"]>, z.ZodNumber]>>;
4455
4586
  interactive: z.ZodOptional<z.ZodBoolean>;
4456
4587
  id: z.ZodOptional<z.ZodString>;
4457
- anchor: z.ZodOptional<z.ZodEnum<["top", "bottom", "left", "right", "center"]>>;
4588
+ anchor: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["top", "bottom", "left", "right", "center", "top-left", "top-right", "bottom-left", "bottom-right"]>, z.ZodArray<z.ZodEnum<["top", "bottom", "left", "right", "center", "top-left", "top-right", "bottom-left", "bottom-right"]>, "many">]>>;
4458
4589
  dynamicResize: z.ZodOptional<z.ZodBoolean>;
4459
4590
  }, "strip", z.ZodTypeAny, {
4460
4591
  interactive?: boolean | undefined;
4461
4592
  id?: string | undefined;
4462
- anchor?: "center" | "left" | "right" | "bottom" | "top" | undefined;
4593
+ anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
4463
4594
  rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
4464
4595
  dynamicResize?: boolean | undefined;
4465
4596
  }, {
4466
4597
  interactive?: boolean | undefined;
4467
4598
  id?: string | undefined;
4468
- anchor?: "center" | "left" | "right" | "bottom" | "top" | undefined;
4599
+ anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
4469
4600
  rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
4470
4601
  dynamicResize?: boolean | undefined;
4471
4602
  }>;
4472
4603
  export function validateMarker(coordinate: Position, contentHTML: string, options: AddMarkerOptions): void;
4604
+ export type MarkerAnchor = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
4473
4605
  /**
4474
4606
  * Options for creating a new Marker
4475
4607
  */
@@ -4491,9 +4623,9 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
4491
4623
  */
4492
4624
  id?: string;
4493
4625
  /**
4494
- * Anchor point for the marker. This will determine the position of the marker relative to the position.
4626
+ * Anchor point for the marker. This will determine the position of the marker relative to the position. A list will place the marker in the first empty placement.
4495
4627
  */
4496
- anchor?: 'top' | 'bottom' | 'left' | 'right' | 'center';
4628
+ anchor?: MarkerAnchor | MarkerAnchor[];
4497
4629
  /**
4498
4630
  * Dynamic resize of the marker. If set to true, the marker will resize based on the content.
4499
4631
  */
@@ -4505,7 +4637,8 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
4505
4637
  static testId: number;
4506
4638
  rank: number;
4507
4639
  initialRank: number;
4508
- options: AddMarkerOptions;
4640
+ activeAnchor: MarkerAnchor;
4641
+ options: Required<AddMarkerOptions>;
4509
4642
  projection: Vector2;
4510
4643
  enabled: boolean;
4511
4644
  activeStrategyIndex: number;
@@ -4531,9 +4664,9 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
4531
4664
  visible: boolean;
4532
4665
  animation: Animation | null;
4533
4666
  currentStrategyIndex: number;
4534
- onStrategySelected: (strategyIndex: any, force?: boolean) => void;
4667
+ onStrategySelected: (strategyIndex: number, force?: boolean) => void;
4535
4668
  get strategies(): {
4536
- name: string;
4669
+ name: MarkerAnchor;
4537
4670
  getBoundingBox: () => number[];
4538
4671
  }[];
4539
4672
  toJSON(): {
@@ -4559,6 +4692,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/path' {
4559
4692
  import type { PathMaterial, PatMeshContainer } from '@mappedin/mappedin-js/geojson/src/entities/geometry3d';
4560
4693
  import type { FeatureCollection, Point } from 'geojson';
4561
4694
  import type { GroupContainerState } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
4695
+ import { z } from 'zod';
4562
4696
  export type PathProperties = {
4563
4697
  /**
4564
4698
  * The parentId of the point. The point will be anchored to the altitude of this parent group container.
@@ -4658,6 +4792,70 @@ declare module '@mappedin/mappedin-js/geojson/src/components/path' {
4658
4792
  */
4659
4793
  animateArrowsOnPath?: boolean;
4660
4794
  };
4795
+ export const addPathOptionsSchema: z.ZodObject<{
4796
+ interactive: z.ZodOptional<z.ZodBoolean>;
4797
+ id: z.ZodOptional<z.ZodString>;
4798
+ nearRadius: z.ZodOptional<z.ZodNumber>;
4799
+ farRadius: z.ZodOptional<z.ZodNumber>;
4800
+ accentColor: z.ZodOptional<z.ZodString>;
4801
+ displayArrowsOnPath: z.ZodOptional<z.ZodBoolean>;
4802
+ animateArrowsOnPath: z.ZodOptional<z.ZodBoolean>;
4803
+ }, "strip", z.ZodTypeAny, {
4804
+ interactive?: boolean | undefined;
4805
+ id?: string | undefined;
4806
+ accentColor?: string | undefined;
4807
+ displayArrowsOnPath?: boolean | undefined;
4808
+ animateArrowsOnPath?: boolean | undefined;
4809
+ nearRadius?: number | undefined;
4810
+ farRadius?: number | undefined;
4811
+ }, {
4812
+ interactive?: boolean | undefined;
4813
+ id?: string | undefined;
4814
+ accentColor?: string | undefined;
4815
+ displayArrowsOnPath?: boolean | undefined;
4816
+ animateArrowsOnPath?: boolean | undefined;
4817
+ nearRadius?: number | undefined;
4818
+ farRadius?: number | undefined;
4819
+ }>;
4820
+ export const featureSchema: z.ZodObject<{
4821
+ type: z.ZodEnum<["Feature"]>;
4822
+ geometry: z.ZodObject<{
4823
+ type: z.ZodEnum<["Point"]>;
4824
+ coordinates: z.ZodArray<z.ZodNumber, "many">;
4825
+ }, "strip", z.ZodTypeAny, {
4826
+ type: "Point";
4827
+ coordinates: number[];
4828
+ }, {
4829
+ type: "Point";
4830
+ coordinates: number[];
4831
+ }>;
4832
+ properties: z.ZodObject<{
4833
+ parentId: z.ZodOptional<z.ZodAny>;
4834
+ }, "strip", z.ZodTypeAny, {
4835
+ parentId?: any;
4836
+ }, {
4837
+ parentId?: any;
4838
+ }>;
4839
+ }, "strip", z.ZodTypeAny, {
4840
+ type: "Feature";
4841
+ geometry: {
4842
+ type: "Point";
4843
+ coordinates: number[];
4844
+ };
4845
+ properties: {
4846
+ parentId?: any;
4847
+ };
4848
+ }, {
4849
+ type: "Feature";
4850
+ geometry: {
4851
+ type: "Point";
4852
+ coordinates: number[];
4853
+ };
4854
+ properties: {
4855
+ parentId?: any;
4856
+ };
4857
+ }>;
4858
+ export function validatePath(geometry: FeatureCollection<Point, PathProperties>, options: AddPathOptions): void;
4661
4859
  export class PathComponent {
4662
4860
  #private;
4663
4861
  readonly type = "path";
@@ -5314,6 +5512,10 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry-group' {
5314
5512
  * The top texture URL of the geometry
5315
5513
  */
5316
5514
  topTexture?: string;
5515
+ /**
5516
+ * altitude of the geometry group
5517
+ */
5518
+ altitude?: number;
5317
5519
  };
5318
5520
  export type ChildUpdatable<T> = T extends LineStyle ? Partial<Pick<LineStyle, 'color' | 'opacity' | 'visible'>> : Partial<Pick<PaintStyle, 'color' | 'opacity' | 'visible'>>;
5319
5521
  export class GeometryGroupObject3D extends Object3D {
@@ -5339,6 +5541,8 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry-group' {
5339
5541
  * We use this logic a lot for getting the material of the group. since group does not have material and batched mesh does
5340
5542
  */
5341
5543
  getfirstChildEntityId(): string | number | undefined;
5544
+ setAltitude(altitude: number): void;
5545
+ get altitude(): number;
5342
5546
  }
5343
5547
  }
5344
5548
 
@@ -5488,6 +5692,22 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
5488
5692
  left: number;
5489
5693
  bottom: number;
5490
5694
  right: number;
5695
+ /**
5696
+ * The type of padding to use. If 'portion', the padding will be a portion of the canvas size. If 'pixel', the padding will be in pixels.
5697
+ * @defaultValue 'pixel'
5698
+ */
5699
+ type: 'pixel' | 'portion';
5700
+ };
5701
+ /**
5702
+ * An option for setting the inset padding of the camera.
5703
+ * @interface
5704
+ */
5705
+ export type InsetPaddingOption = Omit<InsetPadding, 'type'> & {
5706
+ /**
5707
+ * The type of padding to use. If 'portion', the padding will be a portion of the canvas size. If 'pixel', the padding will be in pixels.
5708
+ * @defaultValue 'pixel'
5709
+ */
5710
+ type?: InsetPadding['type'];
5491
5711
  };
5492
5712
  export * from '@mappedin/mappedin-js/geojson/src/types/constants';
5493
5713
  /**
@@ -5772,19 +5992,39 @@ declare module '@mappedin/mappedin-js/geojson/src/components/custom' {
5772
5992
  import { Geometry3DObject3D } from '@mappedin/mappedin-js/geojson/src/entities/geometry3d';
5773
5993
  import type { GroupContainerState } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
5774
5994
  /**
5775
- * State representing a Custom Geometry
5995
+ * Represents the state of a custom shape.
5776
5996
  */
5777
5997
  export type ShapeState = {
5998
+ /**
5999
+ * The unique identifier of the shape.
6000
+ */
5778
6001
  readonly id: string;
6002
+ /**
6003
+ * The type of the shape, which is always 'custom-geometry'.
6004
+ */
5779
6005
  readonly type: 'custom-geometry';
5780
6006
  /**
5781
- * The position of the geometry in [lon, lat]
6007
+ * The position of the geometry in [longitude, latitude].
5782
6008
  */
5783
6009
  readonly position: Position;
6010
+ /**
6011
+ * Whether the geometry is visible.
6012
+ */
5784
6013
  visible?: boolean;
6014
+ /**
6015
+ * The altitude of the geometry, in meters.
6016
+ */
5785
6017
  altitude?: number;
5786
6018
  /**
5787
- * The parent container of the geometry
6019
+ * The color of the shape.
6020
+ */
6021
+ color: string;
6022
+ /**
6023
+ * The opacity of the shape.
6024
+ */
6025
+ opacity: number;
6026
+ /**
6027
+ * The parent container of the geometry.
5788
6028
  */
5789
6029
  readonly parent: EntityId<GroupContainerState> | string | number;
5790
6030
  };
@@ -6222,7 +6462,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
6222
6462
  /**
6223
6463
  * Add a Path along a set of GeoJSON coordinates that can be animated.
6224
6464
  */
6225
- addPath(geometry: FeatureCollection<Point, PathProperties>, options?: AddPathOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<PathState>;
6465
+ addPath(geometry: FeatureCollection<Point, PathProperties>, options?: AddPathOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<PathState> | undefined;
6226
6466
  /**
6227
6467
  * Updates the watermark on the map.
6228
6468
  *
@@ -6413,13 +6653,13 @@ declare module '@mappedin/mappedin-js/geojson/src/camera' {
6413
6653
  import type { RendererCore } from '@mappedin/mappedin-js/geojson/src';
6414
6654
  import type { Position as GeoJSONPosition } from 'geojson';
6415
6655
  import { type InsetPadding, type Position } from '@mappedin/mappedin-js/geojson/src/types';
6416
- import type { RendererState, Systems } from '@mappedin/mappedin-js/geojson/src/renderer';
6656
+ import type { InsetPaddingOption, RendererState, Systems } from '@mappedin/mappedin-js/geojson/src/renderer';
6417
6657
  export type EasingCurve = 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear';
6418
6658
  export type FocusOnOptions = {
6419
6659
  bearing?: number;
6420
6660
  pitch?: number;
6421
6661
  duration?: number;
6422
- padding?: InsetPadding;
6662
+ padding?: InsetPaddingOption;
6423
6663
  minZoomLevel?: number;
6424
6664
  maxZoomLevel?: number;
6425
6665
  easing?: EasingCurve;
@@ -6510,7 +6750,7 @@ declare module '@mappedin/mappedin-js/geojson/src/camera' {
6510
6750
  */
6511
6751
  setMaxPitch(pitch: number): void;
6512
6752
  /**
6513
- * The camera's current bearing in degrees from north.
6753
+ * The camera's current clockwise rotation in degrees from north.
6514
6754
  */
6515
6755
  get bearing(): number;
6516
6756
  /**
@@ -6539,10 +6779,9 @@ declare module '@mappedin/mappedin-js/geojson/src/camera' {
6539
6779
  */
6540
6780
  get insetsPadding(): InsetPadding;
6541
6781
  /**
6542
- *
6543
6782
  * @param padding The padding around the edges of the map when focusing on a set of coordinates (in screen pixels).
6544
6783
  */
6545
- setInsetPadding(padding?: InsetPadding): void;
6784
+ setInsetPadding(padding: InsetPadding): void;
6546
6785
  animateTo(options: AnimateToOptions): Promise<void>;
6547
6786
  /**
6548
6787
  * Focuses the camera on a set of coordinates, with optional animation
@@ -6894,6 +7133,83 @@ declare module '@mappedin/mappedin-js/geojson/src/maplibre-overlay' {
6894
7133
  }
6895
7134
  }
6896
7135
 
7136
+ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
7137
+ import type { Position, RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
7138
+ import { type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
7139
+ import { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
7140
+ import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
7141
+ import { Coordinate, MapObject, Space, Floor, type MapDataInternal, Door } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7142
+ import type { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
7143
+ import { Label, Marker, type Model, type Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
7144
+ import { Navigation } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
7145
+ import type { TGetState, TUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/types';
7146
+ import { Camera } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera';
7147
+ import { Exporter } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/exporter';
7148
+ import { Labels } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels';
7149
+ import { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
7150
+ import { Markers } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers';
7151
+ import { Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images';
7152
+ import { Models } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models';
7153
+ import { Paths } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths';
7154
+ import { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
7155
+ import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
7156
+ import { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
7157
+ import { Style } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style';
7158
+ import Outdoor from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor';
7159
+ import type { TShowStackOptions } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7160
+ export class GeoJsonApi {
7161
+ core: RendererCore;
7162
+ outdoors: GeojsonApiMapObject;
7163
+ mapObjects: GeojsonApiMapObject[];
7164
+ id: string;
7165
+ mapDataExternal: {
7166
+ [key in string]: MapData;
7167
+ };
7168
+ currentMap?: GeojsonApiMapObject;
7169
+ hiddenOutdoorGeometries: [Position, layer: string[]][];
7170
+ mapView: MapView;
7171
+ Camera: Camera;
7172
+ Labels: Labels;
7173
+ Markers: Markers;
7174
+ Models: Models;
7175
+ Paths: Paths;
7176
+ Exporter: Exporter;
7177
+ Navigation: Navigation;
7178
+ Outdoor: Outdoor;
7179
+ BlueDot: BlueDot;
7180
+ Shapes: Shapes;
7181
+ Style: Style;
7182
+ Images: Images;
7183
+ constructor(rendererCore: RendererCore, mapView: MapView);
7184
+ updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
7185
+ update: () => void;
7186
+ getMapDataInternal(): MapDataInternal | undefined;
7187
+ getMapData(): MapData | undefined;
7188
+ expand(opts?: {
7189
+ excludeFloors: Floor[];
7190
+ }): Promise<void> | undefined;
7191
+ collapse(): Promise<void> | undefined;
7192
+ showStack(opts?: TShowStackOptions): Promise<void> | undefined;
7193
+ addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
7194
+ setFloor(floor: Floor | string, reason?: TFloorChangeReason): Promise<void> | undefined;
7195
+ updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7196
+ get currentFloor(): Floor;
7197
+ getState<T extends Space | MapObject | Label | Marker | Shape | Model | Image | string>(target: T): TGetState<T> | undefined;
7198
+ setHoverColor(c: string): void;
7199
+ getHoverColor(): string | undefined;
7200
+ createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
7201
+ createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
7202
+ isInView(target: Space | MapObject | Label | Marker | string): boolean;
7203
+ auto(): void;
7204
+ /**
7205
+ * @internal
7206
+ */
7207
+ get __core(): RendererCore;
7208
+ clear(): void;
7209
+ destroy(): void;
7210
+ }
7211
+ }
7212
+
6897
7213
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/label' {
6898
7214
  /**
6899
7215
  * Class representing a label on the {@link MapView}.
@@ -7180,88 +7496,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7180
7496
  }
7181
7497
  }
7182
7498
 
7183
- declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
7184
- import type { Position, RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
7185
- import { type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
7186
- import { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
7187
- import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
7188
- import { Coordinate, MapObject, Space, Floor, type MapDataInternal, Door } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7189
- import type { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
7190
- import { Label, Marker, type Model, type Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
7191
- import { Navigation } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
7192
- import type { TGetState, TUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/types';
7193
- import { Camera } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera';
7194
- import { Exporter } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/exporter';
7195
- import { Labels } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels';
7196
- import { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
7197
- import { Markers } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers';
7198
- import { Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images';
7199
- import { Models } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models';
7200
- import { Paths } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths';
7201
- import { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
7202
- import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
7203
- import { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
7204
- import { Style } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style';
7205
- import Outdoor from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor';
7206
- import type { TShowStackOptions } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7207
- export class GeoJsonApi {
7208
- core: RendererCore;
7209
- outdoors: GeojsonApiMapObject;
7210
- mapObjects: GeojsonApiMapObject[];
7211
- id: string;
7212
- mapDataExternal: {
7213
- [key in string]: MapData;
7214
- };
7215
- currentMap?: GeojsonApiMapObject;
7216
- hiddenOutdoorGeometries: [Position, layer: string[]][];
7217
- mapView: MapView;
7218
- Camera: Camera;
7219
- Labels: Labels;
7220
- Markers: Markers;
7221
- Models: Models;
7222
- Paths: Paths;
7223
- Exporter: Exporter;
7224
- Navigation: Navigation;
7225
- Outdoor: Outdoor;
7226
- BlueDot: BlueDot;
7227
- Shapes: Shapes;
7228
- Style: Style;
7229
- Images: Images;
7230
- constructor(rendererCore: RendererCore, mapView: MapView);
7231
- updateState<T extends Space | MapObject | Label | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
7232
- update: () => void;
7233
- getMapDataInternal(): MapDataInternal | undefined;
7234
- getMapData(): MapData | undefined;
7235
- expand(opts?: {
7236
- excludeFloors: Floor[];
7237
- }): Promise<void> | undefined;
7238
- collapse(): Promise<void> | undefined;
7239
- showStack(opts?: TShowStackOptions): Promise<void> | undefined;
7240
- addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
7241
- setFloor(floor: Floor | string, reason?: TFloorChangeReason): Promise<void> | undefined;
7242
- updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7243
- get currentFloor(): Floor;
7244
- getState<T extends Space | MapObject | Label | Marker | Model | Image | string>(target: T): TGetState<T> | undefined;
7245
- setHoverColor(c: string): void;
7246
- getHoverColor(): string | undefined;
7247
- createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
7248
- createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
7249
- isInView(target: Space | MapObject | Label | Marker | string): boolean;
7250
- auto(): void;
7251
- /**
7252
- * @internal
7253
- */
7254
- get __core(): RendererCore;
7255
- clear(): void;
7256
- destroy(): void;
7257
- }
7258
- }
7259
-
7260
- declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot' {
7261
- export { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
7262
- export type { TBlueDotEvents } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
7263
- }
7264
-
7265
7499
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7266
7500
  import type { TCameraAnimationOptions, TCameraFocusOnTarget, TCameraTarget, TFocusOnOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
7267
7501
  import type { InsetPadding, RendererCore } from '@mappedin/core-sdk';
@@ -7342,7 +7576,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
7342
7576
  */
7343
7577
  setMaxPitch: (maxPitch: number) => void;
7344
7578
  /**
7345
- * The current bearing of the camera in degrees.
7579
+ * The current bearing of the camera in degrees clockwise from North. 0 degrees is North, 90 degrees is East, 180 degrees is South, and 270 degrees is West.
7346
7580
  */
7347
7581
  get bearing(): number;
7348
7582
  /**
@@ -7783,6 +8017,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/search/internal' {
7783
8017
  import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
7784
8018
  import { z } from 'zod';
7785
8019
  export class InternalSearch {
8020
+ #private;
7786
8021
  constructor(mapData: MapData);
7787
8022
  /**
7788
8023
  * Populates the search indexes with the map data.
@@ -8275,7 +8510,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/analytics/customer' {
8275
8510
  /** Flag to enable sending of events. */
8276
8511
  sendEvents: boolean;
8277
8512
  } & AnalyticsAuth;
8278
- type AnalyticsOptions = Partial<Omit<AnalyticState, 'version' | 'analyticsBaseUrl' | 'geolocationMode' | 'deviceId' | 'userPosition'>>;
8513
+ type AnalyticsOptions = Partial<Omit<AnalyticState, 'version' | 'analyticsBaseUrl' | 'geolocationMode' | 'userPosition'>>;
8279
8514
  export type AnalyticsUpdateOptions = Omit<AnalyticsOptions, keyof AnalyticsAuth> & ((Required<Pick<AnalyticsAuth, 'key' | 'secret'>> & Partial<Pick<AnalyticsAuth, 'accessToken'>>) | (Required<Pick<AnalyticsAuth, 'accessToken'>> & Partial<Pick<AnalyticsAuth, 'key' | 'secret'>>));
8280
8515
  /**
8281
8516
  * Options for updating the current state of analytics.
@@ -9533,7 +9768,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
9533
9768
  import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
9534
9769
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/mappedin-js/mappedin-js/src';
9535
9770
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/mappedin-js/mappedin-js/src/types';
9536
- import type { Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
9771
+ import type { Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
9537
9772
  import type { GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
9538
9773
  import type TWEEN from '@tweenjs/tween.js';
9539
9774
  export function convertCoordinateToPosition(coord: Coordinate): Position;
@@ -9562,7 +9797,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
9562
9797
  };
9563
9798
  export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Point | LineString | Polygon, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
9564
9799
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
9565
- export const getTargetID: <T extends Space | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
9800
+ export const getTargetID: <T extends Space | Shape | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
9566
9801
  export function tweenToPromise(tween: TWEEN.Tween): Promise<void>;
9567
9802
  }
9568
9803
 
@@ -9767,7 +10002,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/camera/system' {
9767
10002
  import { PubSub } from '@mappedin/mappedin-js/packages/common/pubsub';
9768
10003
  import * as CAMERA_CONSTANTS from '@mappedin/mappedin-js/geojson/src/systems/camera/constants';
9769
10004
  import type { AnimateCameraTarget, CameraControlsOptions, CameraFocusOnOptions } from '@mappedin/mappedin-js/geojson/src/systems/camera/types';
9770
- import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
10005
+ import type { InsetPadding, RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
9771
10006
  type CameraEventName = (typeof CAMERA_CONSTANTS.EVENTS)[number];
9772
10007
  type SpecificCameraEvents = {
9773
10008
  'multi-start': {
@@ -10115,7 +10350,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/camera/system' {
10115
10350
  */
10116
10351
  getZoomScaledMax: () => number;
10117
10352
  /**
10118
- * Sets the rotation to a specific orientation, in radians. Mostly useful to orient the map a certain way for a physical directory.
10353
+ * Sets the rotation to a specific orientation, clockwise in radians. Mostly useful to orient the map a certain way for a physical directory.
10119
10354
  *
10120
10355
  * @param radians {Number} Absolute rotation to set the camera to, in radians. 0 in the starting point.
10121
10356
  * @param silent {Boolean} Whether to avoid emitting events
@@ -10142,12 +10377,6 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/camera/system' {
10142
10377
  * Current camera zoom in mercator zoom level units.
10143
10378
  */
10144
10379
  getZoomLevel: () => number;
10145
- /**
10146
- * Rotates the camera a set number of radians relative to the current rotation. Useful for an idle rotation animation.
10147
- *
10148
- * @param radians {Number} Number of radians to rotate the camera.
10149
- */
10150
- rotate: (radians: number) => void;
10151
10380
  /**
10152
10381
  * Sets the tilt to a specific level, in radians. 0 is top down. Bounded by minTilt and maxTilt.
10153
10382
  *
@@ -10202,18 +10431,27 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/camera/system' {
10202
10431
  * @param zoomLevel{number} The mercator zoom level
10203
10432
  */
10204
10433
  convertZoomLevelToAltitude: (zoomLevel: number) => number;
10205
- getCameraFrameForPoints: (pointCloud: any, horizontalFovFactor: any, verticalFovFactor: any, padding: any, { canvasWidth, canvasHeight }: {
10206
- canvasWidth: any;
10207
- canvasHeight: any;
10208
- }, minZoom?: number, maxZoom?: number) => {
10209
- position: Vector3;
10210
- zoom: number;
10211
- };
10434
+ static CAMERA_FRAME_PADDING_SIDES: readonly ["top", "bottom", "left", "right"];
10212
10435
  debugContainer: Object3D<import("three").Object3DEventMap>;
10213
- focusOn(pointCloud: Vector3[], { insetsPadding }: any, options?: CameraFocusOnOptions): void;
10436
+ focusOn(pointCloud: Vector3[], options: CameraFocusOnOptions & {
10437
+ padding: InsetPadding;
10438
+ }): void;
10214
10439
  resize(canvasWidth: number, canvasHeight: number): void;
10215
10440
  }
10216
10441
  export { CameraSystem };
10442
+ export function getCameraFrameForPoints(pointCloud: Vector3[], { canvasWidth, orbit, paddingOption, canvasHeight, minZoom, maxZoom, camera, position, }: {
10443
+ paddingOption: InsetPadding;
10444
+ canvasWidth: number;
10445
+ canvasHeight: number;
10446
+ minZoom: number;
10447
+ maxZoom: number;
10448
+ orbit: Object3D;
10449
+ camera: PerspectiveCamera;
10450
+ position: Vector3;
10451
+ }): {
10452
+ position: Vector3;
10453
+ zoom: number;
10454
+ };
10217
10455
  }
10218
10456
 
10219
10457
  declare module '@mappedin/mappedin-js/geojson/src/systems/camera/types' {