@mappedin/mappedin-js 6.0.1-beta.22 → 6.0.1-beta.23

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.
@@ -290,6 +290,15 @@ declare module '@mappedin/mappedin-js' {
290
290
  */
291
291
  wallTopColor?: string;
292
292
  };
293
+ /**
294
+ * @experimental
295
+ * @internal
296
+ */
297
+ multiFloorView?: {
298
+ enabled?: boolean;
299
+ floorHeight?: number;
300
+ updateCameraElevationOnFloorChange?: boolean;
301
+ };
293
302
  };
294
303
  /**
295
304
  * @internal
@@ -382,7 +391,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
382
391
  import { Analytics } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
383
392
  import { PubSub } from '@packages/internal/common';
384
393
  import type { TSearchOptions } from '@packages/internal/mvf-utils';
385
- import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
394
+ import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node, Area } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
386
395
  import type EnterpriseCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
387
396
  import type EnterpriseLocation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
388
397
  import type EnterpriseVenue from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue';
@@ -528,6 +537,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
528
537
  * const annotations = mapData.getByType('annotation');
529
538
  */
530
539
  getByType(type: 'annotation'): Annotation[];
540
+ /**
541
+ * @returns The areas ({@link Area}) on the map.
542
+ * @example
543
+ * const areas = mapData.getByType('area');
544
+ */
545
+ getByType(type: 'area'): Area[];
531
546
  /**
532
547
  * @returns The nodes ({@link Node}) on the map.
533
548
  * @example
@@ -561,7 +576,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
561
576
  * @example
562
577
  * const space = mapData.getById('space', 'space-id');
563
578
  */
564
- getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
579
+ getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'area' ? Area | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
565
580
  getById(type: string, id: string): object | undefined;
566
581
  /**
567
582
  * Changes the language of the map data.
@@ -611,7 +626,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
611
626
  * @param to The destination point.
612
627
  * @returns The distance between the start and destination points in meters.
613
628
  */
614
- getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
629
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area): number;
615
630
  /**
616
631
  * Creates a backup of the map data including language packs.
617
632
  * @internal
@@ -779,6 +794,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/events' {
779
794
 
780
795
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
781
796
  import Node from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node';
797
+ import Area from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/area';
782
798
  import Door from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door';
783
799
  import Space from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space';
784
800
  import Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
@@ -791,7 +807,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
791
807
  import Image from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image';
792
808
  import FloorStack from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor-stack';
793
809
  import type { MapDataRecords } from '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation';
794
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory, Language } from '@mappedin/mvf';
810
+ 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 } from '@mappedin/mvf';
795
811
  import { AnalyticsInternal } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
796
812
  import EnterpriseLocation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
797
813
  import EnterpriseCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
@@ -849,6 +865,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
849
865
  doorsById: MapDataRecords['doorsById'];
850
866
  pointsOfInterestById: MapDataRecords['poisById'];
851
867
  annotationsById: MapDataRecords['annotationsById'];
868
+ areasById: MapDataRecords['areasById'];
852
869
  locationsById: MapDataRecords['locationsById'];
853
870
  categoriesById: MapDataRecords['categoriesById'];
854
871
  doorsByNodeId: MapDataRecords['doorsByNodeId'];
@@ -863,6 +880,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
863
880
  mvfSpacesById: MapDataRecords['mvfSpacesById'];
864
881
  mvfFloorsById: MapDataRecords['mvfFloorsById'];
865
882
  mvfFloorStacksById: MapDataRecords['mvfFloorStacksById'];
883
+ mvfAreasById: MapDataRecords['mvfAreasById'];
866
884
  localePacksUrls: LocalePackUrls;
867
885
  currentLanguage?: Language;
868
886
  /**
@@ -936,6 +954,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
936
954
  * @returns {Annotation[]} An array of Annotation objects.
937
955
  */
938
956
  get annotations(): Annotation[];
957
+ get areas(): Area[];
939
958
  /**
940
959
  * Retrieves all nodes in the map.
941
960
  *
@@ -962,6 +981,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
962
981
  getById(type: 'object', id: string): MapObject | undefined;
963
982
  getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
964
983
  getById(type: 'annotation', id: string): Annotation | undefined;
984
+ getById(type: 'area', id: string): Area | undefined;
965
985
  getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
966
986
  getById(type: 'enterprise-category', id: string): EnterpriseCategory | undefined;
967
987
  getMapDataById(id: string): Places | undefined;
@@ -980,6 +1000,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
980
1000
  getMVFFeatureById(type: 'connection', id: string): MVFConnection | undefined;
981
1001
  getMVFFeatureById(type: 'entrance', id: string): EntranceCollection['features'][number] | undefined;
982
1002
  getMVFFeatureById(type: 'annotation', id: string): AnnotationCollection['features'][number] | undefined;
1003
+ getMVFFeatureById(type: 'area', id: string): AreaCollection['features'][number] | undefined;
983
1004
  getMVFFeatureById(type: string, id: string): object | undefined;
984
1005
  getMVFFeatureByNodeId(type: 'connection', id: string): MVFConnection | undefined;
985
1006
  /**
@@ -996,7 +1017,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
996
1017
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], opt?: TGetDirectionsOptions & {
997
1018
  multiDestination?: true;
998
1019
  }) => Directions | Directions[] | undefined;
999
- getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
1020
+ getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area): number;
1000
1021
  toJSONBundle({ downloadLanguagePacks, }?: {
1001
1022
  downloadLanguagePacks?: boolean;
1002
1023
  }): Promise<THydrateMapDataBundle>;
@@ -1010,7 +1031,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
1010
1031
  */
1011
1032
  destroy(): void;
1012
1033
  }
1013
- export { Node, MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1034
+ export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1014
1035
  export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space';
1015
1036
  export type { Places };
1016
1037
  }
@@ -1411,7 +1432,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay' {
1411
1432
 
1412
1433
  declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1413
