@mappedin/react-sdk 6.0.1-beta.25 → 6.0.1-beta.26

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.
@@ -655,7 +655,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
655
655
  import { Search } from '@mappedin/react-sdk/mappedin-js/src/search';
656
656
  import type { TNavigationTarget, TGetDirectionsOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
657
657
  import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
658
- import { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
658
+ import type { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
659
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
659
660
  /**
660
661
  * A WeakMap to associate {@link MapData} instances with their internal representation.
661
662
  * We need a way to get the internal data object from the API
@@ -843,6 +844,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
843
844
  */
844
845
  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 'facade' ? Facade | 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;
845
846
  getById(type: string, id: string): object | undefined;
847
+ /**
848
+ * Get the GeoJSON for a map data object on the map.
849
+ * @param mapDataObject
850
+ */
851
+ getGeoJSON<T extends IGeoJSONData>(mapDataObject: T): T['geoJSON'];
846
852
  /**
847
853
  * Changes the language of the map data.
848
854
  *
@@ -1908,25 +1914,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1908
1914
  /**
1909
1915
  * Defines the state for a label when its appearance is updated.
1910
1916
  */
1911
- export type TLabelState = {
1917
+ export type TLabelState = Omit<Required<TAddLabelOptions>, 'id'> & {
1912
1918
  text: string;
1913
1919
  type: 'label';
1914
- /**
1915
- * Appearance settings for the label.
1916
- */
1917
- appearance: TLabelAppearance;
1918
- /**
1919
- * Priority level of the label, used for determining display order.
1920
- */
1921
- rank: TCollisionRankingTier | 'initial';
1922
- /**
1923
- * Whether the label is interactive.
1924
- */
1925
- interactive: boolean;
1926
- /**
1927
- * Whether the label is enabled.
1928
- */
1929
- enabled: boolean;
1930
1920
  };
1931
1921
  /**
1932
1922
  * Defines the state for a model when its appearance is updated.
@@ -2006,30 +1996,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2006
1996
  */
2007
1997
  opacity: number;
2008
1998
  };
2009
- export type TMarkerState = {
1999
+ export type TMarkerState = Omit<Required<TAddMarkerOptions>, 'id'> & {
2010
2000
  type: 'marker';
2011
2001
  /**
2012
2002
  * HTML element for the marker.
2013
2003
  */
2014
2004
  element: HTMLElement;
2015
- /**
2016
- * Priority level of the marker, used for determining display order.
2017
- */
2018
- rank: TCollisionRankingTier | 'initial';
2019
- /**
2020
- * Whether the marker is interactive.
2021
- * `true` indicates that the marker will be registered in the SDK interaction events.
2022
- * `'pointer-events-auto'` indicates that the marker will receive browser pointer events.
2023
- */
2024
- interactive: boolean | 'pointer-events-auto';
2025
- /**
2026
- * Whether the marker is enabled.
2027
- */
2028
- enabled: boolean;
2029
- /**
2030
- * The current coordinate of the marker.
2031
- */
2032
- coordinate: Coordinate;
2033
2005
  };
2034
2006
  /**
2035
2007
  * Represents the state of a shape.
@@ -2133,6 +2105,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2133
2105
  * Easing function to use for the animation.
2134
2106
  */
2135
2107
  easing?: TEasingFunction;
2108
+ /**
2109
+ * Whether the current animation will be interrupted, or must complete before starting any new animations
2110
+ * @default: true
2111
+ */
2112
+ interruptible?: boolean;
2136
2113
  };
2137
2114
  /**
2138
2115
  * Options for controlling animations on the map.
@@ -2197,6 +2174,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2197
2174
  vertical?: number;
2198
2175
  };
2199
2176
  screenOffsets?: InsetPaddingOption;
2177
+ /**
2178
+ * Whether the current animation will be interrupted, or must complete before starting any new animations
2179
+ * @default: true
2180
+ */
2181
+ interruptible?: boolean;
2200
2182
  };
2201
2183
  /**
2202
2184
  * A map element that can be focused on by the camera.
@@ -2640,7 +2622,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2640
2622
  * Optional. Determines the collision ranking tier of the marker, which influences its visibility in relation to other colliders.
2641
2623
  * For the possible values ('medium', 'high', 'always-visible') and their impact on label visibility, see {@link TCollisionRankingTier}.
2642
2624
  */
2643
- rank?: TCollisionRankingTier;
2625
+ rank?: TCollisionRankingTier | 'initial';
2644
2626
  /**
2645
2627
  * Optional. Specifies the anchor point of the marker, determining its position relative to its coordinates.
2646
2628
  * If a list is provided, the marker will be anchored to the first anchor point that is available.
@@ -2657,10 +2639,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2657
2639
  * @default false
2658
2640
  */
2659
2641
  interactive?: boolean | 'pointer-events-auto';
2660
- /**
2661
- * Optional layer to attach the {@link Marker} to.
2662
- */
2663
- layer?: string;
2664
2642
  /**
2665
2643
  * @internal
2666
2644
  */
@@ -2670,11 +2648,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2670
2648
  */
2671
2649
  dynamicResize?: boolean;
2672
2650
  /**
2673
- * Whether the marker should stop event propagation.
2674
- * @internal
2675
- * @default false
2651
+ * Whether the marker is enabled.
2676
2652
  */
2677
- stopPropagation?: boolean;
2653
+ enabled?: boolean;
2678
2654
  };
2679
2655
  /**
2680
2656
  * Options for creating a new {@link Label} with {@link Labels.add}.
@@ -2684,31 +2660,24 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2684
2660
  * Optional. Determines the collision ranking tier of the label, which influences its visibility in relation to other colliders.
2685
2661
  * For the possible values ('medium', 'high', 'always-visible') and their impact on label visibility, see {@link TCollisionRankingTier}.
2686
2662
  */
2687
- rank?: TCollisionRankingTier;
2663
+ rank?: TCollisionRankingTier | 'initial';
2688
2664
  /**
2689
2665
  * Customize the appearance of the {@link Label} and its pin
2690
2666
  */
2691
2667
  appearance?: TLabelAppearance;
2692
- /**
2693
- * Group analytics based ranking
2694
- *
2695
- * @default false
2696
- */
2697
- groupRankingByCategory?: boolean;
2698
2668
  /**
2699
2669
  * Whether the Label should be clickable.
2700
2670
  * @default false
2701
2671
  */
2702
2672
  interactive?: boolean;
2703
- /**
2704
- * Optional layer to attach the Label to.
2705
- * If not provided, this will be empty.
2706
- */
2707
- layer?: string;
2708
2673
  /**
2709
2674
  * @internal
2710
2675
  */
2711
2676
  id?: string;
2677
+ /**
2678
+ * Whether the label is enabled.
2679
+ */
2680
+ enabled?: boolean;
2712
2681
  };
