@mappedin/react-sdk 6.0.1-beta.32 → 6.0.1-beta.33

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.
@@ -70,7 +70,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
70
70
  export type { PubSub } from '@packages/internal/common/pubsub';
71
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
72
72
  import { MappedinMapLibreOverlay } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
73
- import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
73
+ import type { LanguagePackHydrationItem, TImagePlacementOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
74
74
  import { MAPPEDIN_COLORS } from '@mappedin/react-sdk/mappedin-js/src/constants';
75
75
  import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
76
76
  import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
@@ -265,6 +265,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
265
265
  */
266
266
  enabled?: boolean;
267
267
  };
268
+ /**
269
+ * @experimental
270
+ * @internal
271
+ */
272
+ imagePlacementOptions?: TImagePlacementOptions;
268
273
  };
269
274
  /**
270
275
  * @internal
@@ -898,6 +903,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
898
903
  * @internal
899
904
  */
900
905
  get currentLanguage(): import("@mappedin/mvf").Language | undefined;
906
+ /**
907
+ * Retrieves the natural bearing of the map, which is the angle, in degrees, the map is considered to be "naturally oriented" towards.
908
+ * Typically the angle perpendicular to the street the map is facing, or the main entrance. Other print maps inside the map may have this direction be up.
909
+ * 90 degrees means East is "up"
910
+ *
911
+ * @returns The natural bearing of the map.
912
+ */
913
+ get naturalBearing(): number;
901
914
  /**
902
915
  * Retrieves directions ({@link Directions}) from one navigable point ({@link TNavigationTarget}) to another on the map.
903
916
  *
@@ -1129,7 +1142,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1129
1142
  import { PubSub } from '@packages/internal/common';
1130
1143
  import type { LanguagePack, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1131
1144
  import { type LocalePackUrls } from '@packages/internal/mvf-utils';
1132
- import type { EnvControl } from '@packages/internal/mvf-utils/mvf-utils';
1145
+ import type { EnvControl, TGetMapDataOptions } from '@packages/internal/mvf-utils/mvf-utils';
1133
1146
  import type { TMapDataObjectTypes, TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
1134
1147
  import { type Directions, DirectionsInternal } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
1135
1148
  import { type THydrateMapDataBundle } from '@mappedin/react-sdk/mappedin-js/src';
@@ -1235,6 +1248,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1235
1248
  };
1236
1249
  binaryBundle?: Uint8Array;
1237
1250
  envControl: EnvControl;
1251
+ getMapDataOptions?: TGetMapDataOptions;
1238
1252
  /**
1239
1253
  * @internal
1240
1254
  */
@@ -1253,6 +1267,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1253
1267
  get mapName(): string;
1254
1268
  get organizationId(): string;
1255
1269
  get mapCenter(): Coordinate;
1270
+ get naturalBearing(): number;
1256
1271
  /**
1257
1272
  * Retrieves all spaces in the map.
1258
1273
  *
@@ -1372,6 +1387,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1372
1387
  multiDestination?: true;
1373
1388
  }) => Directions | Directions[] | undefined;
1374
1389
  getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation | Area): number;
1390
+ transformImageRequest: (url: string) => Promise<{
1391
+ url: string;
1392
+ }>;
1375
1393
  toJSONBundle({ downloadLanguagePacks, }?: {
1376
1394
  downloadLanguagePacks?: boolean;
1377
1395
  }): Promise<THydrateMapDataBundle>;
@@ -1698,6 +1716,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1698
1716
  * @internal
1699
1717
  */
1700
1718
  Debug: Debug;
1719
+ /**
1720
+ * Takes a screenshot of the current scene and returns it as a data URL.
1721
+ *
1722
+ * NOTE: This only captures the 3D scene, not the UI elements like labels, markers, etc.
1723
+ * Also, this does not cause the screenshot to be saved to the user's device, it only returns
1724
+ * the data.
1725
+ * @returns A Promise that resolves with the screenshot as a base64-encoded data URL string
1726
+ * @experimental
1727
+ */
1728
+ takeScreenshot(): Promise<string>;
1701
1729
  }
1702
1730
  }
1703
1731
 
@@ -1806,7 +1834,7 @@ declare module '@mappedin/react-sdk/geojson/src' {
1806
1834
  */
1807
1835
  export { enableTestMode } from '@mappedin/react-sdk/geojson/src/services/test-mode';
1808
1836
  export { mountSceneGraphVisualizer };
1809
- export type { EntityId, EntityState, LineStyle, PaintStyle, ModelProperties, Shading } from '@mappedin/react-sdk/geojson/src/types';
1837
+ export type { EntityId, EntityState, LineStyle, PaintStyle, ModelProperties, Shading, ImagePlacementOptions, } from '@mappedin/react-sdk/geojson/src/types';
1810
1838
  export type * from 'geojson';
1811
1839
  export type { WatermarkUpdateOptions, WatermarkOptions, WatermarkPosition } from '@mappedin/react-sdk/geojson/src/systems/watermark/system';
1812
1840
  export { preloadFont } from '@mappedin/react-sdk/geojson/src/systems/text3d/system';
@@ -1897,7 +1925,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1897
1925
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, EnterpriseLocation, Node, Area, Facade, FloorStack, Annotation, EnterpriseCategory, EnterpriseVenue, LocationCategory, LocationProfile } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1898
1926
  import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1899
