@mappedin/react-sdk 6.0.1-beta.37 → 6.0.1-beta.38

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.
@@ -65,7 +65,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
65
65
  import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
66
66
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
67
67
  export type { Text3D as Text3DApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
68
- import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState } from '@mappedin/react-sdk/geojson/src';
68
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState, WatermarkUpdateOptions } from '@mappedin/react-sdk/geojson/src';
69
69
  import { enableTestMode, preloadFont } from '@mappedin/react-sdk/geojson/src';
70
70
  export type { PubSub } from '@packages/internal/common/pubsub';
71
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
@@ -76,6 +76,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
76
76
  import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
77
77
  import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
78
78
  export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
79
+ /**
80
+ * @internal
81
+ * @hidden
82
+ * Must be called before {@link show3dMap}
83
+ */
84
+ export function __setWatermarkOnClickFn(fn: () => void): void;
79
85
  /**
80
86
  * Represents all the available antialiasing options.
81
87
  */
@@ -97,7 +103,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
97
103
  * @interface
98
104
  * Options for the watermark.
99
105
  */
100
- export type TWatermarkOptions = Omit<WatermarkOptions, 'visible'>;
106
+ export type TWatermarkOptions = WatermarkUpdateOptions;
101
107
  /**
102
108
  * Options for showing a 3D map.
103
109
  *
@@ -282,6 +288,23 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
282
288
  * @internal
283
289
  */
284
290
  imagePlacementOptions?: TImagePlacementOptions;
291
+ /**
292
+ * Enable or disable the flip of images to face the camera.
293
+ * @default true
294
+ */
295
+ flipImagesToFaceCamera?: boolean;
296
+ /**
297
+ * Automatically inject necessary styles into the document head. If `false`, the `index.css` file needs to be manually imported.
298
+ *
299
+ * ```ts
300
+ * import '@mappedin/mappedin-js/lib/index.css';
301
+ * ...
302
+ * await show3dMap(...);
303
+ * ```
304
+ *
305
+ * @default true
306
+ */
307
+ injectStyles?: boolean;
285
308
  /**
286
309
  * @hidden
287
310
  * @internal
@@ -385,7 +408,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
385
408
  export type * from 'geojson';
386
409
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, } from '@mappedin/react-sdk/mappedin-js/src/types';
387
410
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
388
- export type { Label, Marker, Path, Shape, CameraTransform, Model, Image, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
411
+ export type { Label, Marker, Path, PathSegment, Shape, CameraTransform, Model, Image, Text3D, } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
389
412
  export type { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
390
413
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
391
414
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
@@ -774,6 +797,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
774
797
  readonly analyticsBaseUri: string;
775
798
  readonly tileServerUri: string;
776
799
  };
800
+ /**
801
+ * Get an access token for use with Mappedin's API.
802
+ *
803
+ * @returns {string} The current access token
804
+ */
805
+ getAccessToken(): Promise<string | undefined>;
806
+ /**
807
+ * Get a SAS token for fetching images on non-public maps.
808
+ *
809
+ * @returns {string} The SAS token
810
+ */
811
+ getSasToken(): Promise<string | undefined>;
777
812
  /**
778
813
  * The name of the map.
779
814
  *
@@ -963,7 +998,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
963
998
  * @param options Optional parameters for getting directions.
964
999
  * @returns Directions from the start to the destination point.
965
1000
  * @example
966
- * const directions = await map.getDirections(space1, space2);
1001
+ * const directions = map.getDirections(space1, space2);
967
1002
  */
968
1003
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
969
1004
  /**
@@ -974,7 +1009,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
974
1009
  * @param options Optional parameters for getting directions.
975
1010
  * @returns Directions from the start to the destination points.
976
1011
  * @example
977
- * const directions = await map.getDirections(space1, [space2, space3]);
1012
+ * const directions = map.getDirections(space1, [space2, space3]);
978
1013
  */
979
1014
  getDirectionsMultiDestination: (from: TNavigationTarget, to: (TNavigationTarget | TNavigationTarget[])[], options?: TGetDirectionsOptions) => Directions[] | undefined;
980
1015
  /**
@@ -1054,8 +1089,26 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1054
1089
  * The interactive facades which the user interaction passed through.
1055
1090
  */
1056
1091
  facades: Facade[];
1092
+ /**
1093
+ * Whether the user clicked on the Blue Dot.
1094
+ */
1095
+ blueDot: boolean;
1057
1096
  };
1058
1097
  export type THoverPayload = Omit<TClickPayload, 'pointerEvent'>;
1098
+ export type TFloorChangePayload = {
1099
+ /**
1100
+ * The floor that is being changed to.
1101
+ */
1102
+ floor: Floor;
1103
+ /**
1104
+ * The floor that is being changed from.
1105
+ */
1106
+ previousFloor: Floor;
1107
+ /**
1108
+ * The reason for the floor change.
1109
+ */
1110
+ reason?: TFloorChangeReason;
1111
+ };
1059
1112
  /**
1060
1113
  * Defines the structure and types of events emitted in the context of the map.
1061
1114
  */
@@ -1075,23 +1128,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1075
1128
  'camera-change': CameraTransform;
1076
1129
  /**
1077
1130
  * Emitted when a floor change starts.
1078
- *
1079
- * @property {Floor} floor - The floor being changed to.
1080
1131
  */
1081
- 'floor-change-start': {
1082
- floor: Floor;
1083
- };
1132
+ 'floor-change-start': TFloorChangePayload;
1084
1133
  /**
1085
1134
  * Emitted after the floor change is complete.
1086
- *
1087
- * @property {string} [reason] - The reason for the floor change.
1088
- * @property {Floor} floor - The new active floor.
1089
1135
  */
1090
- 'floor-change': {
1091
- reason?: TFloorChangeReason;
1092
- floor: Floor;
1093
- previousFloor: Floor;
1094
- };
1136
+ 'floor-change': TFloorChangePayload;
1095
1137
  /**
1096
1138
  * Only emitted when dynamic focus is enabled. Emitted when a different facade recieves
1097
1139
  * focus due to the camera moving. This always occurs when the active floor changes to
@@ -1170,6 +1212,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1170
1212
  markers: Marker[];
1171
1213
  labels: Label[];
1172
1214
  floors: Floor[];
1215
+ blueDot: boolean;
1173
1216
  };
1174
1217
  };
1175
1218
  }
@@ -1190,13 +1233,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1190
1233
  import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
1191
1234
  import Facade from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade';
1192
1235
  import type { MapDataRecords, EnterpriseMapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
1193
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory, Language, AreaCollection, TilesetStyle } from '@mappedin/mvf';
1236
+ import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, Language, AreaCollection, TilesetStyle } from '@mappedin/mvf';
1194
1237
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
1195
1238
  import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
1196
1239
  import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
1197
1240
  import EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
1198
1241
  import { PubSub } from '@packages/internal/common';
1199
- import type { LanguagePack, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1242
+ import type { LanguagePack, LanguagePackRecords, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1200
1243
  import { type LocalePackUrls } from '@packages/internal/mvf-utils';
1201
1244
  import type { EnvControl, TGetMapDataOptions } from '@packages/internal/mvf-utils/mvf-utils';
1202
1245
  import type { TMapDataObjectTypes, TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -1387,6 +1430,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1387
1430
  get locationCategories(): LocationCategory[];
1388
1431
  get mvfFloors(): MVFFloor[];
1389
1432
  get mvfFloorStacks(): MVFFloorStack[];
1433
+ getAccessToken(): Promise<string | undefined>;
1434
+ getSasToken(): Promise<string | undefined>;
1390
1435
  getByType(type: string): object[];
1391
1436
  getByType(type: 'location-profile'): LocationProfile[];
1392
1437
  getByType(type: 'location-category'): LocationCategory[];
@@ -1437,7 +1482,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1437
1482
  */