1434
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1414
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1435
+ import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node, Area } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1415
1436
  import type { Label, Marker, Model, Image, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
1416
1437
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1417
1438
  import type { InsetPaddingOption, Position } from '@mappedin/core-sdk';
@@ -1779,7 +1800,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1779
1800
  /**
1780
1801
  * A map element that can be focused on by the camera.
1781
1802
  */
1782
- export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node | EnterpriseLocation
1803
+ export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Area | Node | EnterpriseLocation
1783
1804
  /**
1784
1805
  * @experimental
1785
1806
  */
@@ -1814,7 +1835,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1814
1835
  /**
1815
1836
  * Defines the target for navigation operations.
1816
1837
  */
1817
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node;
1838
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node | Area;
1818
1839
  /**
1819
1840
  * Defines the special zone for navigation operations.
1820
1841
  */
@@ -2054,6 +2075,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
2054
2075
  *
2055
2076
  * | Value | Description |
2056
2077
  * |--------|-----------------------------------------------------------------------------------------------------------------------------------------|
2078
+ * | low | Colliders with this ranking have a low visibility priority and will be hidden in favor of higher-ranked colliders in crowded areas. |
2057
2079
  * | medium | Colliders with this ranking have a standard visibility priority and may be hidden in favor of higher-ranked colliders in crowded areas. |
2058
2080
  * | high | These colliders are given higher visibility priority than 'medium' priority. |
2059
2081
  * | always-visible | Colliders with this ranking will not be hidden, ensuring their constant visibility regardless of crowding. |
@@ -2678,7 +2700,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation' {
2678
2700
  import { type TDirectionInstruction } from '@mappedin/mappedin-js/mappedin-js/src';
2679
2701
  import type { Directions, GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
2680
2702
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
2681
- import type { FloorStack } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2703
+ import type { Floor, FloorStack } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2682
2704
  import { Path, Marker } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
2683
2705
  import type { RendererCore } from '@mappedin/core-sdk';
2684
2706
  /**
@@ -2873,6 +2895,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation' {
2873
2895
  * The current list of floor stacks along the navigation paths.
2874
2896
  */
2875
2897
  get floorStacks(): FloorStack[];
2898
+ /**
2899
+ * The current list of floors along the navigation paths.
2900
+ */
2901
+ get floors(): Floor[];
2876
2902
  /**
2877
2903
  * Sets the active path by index.
2878
2904
  */
@@ -3194,6 +3220,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location'
3194
3220
  mvfData: MVFEnterpriseLocation;
3195
3221
  categoryIds: string[];
3196
3222
  locationInstances?: EnterpriseLocation[];
3223
+ parentId?: string;
3197
3224
  });
3198
3225
  get categories(): EnterpriseCategory[];
3199
3226
  get coordinates(): Coordinate[];
@@ -3227,7 +3254,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue' {
3227
3254
  * It can be accessed using the {@link MapData.getByType()} method as shown below.
3228
3255
  *
3229
3256
  * ```typescript
3230
- * const venue = mapData.getByType('venue');
3257
+ * const venue = mapData.getByType('enterprise-venue');
3231
3258
  * ```
3232
3259
  *
3233
3260
  * Refer to the [EnterpriseVenue Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-venue) for more information.
@@ -3709,6 +3736,15 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
3709
3736
  */
3710
3737
  wallTopColor?: string;
3711
3738
  };
3739
+ /**
3740
+ * @experimental
3741
+ * @internal
3742
+ */
3743
+ multiFloorView?: {
3744
+ enabled?: boolean;
3745
+ floorHeight?: number;
3746
+ updateCameraElevationOnFloorChange?: boolean;
3747
+ };
3712
3748
  };
3713
3749
  /**
3714
3750
  * @internal
@@ -3884,6 +3920,93 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node' {
3884
3920
  export default Node;
3885
3921
  }
3886
3922
 
3923
+ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/area' {
3924
+ import type { AreaCollection } from '@mappedin/mvf';
3925
+ import { Coordinate, type MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
3926
+ import type Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
3927
+ import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
3928
+ /**
3929
+ * An Area represents some grouping of multiple pieces of geometry, not
3930
+ * necessarily bounded by walls or any other physical feature of the map.
3931
+ *
3932
+ * Areas are currently in a preview state, and may have changes to existing
3933
+ * functionality or new features added in the future.
3934
+ */
3935
+ class Area extends BaseMapData {
3936
+ #private;
3937
+ /**
3938
+ * @internal
3939
+ */
3940
+ static readonly __type = "area";
3941
+ /**
3942
+ * @internal
3943
+ */
3944
+ readonly __type = "area";
3945
+ /**
3946
+ * Checks if the provided instance is of type Area.
3947
+ *
3948
+ * @param instance The instance to check.
3949
+ * @returns {boolean} True if the instance is a Area, false otherwise.
3950
+ */
3951
+ static is(instance: object): instance is Area;
3952
+ /**
3953
+ * @internal
3954
+ */
3955
+ constructor(data: MapDataInternal, options: {
3956
+ floorId: string;
3957
+ mvfData: AreaCollection['features'][number];
3958
+ });
3959
+ /**
3960
+ * Gets the name of the area.
3961
+ *
3962
+ * @returns {string} The name of the area.
3963
+ */
3964
+ get name(): string;
3965
+ /**
3966
+ * Gets the external identifier of the area.
3967
+ *
3968
+ * @returns {string} The external ID of the area, or an empty string if no external ID exists.
3969
+ */
3970
+ get externalId(): string;
3971
+ /**
3972
+ * Gets the description of the area.
3973
+ *
3974
+ * @returns {string} The description of the area, or an empty string if no description exists.
3975
+ */
3976
+ get description(): string;
3977
+ /**
3978
+ * Gets the center {@link Coordinate} of the area.
3979
+ *
3980
+ * @returns {Coordinate} The area's center coordinate.
3981
+ */
3982
+ get center(): Coordinate;
3983
+ /**
3984
+ * Gets the {@link Floor} object associated with the area.
3985
+ *
3986
+ * @returns {Floor} The floor object.
3987
+ * @throws Will throw an error if the floor is not found.
3988
+ */
3989
+ get floor(): Floor;
3990
+ /**
3991
+ * Serializes the space data to JSON.
3992
+ *
3993
+ * @returns An object representing the space.
3994
+ */
3995
+ toJSON(): {
3996
+ id: string;
3997
+ name: string;
3998
+ floor: string;
3999
+ };
4000
+ /**
4001
+ * Cleans up resources used by the instance.
4002
+ *
4003
+ * @internal
4004
+ */
4005
+ destroy(): void;
4006
+ }
4007
+ export default Area;
4008
+ }
4009
+
3887
4010
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door' {
3888
4011
  import type { EntranceCollection } from '@mappedin/mvf';