1927
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1900
- import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState } from '@mappedin/react-sdk/geojson/src';
1928
+ import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState, ImagePlacementOptions } from '@mappedin/react-sdk/geojson/src';
1901
1929
  export type DeepRequired<T> = Required<{
1902
1930
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1903
1931
  }>;
@@ -2608,7 +2636,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2608
2636
  /**
2609
2637
  * The target for the model to be placed on.
2610
2638
  */
2611
- target: Space | Door | Coordinate;
2639
+ target: IAnchorable;
2612
2640
  /**
2613
2641
  * Optional. Determines the opacity of the model.
2614
2642
  * @default 1
@@ -2916,6 +2944,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2916
2944
  area: Area;
2917
2945
  facade: Facade;
2918
2946
  };
2947
+ /**
2948
+ * @interface
2949
+ * @internal
2950
+ */
2951
+ export type TImagePlacementOptions = ImagePlacementOptions;
2919
2952
  }
2920
2953
 
2921
2954
  declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
@@ -2936,6 +2969,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
2936
2969
  outdoorView: {
2937
2970
  layersHiddenByGeometry: string[];
2938
2971
  };
2972
+ imagePlacementOptions: {
2973
+ mode: "default";
2974
+ };
2939
2975
  };
2940
2976
  export const EXTERIOR_WALLS_ID = "ExteriorWalls";
2941
2977
  export const WALLS_ID = "Walls";
@@ -3136,6 +3172,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/sta
3136
3172
  import { type Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3137
3173
  import { type TCameraAnimationOptions } from '@mappedin/react-sdk/mappedin-js/src';
3138
3174
  export const GAP_BELOW_FLOORS = 50;
3175
+ export const DEBUG = false;
3139
3176
  export const DURATION = 1000;
3140
3177
  export type TStackedMapsState =
3141
3178
  /**
@@ -3158,8 +3195,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/sta
3158
3195
  includedFloors?: Floor[];
3159
3196
  /**
3160
3197
  * The distance between floors in the stack in meters.
3198
+ * - When set to 'auto', the system automatically calculates the optimal distance
3199
+ * needed to visually separate first two floors in the current view.
3200
+ * - When set to a numeric value, that exact distance in meters is used between each floor.
3201
+ * @default 50
3202
+ *
3203
+ * @example
3204
+ * // Use automatic distance calculation
3205
+ * await mapView.StackedMaps.expand({ distanceBetweenFloors: 'auto' });
3206
+ * console.log(mapView.distanceBetweenFloors) // output: computed value
3207
+ *
3208
+ * // Use fixed distance of 75 meters between floors
3209
+ * mapView.StackedMaps.expand({ distanceBetweenFloors: 75 });
3210
+ * console.log(mapView.distanceBetweenFloors) // output: 75 as specified
3161
3211
  */
3162
- distanceBetweenFloors?: number;
3212
+ distanceBetweenFloors?: number | 'auto';
3163
3213
  /**
3164
3214
  * The pan mode to use when animating the camera.
3165
3215
  * @default 'elevation'
@@ -3196,9 +3246,42 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/sta
3196
3246
  */
3197
3247
  get expanded(): boolean;
3198
3248
  /**
3199
- * The distance between floors in the stack in meters.
3249
+ * Gets the distance between floors in meters.
3250
+ *
3251
+ * This property returns different values based on how the `expand()` method was called:
3252
+ *
3253
+ * - When `expand()` was called with `distanceBetweenFloors: 'auto'`, this returns the computed
3254
+ * value needed to visually separate the first two floors in clip space.
3255
+ * - When `expand()` was called with a numeric value (e.g., `distanceBetweenFloors: 50`),
3256
+ * this returns that specified value.
3257
+
3258
+ * This value is cached for performance until `clearCachedFloorSeparationDistance()` is called
3259
+ * to force a recalculation.
3260
+ *
3261
+ * @example
3262
+ * // Using automatic floor separation distance
3263
+ * await mapView.StackedMaps.expand({ distanceBetweenFloors: 'auto' });
3264
+ * console.log(mapView.StackedMaps.distanceBetweenFloors); // Returns computed separation value
3265
+ *
3266
+ * // Using fixed floor separation distance
3267
+ * await mapView.StackedMaps.expand({ distanceBetweenFloors: 50 });
3268
+ * console.log(mapView.StackedMaps.distanceBetweenFloors); // Returns 50
3200
3269
  */
3201
- get gapBelowFloors(): number;
3270
+ get distanceBetweenFloors(): number;
3271
+ /**
3272
+ * Clears the cached value for the computed distance between floors.
3273
+ *
3274
+ * Call this method to invalidate the calculation of the optimal distance between floors
3275
+ * when using `distanceBetweenFloors: 'auto'` option with the expand() method. This is useful
3276
+ * when the camera position or viewport has changed significantly, which may affect the optimal
3277
+ * floor separation distance.
3278
+ *
3279
+ * @example
3280
+ * // Force recalculation before expanding with auto distance
3281
+ * mapView.StackedMaps.clearCachedFloorSeparationDistance();
3282
+ * await mapView.StackedMaps.expand({ distanceBetweenFloors: 'auto' });
3283
+ */
3284
+ clearCachedFloorSeparationDistance(): void;
3202
3285
  /**
3203
3286
  * The factor of the expanded floor stack. 0 is collapsed, 1 is fully expanded.
3204
3287
  */
@@ -3654,7 +3737,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3654
3737
  import type { PartialExcept } from '@mappedin/mvf/dist/locale';
3655
3738
  import type { LocalePackUrls } from '@packages/internal/mvf-utils';
3656
3739
  import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
3657
- import type { EnvControl } from '@packages/internal/mvf-utils/mvf-utils';
3740
+ import type { EnvControl, TGetMapDataOptions } from '@packages/internal/mvf-utils/mvf-utils';
3658
3741
  /**
3659
3742
  * Places are the main objects that can be searched for.
3660
3743
  */
@@ -3683,6 +3766,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3683
3766
  languagePacks?: LanguagePackHydrationItem[];
3684
3767
  binaryBundle?: Uint8Array;
3685
3768
  sasToken?: string;
3769
+ getMapDataOptions?: TGetMapDataOptions;
3686
3770
  };