1438
1483
  getMVFFeatureByType(type: 'floor-stack'): MVFFloorStack[];
1439
1484
  getMVFFeatureByType(type: 'floor'): MVFFloor[];
1440
- getPropTranslation(type: 'enterprise-location' | 'enterprise-category', prop: string, id: string, fallback: MVFEnterpriseLocation[keyof MVFEnterpriseLocation] | MVFEnterpriseCategory[keyof MVFEnterpriseCategory]): unknown;
1485
+ getPropTranslation<T extends keyof LanguagePackRecords, P extends keyof NonNullable<NonNullable<LanguagePackRecords[T]>[string]>>(type: T, prop: P, id: string, fallback: NonNullable<NonNullable<LanguagePackRecords[T]>[string]>[P]): string | NonNullable<NonNullable<LanguagePackRecords[T]>[string]>[P] | undefined;
1441
1486
  /**
1442
1487
  * change the langauge of the data objects in mapdata
1443
1488
  */
@@ -1476,15 +1521,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1476
1521
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images, DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
1477
1522
  import type { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1478
1523
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1479
- import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1524
+ import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1525
+ import type { Annotation, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1526
+ import type { TCoordinateParams } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
1480
1527
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/react-sdk/mappedin-js/src/types';
1481
- import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1528
+ import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1482
1529
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1483
1530
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1484
1531
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1485
1532
  import type { InspectorOption } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspector';
1486
1533
  import { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
1487
1534
  import type { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
1535
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
1488
1536
  /**
1489
1537
  * The MapView class is the main class for rendering and interacting with the map.
1490
1538
  *
@@ -1569,14 +1617,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1569
1617
  *
1570
1618
  * | target | state |
1571
1619
  * |-----------|----------------|
1572
- * | {@link Door} | {@link TDoorsState} |
1573
- * | {@link Label} | {@link TLabelState} |
1574
- * | {@link MapObject} | {@link TGeometryState} |
1575
- * | {@link Marker} | {@link TMarkerState} |
1576
- * | {@link Space} | {@link TGeometryState} |
1577
- * | {@link Shape} | {@link TShapeState} |
1578
- * | {@link DOORS} | {@link TDoorsState} |
1579
- * | {@link WALLS} | {@link TWallsState} |
1620
+ * | {@link Door} | {@link TDoorsState} |
1621
+ * | {@link Facade} | {@link TGeometryState} |
1622
+ * | {@link Label} | {@link TLabelState} |
1623
+ * | {@link MapObject} | {@link TGeometryState} |
1624
+ * | {@link Marker} | {@link TMarkerState} |
1625
+ * | {@link Model} | {@link UpdateModelState} |
1626
+ * | {@link Path} | {@link TGeometryState} |
1627
+ * | {@link PathSegment} | {@link TGeometryState} |
1628
+ * | {@link Space} | {@link TGeometryState} |
1629
+ * | {@link Shape} | {@link TShapeState} |
1630
+ * | {@link Text3DView} | {@link UpdatableText3DState} |
1631
+ * | {@link DOORS} | {@link TDoorsState} |
1632
+ * | {@link WALLS} | {@link TWallsState} |
1580
1633
  *
1581
1634
  * @param target The target to update.
1582
1635
  * @param state The new state to apply to the target.
@@ -1584,7 +1637,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1584
1637
  * // Update the color of a space to red.
1585
1638
  * map.updateState(space, { color: 'red' });
1586
1639
  */
1587
- updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model>(target: T, state: TUpdateState<T>): any;
1640
+ updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model | Path | PathSegment>(target: T, state: TUpdateState<T>): any;
1588
1641
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1589
1642
  /**
1590
1643
  * Update global state of the MapView
@@ -1652,7 +1705,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1652
1705
  * @hidden
1653
1706
  */
1654
1707
  updateWatermark(options: WatermarkUpdateOptions): void;
1655
- getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1708
+ getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | Path | PathSegment | string>(target: T): TGetState<T>;
1656
1709
  setHoverColor(c: string): void;
1657
1710
  getHoverColor(): string | undefined;
1658
1711
  /**
@@ -1682,7 +1735,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1682
1735
  * @param options Optional parameters for getting directions.
1683
1736
  * @returns Directions from the start to the destination point.
1684
1737
  * @example
1685
- * const directions = await map.getDirections(space1, space2);
1738
+ * const directions = map.getDirections(space1, space2);
1686
1739
  */
1687
1740
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
1688
1741
  /**
@@ -1708,13 +1761,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1708
1761
  * @param latitude The latitude of the coordinate.
1709
1762
  * @param longitude The longitude of the coordinate.
1710
1763
  * @param floor Optional floor information if applicable.
1711
- * @returns The created coordinate object.
1764
+ * @returns The created Coordinate object.
1712
1765
  * @example
1713
1766
  * // Create a coordinate at the CN Tower.
1714
1767
  * const coord = map.createCoordinate(43.642567, -79.387054);
1768
+ *
1769
+ * // Alternatively, you can directly use the Coordinate constructor:
1770
+ * import { Coordinate } from '@mappedin/mappedin-js';
1771
+ * const coord = new Coordinate(43.642567, -79.387054, floor?.id);
1715
1772
  */
1716
1773
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
1774
+ /**
1775
+ * Creates a {@link Coordinate} on the map using a params object.
1776
+ *
1777
+ * @param params An object containing the coordinate parameters.
1778
+ * @param params.latitude The latitude of the coordinate in decimal degrees.
1779
+ * @param params.longitude The longitude of the coordinate in decimal degrees.
1780
+ * @param params.floorId Optional ID of the floor this coordinate is on.
1781
+ * @param params.verticalOffset Optional vertical offset from the floor in meters.
1782
+ * @returns The created Coordinate object.
1783
+ * @example
1784
+ * // Create a coordinate at the CN Tower using params object.
1785
+ * const coord = map.createCoordinate({
1786
+ * latitude: 43.642567,
1787
+ * longitude: -79.387054
1788
+ * });
1789
+ *
1790
+ * // Alternatively, you can directly use the Coordinate constructor:
1791
+ * import { Coordinate } from '@mappedin/mappedin-js';
1792
+ * const coord = new Coordinate({
1793
+ * latitude: 43.642567,
1794
+ * longitude: -79.387054,
1795
+ * floorId: 'floor1',
1796
+ * verticalOffset: 10
1797
+ * });
1798
+ */
1799
+ createCoordinate(params: TCoordinateParams): Coordinate;
1800
+ /**
1801
+ * Create a {@link Coordinate} from an X and Y position measured in pixels from the top left
1802
+ * corner of the map canvas.
1803
+ *
1804
+ * @experimental
1805
+ */
1717
1806
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
1807
+ /**
1808
+ * Get the X and Y of a {@link Coordinate} measured from the top left corner of the map canvas.
1809
+ *
1810
+ * @experimental
1811
+ */
1812
+ getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
1813
+ x: number;
1814
+ y: number;
1815
+ };
1718
1816
  /**
1719
1817
  * @hidden
1720
1818
  * @experimental
@@ -1985,9 +2083,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1985
2083
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1986
2084
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1987
2085
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, EnterpriseLocation, Node, Area, Facade, FloorStack, Annotation, EnterpriseCategory, EnterpriseVenue, LocationCategory, LocationProfile } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1988
- import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
2086
+ import type { Label, Marker, Model, Image, Shape, Text3D, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1989
2087
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1990
- import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState, ImagePlacementOptions } from '@mappedin/react-sdk/geojson/src';
2088
+ import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState, ImagePlacementOptions, LabelAppearance } from '@mappedin/react-sdk/geojson/src';
2089
+ import { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
1991
2090
  export type DeepRequired<T> = Required<{
1992
2091
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1993
2092
  }>;
@@ -2161,6 +2260,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2161
2260
  */
2162
2261
  zIndex?: number;
2163
2262
  };
2263
+ export type TPathState = {
2264
+ type: 'path';
2265
+ /**
2266
+ * The color of the path.
2267
+ */
2268
+ color: string;
2269
+ };
2164
2270
  /**
2165
2271
  * Represents the state of a shape.
2166
2272
  */
@@ -2236,6 +2342,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2236
2342
  topTexture?: {
2237
2343
  url: string;
2238
2344
  };
2345
+ flipImageToFaceCamera?: boolean;
2239
2346
  };
2240
2347
  export enum WALLS {
2241
2348
  Exterior = "exterior-walls",
@@ -2248,9 +2355,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2248
2355
  /**
2249
2356
  * The type for updating the state of map elements (colors, texts, etc.).
2250
2357
  */
2251
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends string ? Record<string, any> : never;
2252
- export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
2253
- export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2358
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends Path ? Partial<TPathState> : T extends PathSegment ? Partial<TPathState> : T extends string ? Record<string, any> : never;
2359
+ export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState> | Partial<TPathState>;
2360
+ export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends Path ? TPathState | undefined : T extends PathSegment ? TPathState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | TPathState | undefined : never;
2254
2361
  /**
2255
2362
  * Options for {@link Camera} animations on the map.
2256
2363
  */
@@ -2492,113 +2599,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2492
2599
  };
2493
2600
  /**
2494
2601
  * Control how a {@link Label} looks
2602
+ * @interface
2495
2603
  */
2496
- export type TLabelAppearance = {
2497
- /**
2498
- * Margin around the label and marker in pixels. This will affect label density. Minimum is 6px.
2499
- * @default 6
2500
- */
2501
- margin?: number;
2502
- text?: {
2503
- /**
2504
- * Number of lines to display when text spans multiple lines.
2505
- */
2506
- numLines?: number;
2507
- /**
2508
- * Text size in pixels
2509
- */
2510
- size?: number;
2511
- /**
2512
- * Maxiumum width of text in pixels.
2513
- */
2514
- maxWidth?: number;
2515
- /**
2516
- * Line height sets the height of a line box. It's commonly used to set the distance between lines of text.
2517
- *
2518
- * @default 1.2
2519
- */
2520
- lineHeight?: number;
2521
- /**
2522
- * Text foreground color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2523
- */
2524
- foregroundColor?: string;
2525
- /**
2526
- * Text background color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2527
- */
2528
- backgroundColor?: string;
2529
- };
2530
- marker?: {
2531
- foregroundColor?: {
2532
- /**
2533
- * 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)`.
2534
- */
2535
- active?: string;
2536
- /**
2537
- * 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)`.
2538
- */
2539
- inactive?: string;
2540
- };
2541
- backgroundColor?: {
2542
- /**
2543
- * 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)`.
2544
- */
2545
- active?: string;
2546
- /**
2547
- * 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)`.
2548
- */
2549
- inactive?: string;
2550
- };
2551
- /**
2552
- * Size of bounding box of the icon in pixels
2553
- * @default 10
2554
- */
2555
- iconSize?: number;
2556
- /**
2557
- * Icon to be placed inside label. Supports SVG or a URL to png or jpeg.
2558
- *
2559
- * @example
2560
- * ```ts
2561
- * // SVG
2562
- * mapView.Labels.add(space, space.name, {
2563
- * appearance: {
2564
- * icon: `<svg>...</svg>`
2565
- * },
2566
- * });
2567
- * ```
2568
- *
2569
- * @example
2570
- * ```ts
2571
- * // Image URL
2572
- * mapView.Labels.add(space, space.name, {
2573
- * appearance: {
2574
- * icon: 'https://example.com/icon.png',
2575
- * },
2576
- * });
2577
- * ```
2578
- */
2579
- icon?: string;
2580
- /**
2581
- * How the icon should fit inside the marker.
2582
- * - `fill` will stretch the icon to fill the marker.
2583
- * - `cover` will maintain aspect ratio and fill the marker.
2584
- * - `contain` will maintain aspect ratio and fit the icon inside the marker.
2585
- * @default 'cover'
2586
- */
2587
- iconFit?: 'contain' | 'fill' | 'cover';
2588
- /**
2589
- * Padding around the icon, in pixels.
2590
- * @default 4
2591
- */
2592
- iconPadding?: number;
2593
- /**
2594
- * Defines when the icon becomes visible relative to the current zoom level
2595
- * anything below 0 will result in icons never showing up
2596
- * 0 ensures icons show up at maxZoom (fully zoomed in)
2597
- * 1 ensures they always show up
2598
- */
2599
- iconVisibilityThreshold?: number;
2600
- };
2601
- };
2604
+ export type TLabelAppearance = LabelAppearance;
2602
2605
  /**
2603
2606
  * Defines the priority levels for collider collision handling, allowing customization of collider visibility in congested areas.
2604
2607
  *
@@ -3048,6 +3051,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
3048
3051
  imagePlacementOptions: {
3049
3052
  mode: "default";
3050
3053
  };
3054
+ flipImagesToFaceCamera: true;
3051
3055
  };
3052
3056
  export const EXTERIOR_WALLS_ID = "ExteriorWalls";
3053
3057
  export const WALLS_ID = "Walls";
@@ -3075,6 +3079,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
3075
3079
  import { Coordinate, type Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3076
3080
  import type { TBlueDotOptions, TBlueDotPositionUpdate } from '@mappedin/react-sdk/mappedin-js/src/types';
3077
3081
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
3082
+ export const GEOMETRY_ID = "blue-dot";
3078
3083
  export type TBlueDotEvents = {
3079
3084
  /**
3080
3085
  * Emitted when the Blue Dot's position is updated.
@@ -3400,7 +3405,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects' {
3400
3405
  export { Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker';
3401
3406
  export { Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image';
3402
3407
  export { Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model';
3403
- export { Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3408
+ export { Path, PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3404
3409
  export { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
3405
3410
  export { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape';
3406
3411
  export { Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d';
@@ -3792,9 +3797,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3792
3797
  * Get the node IDs that should be excluded from the navigation graph.
3793
3798
  *
3794
3799
  * @hidden
3800
+ * @param excludedConnections {Connection[]}
3801
+ */
3802
+ getExcludedNodeIds: (excludedConnections: Connection[]) => string[];
3803
+ /**
3804
+ * Get the node IDs of connections that do not match the accessibility setting provided.
3805
+ * A disabled connection node is a connection node that acts as a regular node
3806
+ * (ie. the edges that would cause a floor change are ignored).
3807
+ *
3808
+ * @hidden
3795
3809
  * @param accessible {boolean}
3796
3810
  */
3797
- getExcludedNodeIds: (accessible: boolean, excludedConnections: Connection[]) => string[];
3811
+ getDisabledConnectionNodeIds: (accessible: boolean) => string[];
3798
3812
  }