3889
4012
  import Coordinate from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/coordinate';
@@ -4901,9 +5024,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor-sta
4901
5024
  }
4902
5025
 
4903
5026
  declare module '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation' {
4904
- import type { Feature, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, Point, SpaceCollection, SpaceProperties, Connection as MVFConnection, EntranceCollection, AnnotationCollection, ParsedMVF, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseVenue as MVFEnterpriseVenue } from '@mappedin/mvf';
5027
+ import type { Feature, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, Point, SpaceCollection, SpaceProperties, Connection as MVFConnection, EntranceCollection, AnnotationCollection, ParsedMVF, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseVenue as MVFEnterpriseVenue, AreaCollection, AreaId, EnterpriseLocationInstance } from '@mappedin/mvf';
4905
5028
  import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
4906
- import { Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
5029
+ import { Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Area } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
4907
5030
  import Node from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node';
4908
5031
  import EnterpriseLocation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
4909
5032
  import EnterpriseCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
@@ -4922,6 +5045,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation' {
4922
5045
  locationsById: Record<MVFEnterpriseLocationId, EnterpriseLocation>;
4923
5046
  categoriesById: Record<MVFEnterpriseCategoryId, EnterpriseCategory>;
4924
5047
  locationIdsByNodeId: Record<string, MVFEnterpriseLocationId[]>;
5048
+ areasById: Record<AreaId, Area>;
4925
5049
  venue: MVFEnterpriseVenue;
4926
5050
  spaceIdsByDestinationNodeId: Record<string, string[]>;
4927
5051
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
@@ -4939,9 +5063,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation' {
4939
5063
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
4940
5064
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
4941
5065
  mvfLocationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
5066
+ mvfAreasById: Record<AreaId, AreaCollection['features'][number]>;
4942
5067
  };
4943
5068
  export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "mvfFloorsById">;
4944
5069
  export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "mvfFloorStacksById">;
5070
+ export const processMVFAreas: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "areasById" | "mvfAreasById">;
4945
5071
  /**
4946
5072
  * @internal
4947
5073
  */
@@ -4951,6 +5077,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation' {
4951
5077
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
4952
5078
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
4953
5079
  locationsById: Record<string, EnterpriseLocation>;
5080
+ locationInstancesById: Record<string, EnterpriseLocationInstance>;
4954
5081
  categoriesById: Record<string, EnterpriseCategory>;
4955
5082
  venue: MVFEnterpriseVenue;
4956
5083
  };
@@ -4968,6 +5095,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation' {
4968
5095
  doorsByNodeId: Record<string, Door>;
4969
5096
  poisById: Record<string, PointOfInterest>;
4970
5097
  annotationsById: Record<string, Annotation>;
5098
+ areasById: Record<string, Area>;
4971
5099
  spaceIdsByDestinationNodeId: Record<string, string[]>;
4972
5100
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
4973
5101
  obstructionIdByEntranceId: Record<string, string>;
@@ -4985,10 +5113,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation' {
4985
5113
  geometry: Point;
4986
5114
  properties: import("@mappedin/mvf").AnnotationProperties;
4987
5115
  }>;
5116
+ mvfAreasById: Record<string, import("@mappedin/mvf").Area>;
4988
5117
  };
4989
5118
  }
4990
5119
 
4991
5120
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
5121
+ import type Area from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/area';
4992
5122
  import type Door from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door';
4993
5123
  import type Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
4994
5124
  import type Space from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space';
@@ -5004,7 +5134,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
5004
5134
  /**
5005
5135
  * Places are the main objects that can be searched for.
5006
5136
  */
5007
- export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation;
5137
+ export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
5008
5138
  export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
5009
5139
  export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
5010
5140
  export type LanguagePack = {
@@ -5119,6 +5249,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
5119
5249
  import type { GroupContainerState } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
5120
5250
  import type { CollisionRankingTier } from '@mappedin/mappedin-js/geojson/src/utils/collision-ranking-tier';
5121
5251
  import { z } from 'zod';
5252
+ import type { PackedBBoxes } from '@mappedin/mappedin-js/geojson/src/systems/collisions/system';
5122
5253
  /**
5123
5254
  * State reprsenting a Marker
5124
5255
  */
@@ -5228,6 +5359,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
5228
5359
  options: Required<AddMarkerOptions>;
5229
5360
  projection: Vector2;
5230
5361
  enabled: boolean;
5362
+ offscreen: boolean;
5231
5363
  activeStrategyIndex: number;
5232
5364
  strategyIndex: number;
5233
5365
  activeBoundingBox: {
@@ -5245,7 +5377,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
5245
5377
  };
5246
5378
  dirty: boolean;
5247
5379
  collisionDirty: boolean;
5248
- visibilityNeedsUpdate: boolean;
5380
+ visibilityNeedsUpdate: 'show' | 'hide' | false;
5249
5381
  constructor(contentHtml: string, options?: AddMarkerOptions);
5250
5382
  updateDimensions(width?: number, height?: number): void;
5251
5383
  visible: boolean;
@@ -5256,16 +5388,13 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
5256
5388
  name: MarkerAnchor;
5257
5389
  getBoundingBox: () => number[];
5258
5390
  }[];