3687
3771
  /**
3688
3772
  * A class that implements IGeoJSONData has a underlying GeoJSON datathat can be accessed.
@@ -3827,6 +3911,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3827
3911
  latitude: number;
3828
3912
  longitude: number;
3829
3913
  floor: string | undefined;
3914
+ verticalOffset: number;
3830
3915
  };
3831
3916
  neighbors: string[];
3832
3917
  };
@@ -4061,6 +4146,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/door' {
4061
4146
  latitude: number;
4062
4147
  longitude: number;
4063
4148
  floor: string | undefined;
4149
+ verticalOffset: number;
4064
4150
  };
4065
4151
  };
4066
4152
  /**
@@ -4201,6 +4287,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4201
4287
  latitude: number;
4202
4288
  longitude: number;
4203
4289
  floor: string | undefined;
4290
+ verticalOffset: number;
4204
4291
  };
4205
4292
  };
4206
4293
  /**
@@ -4440,6 +4527,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
4440
4527
  latitude: number;
4441
4528
  longitude: number;
4442
4529
  floor: string | undefined;
4530
+ verticalOffset: number;
4443
4531
  }[];
4444
4532
  floors: string[];
4445
4533
  };
@@ -4556,6 +4644,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4556
4644
  latitude: number;
4557
4645
  longitude: number;
4558
4646
  floor: string | undefined;
4647
+ verticalOffset: number;
4559
4648
  };
4560
4649
  };
4561
4650
  /**
@@ -4570,6 +4659,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4570
4659
 
4571
4660
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate' {
4572
4661
  import type { IFocusable, IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
4662
+ type TCoordinateParams = {
4663
+ latitude: number;
4664
+ longitude: number;
4665
+ floorId?: string;
4666
+ verticalOffset?: number;
4667
+ };
4573
4668
  /**
4574
4669
  * Class representing a pseudo-mercator coordinate.
4575
4670
  *
@@ -4602,6 +4697,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4602
4697
  * The floor ID of the coordinate.
4603
4698
  */
4604
4699
  readonly floorId?: string;
4700
+ /**
4701
+ * The vertical position of the coordinate, offset from the floor.
4702
+ * @internal
4703
+ */
4704
+ readonly verticalOffset: number;
4605
4705
  /**
4606
4706
  * Checks if the provided instance is of type Coordinate.
4607
4707
  *
@@ -4612,7 +4712,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4612
4712
  /**
4613
4713
  * @internal
4614
4714
  */
4615
- constructor(latitude: number, longitude: number, floorId?: string);
4715
+ constructor(latitudeOrParams: TCoordinateParams);
4716
+ /**
4717
+ * @deprecated
4718
+ * @internal
4719
+ */
4720
+ constructor(latitudeOrParams: number, longitude: number, floorId?: string);
4616
4721
  /**
4617
4722
  * @internal
4618
4723
  */
@@ -4637,6 +4742,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4637
4742
  latitude: number;
4638
4743
  longitude: number;
4639
4744
  floor: string | undefined;
4745
+ verticalOffset: number;
4640
4746
  };