3799
3813
  /**
3800
3814
  * Get the nodes from the navigation target.
@@ -3815,7 +3829,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3815
3829
  import type Annotation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation';
3816
3830
  import type Connection from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection';
3817
3831
  import type MapObject from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object';
3818
- import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature } from '@mappedin/mvf';
3832
+ import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature, FloorStack as MvfFloorStack, FloorProperties as MvfFloor } from '@mappedin/mvf';
3819
3833
  import type { PartialExcept } from '@mappedin/mvf/dist/locale';
3820
3834
  import type { LocalePackUrls } from '@packages/internal/mvf-utils';
3821
3835
  import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -3826,19 +3840,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3826
3840
  export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
3827
3841
  export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
3828
3842
  export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
3843
+ export type FloorStackWithLocale = PartialExcept<MvfFloorStack, 'id'>;
3844
+ export type FloorWithLocale = PartialExcept<MvfFloor, 'id'>;
3845
+ export type LanguagePackRecords = {
3846
+ 'enterprise-location': Record<string, LocationWithLocale> | undefined;
3847
+ 'enterprise-category': Record<string, CategoryWithLocale> | undefined;
3848
+ 'floor-stack': Record<string, FloorStackWithLocale> | undefined;
3849
+ floor: Record<string, FloorWithLocale> | undefined;
3850
+ };
3829
3851
  export type LanguagePack = {
3830
3852
  type: 'downloaded';
3831
3853
  data: ParsedMVFLocalePack;
3832
- optimized: {
3833
- locations: Record<string, LocationWithLocale> | undefined;
3834
- categories: Record<string, CategoryWithLocale> | undefined;
3835
- };
3854
+ optimized: LanguagePackRecords;
3836
3855
  } | {
3837
3856
  type: 'initial';
3838
- optimized: {
3839
- locations: Record<string, MvfEnterpriseLocation>;
3840
- categories: Record<string, MvfEnterpriseCategory>;
3841
- };
3857
+ optimized: LanguagePackRecords;
3842
3858
  };
3843
3859
  export type TMapDataInternalOptions = {
3844
3860
  env?: EnvControl;
@@ -4447,6 +4463,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
4447
4463
  toJSON(): {
4448
4464
  id: string;
4449
4465
  name: string;
4466
+ shortName: string;
4450
4467
  elevation: number;
4451
4468
  spaces: string[];
4452
4469
  objects: string[];
@@ -4670,10 +4687,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4670
4687
 
4671
4688
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate' {
4672
4689
  import type { IFocusable, IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
4673
- type TCoordinateParams = {
4690
+ /**
4691
+ * Parameters for creating a Coordinate.
4692
+ */
4693
+ export type TCoordinateParams = {
4694
+ /**
4695
+ * The latitude of the coordinate in decimal degrees.
4696
+ */
4674
4697
  latitude: number;
4698
+ /**
4699
+ * The longitude of the coordinate in decimal degrees.
4700
+ */
4675
4701
  longitude: number;
4702
+ /**
4703
+ * Optional ID of the floor this coordinate is on.
4704
+ */
4676
4705
  floorId?: string;
4706
+ /**
4707
+ * Optional vertical offset from the floor in meters.
4708
+ */
4677
4709
  verticalOffset?: number;
4678
4710
  };