2713
2682
  export type TBlueDotOptions = {
2714
2683
  /**
@@ -3897,6 +3866,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3897
3866
  }
3898
3867
  }
3899
3868
 
3869
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3870
+ import type Area from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area';
3871
+ import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
3872
+ import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
3873
+ import type Space from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
3874
+ import type PointOfInterest from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi';
3875
+ import type Annotation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation';
3876
+ import type Connection from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection';
3877
+ import type MapObject from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object';
3878
+ import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature } from '@mappedin/mvf';
3879
+ import type { PartialExcept } from '@mappedin/mvf/dist/locale';
3880
+ import type { LocalePackUrls } from '@packages/internal/mvf-utils';
3881
+ import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
3882
+ import type { EnvControl } from '@packages/internal/mvf-utils/mvf-utils';
3883
+ /**
3884
+ * Places are the main objects that can be searched for.
3885
+ */
3886
+ export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
3887
+ export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
3888
+ export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
3889
+ export type LanguagePack = {
3890
+ type: 'downloaded';
3891
+ data: ParsedMVFLocalePack;
3892
+ optimized: {
3893
+ locations: Record<string, LocationWithLocale> | undefined;
3894
+ categories: Record<string, CategoryWithLocale> | undefined;
3895
+ };
3896
+ } | {
3897
+ type: 'initial';
3898
+ optimized: {
3899
+ locations: Record<string, MvfEnterpriseLocation>;
3900
+ categories: Record<string, MvfEnterpriseCategory>;
3901
+ };
3902
+ };
3903
+ export type TMapDataInternalOptions = {
3904
+ env?: EnvControl;
3905
+ enterprise?: boolean;
3906
+ outdoorViewToken?: string;
3907
+ localePacksUrls?: LocalePackUrls;
3908
+ languagePacks?: LanguagePackHydrationItem[];
3909
+ binaryBundle?: Uint8Array;
3910
+ sasToken?: string;
3911
+ };
3912
+ /**
3913
+ * A class that implements IGeoJSONData has a underlying GeoJSON datathat can be accessed.
3914
+ */
3915
+ export interface IGeoJSONData {
3916
+ /** Gets the underlying GeoJSON Feature representation of this object. */
3917
+ geoJSON: Feature<any, null>;
3918
+ }
3919
+ }
3920
+
3900
3921
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform' {
3901
3922
  import type { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
3902
3923
  /**
@@ -3948,13 +3969,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3948
3969
  import type { EnterpriseLocation, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3949
3970
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
3950
3971
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
3972
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
3951
3973
  /**
3952
3974
  * A class representing {@link Path} node data within the map.
3953
3975
  *
3954
3976
  * Nodes are used to define points in the map's pathfinding graph.
3955
3977
  *
3956
3978
  */
3957
- class Node extends BaseMetaData {
3979
+ class Node extends BaseMetaData implements IGeoJSONData {
3958
3980
  #private;
3959
3981
  /**
3960
3982
  * @internal
@@ -4004,6 +4026,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
4004
4026
  * @returns {Node[]} An array of neighboring Node objects.
4005
4027
  */
4006
4028
  get neighbors(): Node[];
4029
+ /**
4030
+ * Gets the underlying GeoJSON Feature representation of this Node.
4031
+ */
4032
+ get geoJSON(): {
4033
+ properties: null;
4034
+ type: import("@mappedin/mvf").FeatureType;
4035
+ geometry: import("@mappedin/mvf").Point;
4036
+ };
4007
4037
  /**
4008
4038
  * Serializes the node data to JSON.
4009
4039
  *
@@ -4034,6 +4064,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
4034
4064
  import { Coordinate, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4035
4065
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4036
4066
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4067
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4037
4068
  /**
4038
4069
  * An Area represents some grouping of multiple pieces of geometry, not
4039
4070
  * necessarily bounded by walls or any other physical feature of the map.
@@ -4041,7 +4072,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
4041
4072
  * Areas are currently in a preview state, and may have changes to existing
4042
4073
  * functionality or new features added in the future.
4043
4074
  */
4044
- class Area extends BaseMapData {
4075
+ class Area extends BaseMapData implements IGeoJSONData {
4045
4076
  #private;
4046
4077
  /**
4047
4078
  * @internal
@@ -4096,6 +4127,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area' {
4096
4127
  * @throws Will throw an error if the floor is not found.
4097
4128
  */
4098
4129
  get floor(): Floor;
4130
+ /**
4131
+ * Gets the underlying GeoJSON Feature representation of this Area.
4132
+ */
4133
+ get geoJSON(): {
4134
+ properties: null;
4135
+ type: import("@mappedin/mvf").FeatureType;
4136
+ geometry: import("@mappedin/mvf").Polygon;
4137
+ };
4099
4138
  /**
4100
4139
  * Serializes the space data to JSON.
4101
4140
  *
@@ -4122,6 +4161,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4122
4161
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4123
4162
  import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4124
4163
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4164
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4125
4165
  /**
4126
4166
  * A class representing door data within the map.
4127
4167
  *
@@ -4150,7 +4190,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4150
4190
  * Refer to the [Textures & Colors Guide](https://developer.mappedin.com/web-sdk/images-textures#textures--colors) for more information and interactive examples.
4151
4191
  *
4152
4192
  */
4153
- class Door extends BaseMapData {
4193
+ class Door extends BaseMapData implements IGeoJSONData {
4154
4194
  #private;
4155
4195
  /**
4156
4196
  * @internal
@@ -4209,6 +4249,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4209
4249
  * Gets whether this door is an exterior door.
4210
4250
  */
4211
4251
  get isExterior(): boolean;
4252
+ /**
4253
+ * Gets the underlying GeoJSON Feature representation of this Door.
4254
+ */
4255
+ get geoJSON(): {
4256
+ properties: null;
4257
+ type: import("@mappedin/mvf").FeatureType;
4258
+ geometry: import("@mappedin/mvf").LineString;
4259
+ };
4212
4260
  /**
4213
4261
  * Converts the door information to a JSON object.
4214
4262
  *
@@ -4241,6 +4289,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4241
4289
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4242
4290
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4243
4291
  import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
4292
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4244
4293
  /**
4245
4294
  * Represents the various types of spaces that can be defined within a map.
4246
4295
  * - 'room': A standard room or enclosed area.
@@ -4258,7 +4307,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4258
4307
  *
4259
4308
  * Refer to the [Spaces Guide](https://developer.mappedin.com/web-sdk/spaces) for more information and interactive examples.
4260
4309
  */
4261
- class Space extends BaseMapData {
4310
+ class Space extends BaseMapData implements IGeoJSONData {
4262
4311
  #private;
4263
4312
  /**
4264
4313
  * @internal
@@ -4268,7 +4317,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4268
4317
  * @internal
4269
4318
  */
4270
4319
  readonly __type = "space";
4271
- getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, import("@mappedin/mvf").SpaceProperties>;
4320
+ getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Point, import("@mappedin/mvf").SpaceProperties>;
4272
4321
  /**
4273
4322
  * Checks if the provided instance is of type Space.
4274
4323
  *
@@ -4330,6 +4379,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4330
4379
  * @returns {Coordinate} The space's center coordinate.
4331
4380
  */
4332
4381
  get center(): Coordinate;
4382
+ /**
4383
+ * Gets the underlying GeoJSON Feature representation of this Space.
4384
+ */
4385
+ get geoJSON(): {
4386
+ properties: null;
4387
+ type: import("@mappedin/mvf").FeatureType;
4388
+ geometry: import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Point;
4389
+ };
4333
4390
  /**
4334
4391
  * Serializes the space data to JSON.
4335
4392
  *
@@ -4589,6 +4646,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4589
4646
  import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4590
4647
  import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
4591
4648
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4649
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4592
4650
  /**
4593
4651
  * A class representing generic map object data within the map.
4594
4652
  *
@@ -4597,7 +4655,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4597
4655
  * MapObject appearance can be customized by changing the color or adding a texture to its top or sides.
4598
4656
  * Refer to the [Textures & Colors Guide](https://developer.mappedin.com/web-sdk/images-textures#textures--colors) for more information and interactive examples.
4599
4657
  */
4600
- export class MapObject extends BaseMapData {
4658
+ export class MapObject extends BaseMapData implements IGeoJSONData {
4601
4659
  #private;
4602
4660
  /**
4603
4661
  * @internal
@@ -4658,6 +4716,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4658
4716
  * @returns {Coordinate} The object's center coordinate.
4659
4717
  */
4660
4718
  get center(): Coordinate;
4719
+ /**
4720
+ * Gets the underlying GeoJSON Feature representation of this Object.
4721
+ */
4722
+ get geoJSON(): {
4723
+ properties: null;
4724
+ type: import("@mappedin/mvf").FeatureType;
4725
+ geometry: import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString;
4726
+ };
4661
4727
  /**
4662
4728
  * Serializes the MapObject data to JSON.
4663
4729
  *
@@ -4760,13 +4826,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4760
4826
  import type { Floor, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4761
4827
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4762
4828
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4829
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4763
4830
  /**
4764
4831
  * A class representing point of interest data within the map.
4765
4832
  *
4766
4833
  * Points of interest are used to represent specific points
4767
4834
  * on the map with additional information(e.g. ATMs, Water Fountains).
4768
4835
  */
4769
- class PointOfInterest extends BaseMapData {
4836
+ class PointOfInterest extends BaseMapData implements IGeoJSONData {
4770
4837
  #private;
4771
4838
  /**
4772
4839
  * @internal
@@ -4821,6 +4888,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4821
4888
  * @returns {string} The external ID of the POI.
4822
4889
  */
4823
4890
  get externalId(): string;
4891
+ /**
4892
+ * Gets the underlying GeoJSON Feature representation of this PointOfInterest.
4893
+ */
4894
+ get geoJSON(): {
4895
+ properties: null;
4896
+ type: import("@mappedin/mvf").FeatureType;
4897
+ geometry: Point;
4898
+ };
4824
4899
  /**
4825
4900
  * Serializes the POI data to JSON.
4826
4901
  *
@@ -4851,6 +4926,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4851
4926
  import type { Floor, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4852
4927
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
4853
4928
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4929
+ import type { IGeoJSONData } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
4854
4930
  /**
4855
4931
  * A class representing annotation data within the map.
4856
4932
  *
@@ -4858,7 +4934,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4858
4934
  * It includes some details on a map that may be relevant to safety or accessibility (e.g. Fire Extinguishers).
4859
4935
  * Refer to the [Annotation Guide](https://developer.mappedin.com/web-sdk/annotations) for more information.
4860
4936
  */
4861
- class Annotation extends BaseMapData {
4937
+ class Annotation extends BaseMapData implements IGeoJSONData {
4862
4938
  #private;
4863
4939
  /**
4864
4940
  * @internal
@@ -4913,6 +4989,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4913
4989
  * @throws Will throw an error if the floor is not found.
4914
4990
  */
4915
4991
  get floor(): Floor;
4992
+ /**
4993
+ * Gets the underlying GeoJSON Feature representation of this Annotation.
4994
+ */
4995
+ get geoJSON(): {
4996
+ properties: null;
4997
+ type: import("@mappedin/mvf").FeatureType;
4998
+ geometry: import("@mappedin/mvf").Point;
4999
+ };
4916
5000
  /**
4917
5001
  * Converts the annotation information to a JSON object.
4918
5002
  *
@@ -5274,9 +5358,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5274
5358
  objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
5275
5359
  obstructionIdByEntranceId: Record<string, string>;
5276
5360
  connectionIdsByLatLon: Record<string, string[]>;
5277
- mvfSpacesById: Record<string, Feature<Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, SpaceProperties>>;
5361
+ mvfSpacesById: Record<string, Feature<import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString | Point, SpaceProperties>>;
5278
5362
  mvfNodesById: Record<string, Feature<Point, import("@mappedin/mvf").NodeProperties>>;
5279
- mvfObstructionById: Record<string, Feature<import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, import("@mappedin/mvf").ObstructionProperties>>;
5363
+ mvfObstructionById: Record<string, Feature<import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString, import("@mappedin/mvf").ObstructionProperties>>;
5280
5364
  mvfFloorsById: Record<string, MVFFloor>;
5281
5365
  mvfFloorStacksById: Record<string, MVFFloorStack>;
5282
5366
  mvfConnectionsById: Record<string, MVFConnection>;
@@ -5291,7 +5375,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5291
5375
  [floorId: string]: Feature<Point, import("@mappedin/mvf").NodeProperties>[];
5292
5376
  };
5293
5377
  mvfSpacesByFloorId: {
5294
- [floorId: string]: Feature<Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, SpaceProperties>[];
5378
+ [floorId: string]: Feature<import("@mappedin/mvf").Polygon | import("@mappedin/mvf").LineString | Point, SpaceProperties>[];
5295
5379
  };
5296
5380
  mvfPoisByFloorId: {
5297
5381
  [floorId: string]: Feature<Point, SpaceProperties>[];
@@ -5310,51 +5394,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5310
5394
  };
5311
5395
  }
5312
5396
 
5313
- declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
5314
- import type Area from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/area';
5315
- import type Door from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door';
5316
- import type Floor from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor';
5317
- import type Space from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
5318
- import type PointOfInterest from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi';
5319
- import type Annotation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation';
5320
- import type Connection from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection';
5321
- import type MapObject from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object';
5322
- import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack } from '@mappedin/mvf';
5323
- import type { PartialExcept } from '@mappedin/mvf/dist/locale';
5324
- import type { LocalePackUrls } from '@packages/internal/mvf-utils';
5325
- import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
5326
- import type { EnvControl } from '@packages/internal/mvf-utils/mvf-utils';
5327
- /**
5328
- * Places are the main objects that can be searched for.
5329
- */
5330
- export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
5331
- export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
5332
- export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
5333
- export type LanguagePack = {
5334
- type: 'downloaded';
5335
- data: ParsedMVFLocalePack;
5336
- optimized: {
5337
- locations: Record<string, LocationWithLocale> | undefined;
5338
- categories: Record<string, CategoryWithLocale> | undefined;
5339
- };
5340
- } | {
5341
- type: 'initial';
5342
- optimized: {
5343
- locations: Record<string, MvfEnterpriseLocation>;
5344
- categories: Record<string, MvfEnterpriseCategory>;
5345
- };
5346
- };
5347
- export type TMapDataInternalOptions = {
5348
- env?: EnvControl;
5349
- enterprise?: boolean;
5350
- outdoorViewToken?: string;
5351
- localePacksUrls?: LocalePackUrls;
5352
- languagePacks?: LanguagePackHydrationItem[];
5353
- binaryBundle?: Uint8Array;
5354
- sasToken?: string;
5355
- };
5356
- }
5357
-
5358
5397
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes' {
5359
5398
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
5360
5399
  import { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
@@ -5466,6 +5505,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5466
5505
  * Whether the marker is enabled
5467
5506
  */
5468
5507
  enabled: boolean;
5508
+ /**
5509
+ * Whether the label is visible IF is is enabled
5510
+ * this can be used to have more granular control of whether the label shows up,
5511
+ * for example, if someone implements a layer system that shows/hides
5512
+ */
5513
+ visible: boolean;
5469
5514
  /**
5470
5515
  * HTML content of the marker as text
5471
5516
  */
@@ -5493,6 +5538,14 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5493
5538
  */
5494
5539
  interactive?: boolean | 'pointer-events-auto';
5495
5540
  };
5541
+ /**
5542
+ * Anchor point for the marker. This will determine the position of the marker relative to the position. A list will place the marker in the first empty placement.
5543
+ */
5544
+ anchor: MarkerAnchor | MarkerAnchor[];
5545
+ /**
5546
+ * Dynamic resize of the marker. If set to true, the marker will resize based on the content.
5547
+ */
5548
+ dynamicResize: boolean;
5496
5549
  };
5497
5550
  export const addMarkerOptionsSchema: z.ZodObject<{
5498
5551
  rank: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["low", "medium", "high", "always-visible"]>, z.ZodNumber]>>;
@@ -5504,14 +5557,14 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5504
5557
  interactive?: boolean | "pointer-events-auto" | undefined;
5505
5558
  id?: string | undefined;
5506
5559
  anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5507
- rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5508
5560
  dynamicResize?: boolean | undefined;
5561
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5509
5562
  }, {
5510
5563
  interactive?: boolean | "pointer-events-auto" | undefined;
5511
5564
  id?: string | undefined;
5512
5565
  anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5513
- rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5514
5566
  dynamicResize?: boolean | undefined;
5567
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5515
5568
  }>;
5516
5569
  export function validateMarker(coordinate: Position, contentHTML: string, options: AddMarkerOptions): void;
5517
5570
  export type MarkerAnchor = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
@@ -5557,6 +5610,11 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5557
5610
  options: Required<AddMarkerOptions>;
5558
5611
  projection: Vector2;
5559
5612
  enabled: boolean;
5613
+ /**
5614
+ * Whether the marker can be shown, which is decided by the collision engine
5615
+ */
5616
+ canShow: boolean;
5617
+ visible: boolean;
5560
5618
  offscreen: boolean;
5561
5619
  activeStrategyIndex: number;
5562
5620
  strategyIndex: number;
@@ -5578,7 +5636,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5578
5636
  visibilityNeedsUpdate: 'show' | 'hide' | false;
5579
5637
  constructor(contentHtml: string, options?: AddMarkerOptions);
5580
5638
  updateDimensions(width?: number, height?: number): void;
5581
- visible: boolean;
5582
5639
  animation: Animation | null;
5583
5640
  currentStrategyIndex: number;
5584
5641
  onStrategySelected: (strategyIndex: number, force?: boolean) => void;
@@ -5814,7 +5871,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5814
5871
  import type { EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
5815
5872
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
5816
5873
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
5817
- import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src';
5874
+ import type { CollisionRankingTier, GeometryState } from '@mappedin/react-sdk/geojson/src';
5818
5875
  import { z } from 'zod';
5819
5876
  import type { PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5820
5877
  export const addLabelOptionsSchema: z.ZodObject<{
@@ -5981,7 +6038,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5981
6038
  } | undefined;
5982
6039
  } | undefined;
5983
6040
  }>;
5984
- export function validateLabel(coordinate: Position, text: string, options: AddLabelOptions): void;
6041
+ export function validateLabel(coordinate: Position | EntityId<GeometryState>, text: string, options: AddLabelOptions): void;
5985
6042
  export const labelThemes: {
5986
6043
  lightOnDark: {
5987
6044
  text: {
@@ -6239,6 +6296,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6239
6296
  * Whether the label is enabled
6240
6297
  */
6241
6298
  enabled: boolean;
6299
+ /**
6300
+ * Whether the label is visible IF is is enabled
6301
+ * this can be used to have more granular control of whether the label shows up,
6302
+ * for example, if someone implements a layer system that shows/hides,
6303
+ */
6304
+ visible: boolean;
6242
6305
  /**
6243
6306
  * Text content of the label
6244
6307
  */
@@ -6274,6 +6337,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6274
6337
  visible: boolean;
6275
6338
  enabled: boolean;
6276
6339
  offscreen: boolean;
6340
+ /**
6341
+ * Whether the label can be shown, which is decided by the collision engine
6342
+ */
6343
+ canShow: boolean;
6277
6344
  activeBoundingBox: {
6278
6345
  x: number;
6279
6346
  y: number;
@@ -7293,7 +7360,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7293
7360
  import { DrawSystem } from '@mappedin/react-sdk/geojson/src/systems/draw/system';
7294
7361
  import { TwoDVisibilitySystem } from '@mappedin/react-sdk/geojson/src/systems/2d-visibility/system';
7295
7362
  import { RenderSystem } from '@mappedin/react-sdk/geojson/src/systems/render/system';
7296
- import type { Position as GeoJsonPosition, FeatureCollection, LineString, MultiPolygon, Polygon, Point, Feature } from 'geojson';
7363
+ import type { Position as GeoJsonPosition, FeatureCollection, LineString, MultiPolygon, Polygon, Point, Feature, BBox } from 'geojson';
7297
7364
  import type { AddPathOptions, PathProperties, PathState, PathUpdateState } from '@mappedin/react-sdk/geojson/src/components/path';
7298
7365
  import { StackSystem } from '@mappedin/react-sdk/geojson/src/systems/stack/system';
7299
7366
  import { CameraSystem } from '@mappedin/react-sdk/geojson/src/systems/camera';
@@ -7411,7 +7478,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7411
7478
  id: string;
7412
7479
  type: string;
7413
7480
  };
7414
- getParentContainer: (parent?: EntityId<GroupContainerState> | string | number | null, defaultToScene?: boolean) => GroupContainerObject3D | undefined;
7481
+ getParentContainer: (parent?: EntityId<GroupContainerState> | EntityId<GeometryState> | string | number | null, defaultToScene?: boolean) => GroupContainerObject3D | undefined;
7415
7482
  /**
7416
7483
  * Add a custom THREE.js entity to the map. The geometry is placed at the GeoJSON coordinate and includes a `setup` and `update` methods.
7417
7484
  * Setup is called when the first time the geometry visible, and update is called every render frame.
@@ -7461,7 +7528,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7461
7528
  /**
7462
7529
  * Add a 2D label at a GeoJSON coordinate.
7463
7530
  */
7464
- addLabel2D(coordinate: Position, text: string, options?: AddLabelOptions, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<LabelState> | undefined;
7531
+ addLabel2D(coordinate: Position, text: string, options?: AddLabelOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<LabelState> | undefined;
7465
7532
  /**
7466
7533
  * Add a Path along a set of GeoJSON coordinates that can be animated.
7467
7534
  */
@@ -7575,6 +7642,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7575
7642
  * @param layers The layers to filter out.
7576
7643
  */
7577
7644
  hideOutdoorLayersUnderPoint: (point: Position, layers: string[]) => void;
7645
+ /**
7646
+ * Filters out layers at a certain point on the outdoor map. This can be used to hide the outdoor building footprint underneath the 3D geometry.
7647
+ * @param bbox The bounding box to filter layers under.
7648
+ * @param polygons The polygons to filter layers under.
7649
+ * @param layers The layers to filter out.
7650
+ */
7651
+ hideOutdoorLayersIntersectingPolygons: (bbox: BBox, polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[], layers: string[]) => void;
7578
7652
  /**
7579
7653
  * Get the center of a geometry or bounding box.
7580
7654
  * @param geometryOrBoundingBox Geometry, geometry id, or bounding box to get the center of.
@@ -7669,12 +7743,16 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
7669
7743
  duration?: number;
7670
7744
  easing?: EasingCurve;
7671
7745
  };
7746
+ export type AnimateElevationOptions = AnimationOptions & {
7747
+ interruptible?: boolean;
7748
+ };
7672
7749
  export type FocusOnOptions = AnimationOptions & {
7673
7750
  bearing?: number;
7674
7751
  pitch?: number;
7675
7752
  padding?: InsetPaddingOption;
7676
7753
  minZoomLevel?: number;
7677
7754
  maxZoomLevel?: number;
7755
+ interruptible?: boolean;
7678
7756
  };
7679
7757
  export type AnimateToOptions = AnimationOptions & {
7680
7758
  center?: Position;
@@ -7682,6 +7760,7 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
7682
7760
  bearing?: number;
7683
7761
  pitch?: number;
7684
7762
  elevation?: number;
7763
+ interruptible?: boolean;
7685
7764
  };
7686
7765
  export const ANIMATION_TWEENS: {
7687
7766
  linear: (amount: number) => number;
@@ -7797,7 +7876,7 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
7797
7876
  * @param elevation The new elevation in meters.
7798
7877
  * @param options The animation options.
7799
7878
  */
7800
- animateElevation(elevation: number, options?: AnimationOptions): Promise<void>;
7879
+ animateElevation(elevation: number, options?: AnimateElevationOptions): Promise<void>;
7801
7880
  /**
7802
7881
  * The padding around the edges of the map when focusing on a set of coordinates.
7803
7882
  */
@@ -8260,9 +8339,8 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
8260
8339
  import type { KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils';
8261
8340
  import { GeometryGroupObject3D, type GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
8262
8341
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8263
- import type { Geometry3DTypes, TextGeometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8264
- import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8265
- import { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
8342
+ import { Geometry3D, Geometry3DObject3D, type Geometry3DTypes, type TextGeometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8343
+ import { Geometry2D, Geometry2DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
8266
8344
  import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8267
8345
  import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
8268
8346
  import { type Text3DState, type UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
@@ -8293,6 +8371,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
8293
8371
  export function updateIndividualGeometryRenderOrder(entity: Geometry3D, update?: number): boolean;
8294
8372
  export function handlePathUpdate(geometry: Geometry3DTypes, update: PathUpdateState): void;
8295
8373
  export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
8374
+ export function getEntityId(entityOrEntityId: Geometry2D | Geometry3DTypes | Geometry2DObject3D | Geometry3DObject3D | GeometryGroupObject3D | GroupContainerObject3D | string | number): any;
8296
8375
  export function assetGeometryIsText3D(geometry: Geometry3DTypes): asserts geometry is TextGeometry3D;
8297
8376
  /**
8298
8377
  * @internal
@@ -8585,7 +8664,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles' {
8585
8664
  }
8586
8665
 
8587
8666
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
8588
- import type { Position, RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
8667
+ import type { RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
8589
8668
  import { type TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
8590
8669
  import { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
8591
8670
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
@@ -8609,6 +8688,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
8609
8688
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
8610
8689
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
8611
8690
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
8691
+ import { type BBox } from 'geojson';
8612
8692
  import { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
8613
8693
  export class GeoJsonApi {
8614
8694
  core: RendererCore;
@@ -8619,7 +8699,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
8619
8699
  };
8620
8700
  mapData?: MapData;
8621
8701
  currentMap: GeojsonApiMapObject;
8622
- hiddenOutdoorGeometries: [Position, layer: string[]][];
8702
+ hiddenOutdoorGeometries: [
8703
+ BBox,
8704
+ polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[],
8705
+ layers: string[]
8706
+ ][];
8623
8707
  mapView: MapView;
8624
8708
  Camera: Camera;
8625
8709
  Labels: Labels;
@@ -8674,8 +8758,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8674
8758
  import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
8675
8759
  import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
8676
8760
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
8677
- import type { Path, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8678
- import type { Door, PointOfInterest, MapObject, Node, MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8761
+ import type { Path, Shape, Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8762
+ import { type Door, type PointOfInterest, type MapObject, type Node, type MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8679
8763
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
8680
8764
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
8681
8765
  import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
@@ -8760,10 +8844,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8760
8844
  }) => void;
8761
8845
  add: (coordinate: Position, text: string, opts?: AddLabelOptions & {
8762
8846
  floorId?: string;
8847
+ spaceId?: string;
8763
8848
  }) => {
8764
8849
  id: string | number;
8765
8850
  };
8766
- remove: (targetId: string) => void;
8851
+ remove: ({ label, entityId }: {
8852
+ label: Label;
8853
+ entityId: string;
8854
+ }) => void;
8767
8855
  removeAll: () => void;
8768
8856
  };
8769
8857
  Paths: {
@@ -9217,7 +9305,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/labels' {
9217
9305
  import { Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9218
9306
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
9219
9307
  import type { PointOfInterest, MapObject } from '@mappedin/react-sdk/mappedin-js/src';
9220
- import type { Space, Door, Coordinate, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9308
+ import { Space, Door, Coordinate, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9221
9309
  /**
9222
9310
  * Class used to add and remove a {@link Label} on the {@link MapView}.
9223
9311
  *
@@ -9790,7 +9878,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/style' {
9790
9878
  }
9791
9879
 
9792
9880
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor' {
9793
- import { type RendererCore, type Position } from '@mappedin/core-sdk';
9881
+ import { type RendererCore } from '@mappedin/core-sdk';
9882
+ import type { BBox } from 'geojson';
9883
+ export type HiddenOutdoorGeometry = [
9884
+ BBox,
9885
+ polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[],
9886
+ layers: string[]
9887
+ ];
9794
9888
  /**
9795
9889
  * The outdoor map shown around the Mappedin indoor map can be manipulated to show or hide additional information. It can be used to add GeoJSON based geometry, images, deck.gl layers and more.
9796
9890
  *
@@ -9809,7 +9903,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor' {
9809
9903
  /**
9810
9904
  * @internal
9811
9905
  */
9812
- constructor(core: RendererCore, hiddenOutdoorGeometry?: [Position, string[]][]);
9906
+ constructor(core: RendererCore, hiddenOutdoorGeometry?: HiddenOutdoorGeometry[]);
9813
9907
  /**
9814
9908
  * Set the style of the outdoor map. Use one of [Mappedin's predefined styles](https://developer.mappedin.com/web-sdk/outdoor-map#styles) or link to a custom style.
9815
9909
  * @param style {any}
@@ -10636,7 +10730,8 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10636
10730
  import type { ImageComponent } from '@mappedin/react-sdk/geojson/src/components/image';
10637
10731
  import type { CustomGeometryComponent } from '@mappedin/react-sdk/geojson/src/components/custom';
10638
10732
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
10639
- import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10733
+ import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
10734
+ import { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10640
10735
  import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
10641
10736
  import type { Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
10642
10737
  export enum Geometry3DComponents {
@@ -10665,9 +10760,13 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10665
10760
  id: string | number;
10666
10761
  components: [M, S, I?];
10667
10762
  get object3d(): M["mesh"];
10668
- get parent(): GroupContainerObject3D | GeometryGroupObject3D | null;
10763
+ get parentObject3D(): GroupContainerObject3D | GeometryGroupObject3D | null;
10669
10764
  get type(): T;
10765
+ entities2D: Map<string | number, Geometry2D>;
10670
10766
  constructor(meshComponent: M, styleComponent: S);
10767
+ addEntity(entity: Geometry2D): void;
10768
+ removeEntity(entity: Geometry2D): void;
10769
+ removeAllEntities(): void;
10671
10770
  }
10672
10771
  export type TextGeometry3D = Geometry3D<Text3DComponent, Text3DStyleComponent, InteractionComponent, 'text3d'>;
10673
10772
  export type CustomGeometry3D = Geometry3D<CustomGeometryComponent, StyleComponent, InteractionComponent, 'custom-geometry'>;
@@ -10767,17 +10866,17 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
10767
10866
  import type LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
10768
10867
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
10769
10868
  import type { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
10869
+ import { type GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10770
10870
  export enum Geometry2DComponents {
10771
10871
  UI = 0,
10772
10872
  Interaction = 1
10773
10873
  }
10774
10874
  export class Geometry2DObject3D extends Object3D {
10775
- readonly type: "geometry2dObject3d";
10776
10875
  }
10777
10876
  export class Geometry2D {
10778
10877
  id: string | number;
10779
10878
  get type(): 'label' | 'marker';
10780
- get parent(): GroupContainerObject3D | null;
10879
+ get parentObject3D(): GroupContainerObject3D | GeometryGroupObject3D | null;
10781
10880
  /**
10782
10881
  * When the position of the entity changes, this should be set to true, so that systems like pan bounds can update
10783
10882
  */
@@ -10787,6 +10886,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
10787
10886
  disposed: boolean;
10788
10887
  constructor(ui: MarkerComponent | LabelComponent, position: Vector3);
10789
10888
  get position(): Vector3;
10889
+ setAltitude(z: number): void;
10790
10890
  }
10791
10891
  }
10792
10892
 
@@ -11635,9 +11735,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/geometry-in-focus/system
11635
11735
  declare module '@mappedin/react-sdk/geojson/src/systems/outdoor-layers/system' {
11636
11736
  import type { Map } from '@packages/internal/outdoor-context-v4';
11637
11737
  import type { Position } from '@mappedin/react-sdk/geojson/src/renderer';
11738
+ import { type BBox } from 'geojson';
11638
11739
  export class OutdoorLayers {
11639
11740
  dirty: boolean;
11640
11741
  hideLayersUnderPoint(point: Position, layers: string[]): void;
11742
+ hideLayersIntersectingPolygons(bbox: BBox, polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[], layers: string[]): void;
11641
11743
  constructor(map?: Map);
11642
11744
  destroy(): void;
11643
11745
  }
@@ -12039,8 +12141,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
12039
12141
  import type { TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
12040
12142
  class Layer {
12041
12143
  containerId: string;
12144
+ labelIds: Set<string>;
12042
12145
  layers: Map<string, string>;
12043
- constructor(containerId: string, layers?: Map<any, any>);
12146
+ renderer: RendererCore;
12147
+ constructor(renderer: RendererCore, containerId: string, layers?: Map<any, any>);
12148
+ show(): void;
12149
+ hide(): void;
12044
12150
  }
12045
12151
  export class FloorObject implements MVFFloor {
12046
12152
  id: string;
@@ -12066,7 +12172,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
12066
12172
  import { Coordinate, type MapObject, type Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
12067
12173
  import type { Position, EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
12068
12174
  import type { WithPolygonImage } from '@packages/internal/mvf-utils';
12069
- import type { FeatureCollection, MultiLineString } from 'geojson';
12175
+ import type { BBox, FeatureCollection, MultiLineString } from 'geojson';
12070
12176
  import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
12071
12177
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/react-sdk/mappedin-js/src';
12072
12178
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -12097,10 +12203,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
12097
12203
  export type WithId<T> = T & {
12098
12204
  id?: string;
12099
12205
  };
12100
- export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Point | LineString | Polygon, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
12206
+ 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>>[]>;
12101
12207
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
12102
12208
  export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
12103
12209
  export function tweenToPromise(tween: Tween): Promise<void>;
12210
+ export function getBoundingBox(geometry: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>): BBox;
12211
+ export function expandBbox(bbox: BBox, bboxToExpand: BBox): number[];
12104
12212
  export function unique<T>(array: T[]): T[];
12105
12213
  }
12106
12214
 
@@ -12108,7 +12216,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-obje
12108
12216
  import type { RendererCore } from '@mappedin/core-sdk';
12109
12217
  import type { FloorId, FloorStack as MVFFloorStack, Facade as MVFFacade } from '@mappedin/mvf';
12110
12218
  import type { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
12111
- export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors' | 'defaultFloor'> {
12219
+ export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors' | 'defaultFloor' | 'footprint'> {
12112
12220
  #private;
12113
12221
  id: MVFFloorStack['id'];
12114
12222
  externalId: MVFFloorStack['externalId'];
@@ -12120,7 +12228,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-obje
12120
12228
  floorObjects: FloorObject[];
12121
12229
  floorObjectsByElevation: Map<number, FloorObject>;
12122
12230
  metadata?: MVFFloorStack['metadata'];
12123
- footprint?: MVFFloorStack['footprint'];
12124
12231
  containerId: string;
12125
12232
  facade?: MVFFacade;
12126
12233
  constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore, facade?: MVFFacade);
@@ -12138,7 +12245,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-proc
12138
12245
  import { Rectangle } from '@packages/internal/quad-tree';
12139
12246
  export type TSerializedCollider = {
12140
12247
  rank: number;
12141
- enabled: boolean;
12248
+ enabledAndVisible: boolean;
12142
12249
  x: number;
12143
12250
  y: number;
12144
12251
  bboxes: {
@@ -12570,13 +12677,13 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
12570
12677
  * @param [curve] {Mappedin.Easing} The animation curve to use for the animation.
12571
12678
  * @param [callback] {Function} A callback that will be executed when the animation is done.
12572
12679
  * @param [options] {Object} An Options object
12573
- * @param [options.mode=cancel] {Object} Mode determines what happens when multiple animateCamera calls happen at once. By Default,
12680
+ * @param [options.interruptible=true] {Boolean} Determines if this animation must complete before any new animations start
12574
12681
  it will cancel and omit any previous animations. Set to "chain" to chain instead
12575
12682
  *
12576
12683
  * @return {Mappedin.Tween} The tween being used, if you want to do anything to control it manually. Do not overide it's events.
12577
12684
  */
12578
12685
  animateCamera: (target: AnimateCameraTarget, duration: number, curve?: (n: number) => number, callback?: (...args: any) => void, cancelledCallback?: (...args: any) => void, options?: {
12579
- mode: keyof typeof CAMERA_CONSTANTS.CONTROL_OPTIONS;
12686
+ interruptible?: boolean;
12580
12687
  }) => Promise<void>;
12581
12688
  /**
12582
12689
  * Allows you to set any of the Camera's position, zoom, rotation and tilt at once, with one function.
@@ -12842,6 +12949,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/types' {
12842
12949
  boundingBox?: any;
12843
12950
  callback?: () => void;
12844
12951
  cancelledCallback?: () => void;
12952
+ interruptible?: boolean;
12845
12953
  };
12846
12954
  }
12847
12955