4641
4747
  /**
4642
4748
  * Cleans up resources used by the instance.
@@ -4741,6 +4847,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/poi' {
4741
4847
  latitude: number;
4742
4848
  longitude: number;
4743
4849
  floor: string | undefined;
4850
+ verticalOffset: number;
4744
4851
  };
4745
4852
  };
4746
4853
  /**
@@ -4847,6 +4954,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4847
4954
  latitude: number;
4848
4955
  longitude: number;
4849
4956
  floor: string | undefined;
4957
+ verticalOffset: number;
4850
4958
  };
4851
4959
  };
4852
4960
  /**
@@ -5619,7 +5727,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location-pr
5619
5727
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5620
5728
  import type { Annotation, Connection, Door, LocationCategory, MapDataInternal, Space, MapObject } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5621
5729
  import type { TFocusTarget, TNavigationTarget, IFocusable, INavigatable } from '@mappedin/react-sdk/mappedin-js/src/types';
5622
- class LocationProfile extends BaseMetaData implements Omit<MVFLocation, 'categories' | 'spaces' | 'obstructions' | 'entrances' | 'shapes' | 'connections' | 'annotations'>, IFocusable, INavigatable {
5730
+ import { OpeningHours } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/opening-hours';
5731
+ class LocationProfile extends BaseMetaData implements Omit<MVFLocation, 'categories' | 'spaces' | 'obstructions' | 'entrances' | 'shapes' | 'connections' | 'annotations' | 'openingHoursSpecification'>, IFocusable, INavigatable {
5623
5732
  #private;
5624
5733
  /**
5625
5734
  * Checks if the provided instance is of type EnterpriseLocation.
@@ -5700,6 +5809,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location-pr
5700
5809
  get mapObjects(): MapObject[];
5701
5810
  /** @internal */
5702
5811
  get focusTarget(): TFocusTarget[];
5812
+ /**
5813
+ * Gets the {@link OpeningHours} associated with the location.
5814
+ *
5815
+ * @returns {OpeningHours} The opening hours.
5816
+ */
5817
+ get openingHours(): OpeningHours;
5703
5818
  /**
5704
5819
  * @internal
5705
5820
  */
@@ -5913,6 +6028,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5913
6028
  * The z-index of the marker. Can be used used in conjunction with rank: 'always-visible' to make certain markers appear over others
5914
6029
  */
5915
6030
  zIndex?: number;
6031
+ /**
6032
+ * The vertical position of the marker relative to the floor.
6033
+ */
6034
+ verticalOffset?: number;
5916
6035
  };
5917
6036
  /**
5918
6037
  * 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.
@@ -5985,6 +6104,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5985
6104
  * The z-index of the marker. Can be used used in conjunction with rank: 'always-visible' to make certain markers appear over others
5986
6105
  */
5987
6106
  zIndex?: number;
6107
+ /**
6108
+ * The vertical position of the marker relative to the floor.
6109
+ */
6110
+ verticalOffset?: number;
5988
6111
  };
5989
6112
  export class MarkerComponent {
5990
6113
  id: string | number;
@@ -6021,6 +6144,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
6021
6144
  left: string;
6022
6145
  };
6023
6146
  dirty: boolean;
6147
+ /** Flag used in 2d-projection system to determine if the parent has changed */
6148
+ parentDirty: boolean;
6024
6149
  collisionDirty: boolean;
6025
6150
  visibilityNeedsUpdate: 'show' | 'hide' | false;
6026
6151
  constructor(contentHtml: string, options?: AddMarkerOptions);
@@ -6615,6 +6740,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6615
6740
  * @internal
6616
6741
  */
6617
6742
  occluderId?: number;
6743
+ /**
6744
+ * The vertical position of the label relative to the floor.
6745
+ */
6746
+ verticalOffset?: number;
6618
6747
  };
6619
6748
  type TStyle = {
6620
6749
  top?: number;
@@ -6684,7 +6813,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6684
6813
  /**
6685
6814
  * The parent container of the label
6686
6815
  */
6687
- readonly parent: EntityId<GroupContainerState> | string | number;
6816
+ readonly parent: EntityId<GroupContainerState>;
6688
6817
  /**
6689
6818
  * Whether the label is enabled
6690
6819
  */
@@ -6707,6 +6836,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6707
6836
  * Options for the label
6708
6837
  */
6709
6838
  options: Omit<AddLabelOptions, 'id'>;
6839
+ /**
6840
+ * vertical offset of the model in meters off the floor
6841
+ */
6842
+ verticalOffset: number;
6710
6843
  };
6711
6844
  export class LabelComponent {
6712
6845
  lines: number;
@@ -6747,6 +6880,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6747
6880
  currentStrategyIndex: number;
6748
6881
  totalMarkerSize: number;
6749
6882
  dirty: boolean;
6883
+ /** Flag used in 2d-projection system to determine if the parent has changed */
6884
+ parentDirty: boolean;
6750
6885
  collisionDirty: boolean;
6751
6886
  lastTextAlign: any;
6752
6887
  imageHash?: number;
@@ -7123,7 +7258,6 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
7123
7258
  */
7124
7259
  type?: InsetPadding['type'];
7125
7260
  };
7126
- export * from '@mappedin/react-sdk/geojson/src/types/constants';
7127
7261
  /**
7128
7262
  * Result of a user click event.
7129
7263
  */
@@ -7279,18 +7413,70 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
7279
7413
  * All of the entities in the scene
7280
7414
  */
7281
7415
  export type EntityTypes = Geometry3DTypes | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D;