4679
4711
  /**
@@ -4710,7 +4742,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4710
4742
  readonly floorId?: string;
4711
4743
  /**
4712
4744
  * The vertical position of the coordinate, offset from the floor.
4713
- * @internal
4714
4745
  */
4715
4746
  readonly verticalOffset: number;
4716
4747
  /**
@@ -4721,7 +4752,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4721
4752
  */
4722
4753
  static is(instance: object): instance is Coordinate;
4723
4754
  /**
4724
- * @internal
4755
+ * Creates a new Coordinate instance.
4756
+ *
4757
+ * @param latitudeOrParams Either a latitude number or a TCoordinateParams object containing coordinate details
4725
4758
  */
4726
4759
  constructor(latitudeOrParams: TCoordinateParams);
4727
4760
  /**
@@ -5151,6 +5184,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5151
5184
  toJSON(): {
5152
5185
  id: string;
5153
5186
  name: string;
5187
+ shortName: string;
5154
5188
  type: "Building" | "Outdoor" | undefined;
5155
5189
  floors: string[];
5156
5190
  };
@@ -5321,7 +5355,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5321
5355
  import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
5322
5356
  /**
5323
5357
  * An EnterpriseLocation contains metadata about a location, such as its name, description, logo, phone number, social medial links, hours of operation and more.
5324
- * They can be accessed using the {@link MapData.getByType()} method as shown below.
5358
+ * They can be accessed using the {@link MapData.getByType} method as shown below.
5325
5359
  *
5326
5360
  * ```typescript
5327
5361
  * const allLocations = mapData.getByType('enterprise-location');
@@ -5329,7 +5363,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5329
5363
  *
5330
5364
  * Refer to the [EnterpriseLocation Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-locations) for more information and interactive examples.
5331
5365
  */
5332
- class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces'>, IFocusable {
5366
+ class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces' | 'categories'>, IFocusable {
5333
5367
  #private;