5259
- toJSON(): {
5391
+ toPackedMessage(lockToCurrentStrategy?: boolean): {
5260
5392
  x: number;
5261
5393
  y: number;
5262
5394
  enabled: boolean;
5263
- id: string | number;
5264
5395
  rank: number;
5265
- bboxes: {
5266
- index: number;
5267
- boundingBox: any;
5268
- }[];
5396
+ bboxes: PackedBBoxes;
5397
+ lockedToStrategyIndex: number;
5269
5398
  shouldCollideWithScreenEdges: boolean;
5270
5399
  };
5271
5400
  destroy(): void;
@@ -5489,6 +5618,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/label' {
5489
5618
  import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
5490
5619
  import type { CollisionRankingTier } from '@mappedin/mappedin-js/geojson/src';
5491
5620
  import { z } from 'zod';
5621
+ import type { PackedBBoxes } from '@mappedin/mappedin-js/geojson/src/systems/collisions/system';
5492
5622
  export const addLabelOptionsSchema: z.ZodObject<{
5493
5623
  rank: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["low", "medium", "high", "always-visible"]>, z.ZodNumber]>>;
5494
5624
  interactive: z.ZodOptional<z.ZodBoolean>;
@@ -5935,7 +6065,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/label' {
5935
6065
  newStyle: TStyle;
5936
6066
  static testId: number;
5937
6067
  opacity: number;
5938
- visibilityNeedsUpdate: boolean;
6068
+ visibilityNeedsUpdate: 'show' | 'hide' | false;
5939
6069
  activeStrategyIndex: number;
5940
6070
  text: string;
5941
6071
  style: TStyle;
@@ -5945,6 +6075,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/label' {
5945
6075
  options: LabelOptions;
5946
6076
  visible: boolean;
5947
6077
  enabled: boolean;
6078
+ offscreen: boolean;
5948
6079
  activeBoundingBox: {
5949
6080
  x: number;
5950
6081
  y: number;
@@ -5968,21 +6099,20 @@ declare module '@mappedin/mappedin-js/geojson/src/components/label' {
5968
6099
  setEntity(): void;
5969
6100
  constructor(text: string, options: AddLabelOptions, state: RendererState);
5970
6101
  calculateMarkerSize(): void;
6102
+ get lowPriorityStrategyIndex(): 3 | -1;
5971
6103
  get strategies(): any[];
6104
+ animate: boolean;
5972
6105
  onStrategySelected: (strategyIndex: any) => void;
5973
6106
  updatePosition(): void;
5974
6107
  disable(): void;
5975
- toJSON(): {
6108
+ toPackedMessage(lockToCurrentStrategy?: boolean): {
5976
6109
  x: number;
5977
6110
  y: number;
5978
6111
  enabled: boolean;
5979
- id: string;
5980
6112
  rank: number;
5981
- bboxes: {
5982
- index: number;
5983
- boundingBox: any;
5984
- }[];
6113
+ bboxes: PackedBBoxes;
5985
6114
  shouldCollideWithScreenEdges: boolean;
6115
+ lockedToStrategyIndex: number;
5986
6116
  };
5987
6117
  destroy(): void;
5988
6118
  }
@@ -6107,6 +6237,10 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry-group' {
6107
6237
  * altitude of the geometry group
6108
6238
  */
6109
6239
  altitude?: number;
6240
+ /**
6241
+ * height of the geometry group
6242
+ */
6243
+ height?: number;
6110
6244
  };
6111
6245
  export type ChildUpdatable<T> = T extends LineStyle ? Partial<Pick<LineStyle, 'color' | 'opacity' | 'visible'>> : Partial<Pick<PaintStyle, 'color' | 'opacity' | 'visible'>>;
6112
6246
  export class GeometryGroupObject3D extends Object3D {
@@ -6142,7 +6276,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types/geometry' {
6142
6276
  }
6143
6277
 
6144
6278
  declare module '@mappedin/mappedin-js/geojson/src/types' {
6145
- import { Mesh, Object3D, InstancedMesh } from 'three';
6279
+ import { Mesh, Object3D, InstancedMesh, Camera } from 'three';
6146
6280
  import type { Geometry2D } from '@mappedin/mappedin-js/geojson/src/entities/geometry2d';
6147
6281
  import type { Position } from '@mappedin/mappedin-js/geojson/src/types/geometry';
6148
6282
  import type { GeometryState } from '@mappedin/mappedin-js/geojson/src/components/mesh';
@@ -6156,6 +6290,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
6156
6290
  import type { ShapeState } from '@mappedin/mappedin-js/geojson/src/components/custom';
6157
6291
  import type { Geometry3D } from '@mappedin/mappedin-js/geojson/src/entities';
6158
6292
  import type { Group as TweenGroup } from '@tweenjs/tween.js';
6293
+ import { MaterialSide } from '@mappedin/mappedin-js/geojson/src/components/style';
6159
6294
  /**
6160
6295
  * The state of an entity, which can be a geometry, geometry group, group container, path, model, label, or marker.
6161
6296
  */
@@ -6210,6 +6345,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
6210
6345
  outline?: boolean;
6211
6346
  showImage?: boolean;
6212
6347
  flipImageToFaceCamera?: boolean;
6348
+ side?: MaterialSide;
6213
6349
  };
6214
6350
  export type Shading = {
6215
6351
  start?: number;
@@ -6228,6 +6364,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
6228
6364
  join?: 'round' | 'bevel' | 'miter';
6229
6365
  shading?: Shading;
6230
6366
  outline?: boolean;
6367
+ side?: MaterialSide;
6231
6368
  };
6232
6369
  export type Layer = {
6233
6370
  id: string;
@@ -6443,6 +6580,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
6443
6580
  canvasHeight: number;
6444
6581
  /** Global group for all tweens */
6445
6582
  tweenGroup: TweenGroup;
6583
+ cameraObject: Camera;
6446
6584
  };
6447
6585
  }
6448
6586
 
@@ -7508,6 +7646,7 @@ declare module '@mappedin/mappedin-js/geojson/src/utils' {
7508
7646
  export function cyrb53(str: string, seed?: number): number;
7509
7647
  export const linearEase: (t: number) => number;
7510
7648
  export const quadEaseIn: (t: number) => number;
7649
+ export const easeIn: (x: number) => number;
7511
7650
  export const quadEaseOut: (t: number) => number;
7512
7651
  export function interpolate(value: number, inputMin: number, inputMax: number, outputMin: number, outputMax: number, easeFunc?: (t: number) => number): number;
7513
7652
  export function interpolateMulti(value: number, inputRange: number[], outputRange: number[], easeFunc?: (t: number) => number): number;
@@ -7824,6 +7963,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7824
7963
  import type { Space, Door, PointOfInterest, MapObject, Node, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7825
7964
  import { type GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
7826
7965
  import { FloorStackObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-object';
7966
+ export const FLOOR_HEIGHT = 5;
7827
7967
  export class GeojsonApiMapObject extends PubSub<{
7828
7968
  'floor-change': {
7829
7969
  reason?: TFloorChangeReason;
@@ -7842,6 +7982,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7842
7982
  path: Path;
7843
7983
  };
7844
7984
  }> {
7985
+ #private;
7845
7986
  floorStacksById: Map<string, FloorStackObject>;
7846
7987
  floorsById: Map<string, FloorObject>;
7847
7988
  currentFloorId: string;
@@ -7857,6 +7998,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
7857
7998
  get currentFloor(): FloorObject;
7858
7999
  /** @deprecated use `currentFloorStack.floorObjects` or `floorsById` instead */
7859
8000
  get floors(): FloorObject[];
8001
+ processFloorChange(floorId: string): void;
7860
8002
  setFloor(floorId: string, reason?: TFloorChangeReason): void;
7861
8003
  Models: {
7862
8004
  add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
@@ -7968,6 +8110,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/marker' {
7968
8110
  * Refer to the [Markers Guide](https://developer.mappedin.com/web-sdk/markers) for more information and interactive examples.
7969
8111
  */
7970
8112
  export class Marker {
8113
+ #private;
7971
8114
  /**
7972
8115
  * The marker's id
7973
8116
  */
@@ -7976,7 +8119,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/marker' {
7976
8119
  * @internal
7977
8120
  */
7978
8121
  static readonly __type = "Marker";
7979
- readonly target: Space | Door | Coordinate | Node;
8122
+ get target(): Coordinate | Space | Door | Node;
7980
8123
  /**
7981
8124
  * @internal
7982
8125
  */
@@ -7996,6 +8139,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/marker' {
7996
8139
  * @internal
7997
8140
  */
7998
8141
  constructor(id: string, contentEl: HTMLElement, target: Space | Door | Coordinate | Node);
8142
+ /**
8143
+ * @internal
8144
+ */
8145
+ updateTarget(target: Space | Door | Coordinate | Node): void;
7999
8146
  }
8000
8147
  }
8001
8148
 
@@ -8605,7 +8752,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation/index' {
8605
8752
  import { type TDirectionInstruction } from '@mappedin/mappedin-js/mappedin-js/src';
8606
8753
  import type { Directions, GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
8607
8754
  import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
8608
- import type { FloorStack } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8755
+ import type { Floor, FloorStack } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
8609
8756
  import { Path, Marker } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
8610
8757
  import type { RendererCore } from '@mappedin/core-sdk';
8611
8758
  /**
@@ -8800,6 +8947,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation/index' {
8800
8947
  * The current list of floor stacks along the navigation paths.
8801
8948
  */
8802
8949
  get floorStacks(): FloorStack[];
8950
+ /**
8951
+ * The current list of floors along the navigation paths.
8952
+ */
8953
+ get floors(): Floor[];
8803
8954
  /**
8804
8955
  * Sets the active path by index.
8805
8956
  */
@@ -9584,6 +9735,90 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-obje
9584
9735
  }
9585
9736
  }
9586
9737
 
9738
+ declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/system' {
9739
+ import { QuadTree } from '@packages/internal/quad-tree';
9740
+ import './style.scss';
9741
+ import type { MarkerComponent } from '@mappedin/mappedin-js/geojson/src/components/marker';
9742
+ import type LabelComponent from '@mappedin/mappedin-js/geojson/src/components/label';
9743
+ import { PubSub } from '@mappedin/mappedin-js/packages/common/pubsub';
9744
+ import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
9745
+ import type { TSerializedCollider, TSerializedColliderResponse } from '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor';
9746
+ import type { WatermarkPosition } from '@mappedin/mappedin-js/geojson/src/systems/watermark/system';
9747
+ export type TMessageEvent = MessageEvent<{
9748
+ msgId: string;
9749
+ colliders: TSerializedColliderResponse[];
9750
+ debug: {
9751
+ x: number;
9752
+ y: number;
9753
+ w: number;
9754
+ h: number;
9755
+ }[];
9756
+ }>;
9757
+ export type TMessage = {
9758
+ msgId: string;
9759
+ totalWidth: number;
9760
+ totalHeight: number;
9761
+ watermarkWidth: number;
9762
+ watermarkHeight: number;
9763
+ watermarkPosition: WatermarkPosition;
9764
+ colliders: TSerializedCollider[];
9765
+ devicePixelRatio: number;
9766
+ };
9767
+ type TCollisionSystemEvent = {
9768
+ 'visibility-changed': undefined;
9769
+ };
9770
+ export type PackedBBox = [x: number, y: number, w: number, h: number, index: number];
9771
+ export type PackedBBoxes = PackedBBox[];
9772
+ export type PackedCollider = [
9773
+ bboxes: PackedBBoxes,
9774
+ enabled: 0 | 1,
9775
+ alwaysVisible: 0 | 1,
9776
+ x: number,
9777
+ y: number,
9778
+ shouldCollideWithScreenEdges?: 0 | 1,
9779
+ onlyExposeStrategyIndex?: number
9780
+ ];
9781
+ export type PackedMessage = [
9782
+ colliders: PackedCollider[],
9783
+ devicePixelRatio: number,
9784
+ totalHeight: number,
9785
+ totalWidth: number,
9786
+ watermarkWidth: number,
9787
+ watermarkHeight: number,
9788
+ watermarkPosition: WatermarkPosition
9789
+ ];
9790
+ export class CollisionSystem extends PubSub<TCollisionSystemEvent, keyof TCollisionSystemEvent> {
9791
+ collidersDirty: boolean;
9792
+ packedMessage: PackedMessage;
9793
+ visibleCollidersQTree: QuadTree<{
9794
+ entityId: string | number;
9795
+ }>;
9796
+ interactiveCollidersQTree: QuadTree<{
9797
+ entityId: string | number;
9798
+ }>;
9799
+ coreState: RendererState;
9800
+ constructor(debugCanvas: HTMLCanvasElement, coreState: RendererState, worker?: Worker);
9801
+ postMessage: () => void;
9802
+ showCollisionBoxes: () => void;
9803
+ hideCollisionBoxes: () => void;
9804
+ currentMsgId: string;
9805
+ working: boolean;
9806
+ componentArray: (MarkerComponent | LabelComponent)[];
9807
+ update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, useAllStrategies?: boolean) => void;
9808
+ resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
9809
+ /**
9810
+ * Resolve collisions
9811
+ */
9812
+ resolve: (e: MessageEvent<{
9813
+ msgId: string;
9814
+ colliders: TSerializedColliderResponse[];
9815
+ }>) => void;
9816
+ drawDebug: () => void;
9817
+ destroy: () => void;
9818
+ }
9819
+ export {};
9820
+ }
9821
+
9587
9822
  declare module '@mappedin/mappedin-js/geojson/src/entities/geometry3d' {
9588
9823
  import { Object3D } from 'three';
9589
9824
  import type { Mesh, Object3DEventMap, ShaderMaterial, Texture, TubeGeometry, Color, Vector2 } from 'three';
@@ -9919,6 +10154,62 @@ declare module '@mappedin/mappedin-js/geojson/src/entities' {
9919
10154
  export { Geometry3D, Geometry3DComponents, type PathMesh, type PatMeshContainer, type PathMaterial, } from '@mappedin/mappedin-js/geojson/src/entities/geometry3d';
9920
10155
  }
9921
10156
 
10157
+ declare module '@mappedin/mappedin-js/geojson/src/components/style' {
10158
+ import type { LineStyle } from '@mappedin/mappedin-js/geojson/src/renderer';
10159
+ export const DEFAULT_COLOR = "#ffffff";
10160
+ export const DEFAULT_HEIGHT = 0.1;
10161
+ /**
10162
+ * Determines how a material is rendered, back face, front face or both (default)
10163
+ */
10164
+ export type MaterialSide = 'back' | 'front' | 'double';
10165
+ type Style = {
10166
+ color: string;
10167
+ width: number;
10168
+ opacity: number;
10169
+ visible: boolean;
10170
+ height: number;
10171
+ altitude: number;
10172
+ join: LineStyle['join'];
10173
+ cap: LineStyle['cap'];
10174
+ topColor?: string;
10175
+ texture?: string;
10176
+ topTexture?: string;
10177
+ outline: boolean;
10178
+ showImage: boolean;
10179
+ showTextLabel: boolean;
10180
+ flipImageToFaceCamera: boolean;
10181
+ flipTextToFaceCamera: boolean;
10182
+ url?: string;
10183
+ side?: MaterialSide;
10184
+ };
10185
+ export class StyleComponent implements Style {
10186
+ initialColor: string;
10187
+ color: string;
10188
+ topColor?: string;
10189
+ topTexture?: string;
10190
+ texture?: string;
10191
+ hoverColor?: string;
10192
+ dirty: boolean;
10193
+ visible: boolean;
10194
+ opacity: number;
10195
+ width: number;
10196
+ height: number;
10197
+ initialHeight: number;
10198
+ altitude: number;
10199
+ join: LineStyle['join'];
10200
+ cap: LineStyle['cap'];
10201
+ outline: boolean;
10202
+ showImage: boolean;
10203
+ showTextLabel: boolean;
10204
+ flipImageToFaceCamera: boolean;
10205
+ flipTextToFaceCamera: boolean;
10206
+ url?: string;
10207
+ side: MaterialSide;
10208
+ constructor(style?: Partial<Style>);
10209
+ }
10210
+ export {};
10211
+ }
10212
+
9922
10213
  declare module '@mappedin/mappedin-js/geojson/src/types/options' {
9923
10214
  import type { Position } from '@mappedin/mappedin-js/geojson/src/types/geometry';
9924
10215
  import type { Map as MapLibreMap } from '@mappedin/mappedin-js/packages/outdoor-context-v4';
@@ -10047,82 +10338,6 @@ declare module '@mappedin/mappedin-js/packages/common/pubsub' {
10047
10338
  }
10048
10339
  }
10049
10340
 
10050
- declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/system' {
10051
- import { QuadTree } from '@packages/internal/quad-tree';
10052
- import './style.scss';
10053
- import type { MarkerComponent } from '@mappedin/mappedin-js/geojson/src/components/marker';
10054
- import type LabelComponent from '@mappedin/mappedin-js/geojson/src/components/label';
10055
- import { PubSub } from '@mappedin/mappedin-js/packages/common/pubsub';
10056
- import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
10057
- import type { TSerializedCollider, TSerializedColliderResponse } from '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor';
10058
- import type { WatermarkPosition } from '@mappedin/mappedin-js/geojson/src/systems/watermark/system';
10059
- export type TMessageEvent = MessageEvent<{
10060
- msgId: string;
10061
- colliders: TSerializedColliderResponse[];
10062
- debug: {
10063
- x: number;
10064
- y: number;
10065
- w: number;
10066
- h: number;
10067
- }[];
10068
- }>;
10069
- export type TMessage = {
10070
- msgId: string;
10071
- totalWidth: number;
10072
- totalHeight: number;
10073
- watermarkWidth: number;
10074
- watermarkHeight: number;
10075
- watermarkPosition: WatermarkPosition;
10076
- colliders: TSerializedCollider[];
10077
- devicePixelRatio: number;
10078
- };
10079
- type TCollisionSystemEvent = {
10080
- 'visibility-changed': undefined;
10081
- };
10082
- export type PackedBBox = [x: number, y: number, w: number, h: number];
10083
- export type PackedBBoxes = PackedBBox[];
10084
- export type PackedCollider = [bboxes: PackedBBoxes, enabled: 0 | 1, alwaysVisible: 0 | 1, x: number, y: number];
10085
- export type PackedMessage = [
10086
- colliders: PackedCollider[],
10087
- devicePixelRatio: number,
10088
- totalHeight: number,
10089
- totalWidth: number,
10090
- watermarkWidth: number,
10091
- watermarkHeight: number,
10092
- watermarkPosition: WatermarkPosition
10093
- ];
10094
- export class CollisionSystem extends PubSub<TCollisionSystemEvent, keyof TCollisionSystemEvent> {
10095
- dirty: boolean;
10096
- packedMessage: PackedMessage;
10097
- visibleCollidersQTree: QuadTree<{
10098
- entityId: string | number;
10099
- }>;
10100
- interactiveCollidersQTree: QuadTree<{
10101
- entityId: string | number;
10102
- }>;
10103
- coreState: RendererState;
10104
- constructor(debugCanvas: HTMLCanvasElement, coreState: RendererState, worker?: Worker);
10105
- postMessage: () => void;
10106
- showCollisionBoxes: () => void;
10107
- hideCollisionBoxes: () => void;
10108
- currentMsgId: string;
10109
- working: boolean;
10110
- componentArray: (MarkerComponent | LabelComponent)[];
10111
- update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition) => void;
10112
- resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
10113
- /**
10114
- * Resolve collisions
10115
- */
10116
- resolve: (e: MessageEvent<{
10117
- msgId: string;
10118
- colliders: TSerializedColliderResponse[];
10119
- }>) => void;
10120
- drawDebug: () => void;
10121
- destroy: () => void;
10122
- }
10123
- export {};
10124
- }
10125
-
10126
10341
  declare module '@mappedin/mappedin-js/geojson/src/systems/interactions' {
10127
10342
  export { InteractionSystem } from '@mappedin/mappedin-js/geojson/src/systems/interactions/system';
10128
10343
  }
@@ -10200,6 +10415,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/2d-projection/system'
10200
10415
  declare module '@mappedin/mappedin-js/geojson/src/systems/2d-draw/system' {
10201
10416
  import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
10202
10417
  import LabelComponent from '@mappedin/mappedin-js/geojson/src/components/label';
10418
+ export const INACTIVE_MARKER_SIZE_NO_ICON = 3.5;
10203
10419
  enum TEXTALIGN {
10204
10420
  LEFT = "left",
10205
10421
  CENTER = "center",
@@ -10274,10 +10490,11 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/2d-visibility/system'
10274
10490
  }> {
10275
10491
  state: RendererState;
10276
10492
  constructor(state: RendererState);
10277
- animating: Map<LabelComponent, number>;
10493
+ animating: Map<LabelComponent, [number, number]>;
10278
10494
  isAnimating: boolean;
10279
10495
  startTime: number;
10280
- duration: number;
10496
+ showDuration: number;
10497
+ hideDuration: number;
10281
10498
  update: () => void;
10282
10499
  playAnimations: () => void;
10283
10500
  _playAnimations(): void;
@@ -10320,6 +10537,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/dom-draw/system' {
10320
10537
  import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
10321
10538
  export const ANIMATION_DURATION = 300;
10322
10539
  export class DOMDrawSystem {
10540
+ #private;
10323
10541
  state: RendererState;
10324
10542
  constructor(state: RendererState);
10325
10543
  update(isUserInteracting: boolean): void;
@@ -10792,10 +11010,15 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/exporter/exporter' {
10792
11010
  }
10793
11011
 
10794
11012
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object' {
10795
- import type { FloorProperties as MVFFloor, ParsedMVF } from '@mappedin/mvf';
11013
+ import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
10796
11014
  import type { RendererCore } from '@mappedin/core-sdk';
10797
11015
  import type { AggregatedStyleMap } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils';
10798
11016
  import type { TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
11017
+ class Layer {
11018
+ containerId: string;
11019
+ layers: Map<string, string>;
11020
+ constructor(containerId: string, layers?: Map<any, any>);
11021
+ }
10799
11022
  export class FloorObject implements MVFFloor {
10800
11023
  id: string;
10801
11024
  name?: string;
@@ -10805,11 +11028,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object'
10805
11028
  metadata?: Partial<Record<string, unknown>> | undefined;
10806
11029
  shortName?: string | undefined;
10807
11030
  subtitle?: string | undefined;
10808
- layers: Map<string, string>;
11031
+ layers: Map<string, Layer>;
11032
+ footprint?: Feature<Polygon | MultiPolygon | null, MVFFloor>;
10809
11033
  floorStackId: string;
10810
- constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
11034
+ constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, multiFloorView: Required<TShow3DMapOptions['multiFloorView']>, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
10811
11035
  load: () => this;
10812
11036
  }
11037
+ export {};
10813
11038
  }
10814
11039
 
10815
11040
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
@@ -10875,54 +11100,33 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-ob
10875
11100
  }
10876
11101
  }
10877
11102
 
10878
- declare module '@mappedin/mappedin-js/geojson/src/components/style' {
10879
- import type { LineStyle } from '@mappedin/mappedin-js/geojson/src/renderer';
10880
- export const DEFAULT_COLOR = "#ffffff";
10881
- export const DEFAULT_HEIGHT = 0.1;
10882
- type Style = {
10883
- color: string;
10884
- width: number;
10885
- opacity: number;
10886
- visible: boolean;
10887
- height: number;
10888
- altitude: number;
10889
- join: LineStyle['join'];
10890
- cap: LineStyle['cap'];
10891
- topColor?: string;
10892
- texture?: string;
10893
- topTexture?: string;
10894
- outline: boolean;
10895
- showImage: boolean;
10896
- showTextLabel: boolean;
10897
- flipImageToFaceCamera: boolean;
10898
- flipTextToFaceCamera: boolean;
10899
- url?: string;
11103
+ declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor' {
11104
+ import { Rectangle } from '@packages/internal/quad-tree';
11105
+ export type TSerializedCollider = {
11106
+ rank: number;
11107
+ enabled: boolean;
11108
+ x: number;
11109
+ y: number;
11110
+ bboxes: {
11111
+ index: number;
11112
+ boundingBox: [number, number, number, number];
11113
+ boundingRect?: Rectangle;
11114
+ }[];
11115
+ shouldCollideWithScreenEdges?: boolean;
11116
+ lockedToStrategyIndex?: number;
11117
+ visible?: boolean;
11118
+ };
11119
+ export type TSerializedColliderResponse = [number, 1 | 0, Rectangle?];
11120
+ export function processColliders(colliders: TSerializedCollider[], totalWidth: any, totalHeight: any, watermarkWidth: any, watermarkHeight: any, watermarkPosition: any, msgId?: string): {
11121
+ msgId: string;
11122
+ colliders: TSerializedColliderResponse[];
11123
+ debug: {
11124
+ x: number;
11125
+ y: number;
11126
+ w: number;
11127
+ h: number;
11128
+ }[];
10900
11129
  };
10901
- export class StyleComponent implements Style {
10902
- initialColor: string;
10903
- color: string;
10904
- topColor?: string;
10905
- topTexture?: string;
10906
- texture?: string;
10907
- hoverColor?: string;
10908
- dirty: boolean;
10909
- visible: boolean;
10910
- opacity: number;
10911
- width: number;
10912
- height: number;
10913
- initialHeight: number;
10914
- altitude: number;
10915
- join: LineStyle['join'];
10916
- cap: LineStyle['cap'];
10917
- outline: boolean;
10918
- showImage: boolean;
10919
- showTextLabel: boolean;
10920
- flipImageToFaceCamera: boolean;
10921
- flipTextToFaceCamera: boolean;
10922
- url?: string;
10923
- constructor(style?: Partial<Style>);
10924
- }
10925
- export {};
10926
11130
  }
10927
11131
 
10928
11132
  declare module '@mappedin/mappedin-js/geojson/src/entities/utils' {
@@ -10940,7 +11144,7 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/utils' {
10940
11144
  export function updateGroupColor(entity: GeometryGroupObject3D, state: RendererState, update: Partial<Pick<GeometryGroupState, 'color' | 'topColor'>>): boolean | undefined;
10941
11145
  export function updateGroupShading(entity: GeometryGroupObject3D, update?: GeometryGroupState['shading']): boolean;
10942
11146
  export function updateImageProps(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
10943
- export function updateHeight(entity: Geometry3D, update?: number): boolean;
11147
+ export function updateHeight(entity: Geometry3D | GeometryGroupObject3D, state: RendererState, update?: number): boolean;
10944
11148
  export function updateColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
10945
11149
  export function updatePosition(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Position | undefined, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): void;
10946
11150
  export function updateParent(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: GroupContainerObject3D | undefined): boolean;
@@ -10961,33 +11165,6 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/utils' {
10961
11165
  export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
10962
11166
  }
10963
11167
 
10964
- declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor' {
10965
- import { Rectangle } from '@packages/internal/quad-tree';
10966
- export type TSerializedCollider = {
10967
- rank: number;
10968
- enabled: boolean;
10969
- x: number;
10970
- y: number;
10971
- bboxes: {
10972
- index: number;
10973
- boundingBox: [number, number, number, number];
10974
- boundingRect?: Rectangle;
10975
- }[];
10976
- shouldCollideWithScreenEdges?: boolean;
10977
- };
10978
- export type TSerializedColliderResponse = [number, boolean, Rectangle?];
10979
- export function processColliders(colliders: TSerializedCollider[], totalWidth: any, totalHeight: any, watermarkWidth: any, watermarkHeight: any, watermarkPosition: any, msgId?: string): {
10980
- msgId: string;
10981
- colliders: TSerializedColliderResponse[];
10982
- debug: {
10983
- x: number;
10984
- y: number;
10985
- w: number;
10986
- h: number;
10987
- }[];
10988
- };
10989
- }
10990
-
10991
11168
  declare module '@mappedin/mappedin-js/geojson/src/systems/interactions/system' {
10992
11169
  import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
10993
11170
  import { Raycaster } from 'three';
@@ -11039,7 +11216,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/interactions/system' {
11039
11216
  entityId: Geometry2D['id'];
11040
11217
  }>;
11041
11218
  _container: HTMLCanvasElement;
11042
- constructor(container: HTMLCanvasElement, coreState: RendererState, camera: PerspectiveCamera, cameraPlane: Mesh);
11219
+ constructor(container: HTMLCanvasElement, coreState: RendererState, camera: PerspectiveCamera, cameraPlane: Mesh, isUserInteracting: () => boolean);
11043
11220
  updateQuadtree(takeIT: QuadTree<{
11044
11221
  entityId: Geometry2D['id'];
11045
11222
  }>): void;
@@ -11119,6 +11296,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/camera/system' {
11119
11296
  #private;
11120
11297
  dirty: boolean;
11121
11298
  zoomDirty: boolean;
11299
+ rotationDirty: boolean;
11122
11300
  /**
11123
11301
  * Factor that controls how fast zooming in and out happens in response to mouse wheel events
11124
11302
  *