7416
+ /** @internal */
7417
+ export type TransformImageRequest = (url: string) => Promise<{
7418
+ url: string;
7419
+ }>;
7420
+ /**
7421
+ * The mode to use for auto image placement.
7422
+ * - `default` will currently not rotate the image, but in the future it may be settable per-image, in which case this mode will use that setting.
7423
+ * - `none` will not rotate the image.
7424
+ * - `nearest 90` may rotate the image 90 degrees to fit the polygon better.
7425
+ * - `initial bearing` will rotate the images to face the initial bearing of the map view, then try to fit them to their polygon.
7426
+ *
7427
+ * @internal
7428
+ */
7429
+ export type ImagePlacementMode = 'default' | 'none' | 'fit-nearest-90' | 'fit-initial-bearing';
7430
+ /**
7431
+ * Options for configuring how images are automatically placed on polygons.
7432
+ *
7433
+ * @internal
7434
+ */
7435
+ export type ImagePlacementOptions = {
7436
+ /**
7437
+ * The mode to use for auto image placement. See {@link ImagePlacementMode} for more information.
7438
+ * @defaultValue 'default'
7439
+ */
7440
+ mode?: ImagePlacementMode;
7441
+ /**
7442
+ * Scale factor applied to the resulting rectangle dimensions.
7443
+ * Values less than 1 create a safety margin inside the polygon.
7444
+ * @defaultValue 0.9
7445
+ */
7446
+ scaleFactor?: number;
7447
+ /**
7448
+ * Controls the balance between optimizing for rectangle area vs. proximity to center.
7449
+ * Higher values prioritize center alignment over size.
7450
+ * @defaultValue 0.5
7451
+ */
7452
+ centerPriority?: number;
7453
+ /**
7454
+ * Resolution of the grid used for finding the rectangle.
7455
+ * Higher values provide more precise results but require more computation.
7456
+ * @defaultValue 100
7457
+ */
7458
+ resolution?: number;
7459
+ /**
7460
+ * Threshold ratio for determining when to fall back to the original rectangle.
7461
+ * If the calculated rectangle is smaller than this ratio of the original,
7462
+ * the original rectangle will be returned instead.
7463
+ * @defaultValue 0.5
7464
+ */
7465
+ minimumSizeRatio?: number;
7466
+ };
7282
7467
  }
7283
7468
 
7284
7469
  declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7285
7470
  import type { Texture, BufferGeometry, LineSegments, Mesh } from 'three';
7286
7471
  import { BatchedMesh, Color, Vector3 } from 'three';
7287
7472
  import type { BatchedStandardMaterial } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material';