5334
5368
  /**
5335
5369
  * @internal
@@ -5520,7 +5554,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
5520
5554
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5521
5555
  /**
5522
5556
  * An EnterpriseCategory groups one or more EnterpriseLocation. These allow similar locations to be sorted in a logical fashion.
5523
- * For example a mall may group locations into Food Court, Footwear and Women's Fashion. They can be accessed using the {@link MapData.getByType()} method as shown below.
5557
+ * For example a mall may group locations into Food Court, Footwear and Women's Fashion. They can be accessed using the {@link MapData.getByType} method as shown below.
5524
5558
  *
5525
5559
  * ```typescript
5526
5560
  * const categories = mapData.getByType('enterprise-category');
@@ -5616,7 +5650,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
5616
5650
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5617
5651
  /**
5618
5652
  * The EnterpriseVenue class holds metadata bout the map, which includes the map name, supported languages, default language, top locations and more.
5619
- * It can be accessed using the {@link MapData.getByType()} method as shown below.
5653
+ * It can be accessed using the {@link MapData.getByType} method as shown below.
5620
5654
  *
5621
5655
  * ```typescript
5622
5656
  * const venue = mapData.getByType('enterprise-venue');
@@ -5985,13 +6019,92 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspec
5985
6019
  export type InspectorOption = Partial<InspectorState>;
5986
6020
  }
5987
6021
 
6022
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
6023
+ import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
6024
+ import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
6025
+ /**
6026
+ * @experimental
6027
+ *
6028
+ * A segment of a complete path. This can be a continuous portion of the path on a single floor, or
6029
+ * the transition of a path between two floors, or a transition between indoors and outdoors.
6030
+ */
6031
+ export class PathSegment implements IFocusable {
6032
+ readonly id: string;
6033
+ readonly coordinates: Coordinate[];
6034
+ /**
6035
+ * @internal
6036
+ */
6037
+ static readonly __type = "PathSegment";
6038
+ /**
6039
+ * @internal
6040
+ */
6041
+ readonly __type = "PathSegment";
6042
+ /**
6043
+ * Checks if the provided instance is a PathSegment.
6044
+ */
6045
+ static is(instance: object): instance is PathSegment;
6046
+ constructor(id: string, coordinates: Coordinate[]);
6047
+ /** @internal */
6048
+ get focusTarget(): Coordinate[];
6049
+ }
6050
+ /**
6051
+ * Class representing a path on the {@link MapView}.
6052
+ *
6053
+ * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
6054
+ */
6055
+ export class Path implements IFocusable {
6056
+ /**
6057
+ * The path's id
6058
+ */
6059
+ id: string;
6060
+ /**
6061
+ * The promise that resolves when the current path animation is complete.
6062
+ */
6063
+ animation: Promise<void>;
6064
+ /**
6065
+ * The coordinates of the path.
6066
+ */
6067
+ coordinates: Coordinate[];
6068
+ /**
6069
+ * @experimental
6070
+ *
6071
+ * The segments of the path.
6072
+ */
6073
+ segments: PathSegment[];
6074
+ /**
6075
+ * @internal
6076
+ */
6077
+ static readonly __type = "Path";
6078
+ /**
6079
+ * @internal
6080
+ */
6081
+ readonly __type = "Path";
6082
+ /**
6083
+ * Checks if the provided instance is a Path.
6084
+ *
6085
+ * @param instance The instance to check.
6086
+ * @returns {boolean} True if the instance is a Path, false otherwise.
6087
+ */
6088
+ static is(instance: object): instance is Path;
6089
+ /** @internal */
6090
+ get focusTarget(): Coordinate[];
6091
+ /**
6092
+ * @internal
6093
+ */
6094
+ constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[], segments: {
6095
+ id: string | number;
6096
+ coordinates: Coordinate[];
6097
+ }[]);
6098
+ }
6099
+ }
6100
+
5988
6101
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/types' {
5989
6102
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
5990
6103
  export type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
5991
6104
  }
5992
6105
 
5993
6106
  declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5994
- import './marker.scss';
6107
+ import '../styles/marker.scss';
5995
6108
  import { Vector2 } from 'three';
5996
6109
  import type { Entity2DHTMLDivElement, EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
5997
6110
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
@@ -6181,7 +6294,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
6181
6294
  name: MarkerAnchor;
6182
6295
  getBoundingBox: () => number[];
6183
6296
  }[];
6184
- toPackedMessage(lockToCurrentStrategy?: boolean): {
6297
+ toPackedMessage(isPanning?: boolean): {
6185
6298
  x: number;
6186
6299
  y: number;
6187
6300
  enabled: boolean;
@@ -6728,12 +6841,17 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6728
6841
  */
6729
6842
  iconFit?: 'contain' | 'fill' | 'cover';
6730
6843
  /**
6731
- * Defines when the icon becomes visible relative to the current zoom level
6732
- * anything below 0 will result in icons never showing up
6733
- * 0 ensures icons show up at maxZoom (fully zoomed in)
6734
- * 1 ensures they always show up
6844
+ * Whether the icon should overflow the circle of the marker.
6845
+ * @default 'hidden'
6735
6846
  */
6736
- iconVisibilityThreshold?: number;
6847
+ iconOverflow?: 'visible' | 'hidden';
6848
+ /**
6849
+ * Defines the zoom level at which the icon becomes visible.
6850
+ * Infinity ensures the icon is never visible.
6851
+ * -Infinity ensures the icon is always visible.
6852
+ * @default -Infinity
6853
+ */
6854
+ iconVisibleAtZoomLevel?: number;
6737
6855
  };
6738
6856
  };
6739
6857
  /**
@@ -6799,8 +6917,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6799
6917
  iconSize?: number;
6800
6918
  iconPadding: number;
6801
6919
  iconFit: 'fill' | 'contain' | 'cover';
6920
+ iconOverflow: 'visible' | 'hidden';
6802
6921
  icon?: string;
6803
- iconVisibilityThreshold?: number;
6922
+ iconVisibleAtZoomLevel?: number;
6804
6923
  };
6805
6924
  };
6806
6925
  export type LabelOptions = {
@@ -6911,7 +7030,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6911
7030
  imageHash?: number;
6912
7031
  markerSize: number;
6913
7032
  iconVisible: boolean;
6914
- zoomProportion: number;
6915
7033
  dp: (v?: number) => number;
6916
7034
  setEntity(): void;
6917
7035
  constructor(text: string, options: AddLabelOptions, state: RendererState);
@@ -6922,7 +7040,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6922
7040
  onStrategySelected: (strategyIndex: any) => void;
6923
7041
  updatePosition(): void;
6924
7042
  disable(): void;
6925
- toPackedMessage(lockToCurrentStrategy?: boolean): {
7043
+ toPackedMessage(isPanning?: boolean): {
6926
7044
  x: number;
6927
7045
  y: number;
6928
7046
  enabled: boolean;
@@ -7106,7 +7224,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
7106
7224
  }
7107
7225
 
7108
7226
  declare module '@mappedin/react-sdk/geojson/src/types/geometry' {
7109
- export type Position = [lon: number, lat: number, alt?: number];
7227
+ export type Position = [lon: number, lat: number] | [lon: number, lat: number, alt: number];
7110
7228
  }
7111
7229
 
7112
7230
  declare module '@mappedin/react-sdk/geojson/src/types' {
@@ -7653,6 +7771,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7653
7771
  set topTexture(texture: Texture);
7654
7772
  get topTexture(): string;
7655
7773
  get topTextureInstance(): Texture | undefined;
7774
+ set blendTexture(value: boolean);
7656
7775
  get featureBbox(): BBox;
7657
7776
  texturesVisible: boolean;
7658
7777
  showTextures(): void;
@@ -8069,6 +8188,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8069
8188
  import { Group as TweenGroup } from '@tweenjs/tween.js';
8070
8189
  import { Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
8071
8190
  import { Occlusion2DSystem } from '@mappedin/react-sdk/geojson/src/systems/2d-occlusion/system';
8191
+ import type { FloatingFloorTextProperties } from '@mappedin/mvf';
8072
8192
  export type * from '@mappedin/react-sdk/geojson/src/types';
8073
8193
  export const raycaster: Raycaster;
8074
8194
  /**
@@ -8166,6 +8286,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8166
8286
  addCustomGeometry(id: string, feature: Feature<Point>, builder: CustomGeometryBuilder, style?: {
8167
8287
  visible?: boolean;
8168
8288
  altitude?: number;
8289
+ interactive?: boolean;
8169
8290
  }, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<ShapeState>;
8170
8291
  /**
8171
8292
  * Add a geometry group from GeoJSON data
@@ -8184,6 +8305,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8184
8305
  * Add an HTML Marker at a GeoJSON coordinate.
8185
8306
  */