7288
- import type { Position } from '@mappedin/react-sdk/geojson/src/types';
7473
+ import type { EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
7289
7474
  import type { Feature, LineString, MultiLineString, MultiPolygon, Polygon, Position as GeoJsonPosition } from 'geojson';
7290
7475
  import type { BBox } from '@turf/turf';
7291
7476
  import { type ImageProperties } from '@mappedin/react-sdk/geojson/src/components/image';
7292
7477
  import { type BaseTextAreaProperties } from '@mappedin/mvf';
7293
7478
  import type { Text } from 'troika-three-text';
7479
+ import type { GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
7294
7480
  export class EntityBatchedMesh extends BatchedMesh {
7295
7481
  type: "entityBatchedMesh";
7296
7482
  userData: {
@@ -7320,6 +7506,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7320
7506
  * The position of the geometry in [lon, lat]
7321
7507
  */
7322
7508
  readonly position: Position;
7509
+ /**
7510
+ * The parent group of the geometry
7511
+ */
7512
+ readonly parent: EntityId<GeometryGroupState>;
7323
7513
  /**
7324
7514
  * Whether the geometry is visible. This is independent of the visibility of the children, but will affect the visibility of the children if set to false.
7325
7515
  */
@@ -7805,7 +7995,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7805
7995
 
7806
7996
  declare module '@mappedin/react-sdk/geojson/src/renderer' {
7807
7997
  import './utils/object-this-polyfill';
7808
- import { Scene, Vector3, Raycaster, Camera as ThreeCamera } from 'three';
7998
+ import { PerspectiveCamera, Scene, Vector3, Raycaster, Camera as ThreeCamera } from 'three';
7809
7999
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7810
8000
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7811
8001
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
@@ -8025,6 +8215,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8025
8215
  */
8026
8216
  getScene(): GroupContainerState;
8027
8217
  getThreeScene(): Scene | undefined;
8218
+ getThreeCamera(): PerspectiveCamera;
8028
8219
  setEnvironment(update: EnvMapOptions): Promise<void>;
8029
8220
  getEnvironment(): EnvMapOptions;
8030
8221
  /**
@@ -8873,8 +9064,7 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator' {
8873
9064
  }
8874
9065
 
8875
9066
  declare module '@mappedin/react-sdk/geojson/src/utils' {
8876
- import type { Box3, Object3D, Camera as THREECamera } from 'three';
8877
- import { Box2 } from 'three';
9067
+ import type { Object3D, Camera as THREECamera } from 'three';
8878
9068
  import { MercatorCoordinate } from '@mappedin/react-sdk/packages/outdoor-context-v4';
8879
9069
  import type { CustomLayerInterface } from '@mappedin/react-sdk/packages/outdoor-context-v4';
8880
9070
  import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
@@ -8883,6 +9073,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
8883
9073
  import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8884
9074
  import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8885
9075
  import type { Camera } from '@mappedin/react-sdk/geojson/src/camera';
9076
+ export { isFiniteBox } from '@packages/internal/common';
8886
9077
  export function cartesianToGeographic(centerLat: number, centerLon: number, x: number, y: number): {
8887
9078
  lat: number;
8888
9079
  lon: number;
@@ -8950,7 +9141,6 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
8950
9141
  export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3DTypes | GeometryGroupObject3D | GroupContainerObject3D | Geometry2D | undefined;
8951
9142
  export function getBoundingBoxCenter(bbox: Position[]): [number, number];
8952
9143
  export { getCornersOfBoundingBox } from '@mappedin/react-sdk/geojson/src/utils/bounding-box';
8953
- export function isFiniteBox(box: Box2 | Box3): boolean;
8954
9144
  export { getPixelRatio } from '@mappedin/react-sdk/geojson/src/utils/get-pixel-ratio';
8955
9145
  export { debounce } from '@mappedin/react-sdk/geojson/src/utils/async';
8956
9146
  export { shouldDisableOffscreenCanvas } from '@mappedin/react-sdk/geojson/src/utils/browser';
@@ -8960,6 +9150,8 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
8960
9150
  }
8961
9151
 
8962
9152
  declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
9153
+ import type { InsetPadding } from '@mappedin/react-sdk/geojson/src/types';
9154
+ export const DEFAULT_INSET_PADDING: InsetPadding;
8963
9155
  export const MAPPEDIN_LAYER_ID = "mappedin";
8964
9156
  export enum ENTITY_3D_LAYERS {
8965
9157
  DEFAULT = 0,
@@ -9336,7 +9528,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9336
9528
  }) => void;
9337
9529
  add: (coordinate: Position, text: string, opts?: AddLabelOptions & {
9338
9530
  floorId?: string;
9339
- spaceId?: string;
9531
+ parentId?: string;
9532
+ verticalOffset?: number;
9340
9533
  }) => {
9341
9534
  id: string | number;
9342
9535
  };
@@ -9459,7 +9652,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
9459
9652
  }
9460
9653
 
9461
9654
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
9462
- import type { Coordinate, Door, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9655
+ import type { IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
9463
9656
  /**
9464
9657
  * Class representing an Image on the {@link MapView}.
9465
9658
  */
@@ -9468,7 +9661,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
9468
9661
  /**
9469
9662
  * The image's target
9470
9663
  */
9471
- readonly target: Space | Door | Coordinate;
9664
+ readonly target: IAnchorable;
9472
9665
  /**
9473
9666
  * @internal
9474
9667
  */
@@ -9487,7 +9680,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
9487
9680
  /**
9488
9681
  * @internal
9489
9682
  */
9490
- constructor(id: string, url: string, target: Space | Door | Coordinate);
9683
+ constructor(id: string, url: string, target: IAnchorable);
9491
9684
  /**
9492
9685
  * The image's id
9493
9686
  */
@@ -9651,8 +9844,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d' {
9651
9844
 
9652
9845
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
9653
9846
  import type { IFocusable, TCameraAnimationOptions, TCameraTarget, TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
9654
- import type { InsetPadding, RendererCore } from '@mappedin/core-sdk';
9847
+ import type { InsetPadding } from '@mappedin/core-sdk';
9655
9848
  import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9849
+ import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
9656
9850
  /**
9657
9851
  * The Camera class is used to control the camera's position, pitch, bearing, and zoom level. It can also be used to focus
9658
9852
  * on one or more locations on the map. The camera can be repositioned instantly or animated to a new position.
@@ -9666,7 +9860,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
9666
9860
  /**
9667
9861
  * @internal
9668
9862
  */
9669
- constructor(rendererCore: RendererCore);
9863
+ constructor(api: GeoJsonApi);
9670
9864
  /**
9671
9865
  * Define an area of the screen that is safe for the camera. Anything outside the safe area is assumed to be covered in some way. The camera will not place any map elements there when calling {@link Camera.focusOn}.
9672
9866
  *
@@ -10457,10 +10651,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor' {
10457
10651
  }
10458
10652
 
10459
10653
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/images' {
10460
- import type { TAddImageOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
10654
+ import type { IAnchorable, TAddImageOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
10461
10655
  import { Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
10462
10656
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
10463
- import type { Space, Door, Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
10464
10657
  /**
10465
10658
  * Images can enhance the fidelity of an indoor map. They can be used to add custom branding, highlight important features, or provide additional information to users.
10466
10659
  * Images can be placed on any {@link Door}, {@link Space}, or {@link Coordinate} on the map and given a verticalOffset to control the height at which the image is displayed.
@@ -10510,7 +10703,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/images' {
10510
10703
  * // Add an interactive {@link Image} to the map with custom HTML content.
10511
10704
  * mapView.Images.add(coordinate, '<div>Image Content</div>', { interactive: true });
10512
10705
  */
10513
- add(target: Space | Door | Coordinate, url: string, options: TAddImageOptions): Image;
10706
+ add(target: IAnchorable, url: string, options: TAddImageOptions): Image;
10514
10707
  /**
10515
10708
  * Removes a image from the map.
10516
10709
  *
@@ -11130,6 +11323,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object
11130
11323
  import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
11131
11324
  import type { Details } from '@mappedin/mvf';
11132
11325
  export default abstract class BaseMapData {
11326
+ #private;
11133
11327
  /**
11134
11328
  * The identity of the map data.
11135
11329
  */
@@ -11147,6 +11341,32 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object
11147
11341
  * @returns {Image[]} An array of Image objects, or an empty array if no images exist.
11148
11342
  */
11149
11343
  images: Image[];
11344
+ /**
11345
+ * Gets the bounding box of the geoJSON geometry.
11346
+ *
11347
+ * @returns {BBox} The bounding box of the geoJSON geometry
11348
+ */
11349
+ get geoJSONBoundingBox(): {};
11350
+ get geoJSON(): {
11351
+ properties: null;
11352
+ type: string;
11353
+ geometry: {};
11354
+ };
11355
+ }
11356
+ }
11357
+
11358
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/opening-hours' {
11359
+ import type { OpeningHoursSpecification } from '@mappedin/mvf';
11360
+ /**
11361
+ * Represents the opening hours of a location.
11362
+ */
11363
+ export class OpeningHours {
11364
+ #private;
11365
+ constructor(mvfData: OpeningHoursSpecification[]);
11366
+ /**
11367
+ * Gets the raw opening hours data.
11368
+ */
11369
+ get raw(): OpeningHoursSpecification[];
11150
11370
  }
11151
11371
  }
11152
11372
 
@@ -11396,6 +11616,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
11396
11616
  id: string | number;
11397
11617
  get type(): 'label' | 'marker';
11398
11618
  get parentObject3D(): GroupContainerObject3D | GeometryGroupObject3D | null;
11619
+ verticalOffset: number;
11399
11620
  /**
11400
11621
  * When the position of the entity changes, this should be set to true, so that systems like pan bounds can update
11401
11622
  */
@@ -11404,7 +11625,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
11404
11625
  object3d: Geometry2DObject3D;
11405
11626
  components: [MarkerComponent | LabelComponent, InteractionComponent?];
11406
11627
  disposed: boolean;
11407
- constructor(ui: MarkerComponent | LabelComponent, position: Vector3);
11628
+ constructor(ui: MarkerComponent | LabelComponent, position: Vector3, verticalOffset?: number);
11408
11629
  get position(): Vector3;
11409
11630
  setAltitude(z: number): void;
11410
11631
  }
@@ -11622,13 +11843,15 @@ declare module '@mappedin/react-sdk/geojson/src/types/options' {
11622
11843
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
11623
11844
  import type { Map as MapLibreMap } from '@mappedin/react-sdk/packages/outdoor-context-v4';
11624
11845
  import type { AttributionControlOptions } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
11625
- import type { WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
11846
+ import type { ImagePlacementOptions, WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
11847
+ import type { TransformImageRequest } from '@mappedin/react-sdk/geojson/src/types';
11626
11848
  export type EnvMapOptions = 'basic' | false;
11627
11849
  export type RendererCoreOptions = Partial<{
11628
11850
  center?: Position;
11629
11851
  zoomLevel?: number;
11630
11852
  pitch?: number;
11631
11853
  bearing?: number;
11854
+ naturalBearing?: number;
11632
11855
  outdoorView: {
11633
11856
  headers: {
11634
11857
  'x-mappedin-tiles-key': string;
@@ -11648,20 +11871,18 @@ declare module '@mappedin/react-sdk/geojson/src/types/options' {
11648
11871
  onWebGLRendererError?: (error: Error) => void;
11649
11872
  watermark?: WatermarkOptions;
11650
11873
  attribution?: AttributionControlOptions;
11874
+ imagePlacementOptions?: ImagePlacementOptions;
11651
11875
  /**
11652
11876
  * environment map for reflections.
11653
11877
  * @default 'basic'
11654
11878
  */
11655
11879
  environment?: EnvMapOptions;
11656
11880
  occlusionEnabled?: boolean;
11881
+ /** Callback to intercept and modify requests for images. */
11882
+ transformImageRequest?: TransformImageRequest;
11657
11883
  }>;
11658
11884
  }
11659
11885
 
11660
- declare module '@mappedin/react-sdk/geojson/src/types/constants' {
11661
- import type { InsetPadding } from '@mappedin/react-sdk/geojson/src/types';
11662
- export const DEFAULT_INSET_PADDING: InsetPadding;
11663
- }
11664
-
11665
11886
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material' {
11666
11887
  import { MeshLambertMaterial, type Color, type Texture, type MeshLambertMaterialParameters } from 'three';
11667
11888
  export class BatchedStandardMaterial extends MeshLambertMaterial {
@@ -11864,26 +12085,38 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-projection/system' {
11864
12085
  }
11865
12086
 
11866
12087
  declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
11867
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
12088
+ import type { RendererState, TransformImageRequest } from '@mappedin/react-sdk/geojson/src/renderer';
11868
12089
  import LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
12090
+ import { PubSub } from '@packages/internal/common';
11869
12091
  export const INACTIVE_MARKER_SIZE_NO_ICON = 3.5;
11870
12092
  enum TEXTALIGN {
11871
12093
  LEFT = "left",
11872
12094
  CENTER = "center",
11873
12095
  RIGHT = "right"
11874
12096
  }
11875
- export class TwoDDrawSystem {
12097
+ export class TwoDDrawSystem extends PubSub<{
12098
+ 'img:loaded': undefined;
12099
+ }> {
11876
12100
  dirty: boolean;
11877
12101
  state: RendererState;
11878
12102
  colliderContext: CanvasRenderingContext2D;
11879
12103
  colliderCanvas: HTMLCanvasElement;
11880
- constructor(state: RendererState, colliderCanvas: HTMLCanvasElement);
12104
+ transformRequestFunc?: TransformImageRequest;
12105
+ constructor(state: RendererState, colliderCanvas: HTMLCanvasElement, transformImageRequest?: TransformImageRequest);
12106
+ transformRequest: (url: string) => Promise<{
12107
+ url: string;
12108
+ }>;
11881
12109
  pinCache: {
11882
12110
  [key in number]: [HTMLCanvasElement | OffscreenCanvas, HTMLCanvasElement | OffscreenCanvas];
11883
12111
  };
11884
- imagePromiseCache: {
12112
+ /** Stores the loaded images ready to be drawn. */
12113
+ imageCache: {
11885
12114
  [key in number]: HTMLImageElement | ImageBitmap;
11886
12115
  };
12116
+ /** Stores the promises for each image fetch. */
12117
+ imagePromiseCache: {
12118
+ [key in number]: Promise<HTMLImageElement | ImageBitmap>;
12119
+ };
11887
12120
  imageDimensionsCache: {
11888
12121
  [key in number]: {
11889
12122
  width: number;
@@ -12231,7 +12464,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/outline-interpolation/sy
12231
12464
  }
12232
12465
 
12233
12466
  declare module '@mappedin/react-sdk/geojson/src/systems/image/system' {
12234
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
12467
+ import type { ImagePlacementOptions, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
12235
12468
  import { type Texture } from 'three';
12236
12469
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
12237
12470
  import { PubSub } from '@packages/internal/common';
@@ -12239,7 +12472,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/image/system' {
12239
12472
  export class ImageSystem extends PubSub<{
12240
12473
  'image-loaded': void;
12241
12474
  }> {
12242
- constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
12475
+ constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition'], initialBearing?: number, naturalBearing?: number, imagePlacementOptions?: ImagePlacementOptions);
12243
12476
  imageLoadingCache: Map<string, Promise<Texture>>;
12244
12477
  update(cameraRotationRadians: number): void;
12245
12478
  }
@@ -12717,12 +12950,21 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles/model-style' {
12717
12950
  * vertical offset of the model in meters off the floor
12718
12951
  */
12719
12952
  verticalOffset: number;
12953
+ /**
12954
+ * Color property designed for use with @mappedin/3d-assets.
12955
+ * Updates the accent color of 3d assets by applying the color to materials named
12956
+ * ['Default', 'Fabric', 'Mpdn_Logo', 'Fabric_Logo'].
12957
+ * For custom colors on non-Mappedin models, use the {@link ModelStyle.material | material} property.
12958
+ * If both the `material` and `color` properties are provided, `material` property updates will take higher precedence than `color` property updates.
12959
+ */
12960
+ color: string;
12720
12961
  };
12721
12962
  export class ModelStyleComponnet implements Partial<ModelStyle> {
12722
12963
  dirty: boolean;
12723
12964
  visible: boolean;
12724
12965
  opacity: number;
12725
12966
  verticalOffset: number;
12967
+ color?: string;
12726
12968
  material?: ModelStyle['material'];
12727
12969
  constructor(init?: Partial<ModelStyle>);
12728
12970
  }
@@ -12731,7 +12973,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles/model-style' {
12731
12973
 
12732
12974
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
12733
12975
  import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
12734
- import type { RendererCore } from '@mappedin/core-sdk';
12976
+ import type { RendererCore, BBox } from '@mappedin/core-sdk';
12735
12977
  import type { AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
12736
12978
  import type { TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
12737
12979
  class Layer {
@@ -12744,6 +12986,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
12744
12986
  hide(): void;
12745
12987
  }
12746
12988
  export class FloorObject implements MVFFloor {
12989
+ #private;
12747
12990
  id: string;
12748
12991
  name?: string;
12749
12992
  elevation: number;
@@ -12756,6 +12999,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
12756
12999
  layers: Map<string, Layer>;
12757
13000
  footprint?: Feature<Polygon | MultiPolygon | null, MVFFloor>;
12758
13001
  floorStackId: string;
13002
+ get geoJSONBoundingBox(): BBox | undefined;
12759
13003
  constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, multiFloorView: Required<TShow3DMapOptions['multiFloorView']>, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
12760
13004
  load: () => this;
12761
13005
  get visible(): boolean;