8186
8307
  addMarker2D(coordinate: Position, contentHTML: string, options?: AddMarkerOptions, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<MarkerState> | undefined;
8308
+ addText3D(id: string, geometry: Feature<Point, FloatingFloorTextProperties>, options: AddText3DOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<Text3DState>;
8187
8309
  /**
8188
8310
  * Labels an existing 3D geometry with a text area.
8189
8311
  *
@@ -8205,10 +8327,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8205
8327
  */
8206
8328
  labelText3D(meshGeometryId: string, content: string, options?: AddText3DOptions & {
8207
8329
  parentId?: string;
8208
- }): {
8209
- id: string | number;
8210
- type: "text3d";
8211
- } | undefined;
8330
+ }): EntityId<Text3DState> | undefined;
8212
8331
  /**
8213
8332
  * Add a 2D label at a GeoJSON coordinate.
8214
8333
  */
@@ -8273,6 +8392,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8273
8392
  setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<UpdateModelState>): void;
8274
8393
  setState<T extends EntityId<ImageState>>(object: T | T['id'], state: Partial<ImageState>): void;
8275
8394
  setState<T extends EntityId<Text3DState>>(object: T | T['id'], state: Partial<UpdatableText3DState>): void;
8395
+ setState<T extends EntityId<PathState>>(object: T | T['id'], state: Partial<PathState>): void;
8276
8396
  setState<T extends EntityState>(object: T | T['id'], state: Partial<T>): void;
8277
8397
  /**
8278
8398
  * Project a screen coordinate to a geographic coordinate
@@ -8645,6 +8765,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8645
8765
  import type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
8646
8766
  import type { MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
8647
8767
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8768
+ import { type FloorTextCommonProperties } from '@mappedin/mvf';
8648
8769
  /**
8649
8770
  * State representing an Text3D
8650
8771
  */
@@ -9013,8 +9134,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
9013
9134
  mesh: Geometry3DObject3D;
9014
9135
  textMesh?: Text;
9015
9136
  readonly type = "text3d";
9016
- feature: Feature<Point, Text3DProperties>;
9017
- constructor(feature: Feature<Point, Text3DProperties>);
9137
+ feature: Feature<Point, Text3DProperties | (FloorTextCommonProperties & {
9138
+ verticalOffset: number;
9139
+ })>;
9140
+ constructor(feature: Feature<Point, Text3DProperties | (FloorTextCommonProperties & {
9141
+ verticalOffset: number;
9142
+ })>);
9018
9143
  get visible(): boolean;
9019
9144
  set visible(visible: boolean);
9020
9145
  parent?: GroupContainerObject3D;
@@ -9184,6 +9309,10 @@ declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
9184
9309
  DEFAULT = 0,
9185
9310
  OUTLINES = 1
9186
9311
  }
9312
+ /**
9313
+ * Duration of zoom in/out animation when double tapping with one finger or single tapping with two fingers.
9314
+ */
9315
+ export const TAP_ZOOM_DURATION = 250;
9187
9316
  }
9188
9317
 
9189
9318
  declare module '@mappedin/react-sdk/geojson/src/utils/debug' {
@@ -9253,6 +9382,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
9253
9382
  * @hidden
9254
9383
  */
9255
9384
  onClick?: () => void;
9385
+ /**
9386
+ * Whether the watermark is interactive.
9387
+ * @default true
9388
+ */
9389
+ interactive?: boolean;
9256
9390
  /**
9257
9391
  * Whether the watermark should be visible.
9258
9392
  * @hidden
@@ -9263,6 +9397,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
9263
9397
  export type WatermarkUpdateOptions = Omit<WatermarkOptions, 'onClick' | 'visible'> & {
9264
9398
  /** Show the Mappedin watermark. Once it is visible it cannot be hidden again. */
9265
9399
  visible?: true;
9400
+ /** Set the interactivity of the watermark. */
9401
+ interactive?: boolean;
9266
9402
  };
9267
9403
  export class WatermarkSystem extends PubSub<{
9268
9404
  'texture-loaded': void;
@@ -9300,9 +9436,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/text3d/system' {
9300
9436
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
9301
9437
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
9302
9438
  import { PubSub } from '@packages/internal/common';
9303
- import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
9304
9439
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
9305
- import type { Text } from 'troika-three-text';
9440
+ import type { Text, BatchedText } from 'troika-three-text';
9306
9441
  export class Text3DSystem extends PubSub<{
9307
9442
  render: undefined;
9308
9443
  }> {
@@ -9332,7 +9467,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter' {
9332
9467
 
9333
9468
  declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
9334
9469
  import type { Map } from '@mappedin/react-sdk/packages/outdoor-context-v4';
9335
- import './style.scss';
9470
+ import '../../styles/html-controls.scss';
9336
9471
  /**
9337
9472
  * All possible control anchor positions.
9338
9473
  */
@@ -9381,7 +9516,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9381
9516
  import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9382
9517
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
9383
9518
  import { Label, Marker, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9384
- import { Text3D as Text3DView, Model, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9519
+ import { Text3D as Text3DView, Model, Path, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9385
9520
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
9386
9521
  import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
9387
9522
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
@@ -9399,6 +9534,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9399
9534
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
9400
9535
  import { type BBox } from 'geojson';
9401
9536
  import { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
9537
+ import { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
9402
9538
  export class GeoJsonApi {
9403
9539
  core: RendererCore;
9404
9540
  mapObjects: GeojsonApiMapObject[];
@@ -9430,7 +9566,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9430
9566
  get DynamicFocus(): import("..").DynamicFocus;
9431
9567
  get StackedMaps(): import("..").StackedMaps;
9432
9568
  constructor(rendererCore: RendererCore, mapView: MapView);
9433
- updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
9569
+ updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | Path | PathSegment | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
9434
9570
  update: () => void;
9435
9571
  getMapDataInternal(): MapDataInternal | undefined;
9436
9572
  getMapData(): MapData | undefined;
@@ -9440,11 +9576,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9440
9576
  updateWatermark(options: WatermarkUpdateOptions): void;
9441
9577
  get currentFloorStack(): FloorStack;
9442
9578
  get currentFloor(): Floor;
9443
- getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | string>(target: T): TGetState<T>;
9579
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | Path | PathSegment | string>(target: T): TGetState<T>;
9444
9580
  setHoverColor(c: string): void;
9445
9581
  getHoverColor(): string | undefined;
9446
- createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
9447
9582
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
9583
+ getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
9584
+ x: number;
9585
+ y: number;
9586
+ };
9448
9587
  isInView(target: Space | MapObject | Label | Marker | string): boolean;
9449
9588
  auto(): {
9450
9589
  labels: Label[];
@@ -9471,7 +9610,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9471
9610
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
9472
9611
  import type { Path, Shape, Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9473
9612
  import { Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9474
- import type { Coordinate, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9613
+ import { Coordinate, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9475
9614
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
9476
9615
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
9477
9616
  import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
@@ -9484,7 +9623,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9484
9623
  previousFloorId: string;
9485
9624
  };
9486
9625
  'floor-change-start': {
9626
+ reason?: TFloorChangeReason;
9487
9627
  floorId: string;
9628
+ previousFloorId: string;
9488
9629
  };
9489
9630
  'navigation-connection-click': {
9490
9631
  fromFloor?: Floor;
@@ -9571,8 +9712,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9571
9712
  removeAll: () => void;
9572
9713
  };
9573
9714
  Paths: {
9574
- add: (coordinates: Coordinate[], options?: TAddPathOptions) => {
9575
- paths: EntityId<PathState>[];
9715
+ add: (coordinates: Coordinate[], options?: TAddPathOptions & {
9716
+ id?: string;
9717
+ }) => {
9718
+ paths: (EntityId<PathState> & {
9719
+ coordinates: Coordinate[];
9720
+ })[];
9576
9721
  animation: Promise<void>;
9577
9722
  };
9578
9723
  remove: (entityIds: string[]) => void;
@@ -9770,40 +9915,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
9770
9915
  }
9771
9916
  }
9772
9917
 
9773
- declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
9774
- import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9775
- import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
9776
- /**
9777
- * Class representing a path on the {@link MapView}.
9778
- *
9779
- * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
9780
- */
9781
- export class Path implements IFocusable {
9782
- /**
9783
- * The label's id
9784
- */
9785
- id: string;
9786
- /**
9787
- * The promise that resolves when the current path animation is complete.
9788
- */
9789
- animation: Promise<void>;
9790
- /**
9791
- * The coordinates of the path.
9792
- */
9793
- coordinates: Coordinate[];
9794
- /**
9795
- * @internal
9796
- */
9797
- readonly __type: 'Path';
9798
- /** @internal */
9799
- get focusTarget(): Coordinate[];
9800
- /**
9801
- * @internal
9802
- */
9803
- constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[]);
9804
- }
9805
- }
9806
-
9807
9918
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
9808
9919
  import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
9809
9920
  /**
@@ -10287,7 +10398,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
10287
10398
  *
10288
10399
  * Paths can be drawn from one coordinate to another using {@link Paths.add}. If using just two coordinates, the path will be drawn straight between the two points.
10289
10400
  * This may work for some scenarios, but in most cases an app will need to show the user their walking path, going through doors and avoiding walls and other objects.
10290
- * Such a path of coordinates can be created by calling the {@link MapData.getDirections()} method, passing in a start and end {@link TNavigationTarget}. Note that a Space requires an entrance to be used as a target.
10401
+ * Such a path of coordinates can be created by calling the {@link MapData.getDirections} method, passing in a start and end {@link TNavigationTarget}. Note that a Space requires an entrance to be used as a target.
10291
10402
  *
10292
10403
  * The width of the path is set using the {@link TAddPathOptions.nearRadius} and {@link TAddPathOptions.farRadius} parameters. These values are in meters. `nearRadius` is the path width used at the lowest zoom level closest to the ground and `farRadius` is used at the highest zoom level. Additional path styles are outlined later in this guide in the Path Styles section.
10293
10404
  *
@@ -11457,7 +11568,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/opening-hou
11457
11568
 
11458
11569
  declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
11459
11570
  import { QuadTree } from '@packages/internal/quad-tree';
11460
- import './style.scss';
11571
+ import '../../styles/collisions.scss';
11461
11572
  import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
11462
11573
  import type LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
11463
11574
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
@@ -11524,7 +11635,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
11524
11635
  currentMsgId: string;
11525
11636
  working: boolean;
11526
11637
  componentArray: (MarkerComponent | LabelComponent)[];
11527
- update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, useAllStrategies?: boolean) => void;
11638
+ update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, isPanning?: boolean) => void;
11528
11639
  resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
11529
11640
  /**
11530
11641
  * Resolve collisions
@@ -11734,21 +11845,20 @@ declare module '@mappedin/react-sdk/geojson/src/components/interaction' {
11734
11845
 
11735
11846
  declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
11736
11847
  import { type Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
11737
- import { Text, BatchedText } from 'troika-three-text';
11848
+ import { BatchedText, Text } from 'troika-three-text';
11738
11849
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
11739
11850
  import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
11740
- export function createTroikaText(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11851
+ export function createTroikaTextPoint(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11852
+ text: Text;
11853
+ }>;
11854
+ export function createTroikaTextArea(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11741
11855
  text: Text;
11742
11856
  } | undefined>;
11743
11857
  export { BatchedText, Text };
11744
11858
  /**
11745
- * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
11859
+ * Promise caches the base64 font string. Then shared across all needed
11746
11860
  */
11747
- export type ModuleType = {
11748
- createTroikaText: typeof createTroikaText;
11749
- preloadFont: typeof preloadFont;
11750
- BatchedText: typeof BatchedText;
11751
- };
11861
+ export let fontPreloadLoadPromise: Promise<string> | undefined;
11752
11862
  /**
11753
11863
  * Preloads a font from the given URL. Enable developer to preload font way before scene is ready
11754
11864
  *
@@ -11756,6 +11866,15 @@ declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
11756
11866
  * @returns A promise that resolves when the font is successfully preloaded, or rejects with an error if the font cannot be loaded.
11757
11867
  */
11758
11868
  export function preloadFont(fontUrl?: string): Promise<string>;
11869
+ /**
11870
+ * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
11871
+ */
11872
+ export type ModuleType = {
11873
+ createTroikaTextPoint: typeof createTroikaTextPoint;
11874
+ createTroikaTextArea: typeof createTroikaTextArea;
11875
+ preloadFont: typeof preloadFont;
11876
+ BatchedText: typeof BatchedText;
11877
+ };
11759
11878
  }
11760
11879
 
11761
11880
  declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style' {
@@ -11984,6 +12103,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
11984
12103
  set texture(texture: Texture);
11985
12104
  get topTexture(): Texture;
11986
12105
  set topTexture(texture: Texture);
12106
+ get blendTexture(): boolean;
12107
+ set blendTexture(value: boolean);
11987
12108
  setGradientShading(start: number, end: number, intensity: number): void;
11988
12109
  setColor(batchId: number, color: Color, topColor: Color): void;
11989
12110
  getColor(batchId: number): {
@@ -12226,7 +12347,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
12226
12347
  right?: OffscreenCanvas | HTMLCanvasElement;
12227
12348
  };
12228
12349
  };
12229
- update: (newZoom: number, minZoom: number, maxZoom: number) => void;
12350
+ update: (zoomLevel: number) => void;
12230
12351
  processText: (text: string, size: number, maxWidth: number, maxLines: number, lineHeight: number) => {
12231
12352
  textDrawFn: import("@packages/internal/shave-text/shave-text").TDrawFn;
12232
12353
  width: number;
@@ -12569,7 +12690,15 @@ declare module '@mappedin/react-sdk/geojson/src/systems/image/system' {
12569
12690
  'image-loaded': void;
12570
12691
  }> {
12571
12692
  constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition'], initialBearing?: number, naturalBearing?: number, imagePlacementOptions?: ImagePlacementOptions);
12572
- imageLoadingCache: Map<string, Promise<Texture>>;
12693
+ /**
12694
+ * We need to track the loaded state separately from the promise since we can't check
12695
+ * the resolution state of a promise after it settles. This allows components to check
12696
+ * if an image has finished loading without having to await the promise.
12697
+ */
12698
+ imageLoadingCache: Map<string, {
12699
+ loaded: boolean;
12700
+ promise: Promise<Texture>;
12701
+ }>;
12573
12702
  update(cameraRotationRadians: number): void;
12574
12703
  }
12575
12704
  }
@@ -13106,15 +13235,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
13106
13235
 
13107
13236
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
13108
13237
  import { Coordinate, type MapObject, type Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
13109
- import type { Position, EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
13110
- import type { WithPolygonImage } from '@packages/internal/mvf-utils';
13238
+ import type { EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
13239
+ import type { PolygonFeatureProperties } from '@packages/internal/mvf-utils';
13111
13240
  import type { BBox, FeatureCollection, MultiLineString } from 'geojson';
13112
- import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
13241
+ import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle, Position } from '@mappedin/core-sdk';
13113
13242
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/react-sdk/mappedin-js/src';
13114
13243
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
13115
- import type { Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
13244
+ import type { Image, Path, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
13116
13245
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
13117
13246
  import type { Tween } from '@tweenjs/tween.js';
13247
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
13118
13248
  export function convertCoordinateToPosition(coord: Coordinate): Position;
13119
13249
  export function convertPositionToCoordinate(coord: Position): Coordinate;
13120
13250
  export const cutEntrancesFromLineStrings: (lineStrings: ObstructionCollection["features"], entranceCollection: EntranceCollection["features"]) => {
@@ -13139,9 +13269,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
13139
13269
  export type WithId<T> = T & {
13140
13270
  id?: string;
13141
13271
  };
13142
- export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Polygon | LineString | Point, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
13272
+ export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, PolygonFeatureProperties<SpaceProperties | ObstructionProperties>>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Polygon | LineString | Point, PolygonFeatureProperties<SpaceProperties | ObstructionProperties>>[]>;
13143
13273
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
13144
- export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
13274
+ export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Path | PathSegment | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
13145
13275
  export function tweenToPromise(tween: Tween): Promise<void>;
13146
13276
  export function getBoundingBox(geometry: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>): BBox;
13147
13277
  export function expandBbox(bbox: BBox, bboxToExpand: BBox): number[];
@@ -13275,7 +13405,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-proc
13275
13405
  }
13276
13406
 
13277
13407
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13278
- import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
13408
+ import { PerspectiveCamera, Vector3, Object3D, Mesh, Intersection, Object3DEventMap } from 'three';
13279
13409
  import { Raycaster } from 'three';
13280
13410
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
13281
13411
  import { QuadTree } from '@packages/internal/quad-tree';
@@ -13284,7 +13414,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13284
13414
  import type { EntityMesh } from '@mappedin/react-sdk/geojson/src/types';
13285
13415
  import { TapsController } from '@mappedin/react-sdk/geojson/src/systems/interactions/tap-controller';
13286
13416
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
13287
- import 'style.scss';
13417
+ import '../../styles/interactions.scss';
13288
13418
  import type { EntityBatchedMesh } from '@mappedin/react-sdk/geojson/src/components/mesh';
13289
13419
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
13290
13420
  type InteractionPayload = {
@@ -13339,7 +13469,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13339
13469
  entities: (Object3D | EntityMesh<Geometry3D> | EntityBatchedMesh)[];
13340
13470
  groups: GroupContainerObject3D[];
13341
13471
  };
13342
- getMouseRayIntersects(): import("three").Intersection<Object3D<import("three").Object3DEventMap>>[];
13472
+ getMouseRayIntersects(): Intersection<Object3D<Object3DEventMap>>[];
13343
13473
  destroy(): void;
13344
13474
  debugPanel: HTMLDivElement | undefined;
13345
13475
  enableDebug(): void;
@@ -13357,7 +13487,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13357
13487
  getCursor(): CursorTypes;
13358
13488
  resize: () => void;
13359
13489
  }
13360
- export function findModelParent(object: Object3D): Object3D<import("three").Object3DEventMap> | undefined;
13490
+ export function findModelParent(object: Object3D): Object3D<Object3DEventMap> | undefined;
13361
13491
  export {};
13362
13492
  }
13363
13493
 
@@ -13368,6 +13498,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13368
13498
  import * as CAMERA_CONSTANTS from '@mappedin/react-sdk/geojson/src/systems/camera/constants';
13369
13499
  import type { AnimateCameraTarget, CameraControlsOptions, CameraFocusOnOptions } from '@mappedin/react-sdk/geojson/src/systems/camera/types';
13370
13500
  import type { InsetPadding, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
13501
+ export enum CameraControlsState {
13502
+ NONE = -1,
13503
+ ROTATE = 0,
13504
+ DOLLY = 1,
13505
+ PAN = 2,
13506
+ WHEEL_ZOOM = 3,
13507
+ TOUCH_TILT = 4,
13508
+ TOUCH_DOLLY = 5,
13509
+ TOUCH_PAN = 6,
13510
+ MULTI = 7,
13511
+ PEDESTAL = 8,
13512
+ TOUCH_PEDESTAL = 9
13513
+ }
13371
13514
  type CameraEventName = (typeof CAMERA_CONSTANTS.EVENTS)[number];
13372
13515
  type SpecificCameraEvents = {
13373
13516
  'multi-start': {
@@ -13407,6 +13550,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13407
13550
  dirty: boolean;
13408
13551
  zoomDirty: boolean;
13409
13552
  rotationDirty: boolean;
13553
+ panDirty: boolean;
13410
13554
  /**
13411
13555
  * Factor that controls how fast zooming in and out happens in response to mouse wheel events
13412
13556
  *
@@ -13555,6 +13699,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13555
13699
  * @default 1.2
13556
13700
  */
13557
13701
  maxTilt: number;
13702
+ state: CameraControlsState;
13558
13703
  constructor(camera: PerspectiveCamera, scene: Scene, renderer: WebGLRenderer, rendererState: RendererState, options: CameraControlsOptions);
13559
13704
  /**
13560
13705
  * The amount the camera is shifted up/down
@@ -21919,14 +22064,16 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
21919
22064
  * @param {string[]} originIds - IDs of origin nodes.
21920
22065
  * @param {string[]} destinationNodeIds - IDs of destination nodes.
21921
22066
  * @param {string[]} [excludedNodeIds] - IDs of nodes to exclude from pathfinding.
22067
+ * @param {string[]} [disabledConnectionNodeIds] - IDs of connection nodes that are disabled (ie. act as regular nodes).
21922
22068
  * @param {SimplifyDirectionsOptions} [simplify] - Options to simplify the pathfinding result.
21923
22069
  * @returns {DirectionsCollection} A collection of directional features representing the path.
21924
22070
  */
21925
- getDirections({ zones: directionsZones, originIds, destinationNodeIds, excludedNodeIds, simplify, multiplicativeDistanceWeightScaling, }: {
22071
+ getDirections({ zones: directionsZones, originIds, destinationNodeIds, excludedNodeIds, disabledConnectionNodeIds, simplify, multiplicativeDistanceWeightScaling, }: {
21926
22072
  originIds: string[];
21927
22073
  destinationNodeIds: string[];
21928
22074
  zones?: DirectionsZone[];
21929
22075
  excludedNodeIds?: string[];
22076
+ disabledConnectionNodeIds?: string[];
21930
22077
  simplify?: SimplifyDirectionsOptions;
21931
22078
  multiplicativeDistanceWeightScaling?: boolean;
21932
22079
  }): DirectionsCollection;