@mappedin/mappedin-js 6.0.1-beta.42 → 6.0.1-beta.44
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.
- package/README.md +74 -0
- package/THIRD_PARTY_LICENSES.txt +5675 -2451
- package/lib/esm/{GLTFExporter-YKSUDH7B.js → GLTFExporter-4THLS4PM.js} +1 -1
- package/lib/esm/{GLTFLoader-EHCGUUZ7.js → GLTFLoader-KOQIUT25.js} +1 -1
- package/lib/esm/{browser-WIIM7TQK.js → browser-LGW6JLJT.js} +1 -1
- package/lib/esm/{chunk-4CCSRLCA.js → chunk-5SY5TZBS.js} +1 -1
- package/lib/esm/chunk-A5SAO63E.js +1 -0
- package/lib/esm/chunk-KNDTFHOY.js +1 -0
- package/lib/esm/chunk-M46A4YQ5.js +1 -0
- package/lib/esm/chunk-Q2KR5YO7.js +1 -0
- package/lib/esm/{chunk-ECHMMCCK.js → chunk-QO7JQA7V.js} +1 -1
- package/lib/esm/chunk-XGYIT3MM.js +1 -0
- package/lib/esm/index.css +1 -1
- package/lib/esm/index.d.ts +2081 -832
- package/lib/esm/index.js +1 -1
- package/lib/esm/inspector-GOK26VAV.css +1 -0
- package/lib/esm/{inspector-ZDG5OPVJ.js → inspector-KJE2KP6V.js} +1 -1
- package/lib/esm/internal-7A3UJNAV.css +1 -0
- package/lib/esm/{internal-ZMA7M4I6.js → internal-RS3PVAR3.js} +1 -1
- package/lib/esm/outdoor-context-v4-6CUOE2HW.js +1 -0
- package/lib/esm/{roboto-regular-E2V4PXOH.js → roboto-regular-PKVZDOB2.js} +1 -1
- package/lib/esm/text3d-QIM5QGO6.js +1 -0
- package/lib/esm/workers/collision-worker.csp.js +1 -0
- package/lib/esm/workers/maplibre-worker.csp.js +1 -0
- package/lib/index.css +1 -1
- package/package.json +2 -2
- package/lib/esm/chunk-DDM2BPE5.js +0 -1
- package/lib/esm/chunk-GQSDOUZP.js +0 -1
- package/lib/esm/chunk-HALSTKAB.js +0 -1
- package/lib/esm/chunk-LDGPSNHO.js +0 -1
- package/lib/esm/chunk-OZP63OFH.js +0 -1
- package/lib/esm/inspector-D2RCHDOY.css +0 -1
- package/lib/esm/internal-55777EMI.css +0 -1
- package/lib/esm/outdoor-context-v4-HKUDARND.js +0 -1
- package/lib/esm/text3d-4TF6HI7P.js +0 -1
- package/lib/esm/text3d-Q7FFP3YS.css +0 -1
package/lib/esm/index.d.ts
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
// ../mappedin-js/@packages/internal/mvf-utils
|
|
4
4
|
// ../mappedin-js/@mappedin/mvf
|
|
5
5
|
// ../mappedin-js/@packages/internal/common/pubsub
|
|
6
|
-
// ../mappedin-js/@packages/internal/mvf-utils/mvf-utils
|
|
7
6
|
// ../mappedin-js/@packages/internal/common/Mappedin.Logger
|
|
8
7
|
// ../mappedin-js/geojson
|
|
9
8
|
// ../mappedin-js/@packages/internal/common
|
|
10
9
|
// ../mappedin-js/@mappedin/core-sdk
|
|
10
|
+
// ../mappedin-js/@packages/internal/mvf-utils/mvf-utils
|
|
11
|
+
// ../mappedin-js/@packages/internal/mvf-utils/tokens/token-manager
|
|
12
|
+
// ../mappedin-js/@tweenjs/tween.js
|
|
11
13
|
// ../mappedin-js/@packages/internal/outdoor-context-v4
|
|
12
14
|
// ../mappedin-js/@packages/internal/geojson-navigator
|
|
13
15
|
// ../mappedin-js/@mappedin/mvf-core
|
|
14
16
|
// ../mappedin-js/three
|
|
15
17
|
// ../mappedin-js/zod
|
|
16
18
|
// ../mappedin-js/@packages/internal/shave-text/shave-text
|
|
17
|
-
// ../mappedin-js/@tweenjs/tween.js
|
|
18
19
|
// ../mappedin-js/@turf/turf
|
|
19
20
|
// ../mappedin-js/troika-three-text
|
|
20
21
|
// ../mappedin-js/@packages/internal/quad-tree
|
|
@@ -34,12 +35,13 @@
|
|
|
34
35
|
declare module '@mappedin/mappedin-js' {
|
|
35
36
|
import MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
|
|
36
37
|
import type { TEvents, TEventPayload, TClickPayload, THoverPayload, TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
37
|
-
import type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions } from '@packages/
|
|
38
|
+
import type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, Environment } from '@mappedin/mappedin-js/packages/mvf-utils';
|
|
38
39
|
import { parseMVF, unzipMVF } from '@packages/internal/mvf-utils';
|
|
39
40
|
import type { Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
40
41
|
import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
|
|
41
42
|
import { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
|
|
42
43
|
export type { Text3D as Text3DApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
44
|
+
export { disableText3DWorker } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
43
45
|
import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState, WatermarkUpdateOptions } from '@mappedin/mappedin-js/geojson/src';
|
|
44
46
|
import { enableTestMode, preloadFont } from '@mappedin/mappedin-js/geojson/src';
|
|
45
47
|
export type { PubSub } from '@packages/internal/common/pubsub';
|
|
@@ -47,7 +49,6 @@ declare module '@mappedin/mappedin-js' {
|
|
|
47
49
|
import { MappedinMapLibreOverlay } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
|
|
48
50
|
import type { LanguagePackHydrationItem, TImagePlacementOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
49
51
|
import { MAPPEDIN_COLORS } from '@mappedin/mappedin-js/mappedin-js/src/constants';
|
|
50
|
-
import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
|
|
51
52
|
import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
|
|
52
53
|
import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
|
|
53
54
|
export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
|
|
@@ -240,12 +241,6 @@ declare module '@mappedin/mappedin-js' {
|
|
|
240
241
|
floorHeight?: number;
|
|
241
242
|
updateCameraElevationOnFloorChange?: boolean;
|
|
242
243
|
};
|
|
243
|
-
/**
|
|
244
|
-
* @experimental
|
|
245
|
-
* @internal
|
|
246
|
-
* @default false
|
|
247
|
-
*/
|
|
248
|
-
keepOutdoorGeometryVisible?: boolean;
|
|
249
244
|
/**
|
|
250
245
|
* @experimental
|
|
251
246
|
*
|
|
@@ -318,6 +313,7 @@ declare module '@mappedin/mappedin-js' {
|
|
|
318
313
|
export type THydrateMapDataBundle = {
|
|
319
314
|
type: 'binary';
|
|
320
315
|
options?: {
|
|
316
|
+
version?: '2.0.0' | '3.0.0';
|
|
321
317
|
enterprise?: boolean;
|
|
322
318
|
};
|
|
323
319
|
languagePacks?: {
|
|
@@ -331,6 +327,7 @@ declare module '@mappedin/mappedin-js' {
|
|
|
331
327
|
} | {
|
|
332
328
|
type: 'json';
|
|
333
329
|
options?: {
|
|
330
|
+
version?: '2.0.0' | '3.0.0';
|
|
334
331
|
enterprise?: boolean;
|
|
335
332
|
};
|
|
336
333
|
languagePacks?: {
|
|
@@ -381,14 +378,15 @@ declare module '@mappedin/mappedin-js' {
|
|
|
381
378
|
export { parseMVF, unzipMVF, enableTestMode, preloadFont, MAPPEDIN_COLORS };
|
|
382
379
|
export type { MapView, MapData, MapViewState, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, EnvMapOptions, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, UpdateModelState, InitializeModelState, };
|
|
383
380
|
export type * from 'geojson';
|
|
384
|
-
export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, TFloorState, TFacadeState, } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
381
|
+
export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, TFloorState, TFacadeState, TSetFloorOptions, } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
385
382
|
export { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
386
383
|
export type { Label, Marker, Path, PathSegment, Shape, CameraTransform, Model, Image, Text3D, } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
387
384
|
export type { Debug } from '@mappedin/mappedin-js/mappedin-js/src/debug';
|
|
388
385
|
export type { Navigation, TNavigationOptions } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
|
|
389
386
|
export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
390
|
-
export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space,
|
|
391
|
-
export
|
|
387
|
+
export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, ImageMetaData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, LocationProfile, LocationCategory, Facade, Node, Area, type Places, } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
388
|
+
export { setWorkersUrl } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
|
|
389
|
+
export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, StackedMaps, } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
|
|
392
390
|
export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/mappedin-js/mappedin-js/src/search';
|
|
393
391
|
export type { TFindNearestOptions, TFindNearestResult, TQueriables, Query } from '@mappedin/mappedin-js/mappedin-js/src/query';
|
|
394
392
|
export type { Analytics, TAnalyticsUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
|
|
@@ -468,13 +466,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
|
|
|
468
466
|
*
|
|
469
467
|
* @returns {string} The current access token
|
|
470
468
|
*/
|
|
471
|
-
getAccessToken():
|
|
472
|
-
/**
|
|
473
|
-
* Get a SAS token for fetching images on non-public maps.
|
|
474
|
-
*
|
|
475
|
-
* @returns {string} The SAS token
|
|
476
|
-
*/
|
|
477
|
-
getSasToken(): Promise<string | undefined>;
|
|
469
|
+
getAccessToken(): string | undefined;
|
|
478
470
|
/**
|
|
479
471
|
* The name of the map.
|
|
480
472
|
*
|
|
@@ -713,7 +705,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/events' {
|
|
|
713
705
|
import type { TBlueDotEvents } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot';
|
|
714
706
|
import type { TDirectionInstruction } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
715
707
|
import type { Directions } from '@mappedin/mappedin-js/mappedin-js/src';
|
|
716
|
-
export type TFloorChangeReason = '
|
|
708
|
+
export type TFloorChangeReason = 'blue-dot-floor-change' | 'stacked-maps-elevation-change' | 'navigation-connection-click' | string;
|
|
717
709
|
export type TClickPayload = {
|
|
718
710
|
/**
|
|
719
711
|
* The coordinate of the interaction.
|
|
@@ -801,14 +793,15 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/events' {
|
|
|
801
793
|
*/
|
|
802
794
|
'floor-change': TFloorChangePayload;
|
|
803
795
|
/**
|
|
804
|
-
*
|
|
805
|
-
* focus due to the camera moving.
|
|
806
|
-
*
|
|
807
|
-
* floor changing.
|
|
796
|
+
*
|
|
797
|
+
* Emitted when a different facade recieves focus due to the camera moving.
|
|
798
|
+
* This always occurs when the active floor changes to a different floor stack,
|
|
799
|
+
* but may also occur when the camera moves without the active floor changing.
|
|
808
800
|
*
|
|
809
801
|
* @property {Facade[]} facades - The facades that are in focus.
|
|
802
|
+
*
|
|
810
803
|
*/
|
|
811
|
-
'
|
|
804
|
+
'facades-in-view-change': {
|
|
812
805
|
facades: Facade[];
|
|
813
806
|
};
|
|
814
807
|
/**
|
|
@@ -887,6 +880,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/events' {
|
|
|
887
880
|
};
|
|
888
881
|
}
|
|
889
882
|
|
|
883
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils' {
|
|
884
|
+
export * from '@mappedin/mappedin-js/packages/mvf-utils/api-types';
|
|
885
|
+
export * from '@mappedin/mappedin-js/packages/mvf-utils/mvf-types';
|
|
886
|
+
export type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TGetVenueOptions, TSearchOptions, TGetVenueBundleOptions, LocalePackUrls, Environment, } from '@mappedin/mappedin-js/packages/mvf-utils/mvf-utils';
|
|
887
|
+
export { downloadVenueBundleMVF, downloadVenueBundleMVFAPIGateway, downloadMVF, parseOptions, getAccessToken, parseMVF, unzipMVF, parseMVFv1, unzipMVFv1, createEnvControl, getSasToken, parseLanguagePack, } from '@mappedin/mappedin-js/packages/mvf-utils/mvf-utils';
|
|
888
|
+
export { findAndSplitObstructionByAllEntrances as splitObstructionByAllEntrances } from '@mappedin/mappedin-js/packages/mvf-utils/geometry';
|
|
889
|
+
}
|
|
890
|
+
|
|
890
891
|
declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
|
|
891
892
|
import Node from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node';
|
|
892
893
|
import Area from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/area';
|
|
@@ -899,7 +900,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
|
|
|
899
900
|
import PointOfInterest from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/poi';
|
|
900
901
|
import Annotation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/annotation';
|
|
901
902
|
import Hyperlink from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/hyperlink';
|
|
902
|
-
import
|
|
903
|
+
import ImageMetaData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image';
|
|
903
904
|
import FloorStack from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor-stack';
|
|
904
905
|
import Facade from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/facade';
|
|
905
906
|
import type { MapDataRecords, EnterpriseMapDataRecords } from '@mappedin/mappedin-js/mappedin-js/src/utils/data-creation';
|
|
@@ -918,6 +919,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
|
|
|
918
919
|
import { Query } from '@mappedin/mappedin-js/mappedin-js/src/query';
|
|
919
920
|
import LocationProfile from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location-profile';
|
|
920
921
|
import LocationCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location-category';
|
|
922
|
+
import type { TokenManager } from '@packages/internal/mvf-utils/tokens/token-manager';
|
|
921
923
|
/**
|
|
922
924
|
* Internal class representing detailed map data.
|
|
923
925
|
*
|
|
@@ -953,7 +955,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
|
|
|
953
955
|
*/
|
|
954
956
|
readonly obstructionIdByEntranceId: Record<string, string>;
|
|
955
957
|
readonly venue?: EnterpriseVenue;
|
|
956
|
-
readonly
|
|
958
|
+
readonly tokenManager?: TokenManager;
|
|
957
959
|
directions: DirectionsInternal;
|
|
958
960
|
enterpriseMode: boolean;
|
|
959
961
|
nodesById: MapDataRecords['nodesById'];
|
|
@@ -1100,8 +1102,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
|
|
|
1100
1102
|
get locationCategories(): LocationCategory[];
|
|
1101
1103
|
get mvfFloors(): MVFFloor[];
|
|
1102
1104
|
get mvfFloorStacks(): MVFFloorStack[];
|
|
1103
|
-
getAccessToken(): Promise<string | undefined>;
|
|
1104
|
-
getSasToken(): Promise<string | undefined>;
|
|
1105
1105
|
getByType(type: string): object[];
|
|
1106
1106
|
getByType(type: 'location-profile'): LocationProfile[];
|
|
1107
1107
|
getByType(type: 'location-category'): LocationCategory[];
|
|
@@ -1178,23 +1178,23 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
|
|
|
1178
1178
|
*/
|
|
1179
1179
|
destroy(): void;
|
|
1180
1180
|
}
|
|
1181
|
-
export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Facade, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink,
|
|
1181
|
+
export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Facade, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, ImageMetaData, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, LocationCategory, LocationProfile, };
|
|
1182
1182
|
export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space';
|
|
1183
1183
|
export type { Places };
|
|
1184
1184
|
}
|
|
1185
1185
|
|
|
1186
1186
|
declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
1187
|
-
import type
|
|
1187
|
+
import { type EasingCurve, type RendererCore, type WatermarkUpdateOptions } from '@mappedin/mappedin-js/geojson/src';
|
|
1188
1188
|
import { PubSub } from '@packages/internal/common';
|
|
1189
1189
|
import { type TEvents, type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
|
|
1190
1190
|
import type { Navigation } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
|
|
1191
|
-
import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images
|
|
1191
|
+
import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
|
|
1192
1192
|
import type { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
|
|
1193
1193
|
import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
|
|
1194
1194
|
import { Coordinate } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
1195
1195
|
import type { Annotation, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
1196
1196
|
import type { TCoordinateParams } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/coordinate';
|
|
1197
|
-
import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
1197
|
+
import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState, TSetFloorOptions, DeepPartial } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
1198
1198
|
import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model, Path } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
1199
1199
|
import type { TEventPayload } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
1200
1200
|
import type { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
|
|
@@ -1203,6 +1203,8 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
|
1203
1203
|
import { Debug } from '@mappedin/mappedin-js/mappedin-js/src/debug';
|
|
1204
1204
|
import type { Text3D } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
1205
1205
|
import type { PathSegment } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path';
|
|
1206
|
+
import type { ExtractDeep } from '@mappedin/mappedin-js/mappedin-js/src/utils/types';
|
|
1207
|
+
import { Tween } from '@tweenjs/tween.js';
|
|
1206
1208
|
/**
|
|
1207
1209
|
* The MapView class is the main class for rendering and interacting with the map.
|
|
1208
1210
|
*
|
|
@@ -1271,11 +1273,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
|
1271
1273
|
* Controls for Stacked Maps.
|
|
1272
1274
|
*/
|
|
1273
1275
|
get StackedMaps(): StackedMaps;
|
|
1274
|
-
/**
|
|
1275
|
-
* @internal
|
|
1276
|
-
* @experimental
|
|
1277
|
-
*/
|
|
1278
|
-
get DynamicFocus(): DynamicFocus;
|
|
1279
1276
|
/**
|
|
1280
1277
|
* @internal
|
|
1281
1278
|
*/
|
|
@@ -1309,6 +1306,16 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
|
1309
1306
|
*/
|
|
1310
1307
|
updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | Floor | WALLS | DOORS | Model | Path | PathSegment>(target: T, state: TUpdateState<T>): any;
|
|
1311
1308
|
updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
|
|
1309
|
+
/**
|
|
1310
|
+
* Animate the state of a given target on the map from the current state to a new state. Only numeric properties and
|
|
1311
|
+
* colors can be animated.
|
|
1312
|
+
*/
|
|
1313
|
+
animateState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Shape | Path | PathSegment | Floor>(target: T, state: DeepPartial<ExtractDeep<TGetState<T>, number | string | undefined>>, options?: {
|
|
1314
|
+
duration?: number;
|
|
1315
|
+
easing?: EasingCurve;
|
|
1316
|
+
}): Promise<void> & {
|
|
1317
|
+
cancel: () => void;
|
|
1318
|
+
};
|
|
1312
1319
|
/**
|
|
1313
1320
|
* Update global state of the MapView
|
|
1314
1321
|
*/
|
|
@@ -1354,12 +1361,27 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
|
1354
1361
|
* Sets the current floor ({@link Floor}) of the map.
|
|
1355
1362
|
* @param floor The floor or floor ID to set.
|
|
1356
1363
|
*/
|
|
1357
|
-
setFloor(floor: Floor | string): void;
|
|
1364
|
+
setFloor(floor: Floor | string, options?: TSetFloorOptions): void;
|
|
1358
1365
|
/**
|
|
1359
1366
|
* Sets the current floor stack ({@link FloorStack}) of the map. The default floor of the stack will be set as the current floor.
|
|
1360
1367
|
* @param floorStack The floor stack or floor stack ID to set.
|
|
1361
1368
|
*/
|
|
1362
|
-
setFloorStack(floorStack: FloorStack | string): void;
|
|
1369
|
+
setFloorStack(floorStack: FloorStack | string, options?: TSetFloorOptions): void;
|
|
1370
|
+
/**
|
|
1371
|
+
* Create a tween object that will be updated on every render frame.
|
|
1372
|
+
* See https://tweenjs.github.io/tween.js/docs/user_guide.html for more information.
|
|
1373
|
+
*
|
|
1374
|
+
* When creating a large number of tween objects, it may be important to call {@link removeTween} to prevent memory leaks.
|
|
1375
|
+
*
|
|
1376
|
+
* @param object The data to be tweened.
|
|
1377
|
+
* @returns The tween object.
|
|
1378
|
+
*/
|
|
1379
|
+
tween<T extends Record<string, unknown>>(object: T): Tween<T>;
|
|
1380
|
+
/**
|
|
1381
|
+
* Remove a tween created with {@link tween}.
|
|
1382
|
+
* @param tween The tween to remove.
|
|
1383
|
+
*/
|
|
1384
|
+
removeTween(tween: Tween<any>): void;
|
|
1363
1385
|
/**
|
|
1364
1386
|
* The current floor stack ({@link FloorStack}) of the map.
|
|
1365
1387
|
*/
|
|
@@ -1375,7 +1397,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
|
1375
1397
|
* @hidden
|
|
1376
1398
|
*/
|
|
1377
1399
|
updateWatermark(options: WatermarkUpdateOptions): void;
|
|
1378
|
-
getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | Path | PathSegment | Floor | string>(target: T): TGetState<T>;
|
|
1400
|
+
getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | Path | PathSegment | Floor | Facade | string>(target: T): TGetState<T>;
|
|
1379
1401
|
setHoverColor(c: string): void;
|
|
1380
1402
|
getHoverColor(): string | undefined;
|
|
1381
1403
|
/**
|
|
@@ -1556,6 +1578,18 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
|
|
|
1556
1578
|
* @experimental
|
|
1557
1579
|
*/
|
|
1558
1580
|
takeScreenshot(): Promise<string>;
|
|
1581
|
+
/**
|
|
1582
|
+
* @internal
|
|
1583
|
+
* @hidden
|
|
1584
|
+
* Whether the floor visibility is being self managed or automatically handled by the SDK.
|
|
1585
|
+
*/
|
|
1586
|
+
get manualFloorVisibility(): boolean;
|
|
1587
|
+
/**
|
|
1588
|
+
* @internal
|
|
1589
|
+
* @hidden
|
|
1590
|
+
* Disables the default behavior of the SDK to automatically hide floors on setFloor.
|
|
1591
|
+
*/
|
|
1592
|
+
set manualFloorVisibility(value: boolean);
|
|
1559
1593
|
}
|
|
1560
1594
|
}
|
|
1561
1595
|
|
|
@@ -1564,6 +1598,29 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d' {
|
|
|
1564
1598
|
import type { TAddText3DOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
1565
1599
|
import type { CurrentMapGetter } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/types';
|
|
1566
1600
|
import { Text3D as Text3DView } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
1601
|
+
/**
|
|
1602
|
+
* Disables the Text3D web worker and falls back to processing on the main thread.
|
|
1603
|
+
*
|
|
1604
|
+
* This function should be called when using Text3D features in environments
|
|
1605
|
+
* with strict Content Security Policy (CSP) that blocks web workers from
|
|
1606
|
+
* being created using blob: URLs or unsafe-eval directives.
|
|
1607
|
+
*
|
|
1608
|
+
* While disabling the worker may slightly impact performance for complex text
|
|
1609
|
+
* rendering, it enables Text3D functionality in CSP-restricted environments.
|
|
1610
|
+
*
|
|
1611
|
+
* Ensure calling this before calling preloadFont
|
|
1612
|
+
*
|
|
1613
|
+
* @example
|
|
1614
|
+
* ```typescript
|
|
1615
|
+
* import {disableText3DWorker} from '@mappedin/mappedin-js';
|
|
1616
|
+
* // Disable Text3D worker for CSP compatibility
|
|
1617
|
+
* disableText3DWorker();
|
|
1618
|
+
*
|
|
1619
|
+
* // Then use Text3D features as normal
|
|
1620
|
+
* mapView.Text3D.labelAll();
|
|
1621
|
+
* ```
|
|
1622
|
+
*/
|
|
1623
|
+
export function disableText3DWorker(): void;
|
|
1567
1624
|
export class Text3D {
|
|
1568
1625
|
#private;
|
|
1569
1626
|
/**
|
|
@@ -1667,7 +1724,8 @@ declare module '@mappedin/mappedin-js/geojson/src' {
|
|
|
1667
1724
|
export type { EntityId, EntityState, LineStyle, PaintStyle, ModelProperties, Shading, ImagePlacementOptions, } from '@mappedin/mappedin-js/geojson/src/types';
|
|
1668
1725
|
export type * from 'geojson';
|
|
1669
1726
|
export type { WatermarkUpdateOptions, WatermarkOptions, WatermarkPosition } from '@mappedin/mappedin-js/geojson/src/systems/watermark/system';
|
|
1670
|
-
export { preloadFont } from '@mappedin/mappedin-js/geojson/src/systems/text3d/system';
|
|
1727
|
+
export { preloadFont, configureWorker } from '@mappedin/mappedin-js/geojson/src/systems/text3d/system';
|
|
1728
|
+
export { setWorkerUrl as setCollisionWorkerUrl } from '@mappedin/mappedin-js/geojson/src/systems/collisions/system';
|
|
1671
1729
|
export type { GLTFExportOptions } from '@mappedin/mappedin-js/geojson/src/systems/exporter';
|
|
1672
1730
|
export type { AttributionControlOptions, AttributionPosition } from '@mappedin/mappedin-js/geojson/src/systems/html-controls/system';
|
|
1673
1731
|
export type { Text3DStyle, ModelStyle } from '@mappedin/mappedin-js/geojson/src/components/styles';
|
|
@@ -1757,6 +1815,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
1757
1815
|
import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
|
|
1758
1816
|
import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState as GeoJsonUpdateModelState, ImagePlacementOptions, LabelAppearance } from '@mappedin/mappedin-js/geojson/src';
|
|
1759
1817
|
import type { PathSegment } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path';
|
|
1818
|
+
import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
1760
1819
|
export type UpdateModelState = Omit<GeoJsonUpdateModelState, 'position' | 'scale'> & {
|
|
1761
1820
|
position?: Coordinate;
|
|
1762
1821
|
scale?: number | [number, number, number];
|
|
@@ -1946,6 +2005,22 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
1946
2005
|
* The color of the path.
|
|
1947
2006
|
*/
|
|
1948
2007
|
color: string;
|
|
2008
|
+
/**
|
|
2009
|
+
* The complete fraction of the path.
|
|
2010
|
+
*/
|
|
2011
|
+
completeFraction: number;
|
|
2012
|
+
/**
|
|
2013
|
+
* The near radius of the path.
|
|
2014
|
+
*/
|
|
2015
|
+
nearRadius: number;
|
|
2016
|
+
/**
|
|
2017
|
+
* The far radius of the path.
|
|
2018
|
+
*/
|
|
2019
|
+
farRadius: number;
|
|
2020
|
+
/**
|
|
2021
|
+
* Whether the path is visible.
|
|
2022
|
+
*/
|
|
2023
|
+
visible: boolean;
|
|
1949
2024
|
};
|
|
1950
2025
|
/**
|
|
1951
2026
|
* Represents the state of a shape.
|
|
@@ -1983,6 +2058,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
1983
2058
|
* The opacity of the facade.
|
|
1984
2059
|
*/
|
|
1985
2060
|
opacity: number;
|
|
2061
|
+
/**
|
|
2062
|
+
* Whether the facade is visible.
|
|
2063
|
+
*/
|
|
2064
|
+
visible: boolean;
|
|
1986
2065
|
};
|
|
1987
2066
|
/**
|
|
1988
2067
|
* Defines the state for geometry elements like {@link Space} when updated.
|
|
@@ -2041,7 +2120,68 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
2041
2120
|
* Opacity of the floor geometry.
|
|
2042
2121
|
*/
|
|
2043
2122
|
opacity: number;
|
|
2123
|
+
/**
|
|
2124
|
+
* Visibility of floor geometry.
|
|
2125
|
+
*/
|
|
2126
|
+
visible: boolean;
|
|
2127
|
+
};
|
|
2128
|
+
labels: {
|
|
2129
|
+
/**
|
|
2130
|
+
* Whether the labels are enabled to be shown when the floor is visible.
|
|
2131
|
+
*/
|
|
2132
|
+
enabled: boolean;
|
|
2133
|
+
};
|
|
2134
|
+
markers: {
|
|
2135
|
+
/**
|
|
2136
|
+
* Whether the markers are enabled to be shown when the floor is visible.
|
|
2137
|
+
*/
|
|
2138
|
+
enabled: boolean;
|
|
2139
|
+
};
|
|
2140
|
+
footprint: {
|
|
2141
|
+
/**
|
|
2142
|
+
* Altitude of the footprint relative to the floor.
|
|
2143
|
+
*/
|
|
2144
|
+
altitude: number;
|
|
2145
|
+
/**
|
|
2146
|
+
* Whether the footprint is visible.
|
|
2147
|
+
*/
|
|
2148
|
+
visible: boolean;
|
|
2149
|
+
/**
|
|
2150
|
+
* Height of the footprint relative to altitude.
|
|
2151
|
+
*/
|
|
2152
|
+
height: number;
|
|
2153
|
+
/**
|
|
2154
|
+
* Opacity of the footprint.
|
|
2155
|
+
*/
|
|
2156
|
+
opacity: number;
|
|
2157
|
+
/**
|
|
2158
|
+
* Material side of the footprint.
|
|
2159
|
+
* @internal
|
|
2160
|
+
*/
|
|
2161
|
+
side: 'double' | 'front' | 'back';
|
|
2162
|
+
/**
|
|
2163
|
+
* Color of the footprint.
|
|
2164
|
+
*/
|
|
2165
|
+
color: string;
|
|
2166
|
+
};
|
|
2167
|
+
/**
|
|
2168
|
+
* @internal
|
|
2169
|
+
*/
|
|
2170
|
+
occlusion: {
|
|
2171
|
+
/**
|
|
2172
|
+
* @internal
|
|
2173
|
+
* Whether this floor should occlude labels and markers on other floors
|
|
2174
|
+
*/
|
|
2175
|
+
enabled: boolean;
|
|
2044
2176
|
};
|
|
2177
|
+
/**
|
|
2178
|
+
* The visibility of the floor, including the geometry, labels, and markers.
|
|
2179
|
+
*/
|
|
2180
|
+
visible: boolean;
|
|
2181
|
+
/**
|
|
2182
|
+
* The altitude of the floor.
|
|
2183
|
+
*/
|
|
2184
|
+
altitude: number;
|
|
2045
2185
|
};
|
|
2046
2186
|
export enum WALLS {
|
|
2047
2187
|
Exterior = "exterior-walls",
|
|
@@ -2054,7 +2194,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
2054
2194
|
/**
|
|
2055
2195
|
* The type for updating the state of map elements (colors, texts, etc.).
|
|
2056
2196
|
*/
|
|
2057
|
-
export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Floor ?
|
|
2197
|
+
export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Floor ? DeepPartial<TFloorState> : T extends Facade ? Partial<TFacadeState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends Path ? Partial<TPathState> : T extends PathSegment ? Partial<TPathState> : T extends string ? Record<string, any> : never;
|
|
2058
2198
|
export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState> | Partial<TPathState>;
|
|
2059
2199
|
export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends Floor ? TFloorState | undefined : T extends Facade ? TFacadeState | undefined : T extends Path ? TPathState | undefined : T extends PathSegment ? TPathState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | TPathState | undefined : never;
|
|
2060
2200
|
/**
|
|
@@ -2522,6 +2662,28 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
2522
2662
|
* sorting of markers and show certain markers always in front
|
|
2523
2663
|
*/
|
|
2524
2664
|
zIndex?: number;
|
|
2665
|
+
/**
|
|
2666
|
+
* Configuration for the low priority pin fallback strategy.
|
|
2667
|
+
* When enabled, shows a smaller pin version of the marker when all anchor positions have collisions.
|
|
2668
|
+
* @default { enabled: true, size: 2, color: '#666' }
|
|
2669
|
+
*/
|
|
2670
|
+
lowPriorityPin?: {
|
|
2671
|
+
/**
|
|
2672
|
+
* Whether to enable low priority pin strategy when all anchor positions have collisions.
|
|
2673
|
+
* @default true
|
|
2674
|
+
*/
|
|
2675
|
+
enabled?: boolean;
|
|
2676
|
+
/**
|
|
2677
|
+
* Size of the low priority pin in pixels.
|
|
2678
|
+
* @default 2
|
|
2679
|
+
*/
|
|
2680
|
+
size?: number;
|
|
2681
|
+
/**
|
|
2682
|
+
* Color of the low priority pin.
|
|
2683
|
+
* @default '#666'
|
|
2684
|
+
*/
|
|
2685
|
+
color?: string;
|
|
2686
|
+
};
|
|
2525
2687
|
};
|
|
2526
2688
|
/**
|
|
2527
2689
|
* Options for creating a new {@link Label} with {@link Labels.add}.
|
|
@@ -2738,6 +2900,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
|
|
|
2738
2900
|
*/
|
|
2739
2901
|
bearingAndPitch?: boolean;
|
|
2740
2902
|
};
|
|
2903
|
+
export type TSetFloorOptions = {
|
|
2904
|
+
/**
|
|
2905
|
+
* Optionally provide the context for the floor change which will be published as the `reason` for the `floor-change` event.
|
|
2906
|
+
*/
|
|
2907
|
+
context?: TFloorChangeReason;
|
|
2908
|
+
};
|
|
2741
2909
|
}
|
|
2742
2910
|
|
|
2743
2911
|
declare module '@mappedin/mappedin-js/mappedin-js/src/constants' {
|
|
@@ -3128,7 +3296,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects' {
|
|
|
3128
3296
|
}
|
|
3129
3297
|
|
|
3130
3298
|
declare module '@mappedin/mappedin-js/mappedin-js/src/debug' {
|
|
3131
|
-
import type { RendererCore } from '@mappedin/
|
|
3299
|
+
import type { RendererCore } from '@mappedin/mappedin-js/geojson/src';
|
|
3132
3300
|
export class Debug {
|
|
3133
3301
|
state: RendererCore['Debug']['state'];
|
|
3134
3302
|
constructor(core: RendererCore);
|
|
@@ -3231,6 +3399,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation' {
|
|
|
3231
3399
|
*/
|
|
3232
3400
|
animateArrowsOnPath?: boolean;
|
|
3233
3401
|
};
|
|
3402
|
+
/**
|
|
3403
|
+
* Controls whether the path drawing is animated across floors.
|
|
3404
|
+
* @default true
|
|
3405
|
+
*/
|
|
3406
|
+
animatePathDrawing?: boolean;
|
|
3234
3407
|
/**
|
|
3235
3408
|
* Options for the path.
|
|
3236
3409
|
*/
|
|
@@ -3391,6 +3564,141 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation' {
|
|
|
3391
3564
|
export {};
|
|
3392
3565
|
}
|
|
3393
3566
|
|
|
3567
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
|
|
3568
|
+
import type { RendererCore, WatermarkUpdateOptions } from '@mappedin/core-sdk';
|
|
3569
|
+
import { type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
|
|
3570
|
+
import { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
3571
|
+
import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
|
|
3572
|
+
import type { FloorStack, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
3573
|
+
import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
3574
|
+
import type { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
|
|
3575
|
+
import { Label, Marker, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
3576
|
+
import { Text3D as Text3DView, Model, Path, type Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
3577
|
+
import { Navigation } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
|
|
3578
|
+
import type { TGetState, TUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
3579
|
+
import { Camera } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera';
|
|
3580
|
+
import { Exporter } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/exporter';
|
|
3581
|
+
import { Labels } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels';
|
|
3582
|
+
import { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
3583
|
+
import { Markers } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers';
|
|
3584
|
+
import { Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images';
|
|
3585
|
+
import { Models } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models';
|
|
3586
|
+
import { Paths } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths';
|
|
3587
|
+
import { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
|
|
3588
|
+
import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
3589
|
+
import { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
|
|
3590
|
+
import { Style } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style';
|
|
3591
|
+
import Outdoor from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor';
|
|
3592
|
+
import { type BBox } from 'geojson';
|
|
3593
|
+
import { Text3D } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
3594
|
+
import { PathSegment } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path';
|
|
3595
|
+
import { Tween } from '@tweenjs/tween.js';
|
|
3596
|
+
export class GeoJsonApi {
|
|
3597
|
+
core: RendererCore;
|
|
3598
|
+
mapObjects: GeojsonApiMapObject[];
|
|
3599
|
+
id: string;
|
|
3600
|
+
mapDataExternal: {
|
|
3601
|
+
[key in string]: MapData;
|
|
3602
|
+
};
|
|
3603
|
+
mapData?: MapData;
|
|
3604
|
+
currentMap: GeojsonApiMapObject;
|
|
3605
|
+
hiddenOutdoorGeometries: [
|
|
3606
|
+
BBox,
|
|
3607
|
+
polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[],
|
|
3608
|
+
layers: string[]
|
|
3609
|
+
][];
|
|
3610
|
+
manualFloorVisibility: boolean;
|
|
3611
|
+
mapView: MapView;
|
|
3612
|
+
Camera: Camera;
|
|
3613
|
+
Labels: Labels;
|
|
3614
|
+
Text3D: Text3D;
|
|
3615
|
+
Markers: Markers;
|
|
3616
|
+
Models: Models;
|
|
3617
|
+
Paths: Paths;
|
|
3618
|
+
Exporter: Exporter;
|
|
3619
|
+
Navigation: Navigation;
|
|
3620
|
+
Outdoor: Outdoor;
|
|
3621
|
+
BlueDot: BlueDot;
|
|
3622
|
+
Shapes: Shapes;
|
|
3623
|
+
Style: Style;
|
|
3624
|
+
Images: Images;
|
|
3625
|
+
get StackedMaps(): import("..").StackedMaps;
|
|
3626
|
+
constructor(rendererCore: RendererCore, mapView: MapView);
|
|
3627
|
+
updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | Floor | WALLS | DOORS | Path | PathSegment | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
|
|
3628
|
+
update: () => void;
|
|
3629
|
+
getMapDataInternal(): MapDataInternal | undefined;
|
|
3630
|
+
getMapData(): MapData | undefined;
|
|
3631
|
+
addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
|
|
3632
|
+
setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
|
|
3633
|
+
setFloorStack(floorStack: FloorStack | string, reason?: TFloorChangeReason): void;
|
|
3634
|
+
updateWatermark(options: WatermarkUpdateOptions): void;
|
|
3635
|
+
get currentFloorStack(): FloorStack;
|
|
3636
|
+
get currentFloor(): Floor;
|
|
3637
|
+
getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | Path | PathSegment | Floor | Facade | string>(target: T): TGetState<T>;
|
|
3638
|
+
setHoverColor(c: string): void;
|
|
3639
|
+
getHoverColor(): string | undefined;
|
|
3640
|
+
/**
|
|
3641
|
+
* Create a coordinate from a screen coordinate
|
|
3642
|
+
* @param x - The x coordinate of the screen
|
|
3643
|
+
* @param y - The y coordinate of the screen
|
|
3644
|
+
* @param floor - The floor to use for the coordinate
|
|
3645
|
+
* @returns The coordinate
|
|
3646
|
+
*/
|
|
3647
|
+
createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
|
|
3648
|
+
getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
|
|
3649
|
+
x: number;
|
|
3650
|
+
y: number;
|
|
3651
|
+
};
|
|
3652
|
+
isInView(target: Space | MapObject | Label | Marker | string): boolean;
|
|
3653
|
+
auto(): {
|
|
3654
|
+
labels: Label[];
|
|
3655
|
+
};
|
|
3656
|
+
tween<T extends Record<string, unknown>>(object: T): Tween<T>;
|
|
3657
|
+
removeTween(tween: Tween<any>): void;
|
|
3658
|
+
/**
|
|
3659
|
+
* @internal
|
|
3660
|
+
*/
|
|
3661
|
+
get __core(): RendererCore;
|
|
3662
|
+
clear(): void;
|
|
3663
|
+
destroy(): void;
|
|
3664
|
+
}
|
|
3665
|
+
/**
|
|
3666
|
+
* Sets the base URL directory where worker scripts are hosted for CSP compatibility.
|
|
3667
|
+
*
|
|
3668
|
+
* This function configures both the MapLibre and collision system workers to load from
|
|
3669
|
+
* external URLs instead of using inline blob URLs. The SDK expects two specific worker
|
|
3670
|
+
* files to be available in the provided directory:
|
|
3671
|
+
* - `maplibre-worker.csp.js` - For MapLibre map rendering
|
|
3672
|
+
* - `collision-worker.csp.js` - For the collision detection system
|
|
3673
|
+
*
|
|
3674
|
+
* Using this approach enables compatibility with strict Content Security Policies
|
|
3675
|
+
* that block unsafe-eval and blob: URLs.
|
|
3676
|
+
*
|
|
3677
|
+
* @param baseUrl - Base URL directory where worker scripts are hosted (without trailing slash)
|
|
3678
|
+
* Example: "https://cdn.example.com/workers"
|
|
3679
|
+
*
|
|
3680
|
+
* @example
|
|
3681
|
+
* ```typescript
|
|
3682
|
+
* import { setWorkersUrl } from '@mappedin/mappedin-js';
|
|
3683
|
+
*
|
|
3684
|
+
* // Call before initializing any maps
|
|
3685
|
+
* setWorkersUrl('https://cdn.example.com/workers');
|
|
3686
|
+
* // This will load:
|
|
3687
|
+
* // - https://cdn.example.com/workers/maplibre-worker.csp.js
|
|
3688
|
+
* // - https://cdn.example.com/workers/collision-worker.csp.js
|
|
3689
|
+
* ```
|
|
3690
|
+
*
|
|
3691
|
+
* @remarks
|
|
3692
|
+
* - The worker files can be found in the published package at:
|
|
3693
|
+
* `node_modules/@mappedin/mappedin-js/lib/esm/workers/`
|
|
3694
|
+
* - For deployment, copy these files to your web server or CDN
|
|
3695
|
+
* - A better approach is to add these files to your build process to ensure
|
|
3696
|
+
* they're always in sync with your application
|
|
3697
|
+
* - Call this function before creating any map instances
|
|
3698
|
+
*/
|
|
3699
|
+
export function setWorkersUrl(baseUrl: string): void;
|
|
3700
|
+
}
|
|
3701
|
+
|
|
3394
3702
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson' {
|
|
3395
3703
|
export { GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
|
|
3396
3704
|
export { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot';
|
|
@@ -3407,7 +3715,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson' {
|
|
|
3407
3715
|
export { default as Outdoor } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor';
|
|
3408
3716
|
export { Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images';
|
|
3409
3717
|
export { StackedMaps } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
|
|
3410
|
-
export { DynamicFocus } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/dynamic-focus';
|
|
3411
3718
|
}
|
|
3412
3719
|
|
|
3413
3720
|
declare module '@mappedin/mappedin-js/mappedin-js/src/search' {
|
|
@@ -3540,6 +3847,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
|
|
|
3540
3847
|
import type { LocalePackUrls } from '@packages/internal/mvf-utils';
|
|
3541
3848
|
import type { LanguagePackHydrationItem } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
3542
3849
|
import type { EnvControl, TGetMapDataOptions } from '@packages/internal/mvf-utils/mvf-utils';
|
|
3850
|
+
import { TokenManager } from '@packages/internal/mvf-utils/tokens/token-manager';
|
|
3543
3851
|
/**
|
|
3544
3852
|
* Places are the main objects that can be searched for.
|
|
3545
3853
|
*/
|
|
@@ -3569,7 +3877,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
|
|
|
3569
3877
|
localePacksUrls?: LocalePackUrls;
|
|
3570
3878
|
languagePacks?: LanguagePackHydrationItem[];
|
|
3571
3879
|
binaryBundle?: Uint8Array;
|
|
3572
|
-
|
|
3880
|
+
tokenManager?: TokenManager;
|
|
3573
3881
|
getMapDataOptions?: TGetMapDataOptions;
|
|
3574
3882
|
};
|
|
3575
3883
|
/**
|
|
@@ -3629,12 +3937,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot' {
|
|
|
3629
3937
|
declare module '@mappedin/mappedin-js/mappedin-js/src' {
|
|
3630
3938
|
import MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
|
|
3631
3939
|
import type { TEvents, TEventPayload, TClickPayload, THoverPayload, TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
3632
|
-
import type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions } from '@packages/
|
|
3940
|
+
import type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, Environment } from '@mappedin/mappedin-js/packages/mvf-utils';
|
|
3633
3941
|
import { parseMVF, unzipMVF } from '@packages/internal/mvf-utils';
|
|
3634
3942
|
import type { Floor } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
3635
3943
|
import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
|
|
3636
3944
|
import { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
|
|
3637
3945
|
export type { Text3D as Text3DApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
3946
|
+
export { disableText3DWorker } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
3638
3947
|
import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState, WatermarkUpdateOptions } from '@mappedin/mappedin-js/geojson/src';
|
|
3639
3948
|
import { enableTestMode, preloadFont } from '@mappedin/mappedin-js/geojson/src';
|
|
3640
3949
|
export type { PubSub } from '@packages/internal/common/pubsub';
|
|
@@ -3642,7 +3951,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
|
|
|
3642
3951
|
import { MappedinMapLibreOverlay } from '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay';
|
|
3643
3952
|
import type { LanguagePackHydrationItem, TImagePlacementOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
3644
3953
|
import { MAPPEDIN_COLORS } from '@mappedin/mappedin-js/mappedin-js/src/constants';
|
|
3645
|
-
import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
|
|
3646
3954
|
import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
|
|
3647
3955
|
import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
|
|
3648
3956
|
export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
|
|
@@ -3835,12 +4143,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
|
|
|
3835
4143
|
floorHeight?: number;
|
|
3836
4144
|
updateCameraElevationOnFloorChange?: boolean;
|
|
3837
4145
|
};
|
|
3838
|
-
/**
|
|
3839
|
-
* @experimental
|
|
3840
|
-
* @internal
|
|
3841
|
-
* @default false
|
|
3842
|
-
*/
|
|
3843
|
-
keepOutdoorGeometryVisible?: boolean;
|
|
3844
4146
|
/**
|
|
3845
4147
|
* @experimental
|
|
3846
4148
|
*
|
|
@@ -3913,6 +4215,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
|
|
|
3913
4215
|
export type THydrateMapDataBundle = {
|
|
3914
4216
|
type: 'binary';
|
|
3915
4217
|
options?: {
|
|
4218
|
+
version?: '2.0.0' | '3.0.0';
|
|
3916
4219
|
enterprise?: boolean;
|
|
3917
4220
|
};
|
|
3918
4221
|
languagePacks?: {
|
|
@@ -3926,6 +4229,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
|
|
|
3926
4229
|
} | {
|
|
3927
4230
|
type: 'json';
|
|
3928
4231
|
options?: {
|
|
4232
|
+
version?: '2.0.0' | '3.0.0';
|
|
3929
4233
|
enterprise?: boolean;
|
|
3930
4234
|
};
|
|
3931
4235
|
languagePacks?: {
|
|
@@ -3976,38 +4280,831 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
|
|
|
3976
4280
|
export { parseMVF, unzipMVF, enableTestMode, preloadFont, MAPPEDIN_COLORS };
|
|
3977
4281
|
export type { MapView, MapData, MapViewState, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, EnvMapOptions, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, UpdateModelState, InitializeModelState, };
|
|
3978
4282
|
export type * from 'geojson';
|
|
3979
|
-
export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, TFloorState, TFacadeState, } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
4283
|
+
export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, TFloorState, TFacadeState, TSetFloorOptions, } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
3980
4284
|
export { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
3981
4285
|
export type { Label, Marker, Path, PathSegment, Shape, CameraTransform, Model, Image, Text3D, } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
3982
4286
|
export type { Debug } from '@mappedin/mappedin-js/mappedin-js/src/debug';
|
|
3983
4287
|
export type { Navigation, TNavigationOptions } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
|
|
3984
4288
|
export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
3985
|
-
export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space,
|
|
3986
|
-
export
|
|
4289
|
+
export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, ImageMetaData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, LocationProfile, LocationCategory, Facade, Node, Area, type Places, } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
4290
|
+
export { setWorkersUrl } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
|
|
4291
|
+
export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, StackedMaps, } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
|
|
3987
4292
|
export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/mappedin-js/mappedin-js/src/search';
|
|
3988
4293
|
export type { TFindNearestOptions, TFindNearestResult, TQueriables, Query } from '@mappedin/mappedin-js/mappedin-js/src/query';
|
|
3989
4294
|
export type { Analytics, TAnalyticsUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
|
|
3990
4295
|
}
|
|
3991
4296
|
|
|
3992
|
-
declare module '@mappedin/mappedin-js/
|
|
3993
|
-
import type { NodeCollection } from '@mappedin/mvf';
|
|
3994
|
-
import Coordinate from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/coordinate';
|
|
3995
|
-
import type { EnterpriseLocation, MapDataInternal, Space } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
3996
|
-
import type Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
|
|
3997
|
-
import BaseMetaData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-metadata-object';
|
|
3998
|
-
import type { IGeoJSONData } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types';
|
|
3999
|
-
import type { IAnchorable, IFocusable } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
4297
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils/api-types' {
|
|
4000
4298
|
/**
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4299
|
+
* This file contains the API types for MappedinSDK - before they get turned into Classes
|
|
4300
|
+
*/
|
|
4301
|
+
export type TLocationType = 'amenities' | 'tenant';
|
|
4302
|
+
export type TNode = {
|
|
4303
|
+
id: string;
|
|
4304
|
+
x: number;
|
|
4305
|
+
y: number;
|
|
4306
|
+
map: string;
|
|
4307
|
+
externalId?: string;
|
|
4308
|
+
paths: {
|
|
4309
|
+
node: string;
|
|
4310
|
+
map: string;
|
|
4311
|
+
weight?: number;
|
|
4312
|
+
}[];
|
|
4313
|
+
[propName: string]: any;
|
|
4314
|
+
};
|
|
4315
|
+
export type TImage = {
|
|
4316
|
+
original?: string;
|
|
4317
|
+
large?: string;
|
|
4318
|
+
'140x140'?: string;
|
|
4319
|
+
xxlarge?: string;
|
|
4320
|
+
xsmall?: string;
|
|
4321
|
+
'66x66'?: string;
|
|
4322
|
+
xlarge?: string;
|
|
4323
|
+
medium?: string;
|
|
4324
|
+
xxsmall?: string;
|
|
4325
|
+
small?: string;
|
|
4326
|
+
};
|
|
4327
|
+
export type TLogo = TImage;
|
|
4328
|
+
export type TGalleryImage = {
|
|
4329
|
+
image: TImage;
|
|
4330
|
+
caption?: string;
|
|
4331
|
+
};
|
|
4332
|
+
export type TPhone = {
|
|
4333
|
+
number?: string;
|
|
4334
|
+
};
|
|
4335
|
+
export type TSocial = {
|
|
4336
|
+
website?: string;
|
|
4337
|
+
twitter?: string;
|
|
4338
|
+
facebook?: string;
|
|
4339
|
+
instagram?: string;
|
|
4340
|
+
};
|
|
4341
|
+
export type TColor = {
|
|
4342
|
+
hex: string;
|
|
4343
|
+
opacity: number;
|
|
4344
|
+
rgba: string;
|
|
4345
|
+
};
|
|
4346
|
+
export type TVortex = {
|
|
4347
|
+
id: string;
|
|
4348
|
+
name: string;
|
|
4349
|
+
type: string;
|
|
4350
|
+
weight: number;
|
|
4351
|
+
multiplier: number;
|
|
4352
|
+
[propName: string]: any;
|
|
4353
|
+
};
|
|
4354
|
+
export type TPicture = {
|
|
4355
|
+
original?: string;
|
|
4356
|
+
};
|
|
4357
|
+
export type TOpeningHours = {
|
|
4358
|
+
'@type': string;
|
|
4359
|
+
opens: string;
|
|
4360
|
+
closes: string;
|
|
4361
|
+
dayOfWeek: string[];
|
|
4362
|
+
validFrom?: string;
|
|
4363
|
+
validThrough?: string;
|
|
4364
|
+
};
|
|
4365
|
+
export type TSiblingGroup = {
|
|
4366
|
+
label: string;
|
|
4367
|
+
siblings: string[];
|
|
4368
|
+
};
|
|
4369
|
+
export type TState = {
|
|
4370
|
+
type: string;
|
|
4371
|
+
start?: string;
|
|
4372
|
+
end?: string;
|
|
4373
|
+
};
|
|
4374
|
+
export type TCategory = {
|
|
4375
|
+
name?: string;
|
|
4376
|
+
externalId?: string;
|
|
4377
|
+
parents?: string[];
|
|
4378
|
+
id?: string;
|
|
4379
|
+
icon?: TPicture;
|
|
4380
|
+
};
|
|
4381
|
+
export type TEvent = {
|
|
4382
|
+
id: string;
|
|
4383
|
+
type: string;
|
|
4384
|
+
name: string;
|
|
4385
|
+
location?: string;
|
|
4386
|
+
description?: string;
|
|
4387
|
+
image?: TImage;
|
|
4388
|
+
startDate?: number;
|
|
4389
|
+
endDate?: number;
|
|
4390
|
+
showDate?: number;
|
|
4391
|
+
};
|
|
4392
|
+
export interface TGeoReference {
|
|
4393
|
+
target: {
|
|
4394
|
+
x: number;
|
|
4395
|
+
y: number;
|
|
4396
|
+
};
|
|
4397
|
+
control: {
|
|
4398
|
+
x: number;
|
|
4399
|
+
y: number;
|
|
4400
|
+
};
|
|
4401
|
+
}
|
|
4402
|
+
export interface TMap {
|
|
4403
|
+
id: string;
|
|
4404
|
+
name: string;
|
|
4405
|
+
shortName: string;
|
|
4406
|
+
elevation?: number;
|
|
4407
|
+
scale?: number;
|
|
4408
|
+
x_scale?: number;
|
|
4409
|
+
georeference?: TGeoReference[];
|
|
4410
|
+
[propName: string]: any;
|
|
4411
|
+
}
|
|
4412
|
+
export type TMapGroup = {
|
|
4413
|
+
name: string;
|
|
4414
|
+
id: string;
|
|
4415
|
+
};
|
|
4416
|
+
export type TBuilding = TLocation & {
|
|
4417
|
+
groupId: string;
|
|
4418
|
+
};
|
|
4419
|
+
export type TLocation = {
|
|
4420
|
+
id: string;
|
|
4421
|
+
name: string;
|
|
4422
|
+
type: string;
|
|
4423
|
+
nodes: {
|
|
4424
|
+
map: TMap['id'];
|
|
4425
|
+
node: TNode['id'];
|
|
4426
|
+
}[];
|
|
4427
|
+
polygons: {
|
|
4428
|
+
map: TMap['id'];
|
|
4429
|
+
id: TPolygon['id'];
|
|
4430
|
+
}[];
|
|
4431
|
+
categories: string[];
|
|
4432
|
+
description?: string;
|
|
4433
|
+
sortOrder?: number;
|
|
4434
|
+
logo?: TLogo;
|
|
4435
|
+
phone?: TPhone;
|
|
4436
|
+
social?: TSocial;
|
|
4437
|
+
color?: TColor;
|
|
4438
|
+
shortName?: string;
|
|
4439
|
+
detailsUrl?: string;
|
|
4440
|
+
parent?: string | null;
|
|
4441
|
+
tags?: string[];
|
|
4442
|
+
externalId?: string;
|
|
4443
|
+
picture?: TPicture;
|
|
4444
|
+
states?: TState[];
|
|
4445
|
+
operationHours?: TOpeningHours[] | undefined;
|
|
4446
|
+
siblingGroups?: TSiblingGroup[] | undefined;
|
|
4447
|
+
gallery?: TGalleryImage[] | undefined;
|
|
4448
|
+
[propName: string]: any;
|
|
4449
|
+
};
|
|
4450
|
+
export type TPolygon = {
|
|
4451
|
+
id: string;
|
|
4452
|
+
map: string;
|
|
4453
|
+
layer?: string;
|
|
4454
|
+
layerId?: string;
|
|
4455
|
+
externalId?: string;
|
|
4456
|
+
name?: string;
|
|
4457
|
+
entrances: {
|
|
4458
|
+
map: TMap['id'];
|
|
4459
|
+
id: TNode['id'];
|
|
4460
|
+
}[];
|
|
4461
|
+
};
|
|
4462
|
+
export type TPolygonRanking = {
|
|
4463
|
+
polygonId: string;
|
|
4464
|
+
entranceNodeId: string;
|
|
4465
|
+
score: number;
|
|
4466
|
+
};
|
|
4467
|
+
export type TLocationState = {
|
|
4468
|
+
id: string;
|
|
4469
|
+
name: string;
|
|
4470
|
+
value: string;
|
|
4471
|
+
};
|
|
4472
|
+
export type TVenue = {
|
|
4473
|
+
address?: string;
|
|
4474
|
+
city?: string;
|
|
4475
|
+
countrycode?: string;
|
|
4476
|
+
defaultMap?: string;
|
|
4477
|
+
externalId?: string;
|
|
4478
|
+
id?: string;
|
|
4479
|
+
latitude?: number;
|
|
4480
|
+
logo?: TLogo;
|
|
4481
|
+
longitude?: number;
|
|
4482
|
+
metadata?: any;
|
|
4483
|
+
name?: string;
|
|
4484
|
+
operationHours?: TOpeningHours[];
|
|
4485
|
+
postal?: string;
|
|
4486
|
+
slug?: string;
|
|
4487
|
+
state?: string;
|
|
4488
|
+
telephone?: string;
|
|
4489
|
+
tzid?: string;
|
|
4490
|
+
tzidOverride?: string;
|
|
4491
|
+
utcOffset?: string;
|
|
4492
|
+
website?: string;
|
|
4493
|
+
};
|
|
4494
|
+
export type TMappedinAPI = {
|
|
4495
|
+
nodes: TNode[];
|
|
4496
|
+
locations: TLocation[];
|
|
4497
|
+
categories: TCategory[];
|
|
4498
|
+
mapGroups: TMapGroup[];
|
|
4499
|
+
polygons: TPolygon[];
|
|
4500
|
+
maps: TMap[];
|
|
4501
|
+
themes: any;
|
|
4502
|
+
venue: TVenue;
|
|
4503
|
+
vortexes: TVortex[];
|
|
4504
|
+
locationStates?: TLocationState[];
|
|
4505
|
+
imageBinaries?: Map<string, Uint8Array>;
|
|
4506
|
+
};
|
|
4507
|
+
}
|
|
4508
|
+
|
|
4509
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils/mvf-types' {
|
|
4510
|
+
import type { MapId, Style, Feature, LineString, ObstructionProperties, EntranceProperties, SpaceProperties, ObstructionCollection, EntranceCollection, SpaceCollection, FloorImageProperties, BaseTextAreaProperties, EnterpriseTexture } from '@mappedin/mvf';
|
|
4511
|
+
import type { FeatureCollection, MultiPolygon, Point, Polygon } from 'geojson';
|
|
4512
|
+
import type { TImage, TMap, TNode, TOpeningHours, TPhone, TSiblingGroup, TSocial } from '@mappedin/mappedin-js/packages/mvf-utils/api-types';
|
|
4513
|
+
export type WithIDs<T> = Map<string, T>;
|
|
4514
|
+
type ManifestFile = {
|
|
4515
|
+
type: 'file';
|
|
4516
|
+
name: string;
|
|
4517
|
+
};
|
|
4518
|
+
type ManifestFolder = {
|
|
4519
|
+
type: 'folder';
|
|
4520
|
+
name: string;
|
|
4521
|
+
children: ManifestFile[];
|
|
4522
|
+
};
|
|
4523
|
+
export type MVFStyle = Style & {
|
|
4524
|
+
type: string;
|
|
4525
|
+
width?: number;
|
|
4526
|
+
};
|
|
4527
|
+
export type MVFObstructionFeature = ObstructionCollection['features'][number];
|
|
4528
|
+
export type MVFEntranceFeature = EntranceCollection['features'][number];
|
|
4529
|
+
export type MVFSpaceFeature = SpaceCollection['features'][number];
|
|
4530
|
+
export type WithPolygonImage<T extends SpaceProperties | ObstructionProperties> = T & {
|
|
4531
|
+
image?: FloorImageProperties;
|
|
4532
|
+
};
|
|
4533
|
+
export type WithTextArea<T extends SpaceProperties | ObstructionProperties> = T & {
|
|
4534
|
+
textArea?: BaseTextAreaProperties;
|
|
4535
|
+
};
|
|
4536
|
+
export type WithEntepriseStyle<T extends SpaceProperties | ObstructionProperties> = T & {
|
|
4537
|
+
style?: {
|
|
4538
|
+
styleId: string;
|
|
4539
|
+
edgeOffset?: number;
|
|
4540
|
+
};
|
|
4541
|
+
};
|
|
4542
|
+
export type WithTextures<T extends SpaceProperties | ObstructionProperties> = T & {
|
|
4543
|
+
textures?: EnterpriseTexture[];
|
|
4544
|
+
};
|
|
4545
|
+
export type PolygonFeatureProperties<T extends SpaceProperties | ObstructionProperties> = WithEntepriseStyle<T> | WithPolygonImage<T> | WithTextures<T>;
|
|
4546
|
+
export type MVFv1PolygonLikeProperties = {
|
|
4547
|
+
id: string;
|
|
4548
|
+
altitude?: number;
|
|
4549
|
+
color?: string;
|
|
4550
|
+
externalId?: string | null;
|
|
4551
|
+
height?: number;
|
|
4552
|
+
opacity?: number;
|
|
4553
|
+
layer?: string;
|
|
4554
|
+
level: string;
|
|
4555
|
+
parent?: string | null;
|
|
4556
|
+
};
|
|
4557
|
+
export type MVFv1SpaceProperties = MVFv1PolygonLikeProperties & {
|
|
4558
|
+
entrances: {
|
|
4559
|
+
level: TMap['id'];
|
|
4560
|
+
id: TNode['id'];
|
|
4561
|
+
}[];
|
|
4562
|
+
};
|
|
4563
|
+
export type MVFv1ObstructionProperties = MVFv1PolygonLikeProperties;
|
|
4564
|
+
export type MVFv1ConnectionProperties = {
|
|
4565
|
+
id: string;
|
|
4566
|
+
/**
|
|
4567
|
+
* Indicates that a connection is accessible
|
|
4568
|
+
*/
|
|
4569
|
+
accessible: boolean;
|
|
4570
|
+
/**
|
|
4571
|
+
* Array of node ids that this Connection connects with.
|
|
4572
|
+
*/
|
|
4573
|
+
destinations: string[];
|
|
4574
|
+
level: string;
|
|
4575
|
+
multiplier: number;
|
|
4576
|
+
name: string;
|
|
4577
|
+
/**
|
|
4578
|
+
* Type of the connection such as `escalator` or `elevator`
|
|
4579
|
+
*/
|
|
4580
|
+
type: string;
|
|
4581
|
+
weight: number;
|
|
4582
|
+
};
|
|
4583
|
+
export type MVFv1NodeProperties = {
|
|
4584
|
+
id: string;
|
|
4585
|
+
/**
|
|
4586
|
+
* Indicates that a node is accessible
|
|
4587
|
+
*/
|
|
4588
|
+
accessible: boolean;
|
|
4589
|
+
/**
|
|
4590
|
+
* External id of a node is used to sync and connect to external systems to Mappedin data
|
|
4591
|
+
*/
|
|
4592
|
+
externalId: string | null;
|
|
4593
|
+
level: string;
|
|
4594
|
+
multiplier: number;
|
|
4595
|
+
neighbors: string[];
|
|
4596
|
+
weight: number;
|
|
4597
|
+
};
|
|
4598
|
+
export type MVFv1LevelProperties = {
|
|
4599
|
+
id: string;
|
|
4600
|
+
abbreviation?: string;
|
|
4601
|
+
building?: string;
|
|
4602
|
+
elevation?: number;
|
|
4603
|
+
name: string;
|
|
4604
|
+
};
|
|
4605
|
+
export type MVFv1ManifestProperties = {
|
|
4606
|
+
/**
|
|
4607
|
+
* Name of the venue
|
|
4608
|
+
*/
|
|
4609
|
+
name: string;
|
|
4610
|
+
folder_struct: (ManifestFolder | ManifestFile)[];
|
|
4611
|
+
/**
|
|
4612
|
+
* Mappedin Venue Format version number of the MVF bundle
|
|
4613
|
+
*/
|
|
4614
|
+
version: string;
|
|
4615
|
+
/**
|
|
4616
|
+
* Timestamp when the MVF bundle was generated. E.g. `2022-02-25T16:26:09.908Z`
|
|
4617
|
+
*/
|
|
4618
|
+
time: string;
|
|
4619
|
+
};
|
|
4620
|
+
export type MVFv1BuildingProperties = {
|
|
4621
|
+
id: string;
|
|
4622
|
+
name: string;
|
|
4623
|
+
venue: string;
|
|
4624
|
+
};
|
|
4625
|
+
export type MVFv1CategoryProperties = {
|
|
4626
|
+
id: string;
|
|
4627
|
+
name: string;
|
|
4628
|
+
picture?: TImage;
|
|
4629
|
+
};
|
|
4630
|
+
export type MVFv1LocationProperties = {
|
|
4631
|
+
id: string;
|
|
4632
|
+
address?: string | null;
|
|
4633
|
+
/**
|
|
4634
|
+
* Array of {@link MICategoryProperties | category} ids
|
|
4635
|
+
*/
|
|
4636
|
+
categories: string[];
|
|
4637
|
+
/**
|
|
4638
|
+
* A text description of the location usually indicating what the location is used for
|
|
4639
|
+
*/
|
|
4640
|
+
description?: string | null;
|
|
4641
|
+
/**
|
|
4642
|
+
* Email address to for contacting this location
|
|
4643
|
+
*/
|
|
4644
|
+
email?: string | null;
|
|
4645
|
+
/**
|
|
4646
|
+
* External id used to connect Mappedin Location to an external system
|
|
4647
|
+
*/
|
|
4648
|
+
externalId?: string | null;
|
|
4649
|
+
/**
|
|
4650
|
+
* Opening hours of the location
|
|
4651
|
+
*/
|
|
4652
|
+
hours?: TOpeningHours[] | null;
|
|
4653
|
+
/**
|
|
4654
|
+
* Collection of links related to this location
|
|
4655
|
+
*/
|
|
4656
|
+
links?: {
|
|
4657
|
+
label: string;
|
|
4658
|
+
url: string;
|
|
4659
|
+
}[] | null;
|
|
4660
|
+
logo?: TImage | null;
|
|
4661
|
+
/**
|
|
4662
|
+
* Name of the location. By default this is the string displayed in the location label
|
|
4663
|
+
*/
|
|
4664
|
+
name: string;
|
|
4665
|
+
/**
|
|
4666
|
+
* Phone number for contacting this location
|
|
4667
|
+
*/
|
|
4668
|
+
phone?: TPhone | null;
|
|
4669
|
+
picture?: TImage | null;
|
|
4670
|
+
services?: string | null;
|
|
4671
|
+
siblingGroups?: TSiblingGroup[] | null;
|
|
4672
|
+
/**
|
|
4673
|
+
* Social media links of the location
|
|
4674
|
+
*/
|
|
4675
|
+
social?: TSocial | null;
|
|
4676
|
+
/**
|
|
4677
|
+
* Array of {@link MISpaceProperties | MVF Space} ids for this location
|
|
4678
|
+
*/
|
|
4679
|
+
spaces?: {
|
|
4680
|
+
id: string;
|
|
4681
|
+
map: string;
|
|
4682
|
+
}[] | null;
|
|
4683
|
+
states?: {
|
|
4684
|
+
type: string;
|
|
4685
|
+
start?: string;
|
|
4686
|
+
end?: string;
|
|
4687
|
+
}[] | null;
|
|
4688
|
+
type: string;
|
|
4689
|
+
};
|
|
4690
|
+
export type MVFv1ObstructionCollection = FeatureCollection<Polygon, MVFv1ObstructionProperties>;
|
|
4691
|
+
export type MVFv1SpaceCollection = FeatureCollection<Polygon, MVFv1SpaceProperties>;
|
|
4692
|
+
export type MVFv1ConnectionCollection = FeatureCollection<Point, MVFv1ConnectionProperties>;
|
|
4693
|
+
export type MVFv1NodeCollection = FeatureCollection<Point, MVFv1NodeProperties>;
|
|
4694
|
+
export type MVFv1LevelCollection = FeatureCollection<Polygon | MultiPolygon, MVFv1LevelProperties>;
|
|
4695
|
+
export type MVFv1ManifestCollection = FeatureCollection<Point, MVFv1ManifestProperties>;
|
|
4696
|
+
export type MVFv1BuildingCollection = FeatureCollection<Polygon, MVFv1BuildingProperties>;
|
|
4697
|
+
export type MVFv1CategoryCollection = FeatureCollection<null, MVFv1CategoryProperties>;
|
|
4698
|
+
export type MVFv1LocationCollection = FeatureCollection<null, MVFv1LocationProperties>;
|
|
4699
|
+
export type ParsedMVFv1 = {
|
|
4700
|
+
/**
|
|
4701
|
+
* @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
|
|
4702
|
+
*/
|
|
4703
|
+
space: {
|
|
4704
|
+
[mapId: MapId]: MVFv1SpaceCollection | undefined;
|
|
4705
|
+
};
|
|
4706
|
+
/**
|
|
4707
|
+
* @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
|
|
4708
|
+
*/
|
|
4709
|
+
obstruction: {
|
|
4710
|
+
[mapId: MapId]: MVFv1ObstructionCollection | undefined;
|
|
4711
|
+
};
|
|
4712
|
+
/**
|
|
4713
|
+
* @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
|
|
4714
|
+
*/
|
|
4715
|
+
level: {
|
|
4716
|
+
[mapId: MapId]: MVFv1LevelCollection | undefined;
|
|
4717
|
+
};
|
|
4718
|
+
/**
|
|
4719
|
+
* @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
|
|
4720
|
+
*/
|
|
4721
|
+
node: {
|
|
4722
|
+
[mapId: MapId]: MVFv1NodeCollection | undefined;
|
|
4723
|
+
};
|
|
4724
|
+
/**
|
|
4725
|
+
* @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
|
|
4726
|
+
*/
|
|
4727
|
+
connection: {
|
|
4728
|
+
[mapId: MapId]: MVFv1ConnectionCollection | undefined;
|
|
4729
|
+
};
|
|
4730
|
+
'manifest.geojson': MVFv1ManifestCollection;
|
|
4731
|
+
'building.geojson': MVFv1BuildingCollection;
|
|
4732
|
+
'category.geojson': MVFv1CategoryCollection;
|
|
4733
|
+
'location.geojson': MVFv1LocationCollection;
|
|
4734
|
+
};
|
|
4735
|
+
export type RawMVFv1 = {
|
|
4736
|
+
'manifest.geojson': Uint8Array;
|
|
4737
|
+
'building.geojson': Uint8Array;
|
|
4738
|
+
'category.geojson': Uint8Array;
|
|
4739
|
+
'location.geojson': Uint8Array;
|
|
4740
|
+
level: Partial<Record<MapId, Uint8Array>>;
|
|
4741
|
+
node: Partial<Record<MapId, Uint8Array>>;
|
|
4742
|
+
space: Partial<Record<MapId, Uint8Array>>;
|
|
4743
|
+
obstruction: Partial<Record<MapId, Uint8Array>>;
|
|
4744
|
+
connection: Partial<Record<MapId, Uint8Array>>;
|
|
4745
|
+
};
|
|
4746
|
+
export type ObstructionFeature = Feature<LineString | Polygon, ObstructionProperties>;
|
|
4747
|
+
export type ObstructionWallFeature = Feature<LineString, ObstructionProperties>;
|
|
4748
|
+
export type EntranceFeature = Feature<LineString, EntranceProperties>;
|
|
4749
|
+
export {};
|
|
4750
|
+
}
|
|
4751
|
+
|
|
4752
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils/mvf-utils' {
|
|
4753
|
+
import { type ParsedMVF, type ParsedMVFLocalePack, type RawMVF } from '@mappedin/mvf';
|
|
4754
|
+
import type { ParsedMVFv1, RawMVFv1 } from '@mappedin/mappedin-js/packages/mvf-utils/mvf-types';
|
|
4755
|
+
export * from '@mappedin/mappedin-js/packages/mvf-utils/tokens/access-token';
|
|
4756
|
+
export * from '@mappedin/mappedin-js/packages/mvf-utils/tokens/sas-token';
|
|
4757
|
+
/**
|
|
4758
|
+
* This is how we can avoid bundling in node-fetch (via isomorphic fetch),
|
|
4759
|
+
* which keeps popping up in security advisories
|
|
4760
|
+
* This is a pattern that most isomorphic libraries appear to use,
|
|
4761
|
+
* where when running in node, you can pass your own fetch function
|
|
4762
|
+
* as one is not provided by Node.js.
|
|
4763
|
+
*
|
|
4764
|
+
*/
|
|
4765
|
+
export function isomorphicFetch(): Window['fetch'];
|
|
4766
|
+
/**
|
|
4767
|
+
* @internal
|
|
4768
|
+
* export for test mocking
|
|
4769
|
+
*/
|
|
4770
|
+
export function __setFetchFn(fn: any): void;
|
|
4771
|
+
export type TGetVenueOptions = {
|
|
4772
|
+
accessToken?: string;
|
|
4773
|
+
clientId?: string;
|
|
4774
|
+
clientSecret?: string;
|
|
4775
|
+
baseUrl?: string;
|
|
4776
|
+
includeHidden?: boolean;
|
|
4777
|
+
noAuth?: boolean;
|
|
4778
|
+
perspective?: string;
|
|
4779
|
+
language?: string;
|
|
4780
|
+
headers?: {
|
|
4781
|
+
[key in string]: string;
|
|
4782
|
+
};
|
|
4783
|
+
venue: string;
|
|
4784
|
+
/**
|
|
4785
|
+
* An object specifying additional properties to fetch for each data item.
|
|
4786
|
+
* Each key represents a data item (e.g., 'locations', 'nodes'), and the value is an array of strings indicating extra properties to be included.
|
|
4787
|
+
* @example
|
|
4788
|
+
* For example:
|
|
4789
|
+
* ```
|
|
4790
|
+
* getVenue({
|
|
4791
|
+
* venue: 'some-venue',
|
|
4792
|
+
* things: { vortexes: [ 'material' ]
|
|
4793
|
+
* }})
|
|
4794
|
+
* ```
|
|
4795
|
+
*/
|
|
4796
|
+
things?: any;
|
|
4797
|
+
useDraftData?: boolean;
|
|
4798
|
+
platformString?: string;
|
|
4799
|
+
secure?: boolean;
|
|
4800
|
+
preloadMapGeometry?: boolean;
|
|
4801
|
+
};
|
|
4802
|
+
export type TGetVenueBundleOptions = TGetVenueOptions & {
|
|
4803
|
+
baseUri?: string;
|
|
4804
|
+
version?: string;
|
|
4805
|
+
/**
|
|
4806
|
+
* Parse bundle and convert images to blobs. Disabled in React Native
|
|
4807
|
+
* @private
|
|
4808
|
+
*/
|
|
4809
|
+
shouldPopulateBundledImagesAsBlobs?: boolean;
|
|
4810
|
+
};
|
|
4811
|
+
/** @internal */
|
|
4812
|
+
export type TGetVenueMVFOptions = TGetVenueBundleOptions & {
|
|
4813
|
+
onMVFParsed?: (mvf: ParsedMVF) => void;
|
|
4814
|
+
/**
|
|
4815
|
+
* Override initial MVF data
|
|
4816
|
+
*/
|
|
4817
|
+
override?: Partial<Pick<ParsedMVF, 'styles.json'>>;
|
|
4818
|
+
};
|
|
4819
|
+
/**
|
|
4820
|
+
* Options for configuring search functionality.
|
|
4821
|
+
*/
|
|
4822
|
+
export type TSearchOptions = {
|
|
4823
|
+
/**
|
|
4824
|
+
* Indicates whether search functionality is enabled.
|
|
4825
|
+
*/
|
|
4826
|
+
enabled: boolean;
|
|
4827
|
+
};
|
|
4828
|
+
export type TGetMapDataSharedOptions = {
|
|
4829
|
+
/**
|
|
4830
|
+
* Mappedin map ID.
|
|
4831
|
+
*/
|
|
4832
|
+
mapId: string;
|
|
4833
|
+
/**
|
|
4834
|
+
* Optionally provide a custom base URL for the Mappedin API request.
|
|
4835
|
+
* Use the {@link Environment | `environment`} setting to switch environments
|
|
4836
|
+
*/
|
|
4837
|
+
baseUri?: string;
|
|
4838
|
+
/**
|
|
4839
|
+
* Optionally provide a custom URI for authentication when obtaining an access token.
|
|
4840
|
+
* Use the {@link Environment | `environment`} setting to switch environments.
|
|
4841
|
+
*/
|
|
4842
|
+
baseAuthUri?: string;
|
|
4843
|
+
/**
|
|
4844
|
+
* Callback for when the Mappedin map data has been fetched and parsed as Mappedin Venue Format (MVF) data.
|
|
4845
|
+
* @param mvf Parsed MVF data.
|
|
4846
|
+
*/
|
|
4847
|
+
onMVFParsed?: (mvf: ParsedMVF) => void;
|
|
4848
|
+
/**
|
|
4849
|
+
* Load different view of mvf data based on configId
|
|
4850
|
+
*/
|
|
4851
|
+
viewId?: string;
|
|
4852
|
+
/**
|
|
4853
|
+
* set the target SDK environment
|
|
4854
|
+
* @default 'us'
|
|
4855
|
+
* @example
|
|
4856
|
+
* const mapData = getMapData({
|
|
4857
|
+
* key: '',
|
|
4858
|
+
* secret: '',
|
|
4859
|
+
* environment: 'eu'
|
|
4860
|
+
* })
|
|
4861
|
+
*/
|
|
4862
|
+
environment?: ServiceEnvironment;
|
|
4863
|
+
/**
|
|
4864
|
+
* The language of the map data.
|
|
4865
|
+
* The ISO 639-1 language code to change to (e.g., 'en' for English, 'fr' for French). Check ({@link EnterpriseVenue.languages}) for available languages
|
|
4866
|
+
*/
|
|
4867
|
+
language?: string;
|
|
4868
|
+
/**
|
|
4869
|
+
* Analytics configuration.
|
|
4870
|
+
*/
|
|
4871
|
+
analytics?: {
|
|
4872
|
+
/**
|
|
4873
|
+
* Whether to log analytics events.
|
|
4874
|
+
* @default false
|
|
4875
|
+
*/
|
|
4876
|
+
logEvents?: boolean;
|
|
4877
|
+
/**
|
|
4878
|
+
* Whether to send analytics events to the server.
|
|
4879
|
+
* @default false
|
|
4880
|
+
*/
|
|
4881
|
+
sendEvents?: boolean;
|
|
4882
|
+
/**
|
|
4883
|
+
* Custom base URI for analytics requests. If not provided, the default analytics endpoint will be used.
|
|
4884
|
+
* Use the {@link Environment | `environment`} setting to switch environments.
|
|
4885
|
+
*/
|
|
4886
|
+
baseUri?: string;
|
|
4887
|
+
/**
|
|
4888
|
+
* Context for analytics events.
|
|
4889
|
+
* @default 'websdk'
|
|
4890
|
+
* @internal
|
|
4891
|
+
*/
|
|
4892
|
+
context?: string;
|
|
4893
|
+
};
|
|
4894
|
+
search?: TSearchOptions;
|
|
4895
|
+
/**
|
|
4896
|
+
* @hidden
|
|
4897
|
+
* @internal
|
|
4898
|
+
*/
|
|
4899
|
+
layoutId?: 'draft';
|
|
4900
|
+
/**
|
|
4901
|
+
* @hidden
|
|
4902
|
+
* @internal
|
|
4903
|
+
*/
|
|
4904
|
+
mvfVersion?: '2.0.0' | '3.0.0';
|
|
4905
|
+
};
|
|
4906
|
+
/**
|
|
4907
|
+
* @interface
|
|
4908
|
+
*/
|
|
4909
|
+
export type TGetMapDataWithCredentialsOptions = {
|
|
4910
|
+
/**
|
|
4911
|
+
* Mappedin auth key.
|
|
4912
|
+
*/
|
|
4913
|
+
key: string;
|
|
4914
|
+
/**
|
|
4915
|
+
* Mappedin auth secret.
|
|
4916
|
+
*/
|
|
4917
|
+
secret: string;
|
|
4918
|
+
} & TGetMapDataSharedOptions;
|
|
4919
|
+
/**
|
|
4920
|
+
* @interface
|
|
4921
|
+
*/
|
|
4922
|
+
export type TGetMapDataWithAccessTokenOptions = {
|
|
4923
|
+
/**
|
|
4924
|
+
* Mappedin access token.
|
|
4925
|
+
*/
|
|
4926
|
+
accessToken: string;
|
|
4927
|
+
} & TGetMapDataSharedOptions;
|
|
4928
|
+
export type TGetMapDataOptions = TGetMapDataWithCredentialsOptions | TGetMapDataWithAccessTokenOptions;
|
|
4929
|
+
export type TProcessedMVFOptions = TGetMapDataOptions & {
|
|
4930
|
+
clientId: string;
|
|
4931
|
+
clientSecret: string;
|
|
4932
|
+
venue: string;
|
|
4933
|
+
accessToken: string;
|
|
4934
|
+
};
|
|
4935
|
+
export type TAllGetVenueOptions = TGetVenueOptions | TGetVenueMVFOptions | (TProcessedMVFOptions & {
|
|
4936
|
+
perspective?: string;
|
|
4937
|
+
});
|
|
4938
|
+
export type TGetVenueOptionsInternal<T extends TAllGetVenueOptions> = Omit<T & {
|
|
4939
|
+
baseUrl?: string;
|
|
4940
|
+
supplementaryUrl?: string;
|
|
4941
|
+
noAuth?: boolean;
|
|
4942
|
+
includeHidden?: boolean;
|
|
4943
|
+
apiGateway?: string;
|
|
4944
|
+
authorization?: string;
|
|
4945
|
+
headers?: any;
|
|
4946
|
+
}, 'things'> & {
|
|
4947
|
+
things?: any;
|
|
4948
|
+
};
|
|
4949
|
+
export const defaultOptions: TGetVenueOptionsInternal<TGetVenueOptions>;
|
|
4950
|
+
/**
|
|
4951
|
+
* @internal
|
|
4952
|
+
*/
|
|
4953
|
+
export function parseOptions<T extends TAllGetVenueOptions>(options: T): TGetVenueOptionsInternal<T>;
|
|
4954
|
+
/**
|
|
4955
|
+
* Prepares the request and URL fields to pass into generateAPIRequest
|
|
4956
|
+
* @param options options from getVenue- baseUrl and supplementaryUrl are used
|
|
4957
|
+
* @param url string describing the url corresponding to the client's request
|
|
4958
|
+
* @param supplementary whether to use the supplementaryUrl when sending the request
|
|
4959
|
+
*/
|
|
4960
|
+
export function constructParamsForRequest(options: TGetVenueOptionsInternal<TGetVenueOptions>, url: string, supplementary?: boolean): {
|
|
4961
|
+
req: {
|
|
4962
|
+
method: string;
|
|
4963
|
+
headers: any;
|
|
4964
|
+
};
|
|
4965
|
+
url: string;
|
|
4966
|
+
};
|
|
4967
|
+
export function generateAPIRequest(options: TGetVenueOptionsInternal<TGetVenueOptions>, url: string, supplementary?: boolean): Promise<any>;
|
|
4968
|
+
export const getPerspectivesFromResponse: (res: unknown) => Record<string, {
|
|
4969
|
+
url: string;
|
|
4970
|
+
locale_packs: LocalePackUrls;
|
|
4971
|
+
}> | null;
|
|
4972
|
+
/**
|
|
4973
|
+
* Get the bundle URL and updated_at time.
|
|
4974
|
+
* @internal
|
|
4975
|
+
*/
|
|
4976
|
+
export function getVenueMVFURL(userOptions: TGetVenueBundleOptions, path?: string): Promise<{
|
|
4977
|
+
url: any;
|
|
4978
|
+
localePacks: any;
|
|
4979
|
+
updated_at: any;
|
|
4980
|
+
}>;
|
|
4981
|
+
export function getLanguagePackUnitArray(url: string, { signal }: {
|
|
4982
|
+
signal: AbortSignal;
|
|
4983
|
+
}): Promise<Uint8Array>;
|
|
4984
|
+
export function parseLanguagePack(data: Uint8Array): Promise<ParsedMVFLocalePack>;
|
|
4985
|
+
export function downloadLanguagePack(url: string, { signal }: {
|
|
4986
|
+
signal: AbortSignal;
|
|
4987
|
+
}): Promise<ParsedMVFLocalePack | undefined>;
|
|
4988
|
+
export function downloadVenueBundleMVFAPIGateway(options: TGetVenueBundleOptions): Promise<{
|
|
4989
|
+
compressed: Uint8Array;
|
|
4990
|
+
localePacks: LocalePackUrls;
|
|
4991
|
+
}>;
|
|
4992
|
+
export function downloadVenueBundleMVF(options: TGetVenueBundleOptions): Promise<Uint8Array>;
|
|
4993
|
+
export function parseMVFv1(raw: RawMVFv1): ParsedMVFv1;
|
|
4994
|
+
export function validateStaticMVFv1Files(data: unknown): boolean;
|
|
4995
|
+
export function unzipMVFv1(data: any): Promise<RawMVFv1>;
|
|
4996
|
+
export function downloadMVF(userOptions: TGetMapDataOptions, accessToken: string): Promise<Uint8Array>;
|
|
4997
|
+
export function getMakerBundleURL(userOptions: TGetMapDataOptions, token: string): Promise<{
|
|
4998
|
+
url: string;
|
|
4999
|
+
updated_at: string;
|
|
5000
|
+
}>;
|
|
5001
|
+
/**
|
|
5002
|
+
* @internal
|
|
5003
|
+
*/
|
|
5004
|
+
export function parseMVF(raw: RawMVF & {
|
|
5005
|
+
options?: {
|
|
5006
|
+
outdoorViewToken?: string;
|
|
5007
|
+
};
|
|
5008
|
+
}): ParsedMVF;
|
|
5009
|
+
/**
|
|
5010
|
+
* Figure out if the MVF data at least has the static files we expect.
|
|
5011
|
+
*/
|
|
5012
|
+
export function validateStaticMVFFiles(data: unknown): boolean;
|
|
5013
|
+
/**
|
|
5014
|
+
* @internal
|
|
5015
|
+
*/
|
|
5016
|
+
export function unzipMVF(data: Uint8Array): Promise<RawMVF>;
|
|
5017
|
+
export type LocalePackUrls = {
|
|
5018
|
+
[key: string]: string;
|
|
5019
|
+
};
|
|
5020
|
+
/**
|
|
5021
|
+
* Represents the environment state configuration.
|
|
5022
|
+
* @example
|
|
5023
|
+
* const mapData = getMapData({
|
|
5024
|
+
* key: '',
|
|
5025
|
+
* secret: '',
|
|
5026
|
+
* environment: 'eu'
|
|
5027
|
+
* })
|
|
5028
|
+
*/
|
|
5029
|
+
export type Environment = {
|
|
5030
|
+
/**
|
|
5031
|
+
* The base URI for the API.
|
|
5032
|
+
*/
|
|
5033
|
+
baseUri: string;
|
|
5034
|
+
/**
|
|
5035
|
+
* The base URI for authentication.
|
|
5036
|
+
*/
|
|
5037
|
+
baseAuthUri: string;
|
|
5038
|
+
/**
|
|
5039
|
+
* The base URI for analytics.
|
|
5040
|
+
*/
|
|
5041
|
+
analyticsBaseUri: string;
|
|
5042
|
+
/**
|
|
5043
|
+
* The URI for the tile server.
|
|
5044
|
+
*/
|
|
5045
|
+
tileServerUri: string;
|
|
5046
|
+
};
|
|
5047
|
+
type InternalServiceEnvironment = 'us' | 'eu' | 'us-staging-enterprise' | 'us-staging-self-serve';
|
|
5048
|
+
export type ServiceEnvironment = 'us' | 'eu';
|
|
5049
|
+
export function createEnvControl(): {
|
|
5050
|
+
/**
|
|
5051
|
+
* @internal
|
|
5052
|
+
*/
|
|
5053
|
+
updateByUserOption(userOption: TGetMapDataOptions): void;
|
|
5054
|
+
/**
|
|
5055
|
+
* @internal
|
|
5056
|
+
*/
|
|
5057
|
+
updateTileServerBaseUrl(url: string): void;
|
|
5058
|
+
/**
|
|
5059
|
+
* @internal
|
|
5060
|
+
*/
|
|
5061
|
+
updateEnvironment(env: InternalServiceEnvironment): void;
|
|
5062
|
+
getBaseUri(enterprise: boolean): string;
|
|
5063
|
+
getBaseAuthUri(enterprise?: boolean): string;
|
|
5064
|
+
getAnalyticsBaseUri(): string;
|
|
5065
|
+
getTileServerUri(): string;
|
|
5066
|
+
reset(): void;
|
|
5067
|
+
/**
|
|
5068
|
+
* @internal
|
|
5069
|
+
*/
|
|
5070
|
+
__getState: () => Environment;
|
|
5071
|
+
};
|
|
5072
|
+
export type EnvControl = ReturnType<typeof createEnvControl>;
|
|
5073
|
+
/**
|
|
5074
|
+
* Return IDs for all individual maps that are part of a multi-building MVF, not including the
|
|
5075
|
+
* outdoor map. If a map is not a multi-building map, an empty array is returned.
|
|
5076
|
+
*/
|
|
5077
|
+
export const getBuildingIds: (mvf: ParsedMVF) => string[];
|
|
5078
|
+
export function unzipAndParseMVFv2(data: Uint8Array, inputVersion?: '2.0.0' | '3.0.0'): Promise<ParsedMVF>;
|
|
5079
|
+
}
|
|
5080
|
+
|
|
5081
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils/geometry' {
|
|
5082
|
+
import type { EntranceFeature, ObstructionWallFeature } from '@mappedin/mappedin-js/packages/mvf-utils/mvf-types';
|
|
5083
|
+
export function findAndSplitObstructionByAllEntrances(wall: ObstructionWallFeature, entrances: EntranceFeature[]): {
|
|
5084
|
+
entrances: EntranceFeature[];
|
|
5085
|
+
obstructions: ObstructionWallFeature[];
|
|
5086
|
+
};
|
|
5087
|
+
}
|
|
5088
|
+
|
|
5089
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node' {
|
|
5090
|
+
import type { NodeCollection } from '@mappedin/mvf';
|
|
5091
|
+
import Coordinate from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/coordinate';
|
|
5092
|
+
import type { EnterpriseLocation, MapDataInternal, Space } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
5093
|
+
import type Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
|
|
5094
|
+
import BaseMetaData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-metadata-object';
|
|
5095
|
+
import type { IGeoJSONData } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types';
|
|
5096
|
+
import type { IAnchorable, IFocusable } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
5097
|
+
/**
|
|
5098
|
+
* A class representing {@link Path} node data within the map.
|
|
5099
|
+
*
|
|
5100
|
+
* Nodes are used to define points in the map's pathfinding graph.
|
|
5101
|
+
*
|
|
5102
|
+
*/
|
|
5103
|
+
class Node extends BaseMetaData implements IGeoJSONData, IFocusable, IAnchorable {
|
|
5104
|
+
#private;
|
|
5105
|
+
/**
|
|
5106
|
+
* @internal
|
|
5107
|
+
*/
|
|
4011
5108
|
static readonly __type = "node";
|
|
4012
5109
|
/**
|
|
4013
5110
|
* @internal
|
|
@@ -5120,10 +6217,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/hyperlink
|
|
|
5120
6217
|
declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image' {
|
|
5121
6218
|
import type { Image as MVFImage } from '@mappedin/mvf';
|
|
5122
6219
|
import BaseMetaData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-metadata-object';
|
|
6220
|
+
import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
5123
6221
|
/**
|
|
5124
6222
|
* A class representing image link data within the map.
|
|
5125
6223
|
*/
|
|
5126
|
-
class
|
|
6224
|
+
class ImageMetaData extends BaseMetaData {
|
|
5127
6225
|
#private;
|
|
5128
6226
|
/**
|
|
5129
6227
|
* @internal
|
|
@@ -5135,12 +6233,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image' {
|
|
|
5135
6233
|
* @param instance The instance to check.
|
|
5136
6234
|
* @returns {boolean} True if the instance is a Image, false otherwise.
|
|
5137
6235
|
*/
|
|
5138
|
-
static is(instance: object): instance is
|
|
6236
|
+
static is(instance: object): instance is ImageMetaData;
|
|
5139
6237
|
/**
|
|
5140
6238
|
* @internal
|
|
5141
6239
|
*/
|
|
5142
6240
|
constructor(options: {
|
|
5143
6241
|
mvfData: MVFImage;
|
|
6242
|
+
mapData: MapDataInternal;
|
|
5144
6243
|
});
|
|
5145
6244
|
/**
|
|
5146
6245
|
* Gets the url of the image.
|
|
@@ -5179,7 +6278,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image' {
|
|
|
5179
6278
|
*/
|
|
5180
6279
|
destroy(): void;
|
|
5181
6280
|
}
|
|
5182
|
-
export default
|
|
6281
|
+
export default ImageMetaData;
|
|
5183
6282
|
}
|
|
5184
6283
|
|
|
5185
6284
|
declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor-stack' {
|
|
@@ -5838,10 +6937,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location-
|
|
|
5838
6937
|
import type { TFocusTarget, TNavigationTarget, IFocusable, INavigatable } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
5839
6938
|
import { OpeningHours } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/opening-hours';
|
|
5840
6939
|
import Hyperlink from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/hyperlink';
|
|
5841
|
-
import
|
|
5842
|
-
type LocationData = Omit<MVFLocation, 'categories' | 'spaces' | 'obstructions' | 'entrances' | 'shapes' | 'connections' | 'annotations' | 'areas' | 'openingHoursSpecification' | 'links' | 'pictures' | 'website'> & {
|
|
6940
|
+
import ImageMetaData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image';
|
|
6941
|
+
type LocationData = Omit<MVFLocation, 'categories' | 'spaces' | 'obstructions' | 'entrances' | 'shapes' | 'connections' | 'annotations' | 'areas' | 'openingHoursSpecification' | 'links' | 'pictures' | 'website' | 'icon'> & {
|
|
5843
6942
|
links: Hyperlink[];
|
|
5844
|
-
images:
|
|
6943
|
+
images: ImageMetaData[];
|
|
6944
|
+
icon?: ImageMetaData;
|
|
5845
6945
|
};
|
|
5846
6946
|
class LocationProfile extends BaseMetaData implements LocationData, IFocusable, INavigatable {
|
|
5847
6947
|
#private;
|
|
@@ -5878,7 +6978,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location-
|
|
|
5878
6978
|
/**
|
|
5879
6979
|
* The location's pictures
|
|
5880
6980
|
*/
|
|
5881
|
-
images:
|
|
6981
|
+
images: ImageMetaData[];
|
|
5882
6982
|
/**
|
|
5883
6983
|
* Web links for the location
|
|
5884
6984
|
*/
|
|
@@ -5892,7 +6992,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location-
|
|
|
5892
6992
|
*
|
|
5893
6993
|
* @format uri
|
|
5894
6994
|
*/
|
|
5895
|
-
icon?:
|
|
6995
|
+
icon?: ImageMetaData;
|
|
5896
6996
|
constructor(data: MapDataInternal, options: {
|
|
5897
6997
|
mvfData: MVFLocation;
|
|
5898
6998
|
});
|
|
@@ -6177,6 +7277,27 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path' {
|
|
|
6177
7277
|
}
|
|
6178
7278
|
}
|
|
6179
7279
|
|
|
7280
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/utils/types' {
|
|
7281
|
+
/**
|
|
7282
|
+
* Utility type that extracts nested values matching a specific type
|
|
7283
|
+
* @example
|
|
7284
|
+
* type A = ExtractDeep<{ a: { b: string; c: number; }; d: string; e: number; }, number>;
|
|
7285
|
+
* // { a: { c: number; } e: number; }
|
|
7286
|
+
*/
|
|
7287
|
+
export type ExtractDeep<T, U> = {
|
|
7288
|
+
[K in keyof T as T[K] extends U ? K : T[K] extends object | undefined ? ExtractDeep<NonNullable<T[K]>, U> extends never ? never : K : never]: T[K] extends object | undefined ? undefined extends T[K] ? ExtractDeep<NonNullable<T[K]>, U> | undefined : ExtractDeep<NonNullable<T[K]>, U> : T[K] extends U ? T[K] : never;
|
|
7289
|
+
};
|
|
7290
|
+
/**
|
|
7291
|
+
* Makes all properties in an object (including nested ones) optional
|
|
7292
|
+
* @example
|
|
7293
|
+
* type A = DeepPartial<{ a: { b: string; c: number; }; d: string; }>;
|
|
7294
|
+
* // { a?: { b?: string; c?: number; }; d?: string; }
|
|
7295
|
+
*/
|
|
7296
|
+
export type DeepPartial<T> = T extends object ? {
|
|
7297
|
+
[P in keyof T]?: DeepPartial<T[P]>;
|
|
7298
|
+
} : T;
|
|
7299
|
+
}
|
|
7300
|
+
|
|
6180
7301
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/types' {
|
|
6181
7302
|
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
6182
7303
|
export type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
@@ -6190,6 +7311,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6190
7311
|
import type { CollisionRankingTier } from '@mappedin/mappedin-js/geojson/src/utils/collision-ranking-tier';
|
|
6191
7312
|
import { z } from 'zod';
|
|
6192
7313
|
import { type PackedBBoxes } from '@mappedin/mappedin-js/geojson/src/systems/collisions/system';
|
|
7314
|
+
import type { GeometryState } from '@mappedin/mappedin-js/geojson/src/components/mesh';
|
|
6193
7315
|
/**
|
|
6194
7316
|
* State reprsenting a Marker
|
|
6195
7317
|
*/
|
|
@@ -6225,29 +7347,9 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6225
7347
|
/**
|
|
6226
7348
|
* The initial rank of the marker, which can be used to reset the rank of the marker to its initial value.
|
|
6227
7349
|
*/
|
|
6228
|
-
initialRank: CollisionRankingTier | number;
|
|
6229
|
-
options
|
|
6230
|
-
|
|
6231
|
-
* The rank of the marker, which determines its visibility in relation to other colliders.
|
|
6232
|
-
*/
|
|
6233
|
-
rank?: CollisionRankingTier | number;
|
|
6234
|
-
/**
|
|
6235
|
-
* Whether the Marker should be clickable via the SDK's internal click event system.
|
|
6236
|
-
*
|
|
6237
|
-
* @example
|
|
6238
|
-
* ```javascript
|
|
6239
|
-
* renderer.on('click', ({ markers }) => {});
|
|
6240
|
-
* ```
|
|
6241
|
-
*/
|
|
6242
|
-
interactive?: boolean | 'pointer-events-auto';
|
|
6243
|
-
/**
|
|
6244
|
-
* The z-index of the marker. Can be used used in conjunction with rank: 'always-visible' to make certain markers appear over others
|
|
6245
|
-
*/
|
|
6246
|
-
zIndex?: number;
|
|
6247
|
-
/**
|
|
6248
|
-
* The vertical position of the marker relative to the floor.
|
|
6249
|
-
*/
|
|
6250
|
-
verticalOffset?: number;
|
|
7350
|
+
initialRank: CollisionRankingTier | number;
|
|
7351
|
+
options: Omit<AddMarkerOptions, 'id'> & {
|
|
7352
|
+
lowPriorityPin: LowPriorityPinConfig;
|
|
6251
7353
|
};
|
|
6252
7354
|
/**
|
|
6253
7355
|
* 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.
|
|
@@ -6258,6 +7360,29 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6258
7360
|
*/
|
|
6259
7361
|
dynamicResize: boolean;
|
|
6260
7362
|
};
|
|
7363
|
+
export type MarkerStateUpdate = Omit<MarkerState, 'type' | 'parent' | 'id' | 'options'> & {
|
|
7364
|
+
options?: Partial<Omit<AddMarkerOptions, 'id' | 'lowPriorityPin'>>;
|
|
7365
|
+
};
|
|
7366
|
+
/**
|
|
7367
|
+
* Configuration for the low priority pin fallback strategy
|
|
7368
|
+
*/
|
|
7369
|
+
export type LowPriorityPinConfig = {
|
|
7370
|
+
/**
|
|
7371
|
+
* Whether to enable low priority pin strategy when all anchor positions have collisions.
|
|
7372
|
+
* @default true
|
|
7373
|
+
*/
|
|
7374
|
+
enabled: boolean;
|
|
7375
|
+
/**
|
|
7376
|
+
* Size of the low priority pin in pixels.
|
|
7377
|
+
* @default 2
|
|
7378
|
+
*/
|
|
7379
|
+
size: number;
|
|
7380
|
+
/**
|
|
7381
|
+
* Color of the low priority pin.
|
|
7382
|
+
* @default '#666'
|
|
7383
|
+
*/
|
|
7384
|
+
color: string;
|
|
7385
|
+
};
|
|
6261
7386
|
export const addMarkerOptionsSchema: z.ZodObject<{
|
|
6262
7387
|
rank: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["low", "medium", "high", "always-visible"]>, z.ZodNumber]>>;
|
|
6263
7388
|
interactive: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"pointer-events-auto">]>>;
|
|
@@ -6265,6 +7390,19 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6265
7390
|
anchor: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["top", "bottom", "left", "right", "center", "top-left", "top-right", "bottom-left", "bottom-right"]>, z.ZodArray<z.ZodEnum<["top", "bottom", "left", "right", "center", "top-left", "top-right", "bottom-left", "bottom-right"]>, "many">]>>;
|
|
6266
7391
|
dynamicResize: z.ZodOptional<z.ZodBoolean>;
|
|
6267
7392
|
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
7393
|
+
lowPriorityPin: z.ZodOptional<z.ZodObject<{
|
|
7394
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
7395
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
7396
|
+
color: z.ZodOptional<z.ZodString>;
|
|
7397
|
+
}, "strip", z.ZodTypeAny, {
|
|
7398
|
+
size?: number | undefined;
|
|
7399
|
+
color?: string | undefined;
|
|
7400
|
+
enabled?: boolean | undefined;
|
|
7401
|
+
}, {
|
|
7402
|
+
size?: number | undefined;
|
|
7403
|
+
color?: string | undefined;
|
|
7404
|
+
enabled?: boolean | undefined;
|
|
7405
|
+
}>>;
|
|
6268
7406
|
}, "strip", z.ZodTypeAny, {
|
|
6269
7407
|
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;
|
|
6270
7408
|
id?: string | undefined;
|
|
@@ -6272,6 +7410,11 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6272
7410
|
dynamicResize?: boolean | undefined;
|
|
6273
7411
|
zIndex?: number | undefined;
|
|
6274
7412
|
rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
|
|
7413
|
+
lowPriorityPin?: {
|
|
7414
|
+
size?: number | undefined;
|
|
7415
|
+
color?: string | undefined;
|
|
7416
|
+
enabled?: boolean | undefined;
|
|
7417
|
+
} | undefined;
|
|
6275
7418
|
}, {
|
|
6276
7419
|
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;
|
|
6277
7420
|
id?: string | undefined;
|
|
@@ -6279,9 +7422,15 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6279
7422
|
dynamicResize?: boolean | undefined;
|
|
6280
7423
|
zIndex?: number | undefined;
|
|
6281
7424
|
rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
|
|
7425
|
+
lowPriorityPin?: {
|
|
7426
|
+
size?: number | undefined;
|
|
7427
|
+
color?: string | undefined;
|
|
7428
|
+
enabled?: boolean | undefined;
|
|
7429
|
+
} | undefined;
|
|
6282
7430
|
}>;
|
|
6283
7431
|
export function validateMarker(coordinate: Position, contentHTML: string, options: AddMarkerOptions): void;
|
|
6284
7432
|
export type MarkerAnchor = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
7433
|
+
type InternalMarkerAnchor = MarkerAnchor | 'low-priority-pin';
|
|
6285
7434
|
/**
|
|
6286
7435
|
* Options for creating a new Marker
|
|
6287
7436
|
*/
|
|
@@ -6324,6 +7473,16 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6324
7473
|
* The vertical position of the marker relative to the floor.
|
|
6325
7474
|
*/
|
|
6326
7475
|
verticalOffset?: number;
|
|
7476
|
+
/**
|
|
7477
|
+
* The entity to attach the marker to.
|
|
7478
|
+
*/
|
|
7479
|
+
attachTo?: EntityId<GeometryState> | string | number | null;
|
|
7480
|
+
/**
|
|
7481
|
+
* Configuration for the low priority pin fallback strategy.
|
|
7482
|
+
* When enabled, shows a smaller pin version of the marker when all anchor positions have collisions.
|
|
7483
|
+
* @default { enabled: true, size: 2, color: '#666' }
|
|
7484
|
+
*/
|
|
7485
|
+
lowPriorityPin?: Partial<LowPriorityPinConfig>;
|
|
6327
7486
|
};
|
|
6328
7487
|
export class MarkerComponent {
|
|
6329
7488
|
id: string | number;
|
|
@@ -6331,9 +7490,11 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6331
7490
|
static testId: number;
|
|
6332
7491
|
rank: number;
|
|
6333
7492
|
initialRank: number;
|
|
6334
|
-
activeAnchor:
|
|
7493
|
+
activeAnchor: InternalMarkerAnchor;
|
|
6335
7494
|
pointerEvents: 'auto' | 'none';
|
|
6336
|
-
options: Required<Omit<AddMarkerOptions, 'zIndex'
|
|
7495
|
+
options: Required<Omit<AddMarkerOptions, 'zIndex' | 'attachTo'> & {
|
|
7496
|
+
lowPriorityPin: Required<LowPriorityPinConfig>;
|
|
7497
|
+
}> & {
|
|
6337
7498
|
zIndex?: number;
|
|
6338
7499
|
};
|
|
6339
7500
|
projection: Vector2;
|
|
@@ -6352,8 +7513,9 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6352
7513
|
w: number;
|
|
6353
7514
|
h: number;
|
|
6354
7515
|
};
|
|
6355
|
-
|
|
6356
|
-
|
|
7516
|
+
markerContainer: Entity2DHTMLDivElement;
|
|
7517
|
+
containerEl: HTMLElement;
|
|
7518
|
+
contentEl: HTMLElement | null;
|
|
6357
7519
|
contentHtml: string;
|
|
6358
7520
|
style: {
|
|
6359
7521
|
top: string;
|
|
@@ -6361,7 +7523,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6361
7523
|
};
|
|
6362
7524
|
dirty: boolean;
|
|
6363
7525
|
/** Flag used in 2d-projection system to determine if the parent has changed */
|
|
6364
|
-
|
|
7526
|
+
attachedDirty: boolean;
|
|
6365
7527
|
collisionDirty: boolean;
|
|
6366
7528
|
visibilityNeedsUpdate: 'show' | 'hide' | false;
|
|
6367
7529
|
constructor(contentHtml: string, options?: AddMarkerOptions);
|
|
@@ -6370,7 +7532,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6370
7532
|
currentStrategyIndex: number;
|
|
6371
7533
|
onStrategySelected: (strategyIndex: number, force?: boolean) => void;
|
|
6372
7534
|
get strategies(): {
|
|
6373
|
-
name:
|
|
7535
|
+
name: InternalMarkerAnchor;
|
|
6374
7536
|
getBoundingBox: () => number[];
|
|
6375
7537
|
}[];
|
|
6376
7538
|
toPackedMessage(isPanning?: boolean): {
|
|
@@ -6382,8 +7544,13 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
|
|
|
6382
7544
|
lockedToStrategyIndex: number;
|
|
6383
7545
|
shouldCollideWithScreenEdges: boolean;
|
|
6384
7546
|
};
|
|
7547
|
+
/**
|
|
7548
|
+
* Get the index of the low priority pin strategy
|
|
7549
|
+
*/
|
|
7550
|
+
get lowPriorityPinStrategyIndex(): number;
|
|
6385
7551
|
destroy(): void;
|
|
6386
7552
|
}
|
|
7553
|
+
export {};
|
|
6387
7554
|
}
|
|
6388
7555
|
|
|
6389
7556
|
declare module '@mappedin/mappedin-js/geojson/src/components/path' {
|
|
@@ -6991,6 +8158,10 @@ declare module '@mappedin/mappedin-js/geojson/src/components/label' {
|
|
|
6991
8158
|
* The vertical position of the label relative to the floor.
|
|
6992
8159
|
*/
|
|
6993
8160
|
verticalOffset?: number;
|
|
8161
|
+
/**
|
|
8162
|
+
* The entity to attach the label to.
|
|
8163
|
+
*/
|
|
8164
|
+
attachTo?: EntityId<GeometryState> | string | null;
|
|
6994
8165
|
};
|
|
6995
8166
|
type TStyle = {
|
|
6996
8167
|
top?: number;
|
|
@@ -7133,7 +8304,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/label' {
|
|
|
7133
8304
|
totalMarkerSize: number;
|
|
7134
8305
|
dirty: boolean;
|
|
7135
8306
|
/** Flag used in 2d-projection system to determine if the parent has changed */
|
|
7136
|
-
|
|
8307
|
+
attachedDirty: boolean;
|
|
7137
8308
|
collisionDirty: boolean;
|
|
7138
8309
|
lastTextAlign: any;
|
|
7139
8310
|
imageHash?: number;
|
|
@@ -7178,9 +8349,11 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/group-container' {
|
|
|
7178
8349
|
import type { BatchedText } from '@mappedin/mappedin-js/geojson/src/services/text3d/text3d';
|
|
7179
8350
|
import type { EntityTypes } from '@mappedin/mappedin-js/geojson/src/renderer';
|
|
7180
8351
|
import type { Feature, MultiPolygon, Polygon } from 'geojson';
|
|
8352
|
+
import type { FocusableComponent } from '@mappedin/mappedin-js/geojson/src/components/focusable';
|
|
7181
8353
|
export enum GroupContainerComponents {
|
|
7182
8354
|
Stack = 0,
|
|
7183
|
-
Interaction = 1
|
|
8355
|
+
Interaction = 1,
|
|
8356
|
+
Focusable = 2
|
|
7184
8357
|
}
|
|
7185
8358
|
/**
|
|
7186
8359
|
* State representing a Group Container, which is a container for other Group Containers, Geometry Groups, Labels, Markers and Paths.
|
|
@@ -7221,7 +8394,7 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/group-container' {
|
|
|
7221
8394
|
/** The effective opacity of the entity after all parent containers have been considered. */
|
|
7222
8395
|
computedOpacity: number;
|
|
7223
8396
|
};
|
|
7224
|
-
components: [StackComponent?, InteractionComponent?];
|
|
8397
|
+
components: [StackComponent?, InteractionComponent?, FocusableComponent?];
|
|
7225
8398
|
constructor(id: string);
|
|
7226
8399
|
addOccluderFeature(feature: Feature<Polygon | MultiPolygon, any>, occluderId: number): void;
|
|
7227
8400
|
addEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3DTypes): void;
|
|
@@ -7240,6 +8413,7 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry-group' {
|
|
|
7240
8413
|
import { type GeometryState } from '@mappedin/mappedin-js/geojson/src/components/mesh';
|
|
7241
8414
|
import type { ModelState } from '@mappedin/mappedin-js/geojson/src/components/model';
|
|
7242
8415
|
import { GeometryGroupStyleComponent } from '@mappedin/mappedin-js/geojson/src/components/geometry-group-style';
|
|
8416
|
+
import type { MaterialSide } from '@mappedin/mappedin-js/geojson/src/components/styles';
|
|
7243
8417
|
export enum GeometryGroupComponents {
|
|
7244
8418
|
GeometryGroupStyle = 0
|
|
7245
8419
|
}
|
|
@@ -7311,6 +8485,10 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry-group' {
|
|
|
7311
8485
|
* height of the geometry group
|
|
7312
8486
|
*/
|
|
7313
8487
|
height?: number;
|
|
8488
|
+
/**
|
|
8489
|
+
* Material side of the geometry group
|
|
8490
|
+
*/
|
|
8491
|
+
side?: MaterialSide;
|
|
7314
8492
|
};
|
|
7315
8493
|
export type ChildUpdatable<T> = T extends LineStyle ? Partial<Pick<LineStyle, 'color' | 'opacity' | 'visible'>> : Partial<Pick<PaintStyle, 'color' | 'opacity' | 'visible'>>;
|
|
7316
8494
|
export class GeometryGroupObject3D extends Object3D {
|
|
@@ -7323,7 +8501,6 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry-group' {
|
|
|
7323
8501
|
modelURL?: string;
|
|
7324
8502
|
opacity: number;
|
|
7325
8503
|
dirty: boolean;
|
|
7326
|
-
outlineDirty: boolean;
|
|
7327
8504
|
shadingDirty: boolean;
|
|
7328
8505
|
};
|
|
7329
8506
|
setVisible(visible: boolean): void;
|
|
@@ -7418,6 +8595,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
|
|
|
7418
8595
|
showImage?: boolean;
|
|
7419
8596
|
flipImageToFaceCamera?: boolean;
|
|
7420
8597
|
side?: MaterialSide;
|
|
8598
|
+
renderOrder?: number;
|
|
7421
8599
|
};
|
|
7422
8600
|
export type Shading = {
|
|
7423
8601
|
start?: number;
|
|
@@ -7437,6 +8615,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
|
|
|
7437
8615
|
shading?: Shading;
|
|
7438
8616
|
outline?: boolean;
|
|
7439
8617
|
side?: MaterialSide;
|
|
8618
|
+
renderOrder?: number;
|
|
7440
8619
|
};
|
|
7441
8620
|
export type Layer = {
|
|
7442
8621
|
id: string;
|
|
@@ -7730,7 +8909,7 @@ declare module '@mappedin/mappedin-js/geojson/src/types' {
|
|
|
7730
8909
|
}
|
|
7731
8910
|
|
|
7732
8911
|
declare module '@mappedin/mappedin-js/geojson/src/components/mesh' {
|
|
7733
|
-
import type { Texture, BufferGeometry,
|
|
8912
|
+
import type { Texture, BufferGeometry, Mesh } from 'three';
|
|
7734
8913
|
import { BatchedMesh, Color, Vector3 } from 'three';
|
|
7735
8914
|
import type { BatchedStandardMaterial } from '@mappedin/mappedin-js/geojson/src/systems/mesh-creation-and-optimization/batched-material';
|
|
7736
8915
|
import type { EntityId, Position } from '@mappedin/mappedin-js/geojson/src/types';
|
|
@@ -7852,7 +9031,6 @@ declare module '@mappedin/mappedin-js/geojson/src/components/mesh' {
|
|
|
7852
9031
|
#private;
|
|
7853
9032
|
mesh?: EntityBatchedMesh;
|
|
7854
9033
|
focusMesh?: Mesh;
|
|
7855
|
-
outline?: LineSegments;
|
|
7856
9034
|
imageMesh?: Mesh;
|
|
7857
9035
|
/**
|
|
7858
9036
|
* holds a pointer to space label text if the polygon has label active.
|
|
@@ -8274,7 +9452,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
|
|
|
8274
9452
|
import { Renderer } from '@mappedin/mappedin-js/geojson/src/services/renderer';
|
|
8275
9453
|
import { CollisionSystem } from '@mappedin/mappedin-js/geojson/src/systems/collisions/system';
|
|
8276
9454
|
import { InteractionSystem } from '@mappedin/mappedin-js/geojson/src/systems/interactions';
|
|
8277
|
-
import type { AddMarkerOptions, MarkerState } from '@mappedin/mappedin-js/geojson/src/components/marker';
|
|
9455
|
+
import type { AddMarkerOptions, MarkerState, MarkerStateUpdate } from '@mappedin/mappedin-js/geojson/src/components/marker';
|
|
8278
9456
|
import type { GLTFExportOptions } from '@mappedin/mappedin-js/geojson/src/systems/exporter';
|
|
8279
9457
|
import { ExporterSystem } from '@mappedin/mappedin-js/geojson/src/systems/exporter';
|
|
8280
9458
|
import type { AddLabelOptions, LabelState } from '@mappedin/mappedin-js/geojson/src/components/label';
|
|
@@ -8398,6 +9576,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
|
|
|
8398
9576
|
visible?: boolean;
|
|
8399
9577
|
altitude?: number;
|
|
8400
9578
|
interactive?: boolean;
|
|
9579
|
+
focusable?: boolean;
|
|
8401
9580
|
}, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<GroupContainerState>;
|
|
8402
9581
|
addStackContainer(id: string, style?: {
|
|
8403
9582
|
visible?: true;
|
|
@@ -8510,7 +9689,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
|
|
|
8510
9689
|
*/
|
|
8511
9690
|
setState(object: Partial<Omit<MapViewState, 'type'>>): void;
|
|
8512
9691
|
setState<T extends EntityId<LabelState>>(object: T | T['id'], state: Partial<LabelState>): void;
|
|
8513
|
-
setState<T extends EntityId<MarkerState>>(object: T | T['id'], state: Partial<
|
|
9692
|
+
setState<T extends EntityId<MarkerState>>(object: T | T['id'], state: Partial<MarkerStateUpdate>): void;
|
|
8514
9693
|
setState<T extends EntityId<GeometryGroupState>>(object: T | T['id'], state: Partial<GeometryGroupState>): void;
|
|
8515
9694
|
setState<T extends EntityId<GroupContainerState>>(object: T | T['id'], state: Partial<GroupContainerState>): void;
|
|
8516
9695
|
setState<T extends EntityId<GeometryState>>(object: T | T['id'], state: Partial<GeometryState>): void;
|
|
@@ -9325,8 +10504,8 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/utils' {
|
|
|
9325
10504
|
export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
|
|
9326
10505
|
export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
|
|
9327
10506
|
export function updateAltitude(entity: EntityTypes, update?: number): boolean;
|
|
9328
|
-
export function updateOutline(entity: All3DTypes, update?: boolean): boolean;
|
|
9329
|
-
export function updateFocusable(entity: Geometry3D, update?: boolean): boolean;
|
|
10507
|
+
export function updateOutline(entity: All3DTypes, state: RendererState, update?: boolean): boolean;
|
|
10508
|
+
export function updateFocusable(entity: Geometry3D | GroupContainerObject3D, update?: boolean): boolean;
|
|
9330
10509
|
export function updateIndividualGeometryRenderOrder(entity: Geometry3D, update?: number): boolean;
|
|
9331
10510
|
export function handlePathUpdate(geometry: Geometry3DTypes, state: RendererState, update: PathUpdateState): void;
|
|
9332
10511
|
export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
|
|
@@ -9455,19 +10634,85 @@ declare module '@mappedin/mappedin-js/geojson/src/utils/constants' {
|
|
|
9455
10634
|
|
|
9456
10635
|
declare module '@mappedin/mappedin-js/geojson/src/utils/debug' {
|
|
9457
10636
|
import type Core from '@mappedin/mappedin-js/geojson/src/renderer';
|
|
10637
|
+
/**
|
|
10638
|
+
* Default debug state configuration with all debug features disabled by default.
|
|
10639
|
+
*/
|
|
9458
10640
|
const DEFAULT_DEBUG_STATE: {
|
|
9459
|
-
|
|
9460
|
-
|
|
10641
|
+
/** Shows the text area mesh used for polygon label rendering */
|
|
10642
|
+
showPolygonLabelTextAreaMesh: boolean;
|
|
10643
|
+
/** Enables the basic environment map for lighting and reflections */
|
|
10644
|
+
showEnvMap: boolean;
|
|
10645
|
+
/** Shows collision detection boxes for debugging spatial interactions */
|
|
10646
|
+
showCollisionBoxes: boolean;
|
|
9461
10647
|
};
|
|
10648
|
+
/**
|
|
10649
|
+
* Type definition for the debug state configuration.
|
|
10650
|
+
* Represents all available debug options that can be toggled.
|
|
10651
|
+
*/
|
|
9462
10652
|
export type DebugState = typeof DEFAULT_DEBUG_STATE;
|
|
10653
|
+
/**
|
|
10654
|
+
* Debug utility class for toggling various debug visualization features.
|
|
10655
|
+
*
|
|
10656
|
+
* This class provides a centralized way to control debug features like:
|
|
10657
|
+
* - Text area mesh visualization for polygon labels
|
|
10658
|
+
* - Environment map rendering
|
|
10659
|
+
* - Collision box visualization
|
|
10660
|
+
*
|
|
10661
|
+
* @example
|
|
10662
|
+
* ```typescript
|
|
10663
|
+
* const debug = new Debug(core);
|
|
10664
|
+
*
|
|
10665
|
+
* // Enable collision boxes and environment map
|
|
10666
|
+
* debug.update({
|
|
10667
|
+
* showCollisionBoxes: true,
|
|
10668
|
+
* showEnvMap: true
|
|
10669
|
+
* });
|
|
10670
|
+
*
|
|
10671
|
+
* // Disable all debug features
|
|
10672
|
+
* debug.update({
|
|
10673
|
+
* showCollisionBoxes: false,
|
|
10674
|
+
* showEnvMap: false,
|
|
10675
|
+
* showPolygonLabelTextAreaMesh: false
|
|
10676
|
+
* });
|
|
10677
|
+
* ```
|
|
10678
|
+
*/
|
|
9463
10679
|
export class Debug {
|
|
9464
|
-
|
|
9465
|
-
|
|
9466
|
-
|
|
9467
|
-
|
|
9468
|
-
|
|
9469
|
-
|
|
9470
|
-
|
|
10680
|
+
/** Current debug state configuration */
|
|
10681
|
+
state: {
|
|
10682
|
+
/** Shows the text area mesh used for polygon label rendering */
|
|
10683
|
+
showPolygonLabelTextAreaMesh: boolean;
|
|
10684
|
+
/** Enables the basic environment map for lighting and reflections */
|
|
10685
|
+
showEnvMap: boolean;
|
|
10686
|
+
/** Shows collision detection boxes for debugging spatial interactions */
|
|
10687
|
+
showCollisionBoxes: boolean;
|
|
10688
|
+
};
|
|
10689
|
+
/** Reference to the core renderer instance */
|
|
10690
|
+
core: Core;
|
|
10691
|
+
/**
|
|
10692
|
+
* Creates a new Debug instance.
|
|
10693
|
+
*
|
|
10694
|
+
* @param core - The core renderer instance to control debug features for
|
|
10695
|
+
*/
|
|
10696
|
+
constructor(core: Core);
|
|
10697
|
+
/**
|
|
10698
|
+
* Updates the debug state with new configuration options.
|
|
10699
|
+
* Only changed values will trigger updates to the corresponding systems.
|
|
10700
|
+
*
|
|
10701
|
+
* @param updateState - Partial debug state with the options to update
|
|
10702
|
+
*
|
|
10703
|
+
* @example
|
|
10704
|
+
* ```typescript
|
|
10705
|
+
* // Enable only collision boxes
|
|
10706
|
+
* debug.update({ showCollisionBoxes: true });
|
|
10707
|
+
*
|
|
10708
|
+
* // Enable multiple features at once
|
|
10709
|
+
* debug.update({
|
|
10710
|
+
* showEnvMap: true,
|
|
10711
|
+
* showPolygonLabelTextAreaMesh: true
|
|
10712
|
+
* });
|
|
10713
|
+
* ```
|
|
10714
|
+
*/
|
|
10715
|
+
update(updateState: Partial<DebugState>): void;
|
|
9471
10716
|
}
|
|
9472
10717
|
export {};
|
|
9473
10718
|
}
|
|
@@ -9587,9 +10832,13 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/text3d/system' {
|
|
|
9587
10832
|
showTextAreaMesh(): void;
|
|
9588
10833
|
hideTextAreaMesh(): void;
|
|
9589
10834
|
}
|
|
10835
|
+
export function configureWorker(useWorker: boolean): void;
|
|
9590
10836
|
/**
|
|
9591
10837
|
* Preload fonts and optionally pre-generate the SDF textures for particular glyphs up front.
|
|
9592
10838
|
* This is to avoid ondemand font generation can take long.
|
|
10839
|
+
*
|
|
10840
|
+
* If working in CSP-restricted environment, call `disableText3DWorker` before to avoid errors
|
|
10841
|
+
*
|
|
9593
10842
|
* @param fontUrl - url of the font file served.
|
|
9594
10843
|
* @returns A promise that resolves when the font is loaded
|
|
9595
10844
|
*
|
|
@@ -9599,150 +10848,166 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/text3d/system' {
|
|
|
9599
10848
|
export const DEFAULT_VERTICAL_OFFSET = 0.5;
|
|
9600
10849
|
}
|
|
9601
10850
|
|
|
9602
|
-
declare module '@mappedin/mappedin-js/geojson/src/systems/
|
|
9603
|
-
|
|
9604
|
-
|
|
9605
|
-
|
|
9606
|
-
|
|
9607
|
-
import
|
|
9608
|
-
import '
|
|
9609
|
-
|
|
9610
|
-
|
|
9611
|
-
|
|
9612
|
-
|
|
9613
|
-
|
|
9614
|
-
|
|
9615
|
-
custom?: string[];
|
|
9616
|
-
position?: AttributionPosition;
|
|
9617
|
-
feedback?: boolean;
|
|
9618
|
-
};
|
|
9619
|
-
export class HTMLControlsSystem {
|
|
9620
|
-
controlContainerEl: HTMLDivElement;
|
|
9621
|
-
controlPositions: Record<AttributionPosition, HTMLDivElement>;
|
|
9622
|
-
compact: boolean | undefined;
|
|
9623
|
-
attribContainerEl?: HTMLDetailsElement;
|
|
9624
|
-
attribInnerEl?: HTMLDivElement;
|
|
9625
|
-
attribButtonEl?: HTMLElement;
|
|
9626
|
-
feedbackLinkEl?: HTMLAnchorElement;
|
|
9627
|
-
attribHTML: string;
|
|
9628
|
-
customAttributions: string[];
|
|
9629
|
-
constructor(container: HTMLElement);
|
|
9630
|
-
addAttributionControl(options?: AttributionControlOptions): void;
|
|
9631
|
-
toggleAttribution: (e: MouseEvent) => void;
|
|
9632
|
-
destroyAttributionControl(): void;
|
|
9633
|
-
resize(canvasWidth: number): void;
|
|
9634
|
-
/**
|
|
9635
|
-
* This should fire when Maplibre data changes.
|
|
9636
|
-
*/
|
|
9637
|
-
updateData(map: Map): void;
|
|
9638
|
-
destroy(): void;
|
|
9639
|
-
}
|
|
9640
|
-
}
|
|
9641
|
-
|
|
9642
|
-
declare module '@mappedin/mappedin-js/geojson/src/components/styles' {
|
|
9643
|
-
export { StyleComponent, DEFAULT_COLOR, type MaterialSide } from '@mappedin/mappedin-js/geojson/src/components/styles/style';
|
|
9644
|
-
export { Text3DStyleComponent, type Text3DStyle, DEFAULT_TEXT_STYLE } from '@mappedin/mappedin-js/geojson/src/components/styles/text-style';
|
|
9645
|
-
export { ModelStyleComponnet, type ModelStyle } from '@mappedin/mappedin-js/geojson/src/components/styles/model-style';
|
|
9646
|
-
export { DEFAULT_ROTATION, DEFAULT_SCALE } from '@mappedin/mappedin-js/geojson/src/components/styles/constants';
|
|
9647
|
-
}
|
|
9648
|
-
|
|
9649
|
-
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api' {
|
|
9650
|
-
import type { RendererCore, WatermarkUpdateOptions } from '@mappedin/core-sdk';
|
|
9651
|
-
import { type TShow3DMapOptions } from '@mappedin/mappedin-js/mappedin-js/src';
|
|
9652
|
-
import { WALLS, DOORS } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
9653
|
-
import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
|
|
9654
|
-
import type { FloorStack, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
9655
|
-
import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
9656
|
-
import type { MapView } from '@mappedin/mappedin-js/mappedin-js/src/map-view';
|
|
9657
|
-
import { Label, Marker, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
9658
|
-
import { Text3D as Text3DView, Model, Path, type Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
9659
|
-
import { Navigation } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
|
|
9660
|
-
import type { TGetState, TUpdateState } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
9661
|
-
import { Camera } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera';
|
|
9662
|
-
import { Exporter } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/exporter';
|
|
9663
|
-
import { Labels } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels';
|
|
9664
|
-
import { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
9665
|
-
import { Markers } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers';
|
|
9666
|
-
import { Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images';
|
|
9667
|
-
import { Models } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models';
|
|
9668
|
-
import { Paths } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths';
|
|
9669
|
-
import { BlueDot } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot';
|
|
9670
|
-
import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
9671
|
-
import { Shapes } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/shapes';
|
|
9672
|
-
import { Style } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style';
|
|
9673
|
-
import Outdoor from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor';
|
|
9674
|
-
import { type BBox } from 'geojson';
|
|
9675
|
-
import { Text3D } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/text3d';
|
|
9676
|
-
import { PathSegment } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path';
|
|
9677
|
-
export class GeoJsonApi {
|
|
9678
|
-
core: RendererCore;
|
|
9679
|
-
mapObjects: GeojsonApiMapObject[];
|
|
9680
|
-
id: string;
|
|
9681
|
-
mapDataExternal: {
|
|
9682
|
-
[key in string]: MapData;
|
|
9683
|
-
};
|
|
9684
|
-
mapData?: MapData;
|
|
9685
|
-
currentMap: GeojsonApiMapObject;
|
|
9686
|
-
hiddenOutdoorGeometries: [
|
|
9687
|
-
BBox,
|
|
9688
|
-
polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[],
|
|
9689
|
-
layers: string[]
|
|
9690
|
-
][];
|
|
9691
|
-
mapView: MapView;
|
|
9692
|
-
Camera: Camera;
|
|
9693
|
-
Labels: Labels;
|
|
9694
|
-
Text3D: Text3D;
|
|
9695
|
-
Markers: Markers;
|
|
9696
|
-
Models: Models;
|
|
9697
|
-
Paths: Paths;
|
|
9698
|
-
Exporter: Exporter;
|
|
9699
|
-
Navigation: Navigation;
|
|
9700
|
-
Outdoor: Outdoor;
|
|
9701
|
-
BlueDot: BlueDot;
|
|
9702
|
-
Shapes: Shapes;
|
|
9703
|
-
Style: Style;
|
|
9704
|
-
Images: Images;
|
|
9705
|
-
get DynamicFocus(): import("..").DynamicFocus;
|
|
9706
|
-
get StackedMaps(): import("..").StackedMaps;
|
|
9707
|
-
constructor(rendererCore: RendererCore, mapView: MapView);
|
|
9708
|
-
updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | Floor | WALLS | DOORS | Path | PathSegment | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
|
|
9709
|
-
update: () => void;
|
|
9710
|
-
getMapDataInternal(): MapDataInternal | undefined;
|
|
9711
|
-
getMapData(): MapData | undefined;
|
|
9712
|
-
addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
|
|
9713
|
-
setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
|
|
9714
|
-
setFloorStack(floorStack: FloorStack | string): void;
|
|
9715
|
-
updateWatermark(options: WatermarkUpdateOptions): void;
|
|
9716
|
-
get currentFloorStack(): FloorStack;
|
|
9717
|
-
get currentFloor(): Floor;
|
|
9718
|
-
getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | Path | PathSegment | Floor | Facade | string>(target: T): TGetState<T>;
|
|
9719
|
-
setHoverColor(c: string): void;
|
|
9720
|
-
getHoverColor(): string | undefined;
|
|
9721
|
-
/**
|
|
9722
|
-
* Create a coordinate from a screen coordinate
|
|
9723
|
-
* @param x - The x coordinate of the screen
|
|
9724
|
-
* @param y - The y coordinate of the screen
|
|
9725
|
-
* @param floor - The floor to use for the coordinate
|
|
9726
|
-
* @returns The coordinate
|
|
9727
|
-
*/
|
|
9728
|
-
createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
|
|
9729
|
-
getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
|
|
10851
|
+
declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/system' {
|
|
10852
|
+
import { QuadTree } from '@packages/internal/quad-tree';
|
|
10853
|
+
import '../../styles/collisions.scss';
|
|
10854
|
+
import type { MarkerComponent } from '@mappedin/mappedin-js/geojson/src/components/marker';
|
|
10855
|
+
import type LabelComponent from '@mappedin/mappedin-js/geojson/src/components/label';
|
|
10856
|
+
import { PubSub } from '@mappedin/mappedin-js/packages/common/pubsub';
|
|
10857
|
+
import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
|
|
10858
|
+
import type { TSerializedCollider, TSerializedColliderResponse } from '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor';
|
|
10859
|
+
import type { WatermarkPosition } from '@mappedin/mappedin-js/geojson/src/systems/watermark/system';
|
|
10860
|
+
export type TMessageEvent = MessageEvent<{
|
|
10861
|
+
msgId: string;
|
|
10862
|
+
colliders: TSerializedColliderResponse[];
|
|
10863
|
+
debug: {
|
|
9730
10864
|
x: number;
|
|
9731
10865
|
y: number;
|
|
9732
|
-
|
|
9733
|
-
|
|
9734
|
-
|
|
9735
|
-
|
|
9736
|
-
|
|
10866
|
+
w: number;
|
|
10867
|
+
h: number;
|
|
10868
|
+
}[];
|
|
10869
|
+
}>;
|
|
10870
|
+
export type TMessage = {
|
|
10871
|
+
msgId: string;
|
|
10872
|
+
totalWidth: number;
|
|
10873
|
+
totalHeight: number;
|
|
10874
|
+
watermarkWidth: number;
|
|
10875
|
+
watermarkHeight: number;
|
|
10876
|
+
watermarkPosition: WatermarkPosition;
|
|
10877
|
+
colliders: TSerializedCollider[];
|
|
10878
|
+
devicePixelRatio: number;
|
|
10879
|
+
};
|
|
10880
|
+
type TCollisionSystemEvent = {
|
|
10881
|
+
'visibility-changed': undefined;
|
|
10882
|
+
};
|
|
10883
|
+
export type PackedBBox = [x: number, y: number, w: number, h: number, index: number];
|
|
10884
|
+
export type PackedBBoxes = PackedBBox[];
|
|
10885
|
+
export type PackedCollider = [
|
|
10886
|
+
bboxes: PackedBBoxes,
|
|
10887
|
+
enabled: 0 | 1,
|
|
10888
|
+
alwaysVisible: 0 | 1,
|
|
10889
|
+
x: number,
|
|
10890
|
+
y: number,
|
|
10891
|
+
shouldCollideWithScreenEdges?: 0 | 1,
|
|
10892
|
+
onlyExposeStrategyIndex?: number
|
|
10893
|
+
];
|
|
10894
|
+
export type PackedMessage = [
|
|
10895
|
+
colliders: PackedCollider[],
|
|
10896
|
+
devicePixelRatio: number,
|
|
10897
|
+
totalHeight: number,
|
|
10898
|
+
totalWidth: number,
|
|
10899
|
+
watermarkWidth: number,
|
|
10900
|
+
watermarkHeight: number,
|
|
10901
|
+
watermarkPosition: WatermarkPosition
|
|
10902
|
+
];
|
|
10903
|
+
export class CollisionSystem extends PubSub<TCollisionSystemEvent, keyof TCollisionSystemEvent> {
|
|
10904
|
+
collidersDirty: boolean;
|
|
10905
|
+
packedMessage: PackedMessage;
|
|
10906
|
+
visibleCollidersQTree: QuadTree<{
|
|
10907
|
+
entityId: string | number;
|
|
10908
|
+
}>;
|
|
10909
|
+
interactiveCollidersQTree: QuadTree<{
|
|
10910
|
+
entityId: string | number;
|
|
10911
|
+
}>;
|
|
10912
|
+
coreState: RendererState;
|
|
10913
|
+
constructor(debugCanvas: HTMLCanvasElement, coreState: RendererState, worker?: Worker);
|
|
10914
|
+
postMessage: () => void;
|
|
10915
|
+
showCollisionBoxes: () => void;
|
|
10916
|
+
hideCollisionBoxes: () => void;
|
|
10917
|
+
currentMsgId: string;
|
|
10918
|
+
working: boolean;
|
|
10919
|
+
componentArray: (MarkerComponent | LabelComponent)[];
|
|
10920
|
+
update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, isPanning?: boolean) => void;
|
|
10921
|
+
resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
|
|
10922
|
+
/**
|
|
10923
|
+
* Resolve collisions
|
|
10924
|
+
*/
|
|
10925
|
+
resolve: (e: MessageEvent<{
|
|
10926
|
+
msgId: string;
|
|
10927
|
+
colliders: TSerializedColliderResponse[];
|
|
10928
|
+
}>) => void;
|
|
10929
|
+
drawDebug: () => void;
|
|
10930
|
+
destroy: () => void;
|
|
10931
|
+
}
|
|
10932
|
+
/**
|
|
10933
|
+
* Sets the URL for the collision system worker script.
|
|
10934
|
+
*
|
|
10935
|
+
* This function allows specifying a custom URL for the collision system's web worker,
|
|
10936
|
+
* which is particularly useful in environments with strict Content Security Policy (CSP)
|
|
10937
|
+
* that don't allow blob: URLs or inline scripts.
|
|
10938
|
+
*
|
|
10939
|
+
* When provided, the collision system will load its worker from the specified URL
|
|
10940
|
+
* instead of creating an inline worker from a blob. This enables compatibility with
|
|
10941
|
+
* environments that have restrictive CSP settings.
|
|
10942
|
+
*
|
|
10943
|
+
* @param url - The absolute URL pointing to the collision worker script.
|
|
10944
|
+
* This should be a URL where the compiled version of the worker.ts file is hosted.
|
|
10945
|
+
*
|
|
10946
|
+
* @example
|
|
10947
|
+
* ```typescript
|
|
10948
|
+
* // Set a custom URL for the collision worker
|
|
10949
|
+
* import { setWorkerUrl } from '@mappedin/core-sdk';
|
|
10950
|
+
*
|
|
10951
|
+
* // Must be called before initializing any maps
|
|
10952
|
+
* setWorkerUrl('https://cdn.example.com/workers/collision-worker.js');
|
|
10953
|
+
* ```
|
|
10954
|
+
*
|
|
10955
|
+
* @remarks
|
|
10956
|
+
* - This function must be called before any map instances are created
|
|
10957
|
+
* - The worker file must be built and hosted separately as part of your deployment process
|
|
10958
|
+
* - Ideal for applications that need to comply with strict CSP requirements
|
|
10959
|
+
*/
|
|
10960
|
+
export function setWorkerUrl(url: string): void;
|
|
10961
|
+
export {};
|
|
10962
|
+
}
|
|
10963
|
+
|
|
10964
|
+
declare module '@mappedin/mappedin-js/geojson/src/systems/exporter' {
|
|
10965
|
+
export { ExporterSystem, type GLTFExportOptions } from '@mappedin/mappedin-js/geojson/src/systems/exporter/exporter';
|
|
10966
|
+
}
|
|
10967
|
+
|
|
10968
|
+
declare module '@mappedin/mappedin-js/geojson/src/systems/html-controls/system' {
|
|
10969
|
+
import type { Map } from '@mappedin/mappedin-js/packages/outdoor-context-v4';
|
|
10970
|
+
import '../../styles/html-controls.scss';
|
|
10971
|
+
/**
|
|
10972
|
+
* All possible control anchor positions.
|
|
10973
|
+
*/
|
|
10974
|
+
export const ATTRIBUTION_POSITIONS: readonly ["top-left", "top-right", "bottom-left", "bottom-right"];
|
|
10975
|
+
export type AttributionPosition = (typeof ATTRIBUTION_POSITIONS)[number];
|
|
10976
|
+
export type AttributionControlOptions = {
|
|
10977
|
+
custom?: string[];
|
|
10978
|
+
position?: AttributionPosition;
|
|
10979
|
+
feedback?: boolean;
|
|
10980
|
+
};
|
|
10981
|
+
export class HTMLControlsSystem {
|
|
10982
|
+
controlContainerEl: HTMLDivElement;
|
|
10983
|
+
controlPositions: Record<AttributionPosition, HTMLDivElement>;
|
|
10984
|
+
compact: boolean | undefined;
|
|
10985
|
+
attribContainerEl?: HTMLDetailsElement;
|
|
10986
|
+
attribInnerEl?: HTMLDivElement;
|
|
10987
|
+
attribButtonEl?: HTMLElement;
|
|
10988
|
+
feedbackLinkEl?: HTMLAnchorElement;
|
|
10989
|
+
attribHTML: string;
|
|
10990
|
+
customAttributions: string[];
|
|
10991
|
+
constructor(container: HTMLElement);
|
|
10992
|
+
addAttributionControl(options?: AttributionControlOptions): void;
|
|
10993
|
+
toggleAttribution: (e: MouseEvent) => void;
|
|
10994
|
+
destroyAttributionControl(): void;
|
|
10995
|
+
resize(canvasWidth: number): void;
|
|
9737
10996
|
/**
|
|
9738
|
-
*
|
|
10997
|
+
* This should fire when Maplibre data changes.
|
|
9739
10998
|
*/
|
|
9740
|
-
|
|
9741
|
-
clear(): void;
|
|
10999
|
+
updateData(map: Map): void;
|
|
9742
11000
|
destroy(): void;
|
|
9743
11001
|
}
|
|
9744
11002
|
}
|
|
9745
11003
|
|
|
11004
|
+
declare module '@mappedin/mappedin-js/geojson/src/components/styles' {
|
|
11005
|
+
export { StyleComponent, DEFAULT_COLOR, type MaterialSide } from '@mappedin/mappedin-js/geojson/src/components/styles/style';
|
|
11006
|
+
export { Text3DStyleComponent, type Text3DStyle, DEFAULT_TEXT_STYLE } from '@mappedin/mappedin-js/geojson/src/components/styles/text-style';
|
|
11007
|
+
export { ModelStyleComponnet, type ModelStyle } from '@mappedin/mappedin-js/geojson/src/components/styles/model-style';
|
|
11008
|
+
export { DEFAULT_ROTATION, DEFAULT_SCALE } from '@mappedin/mappedin-js/geojson/src/components/styles/constants';
|
|
11009
|
+
}
|
|
11010
|
+
|
|
9746
11011
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
|
|
9747
11012
|
import type { ParsedMVF } from '@mappedin/mvf';
|
|
9748
11013
|
import type { FeatureCollection, LineString, MultiPolygon, Polygon } from 'geojson';
|
|
@@ -9754,12 +11019,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
|
|
|
9754
11019
|
import { type AggregatedStyleMap } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils';
|
|
9755
11020
|
import { StackedMaps } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
|
|
9756
11021
|
import type { TFloorChangeReason } from '@mappedin/mappedin-js/mappedin-js/src/events';
|
|
9757
|
-
import type { Path, Shape
|
|
11022
|
+
import type { Path, Shape } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
9758
11023
|
import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
9759
11024
|
import { Space, Coordinate } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
9760
11025
|
import { type GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
|
|
9761
11026
|
import { FloorStackObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-object';
|
|
9762
|
-
import { DynamicFocus } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/dynamic-focus';
|
|
9763
11027
|
import type { Text3DState } from '@mappedin/core-sdk/src/components/text3d';
|
|
9764
11028
|
export class GeojsonApiMapObject extends PubSub<{
|
|
9765
11029
|
'floor-change': {
|
|
@@ -9795,7 +11059,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
|
|
|
9795
11059
|
options: TShow3DMapOptions;
|
|
9796
11060
|
styleMap: AggregatedStyleMap;
|
|
9797
11061
|
StackedMaps: StackedMaps;
|
|
9798
|
-
DynamicFocus: DynamicFocus;
|
|
9799
11062
|
get currentFloorStack(): FloorStackObject;
|
|
9800
11063
|
setFloorStack(floorStackId: string, reason?: TFloorChangeReason): void;
|
|
9801
11064
|
get currentFloor(): FloorObject;
|
|
@@ -9818,7 +11081,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
|
|
|
9818
11081
|
removeAll: () => void;
|
|
9819
11082
|
};
|
|
9820
11083
|
Markers: {
|
|
9821
|
-
add: (coordinate: Coordinate, html: string, opts: TAddMarkerOptions
|
|
11084
|
+
add: (coordinate: Coordinate, html: string, opts: TAddMarkerOptions & {
|
|
11085
|
+
attachTo?: string;
|
|
11086
|
+
}) => EntityId<MarkerState>;
|
|
9822
11087
|
remove: (id: string) => void;
|
|
9823
11088
|
getContentEl: (id: string) => HTMLElement | undefined;
|
|
9824
11089
|
removeAll: () => void;
|
|
@@ -9845,14 +11110,12 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object' {
|
|
|
9845
11110
|
labelOptions?: TAddLabelOptions;
|
|
9846
11111
|
}) => void;
|
|
9847
11112
|
add: (coordinate: Coordinate, text: string, opts?: AddLabelOptions & {
|
|
9848
|
-
|
|
9849
|
-
parentId?: string;
|
|
11113
|
+
attachTo?: string;
|
|
9850
11114
|
verticalOffset?: number;
|
|
9851
11115
|
}) => {
|
|
9852
11116
|
id: string | number;
|
|
9853
11117
|
};
|
|
9854
|
-
remove: ({
|
|
9855
|
-
label: Label;
|
|
11118
|
+
remove: ({ entityId }: {
|
|
9856
11119
|
entityId: string;
|
|
9857
11120
|
}) => void;
|
|
9858
11121
|
removeAll: () => void;
|
|
@@ -10309,7 +11572,44 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/camera' {
|
|
|
10309
11572
|
* @param options Optional settings for the camera animation.
|
|
10310
11573
|
*/
|
|
10311
11574
|
animateElevation(elevation: number, options?: TCameraAnimationOptions): Promise<void>;
|
|
11575
|
+
/**
|
|
11576
|
+
* @internal
|
|
11577
|
+
* @experimental
|
|
11578
|
+
* Force an update of the facades in view.
|
|
11579
|
+
*/
|
|
11580
|
+
updateFacadesInView(): void;
|
|
11581
|
+
}
|
|
11582
|
+
}
|
|
11583
|
+
|
|
11584
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/exporter' {
|
|
11585
|
+
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
11586
|
+
import type { GLTFExportOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
11587
|
+
/**
|
|
11588
|
+
* API to export the scene.
|
|
11589
|
+
*
|
|
11590
|
+
* @hidden
|
|
11591
|
+
*/
|
|
11592
|
+
export class Exporter {
|
|
11593
|
+
#private;
|
|
11594
|
+
/**
|
|
11595
|
+
* @internal
|
|
11596
|
+
*/
|
|
11597
|
+
get currentMap(): GeojsonApiMapObject | undefined;
|
|
11598
|
+
/**
|
|
11599
|
+
* @internal
|
|
11600
|
+
*/
|
|
11601
|
+
constructor({ currentMapGetter }: {
|
|
11602
|
+
currentMapGetter: CurrentMapGetter;
|
|
11603
|
+
});
|
|
11604
|
+
/**
|
|
11605
|
+
* Exports the current scene as a GLTF file.
|
|
11606
|
+
*
|
|
11607
|
+
* @hidden
|
|
11608
|
+
*/
|
|
11609
|
+
getCurrentSceneGLTF(userOptions: GLTFExportOptions): Promise<Blob>;
|
|
10312
11610
|
}
|
|
11611
|
+
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
11612
|
+
export {};
|
|
10313
11613
|
}
|
|
10314
11614
|
|
|
10315
11615
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/labels' {
|
|
@@ -10474,6 +11774,80 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/markers' {
|
|
|
10474
11774
|
export {};
|
|
10475
11775
|
}
|
|
10476
11776
|
|
|
11777
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images' {
|
|
11778
|
+
import type { IAnchorable, TAddImageOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
11779
|
+
import { Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
11780
|
+
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
11781
|
+
/**
|
|
11782
|
+
* 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.
|
|
11783
|
+
* 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.
|
|
11784
|
+
*
|
|
11785
|
+
* This class is accessed using {@link MapView.Images}.
|
|
11786
|
+
*
|
|
11787
|
+
* JPEG and PNG images are supported. It's important to consider the size of all unique image files displayed on a map at one time.
|
|
11788
|
+
* Using many unique images may cause instability on mobile devices with limited GPU memory. The Mappedin SDK will cache and reuse images that have the same URL, resulting in reduced memory usage.
|
|
11789
|
+
*
|
|
11790
|
+
* The following calculations illustrates how much memory is used for a given image:
|
|
11791
|
+
*
|
|
11792
|
+
* Formula: `width * height * 4 bytes/pixel = memory used`
|
|
11793
|
+
*
|
|
11794
|
+
* 512 x 512 Pixel Image: `512px * 512px * 4 bytes/pixel = 1MB`
|
|
11795
|
+
*
|
|
11796
|
+
* 4096 x 4096 Pixel Image: `4096px * 4096px * 4 bytes/pixel = 64MB`
|
|
11797
|
+
*
|
|
11798
|
+
* Refer to the [Images Guide](https://developer.mappedin.com/web-sdk/images-textures) for more information and interactive examples.
|
|
11799
|
+
*/
|
|
11800
|
+
export class Images {
|
|
11801
|
+
#private;
|
|
11802
|
+
/**
|
|
11803
|
+
* @internal
|
|
11804
|
+
*/
|
|
11805
|
+
get currentMap(): GeojsonApiMapObject | undefined;
|
|
11806
|
+
/**
|
|
11807
|
+
* @internal
|
|
11808
|
+
*/
|
|
11809
|
+
constructor({ currentMapGetter }: {
|
|
11810
|
+
currentMapGetter: CurrentMapGetter;
|
|
11811
|
+
});
|
|
11812
|
+
/**
|
|
11813
|
+
* @internal
|
|
11814
|
+
*/
|
|
11815
|
+
getById(id: string): {
|
|
11816
|
+
image: Image;
|
|
11817
|
+
entityId: string;
|
|
11818
|
+
} | undefined;
|
|
11819
|
+
/**
|
|
11820
|
+
* Adds an image to the map.
|
|
11821
|
+
*
|
|
11822
|
+
* @param target The target object ({@link IAnchorable}) for the image.
|
|
11823
|
+
* @param url The URL of the image.
|
|
11824
|
+
* @param options Optional additional options for the {@link Image}.
|
|
11825
|
+
* @returns {Image | undefined} The created {@link Image}, or undefined if creation failed.
|
|
11826
|
+
* @example
|
|
11827
|
+
* // Add an interactive {@link Image} to the map with custom HTML content.
|
|
11828
|
+
* mapView.Images.add(coordinate, '<div>Image Content</div>', { interactive: true });
|
|
11829
|
+
*/
|
|
11830
|
+
add(target: IAnchorable, url: string, options: TAddImageOptions): Image;
|
|
11831
|
+
/**
|
|
11832
|
+
* Removes a image from the map.
|
|
11833
|
+
*
|
|
11834
|
+
* @param image {Image} The {@link Image} which should be removed.
|
|
11835
|
+
* @example
|
|
11836
|
+
* mapView.Images.remove(image);
|
|
11837
|
+
*/
|
|
11838
|
+
remove(image: Image): void;
|
|
11839
|
+
/**
|
|
11840
|
+
* Remove all the images from the map.
|
|
11841
|
+
*
|
|
11842
|
+
* @example
|
|
11843
|
+
* mapView.Images.removeAll();
|
|
11844
|
+
*/
|
|
11845
|
+
removeAll(): Image[];
|
|
11846
|
+
}
|
|
11847
|
+
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
11848
|
+
export {};
|
|
11849
|
+
}
|
|
11850
|
+
|
|
10477
11851
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/models' {
|
|
10478
11852
|
import type { TAddModelOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
10479
11853
|
import { Model } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
@@ -10571,48 +11945,137 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/paths' {
|
|
|
10571
11945
|
export class Paths {
|
|
10572
11946
|
#private;
|
|
10573
11947
|
/**
|
|
10574
|
-
* @internal
|
|
11948
|
+
* @internal
|
|
11949
|
+
*/
|
|
11950
|
+
get currentMap(): GeojsonApiMapObject | undefined;
|
|
11951
|
+
/**
|
|
11952
|
+
* @internal
|
|
11953
|
+
*/
|
|
11954
|
+
constructor({ currentMapGetter }: {
|
|
11955
|
+
currentMapGetter: CurrentMapGetter;
|
|
11956
|
+
});
|
|
11957
|
+
/**
|
|
11958
|
+
* @internal
|
|
11959
|
+
*/
|
|
11960
|
+
getById(id: string): {
|
|
11961
|
+
path: Path;
|
|
11962
|
+
entityIds: string[];
|
|
11963
|
+
} | undefined;
|
|
11964
|
+
/**
|
|
11965
|
+
* Adds a path ({@link Path}) to the map.
|
|
11966
|
+
* @param coordinate Array of coordinates ({@link Coordinate}) to form the path.
|
|
11967
|
+
* @param options Optional additional option
|
|
11968
|
+
* @example
|
|
11969
|
+
* // Add a red path to the map
|
|
11970
|
+
* mapView.Paths.add(coordinate, { color: '#ff0000' });
|
|
11971
|
+
*/
|
|
11972
|
+
add(coordinate: Coordinate[], options?: TAddPathOptions): Path;
|
|
11973
|
+
/**
|
|
11974
|
+
* Removes a specific path ({@link Path}) from the map.
|
|
11975
|
+
* @param path The path to be removed.
|
|
11976
|
+
* @example
|
|
11977
|
+
* mapView.Paths.remove(path);
|
|
11978
|
+
*/
|
|
11979
|
+
remove(path: Path): void;
|
|
11980
|
+
/**
|
|
11981
|
+
* Removes all paths ({@link Path}) from the map.
|
|
11982
|
+
*
|
|
11983
|
+
* @example
|
|
11984
|
+
* mapView.Paths.removeAll();
|
|
11985
|
+
*/
|
|
11986
|
+
removeAll(): Path[];
|
|
11987
|
+
}
|
|
11988
|
+
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
11989
|
+
export {};
|
|
11990
|
+
}
|
|
11991
|
+
|
|
11992
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style' {
|
|
11993
|
+
import type { StyleCollection } from '@mappedin/mvf';
|
|
11994
|
+
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
11995
|
+
export class Style {
|
|
11996
|
+
#private;
|
|
11997
|
+
/**
|
|
11998
|
+
* @internal
|
|
11999
|
+
*/
|
|
12000
|
+
get currentMap(): GeojsonApiMapObject | undefined;
|
|
12001
|
+
/**
|
|
12002
|
+
* @internal
|
|
12003
|
+
*/
|
|
12004
|
+
constructor({ currentMapGetter }: {
|
|
12005
|
+
currentMapGetter: CurrentMapGetter;
|
|
12006
|
+
});
|
|
12007
|
+
setFromStyleCollection(styleCollection: StyleCollection): void;
|
|
12008
|
+
}
|
|
12009
|
+
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
12010
|
+
export {};
|
|
12011
|
+
}
|
|
12012
|
+
|
|
12013
|
+
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor' {
|
|
12014
|
+
import { type RendererCore } from '@mappedin/core-sdk';
|
|
12015
|
+
import type { BBox } from 'geojson';
|
|
12016
|
+
export type HiddenOutdoorGeometry = [
|
|
12017
|
+
BBox,
|
|
12018
|
+
polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[],
|
|
12019
|
+
layers: string[]
|
|
12020
|
+
];
|
|
12021
|
+
/**
|
|
12022
|
+
* 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.
|
|
12023
|
+
*
|
|
12024
|
+
* The outdoor map is accessed using {@link MapView.Outdoor.map}, which returns a maplibregl.Map object.
|
|
12025
|
+
* [MapLibre GL JS](https://maplibre.org/maplibre-gl-js/docs/) is a TypeScript library that uses WebGL to render interactive maps from vector tiles in a browser. The Mappedin SDK makes use of it to display the outdoor map.
|
|
12026
|
+
*
|
|
12027
|
+
* By providing access to the MapLibre map used to draw the outdoor map, the Mappedin SDK enables developers to draw on and manipulate the outdoor map.
|
|
12028
|
+
* Developers can use most capabilities of MapLibre GL JS with key exceptions being Interactivity and Camera, which are not available.
|
|
12029
|
+
*
|
|
12030
|
+
* User touch and click events are handled by Mappedin JS and are not propagated to the outdoor map layer. Camera movement is also handled by Mappedin JS and cannot be manipulated using MapLibre controls.
|
|
12031
|
+
*
|
|
12032
|
+
* Refer to the [Outdoor Map Guide](https://developer.mappedin.com/web-sdk/outdoor-map) for more information and interactive examples.
|
|
12033
|
+
*/
|
|
12034
|
+
export default class Outdoor {
|
|
12035
|
+
#private;
|
|
12036
|
+
/**
|
|
12037
|
+
* @internal
|
|
12038
|
+
*/
|
|
12039
|
+
constructor(core: RendererCore, hiddenOutdoorGeometry?: HiddenOutdoorGeometry[]);
|
|
12040
|
+
/**
|
|
12041
|
+
* 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.
|
|
12042
|
+
* @param style {any}
|
|
10575
12043
|
*/
|
|
10576
|
-
|
|
12044
|
+
setStyle(style: any): void;
|
|
10577
12045
|
/**
|
|
10578
|
-
*
|
|
12046
|
+
* Returns a Maplibre map for advanced usage.
|
|
12047
|
+
*
|
|
12048
|
+
* @returns {object} Maplibre map instance
|
|
12049
|
+
*
|
|
12050
|
+
* Limitations:
|
|
12051
|
+
* - Maplibre interaction events are not supported, use Mappedin JS interaction events.
|
|
12052
|
+
* - Maplibre markers and labels may overlap as they are not integrated with the Mappedin JS collision engine.
|
|
10579
12053
|
*/
|
|
10580
|
-
|
|
10581
|
-
currentMapGetter: CurrentMapGetter;
|
|
10582
|
-
});
|
|
12054
|
+
get map(): import("@packages/internal/outdoor-context-v4").Map | undefined;
|
|
10583
12055
|
/**
|
|
10584
|
-
*
|
|
12056
|
+
* Whether the outdoorView is enabled.
|
|
10585
12057
|
*/
|
|
10586
|
-
|
|
10587
|
-
path: Path;
|
|
10588
|
-
entityIds: string[];
|
|
10589
|
-
} | undefined;
|
|
12058
|
+
get enabled(): boolean;
|
|
10590
12059
|
/**
|
|
10591
|
-
*
|
|
10592
|
-
* @param coordinate Array of coordinates ({@link Coordinate}) to form the path.
|
|
10593
|
-
* @param options Optional additional option
|
|
10594
|
-
* @example
|
|
10595
|
-
* // Add a red path to the map
|
|
10596
|
-
* mapView.Paths.add(coordinate, { color: '#ff0000' });
|
|
12060
|
+
* Whether the outdoorView is visible.
|
|
10597
12061
|
*/
|
|
10598
|
-
|
|
12062
|
+
get visible(): boolean;
|
|
10599
12063
|
/**
|
|
10600
|
-
*
|
|
10601
|
-
* @param path The path to be removed.
|
|
10602
|
-
* @example
|
|
10603
|
-
* mapView.Paths.remove(path);
|
|
12064
|
+
* Show the outdoor map.
|
|
10604
12065
|
*/
|
|
10605
|
-
|
|
12066
|
+
show(): void;
|
|
10606
12067
|
/**
|
|
10607
|
-
*
|
|
10608
|
-
*
|
|
10609
|
-
* @example
|
|
10610
|
-
* mapView.Paths.removeAll();
|
|
12068
|
+
* Hide the outdoor map.
|
|
12069
|
+
* @param excludedStyleLayerIds {string[]}
|
|
10611
12070
|
*/
|
|
10612
|
-
|
|
12071
|
+
hide(excludedStyleLayerIds?: string[]): void;
|
|
12072
|
+
/**
|
|
12073
|
+
* Set outdoor view opacity.
|
|
12074
|
+
* @param targetOpacity {number | 'initial'}
|
|
12075
|
+
* @param excludedStyleLayerIds {string[]}
|
|
12076
|
+
*/
|
|
12077
|
+
setOpacity(targetOpacity: number | 'initial', excludedStyleLayerIds?: string[]): void;
|
|
10613
12078
|
}
|
|
10614
|
-
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
10615
|
-
export {};
|
|
10616
12079
|
}
|
|
10617
12080
|
|
|
10618
12081
|
declare module '@mappedin/mappedin-js/mappedin-js/src/navigation/index' {
|
|
@@ -10710,6 +12173,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation/index' {
|
|
|
10710
12173
|
*/
|
|
10711
12174
|
animateArrowsOnPath?: boolean;
|
|
10712
12175
|
};
|
|
12176
|
+
/**
|
|
12177
|
+
* Controls whether the path drawing is animated across floors.
|
|
12178
|
+
* @default true
|
|
12179
|
+
*/
|
|
12180
|
+
animatePathDrawing?: boolean;
|
|
10713
12181
|
/**
|
|
10714
12182
|
* Options for the path.
|
|
10715
12183
|
*/
|
|
@@ -10860,214 +12328,16 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/navigation/index' {
|
|
|
10860
12328
|
* @param directions The directions to be drawn.
|
|
10861
12329
|
* @param options Optional additional options for the navigation.
|
|
10862
12330
|
*/
|
|
10863
|
-
draw(directions: Directions | Directions[], options?: TNavigationOptions): Promise<unknown>;
|
|
10864
|
-
/**
|
|
10865
|
-
* Clears any drawn navigation paths or directions from the map.
|
|
10866
|
-
*/
|
|
10867
|
-
clear(): void;
|
|
10868
|
-
}
|
|
10869
|
-
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
10870
|
-
export {};
|
|
10871
|
-
}
|
|
10872
|
-
|
|
10873
|
-
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/exporter' {
|
|
10874
|
-
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
10875
|
-
import type { GLTFExportOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
10876
|
-
/**
|
|
10877
|
-
* API to export the scene.
|
|
10878
|
-
*
|
|
10879
|
-
* @hidden
|
|
10880
|
-
*/
|
|
10881
|
-
export class Exporter {
|
|
10882
|
-
#private;
|
|
10883
|
-
/**
|
|
10884
|
-
* @internal
|
|
10885
|
-
*/
|
|
10886
|
-
get currentMap(): GeojsonApiMapObject | undefined;
|
|
10887
|
-
/**
|
|
10888
|
-
* @internal
|
|
10889
|
-
*/
|
|
10890
|
-
constructor({ currentMapGetter }: {
|
|
10891
|
-
currentMapGetter: CurrentMapGetter;
|
|
10892
|
-
});
|
|
10893
|
-
/**
|
|
10894
|
-
* Exports the current scene as a GLTF file.
|
|
10895
|
-
*
|
|
10896
|
-
* @hidden
|
|
10897
|
-
*/
|
|
10898
|
-
getCurrentSceneGLTF(userOptions: GLTFExportOptions): Promise<Blob>;
|
|
10899
|
-
}
|
|
10900
|
-
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
10901
|
-
export {};
|
|
10902
|
-
}
|
|
10903
|
-
|
|
10904
|
-
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/style' {
|
|
10905
|
-
import type { StyleCollection } from '@mappedin/mvf';
|
|
10906
|
-
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
10907
|
-
export class Style {
|
|
10908
|
-
#private;
|
|
10909
|
-
/**
|
|
10910
|
-
* @internal
|
|
10911
|
-
*/
|
|
10912
|
-
get currentMap(): GeojsonApiMapObject | undefined;
|
|
10913
|
-
/**
|
|
10914
|
-
* @internal
|
|
10915
|
-
*/
|
|
10916
|
-
constructor({ currentMapGetter }: {
|
|
10917
|
-
currentMapGetter: CurrentMapGetter;
|
|
10918
|
-
});
|
|
10919
|
-
setFromStyleCollection(styleCollection: StyleCollection): void;
|
|
10920
|
-
}
|
|
10921
|
-
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
10922
|
-
export {};
|
|
10923
|
-
}
|
|
10924
|
-
|
|
10925
|
-
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/outdoor' {
|
|
10926
|
-
import { type RendererCore } from '@mappedin/core-sdk';
|
|
10927
|
-
import type { BBox } from 'geojson';
|
|
10928
|
-
export type HiddenOutdoorGeometry = [
|
|
10929
|
-
BBox,
|
|
10930
|
-
polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[],
|
|
10931
|
-
layers: string[]
|
|
10932
|
-
];
|
|
10933
|
-
/**
|
|
10934
|
-
* 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.
|
|
10935
|
-
*
|
|
10936
|
-
* The outdoor map is accessed using {@link MapView.Outdoor.map}, which returns a maplibregl.Map object.
|
|
10937
|
-
* [MapLibre GL JS](https://maplibre.org/maplibre-gl-js/docs/) is a TypeScript library that uses WebGL to render interactive maps from vector tiles in a browser. The Mappedin SDK makes use of it to display the outdoor map.
|
|
10938
|
-
*
|
|
10939
|
-
* By providing access to the MapLibre map used to draw the outdoor map, the Mappedin SDK enables developers to draw on and manipulate the outdoor map.
|
|
10940
|
-
* Developers can use most capabilities of MapLibre GL JS with key exceptions being Interactivity and Camera, which are not available.
|
|
10941
|
-
*
|
|
10942
|
-
* User touch and click events are handled by Mappedin JS and are not propagated to the outdoor map layer. Camera movement is also handled by Mappedin JS and cannot be manipulated using MapLibre controls.
|
|
10943
|
-
*
|
|
10944
|
-
* Refer to the [Outdoor Map Guide](https://developer.mappedin.com/web-sdk/outdoor-map) for more information and interactive examples.
|
|
10945
|
-
*/
|
|
10946
|
-
export default class Outdoor {
|
|
10947
|
-
#private;
|
|
10948
|
-
/**
|
|
10949
|
-
* @internal
|
|
10950
|
-
*/
|
|
10951
|
-
constructor(core: RendererCore, hiddenOutdoorGeometry?: HiddenOutdoorGeometry[]);
|
|
10952
|
-
/**
|
|
10953
|
-
* 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.
|
|
10954
|
-
* @param style {any}
|
|
10955
|
-
*/
|
|
10956
|
-
setStyle(style: any): void;
|
|
10957
|
-
/**
|
|
10958
|
-
* Returns a Maplibre map for advanced usage.
|
|
10959
|
-
*
|
|
10960
|
-
* @returns {object} Maplibre map instance
|
|
10961
|
-
*
|
|
10962
|
-
* Limitations:
|
|
10963
|
-
* - Maplibre interaction events are not supported, use Mappedin JS interaction events.
|
|
10964
|
-
* - Maplibre markers and labels may overlap as they are not integrated with the Mappedin JS collision engine.
|
|
10965
|
-
*/
|
|
10966
|
-
get map(): import("@packages/internal/outdoor-context-v4").Map | undefined;
|
|
10967
|
-
/**
|
|
10968
|
-
* Whether the outdoorView is enabled.
|
|
10969
|
-
*/
|
|
10970
|
-
get enabled(): boolean;
|
|
10971
|
-
/**
|
|
10972
|
-
* Whether the outdoorView is visible.
|
|
10973
|
-
*/
|
|
10974
|
-
get visible(): boolean;
|
|
10975
|
-
/**
|
|
10976
|
-
* Show the outdoor map.
|
|
10977
|
-
*/
|
|
10978
|
-
show(): void;
|
|
10979
|
-
/**
|
|
10980
|
-
* Hide the outdoor map.
|
|
10981
|
-
* @param excludedStyleLayerIds {string[]}
|
|
10982
|
-
*/
|
|
10983
|
-
hide(excludedStyleLayerIds?: string[]): void;
|
|
10984
|
-
/**
|
|
10985
|
-
* Set outdoor view opacity.
|
|
10986
|
-
* @param targetOpacity {number | 'initial'}
|
|
10987
|
-
* @param excludedStyleLayerIds {string[]}
|
|
10988
|
-
*/
|
|
10989
|
-
setOpacity(targetOpacity: number | 'initial', excludedStyleLayerIds?: string[]): void;
|
|
10990
|
-
}
|
|
10991
|
-
}
|
|
10992
|
-
|
|
10993
|
-
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images' {
|
|
10994
|
-
import type { IAnchorable, TAddImageOptions } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
10995
|
-
import { Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
10996
|
-
import type { GeojsonApiMapObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/map-object';
|
|
10997
|
-
/**
|
|
10998
|
-
* 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.
|
|
10999
|
-
* 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.
|
|
11000
|
-
*
|
|
11001
|
-
* This class is accessed using {@link MapView.Images}.
|
|
11002
|
-
*
|
|
11003
|
-
* JPEG and PNG images are supported. It's important to consider the size of all unique image files displayed on a map at one time.
|
|
11004
|
-
* Using many unique images may cause instability on mobile devices with limited GPU memory. The Mappedin SDK will cache and reuse images that have the same URL, resulting in reduced memory usage.
|
|
11005
|
-
*
|
|
11006
|
-
* The following calculations illustrates how much memory is used for a given image:
|
|
11007
|
-
*
|
|
11008
|
-
* Formula: `width * height * 4 bytes/pixel = memory used`
|
|
11009
|
-
*
|
|
11010
|
-
* 512 x 512 Pixel Image: `512px * 512px * 4 bytes/pixel = 1MB`
|
|
11011
|
-
*
|
|
11012
|
-
* 4096 x 4096 Pixel Image: `4096px * 4096px * 4 bytes/pixel = 64MB`
|
|
11013
|
-
*
|
|
11014
|
-
* Refer to the [Images Guide](https://developer.mappedin.com/web-sdk/images-textures) for more information and interactive examples.
|
|
11015
|
-
*/
|
|
11016
|
-
export class Images {
|
|
11017
|
-
#private;
|
|
11018
|
-
/**
|
|
11019
|
-
* @internal
|
|
11020
|
-
*/
|
|
11021
|
-
get currentMap(): GeojsonApiMapObject | undefined;
|
|
11022
|
-
/**
|
|
11023
|
-
* @internal
|
|
11024
|
-
*/
|
|
11025
|
-
constructor({ currentMapGetter }: {
|
|
11026
|
-
currentMapGetter: CurrentMapGetter;
|
|
11027
|
-
});
|
|
11028
|
-
/**
|
|
11029
|
-
* @internal
|
|
11030
|
-
*/
|
|
11031
|
-
getById(id: string): {
|
|
11032
|
-
image: Image;
|
|
11033
|
-
entityId: string;
|
|
11034
|
-
} | undefined;
|
|
11035
|
-
/**
|
|
11036
|
-
* Adds an image to the map.
|
|
11037
|
-
*
|
|
11038
|
-
* @param target The target object ({@link IAnchorable}) for the image.
|
|
11039
|
-
* @param url The URL of the image.
|
|
11040
|
-
* @param options Optional additional options for the {@link Image}.
|
|
11041
|
-
* @returns {Image | undefined} The created {@link Image}, or undefined if creation failed.
|
|
11042
|
-
* @example
|
|
11043
|
-
* // Add an interactive {@link Image} to the map with custom HTML content.
|
|
11044
|
-
* mapView.Images.add(coordinate, '<div>Image Content</div>', { interactive: true });
|
|
11045
|
-
*/
|
|
11046
|
-
add(target: IAnchorable, url: string, options: TAddImageOptions): Image;
|
|
11047
|
-
/**
|
|
11048
|
-
* Removes a image from the map.
|
|
11049
|
-
*
|
|
11050
|
-
* @param image {Image} The {@link Image} which should be removed.
|
|
11051
|
-
* @example
|
|
11052
|
-
* mapView.Images.remove(image);
|
|
11053
|
-
*/
|
|
11054
|
-
remove(image: Image): void;
|
|
11055
|
-
/**
|
|
11056
|
-
* Remove all the images from the map.
|
|
11057
|
-
*
|
|
11058
|
-
* @example
|
|
11059
|
-
* mapView.Images.removeAll();
|
|
12331
|
+
draw(directions: Directions | Directions[], options?: TNavigationOptions): Promise<unknown>;
|
|
12332
|
+
/**
|
|
12333
|
+
* Clears any drawn navigation paths or directions from the map.
|
|
11060
12334
|
*/
|
|
11061
|
-
|
|
12335
|
+
clear(): void;
|
|
11062
12336
|
}
|
|
11063
12337
|
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
11064
12338
|
export {};
|
|
11065
12339
|
}
|
|
11066
12340
|
|
|
11067
|
-
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/dynamic-focus' {
|
|
11068
|
-
export { DynamicFocus } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/dynamic-focus/dynamic-focus';
|
|
11069
|
-
}
|
|
11070
|
-
|
|
11071
12341
|
declare module '@mappedin/mappedin-js/mappedin-js/src/search/internal' {
|
|
11072
12342
|
import type { SearchResult as MiniSearchResult, Suggestion, MatchInfo } from 'minisearch';
|
|
11073
12343
|
import type { Places } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
@@ -11647,6 +12917,60 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/analytics/customer' {
|
|
|
11647
12917
|
export {};
|
|
11648
12918
|
}
|
|
11649
12919
|
|
|
12920
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils/tokens/access-token' {
|
|
12921
|
+
import { type TGetMapDataWithCredentialsOptions } from '@mappedin/mappedin-js/packages/mvf-utils/mvf-utils';
|
|
12922
|
+
export const ACCESS_TOKEN_REFRESH_BUFFER_MINUTES = 60;
|
|
12923
|
+
export const ACCESS_TOKEN_REFRESH_BUFFER_MS: number;
|
|
12924
|
+
export const ACCESS_TOKEN_STORAGE_KEY = "accessTokens";
|
|
12925
|
+
type AccessToken = {
|
|
12926
|
+
accessToken: string;
|
|
12927
|
+
expiresTimestamp: number;
|
|
12928
|
+
};
|
|
12929
|
+
type TGetAccessTokenOptions = Pick<TGetMapDataWithCredentialsOptions, 'baseUri' | 'baseAuthUri' | 'key' | 'secret'>;
|
|
12930
|
+
/**
|
|
12931
|
+
* Get an access token from storage or fetch it from the API using API keys.
|
|
12932
|
+
*/
|
|
12933
|
+
export function getAccessToken(userOptions: TGetAccessTokenOptions, enterprise?: boolean): Promise<AccessToken>;
|
|
12934
|
+
/**
|
|
12935
|
+
* Fetch an access token for enterprise.
|
|
12936
|
+
*/
|
|
12937
|
+
export function fetchAccessTokenEnterprise(userOptions: TGetAccessTokenOptions, currentTimestamp: number): Promise<AccessToken>;
|
|
12938
|
+
export {};
|
|
12939
|
+
}
|
|
12940
|
+
|
|
12941
|
+
declare module '@mappedin/mappedin-js/packages/mvf-utils/tokens/sas-token' {
|
|
12942
|
+
export const SAS_TOKEN_REFRESH_BUFFER_MINUTES = 60;
|
|
12943
|
+
export const SAS_TOKEN_REFRESH_BUFFER_MS: number;
|
|
12944
|
+
export const SAS_TOKEN_STORAGE_KEY = "miSasTokens";
|
|
12945
|
+
type SasToken = {
|
|
12946
|
+
token: string;
|
|
12947
|
+
expires: number;
|
|
12948
|
+
};
|
|
12949
|
+
/**
|
|
12950
|
+
* Fetch the SAS Token either from sesion storage or from the API using the access token.
|
|
12951
|
+
* @param userOptions - The user options.
|
|
12952
|
+
* @returns The SAS Token.
|
|
12953
|
+
*/
|
|
12954
|
+
export function getSasToken(userOptions: {
|
|
12955
|
+
mapId: string;
|
|
12956
|
+
baseUri?: string;
|
|
12957
|
+
}, accessToken: string): Promise<SasToken>;
|
|
12958
|
+
/**
|
|
12959
|
+
* Fetch the SAS Token for private images using the access token.
|
|
12960
|
+
* @param userOptions - The user options.
|
|
12961
|
+
* @param accessToken - The access token.
|
|
12962
|
+
* @returns The SAS Token.
|
|
12963
|
+
*/
|
|
12964
|
+
export function fetchSasToken(userOptions: {
|
|
12965
|
+
mapId: string;
|
|
12966
|
+
baseUri?: string;
|
|
12967
|
+
}, accessToken: string): Promise<{
|
|
12968
|
+
token: string;
|
|
12969
|
+
expires: number;
|
|
12970
|
+
}>;
|
|
12971
|
+
export {};
|
|
12972
|
+
}
|
|
12973
|
+
|
|
11650
12974
|
declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-metadata-object' {
|
|
11651
12975
|
export default abstract class BaseMetaData {
|
|
11652
12976
|
/**
|
|
@@ -11662,7 +12986,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/detailed-
|
|
|
11662
12986
|
import type LocationProfile from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location-profile';
|
|
11663
12987
|
import Hyperlink from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/hyperlink';
|
|
11664
12988
|
import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
11665
|
-
import
|
|
12989
|
+
import ImageMetaData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image';
|
|
11666
12990
|
import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
|
|
11667
12991
|
type PropertiesWithDetails = {
|
|
11668
12992
|
id: string;
|
|
@@ -11691,11 +13015,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/detailed-
|
|
|
11691
13015
|
*/
|
|
11692
13016
|
get description(): string;
|
|
11693
13017
|
/**
|
|
11694
|
-
* Gets the array of {@link
|
|
13018
|
+
* Gets the array of {@link ImageMetaData}s associated with this map feature.
|
|
11695
13019
|
*
|
|
11696
|
-
* @returns {
|
|
13020
|
+
* @returns {ImageMetaData[]} An array of Image objects, or an empty array if no images exist.
|
|
11697
13021
|
*/
|
|
11698
|
-
get images():
|
|
13022
|
+
get images(): ImageMetaData[];
|
|
11699
13023
|
/**
|
|
11700
13024
|
* Gets the array of {@link Hyperlink}s associated with this map feature.
|
|
11701
13025
|
*
|
|
@@ -11747,93 +13071,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/opening-h
|
|
|
11747
13071
|
}
|
|
11748
13072
|
}
|
|
11749
13073
|
|
|
11750
|
-
declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/system' {
|
|
11751
|
-
import { QuadTree } from '@packages/internal/quad-tree';
|
|
11752
|
-
import '../../styles/collisions.scss';
|
|
11753
|
-
import type { MarkerComponent } from '@mappedin/mappedin-js/geojson/src/components/marker';
|
|
11754
|
-
import type LabelComponent from '@mappedin/mappedin-js/geojson/src/components/label';
|
|
11755
|
-
import { PubSub } from '@mappedin/mappedin-js/packages/common/pubsub';
|
|
11756
|
-
import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
|
|
11757
|
-
import type { TSerializedCollider, TSerializedColliderResponse } from '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor';
|
|
11758
|
-
import type { WatermarkPosition } from '@mappedin/mappedin-js/geojson/src/systems/watermark/system';
|
|
11759
|
-
export type TMessageEvent = MessageEvent<{
|
|
11760
|
-
msgId: string;
|
|
11761
|
-
colliders: TSerializedColliderResponse[];
|
|
11762
|
-
debug: {
|
|
11763
|
-
x: number;
|
|
11764
|
-
y: number;
|
|
11765
|
-
w: number;
|
|
11766
|
-
h: number;
|
|
11767
|
-
}[];
|
|
11768
|
-
}>;
|
|
11769
|
-
export type TMessage = {
|
|
11770
|
-
msgId: string;
|
|
11771
|
-
totalWidth: number;
|
|
11772
|
-
totalHeight: number;
|
|
11773
|
-
watermarkWidth: number;
|
|
11774
|
-
watermarkHeight: number;
|
|
11775
|
-
watermarkPosition: WatermarkPosition;
|
|
11776
|
-
colliders: TSerializedCollider[];
|
|
11777
|
-
devicePixelRatio: number;
|
|
11778
|
-
};
|
|
11779
|
-
type TCollisionSystemEvent = {
|
|
11780
|
-
'visibility-changed': undefined;
|
|
11781
|
-
};
|
|
11782
|
-
export type PackedBBox = [x: number, y: number, w: number, h: number, index: number];
|
|
11783
|
-
export type PackedBBoxes = PackedBBox[];
|
|
11784
|
-
export type PackedCollider = [
|
|
11785
|
-
bboxes: PackedBBoxes,
|
|
11786
|
-
enabled: 0 | 1,
|
|
11787
|
-
alwaysVisible: 0 | 1,
|
|
11788
|
-
x: number,
|
|
11789
|
-
y: number,
|
|
11790
|
-
shouldCollideWithScreenEdges?: 0 | 1,
|
|
11791
|
-
onlyExposeStrategyIndex?: number
|
|
11792
|
-
];
|
|
11793
|
-
export type PackedMessage = [
|
|
11794
|
-
colliders: PackedCollider[],
|
|
11795
|
-
devicePixelRatio: number,
|
|
11796
|
-
totalHeight: number,
|
|
11797
|
-
totalWidth: number,
|
|
11798
|
-
watermarkWidth: number,
|
|
11799
|
-
watermarkHeight: number,
|
|
11800
|
-
watermarkPosition: WatermarkPosition
|
|
11801
|
-
];
|
|
11802
|
-
export class CollisionSystem extends PubSub<TCollisionSystemEvent, keyof TCollisionSystemEvent> {
|
|
11803
|
-
collidersDirty: boolean;
|
|
11804
|
-
packedMessage: PackedMessage;
|
|
11805
|
-
visibleCollidersQTree: QuadTree<{
|
|
11806
|
-
entityId: string | number;
|
|
11807
|
-
}>;
|
|
11808
|
-
interactiveCollidersQTree: QuadTree<{
|
|
11809
|
-
entityId: string | number;
|
|
11810
|
-
}>;
|
|
11811
|
-
coreState: RendererState;
|
|
11812
|
-
constructor(debugCanvas: HTMLCanvasElement, coreState: RendererState, worker?: Worker);
|
|
11813
|
-
postMessage: () => void;
|
|
11814
|
-
showCollisionBoxes: () => void;
|
|
11815
|
-
hideCollisionBoxes: () => void;
|
|
11816
|
-
currentMsgId: string;
|
|
11817
|
-
working: boolean;
|
|
11818
|
-
componentArray: (MarkerComponent | LabelComponent)[];
|
|
11819
|
-
update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, isPanning?: boolean) => void;
|
|
11820
|
-
resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
|
|
11821
|
-
/**
|
|
11822
|
-
* Resolve collisions
|
|
11823
|
-
*/
|
|
11824
|
-
resolve: (e: MessageEvent<{
|
|
11825
|
-
msgId: string;
|
|
11826
|
-
colliders: TSerializedColliderResponse[];
|
|
11827
|
-
}>) => void;
|
|
11828
|
-
drawDebug: () => void;
|
|
11829
|
-
destroy: () => void;
|
|
11830
|
-
}
|
|
11831
|
-
export {};
|
|
11832
|
-
}
|
|
11833
|
-
|
|
11834
13074
|
declare module '@mappedin/mappedin-js/geojson/src/entities/geometry3d' {
|
|
11835
13075
|
import { Object3D } from 'three';
|
|
11836
|
-
import type { Mesh, Object3DEventMap, ShaderMaterial, Texture, TubeGeometry, Color, Vector2 } from 'three';
|
|
13076
|
+
import type { Mesh, Object3DEventMap, ShaderMaterial, Texture, TubeGeometry, Color, Vector2, Raycaster } from 'three';
|
|
11837
13077
|
import type { InteractionComponent } from '@mappedin/mappedin-js/geojson/src/components/interaction';
|
|
11838
13078
|
import type { MeshComponent } from '@mappedin/mappedin-js/geojson/src/components/mesh';
|
|
11839
13079
|
import type { ModelComponent } from '@mappedin/mappedin-js/geojson/src/components/model';
|
|
@@ -11846,43 +13086,52 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry3d' {
|
|
|
11846
13086
|
import { GeometryGroupObject3D } from '@mappedin/mappedin-js/geojson/src/entities/geometry-group';
|
|
11847
13087
|
import type { Text3DComponent } from '@mappedin/mappedin-js/geojson/src/components/text3d';
|
|
11848
13088
|
import type { ModelStyleComponnet, Text3DStyleComponent } from '@mappedin/mappedin-js/geojson/src/components/styles';
|
|
13089
|
+
import type { OutlineComponent } from '@mappedin/mappedin-js/geojson/src/components/outline';
|
|
11849
13090
|
export enum Geometry3DComponents {
|
|
11850
|
-
|
|
11851
|
-
|
|
11852
|
-
|
|
13091
|
+
Mesh = 0,
|
|
13092
|
+
Style = 1,
|
|
13093
|
+
Interaction = 2,
|
|
13094
|
+
Outline = 3
|
|
11853
13095
|
}
|
|
11854
13096
|
type Geometry3DObjectTypes = 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image' | 'text3d';
|
|
11855
13097
|
export class Geometry3DObject3D extends Object3D {
|
|
11856
|
-
type: Geometry3DObjectTypes;
|
|
11857
|
-
userData: {
|
|
11858
|
-
entityId: string;
|
|
11859
|
-
/**
|
|
11860
|
-
* TODO: remove this when proper instancing is handled
|
|
11861
|
-
*/
|
|
11862
|
-
isSingleModel?: boolean;
|
|
11863
13098
|
type: Geometry3DObjectTypes;
|
|
11864
|
-
|
|
13099
|
+
userData: {
|
|
13100
|
+
entityId: string;
|
|
13101
|
+
/**
|
|
13102
|
+
* TODO: remove this when proper instancing is handled
|
|
13103
|
+
*/
|
|
13104
|
+
isSingleModel?: boolean;
|
|
13105
|
+
type: Geometry3DObjectTypes;
|
|
13106
|
+
};
|
|
13107
|
+
/**
|
|
13108
|
+
* Custom raycast implementation for model objects only.
|
|
13109
|
+
* This selectively enables recursive raycasting just for models, which have complex hierarchies,
|
|
13110
|
+
* while avoiding the performance cost of recursive raycasting for other object types.
|
|
13111
|
+
*/
|
|
13112
|
+
raycast(raycaster: Raycaster, intersects: any[]): void;
|
|
11865
13113
|
}
|
|
11866
13114
|
export type PathMaterial = ShaderMaterial & {
|
|
11867
|
-
|
|
13115
|
+
uniforms: PathUniforms;
|
|
11868
13116
|
};
|
|
11869
13117
|
export type PathMesh = Mesh<TubeGeometry, PathMaterial, Object3DEventMap>;
|
|
11870
13118
|
export class PatMeshContainer extends Geometry3DObject3D {
|
|
11871
|
-
|
|
13119
|
+
children: [PathMesh, PathMesh];
|
|
11872
13120
|
}
|
|
11873
13121
|
export type MeshComponentTypes = MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | Text3DComponent | ImageComponent;
|
|
11874
13122
|
type MappedComponentType<M> = M extends MeshComponent ? 'geometry' : M extends PathComponent ? 'path' : M extends ModelComponent ? 'model' : M extends CustomGeometryComponent ? 'custom-geometry' : M extends ImageComponent ? 'image' : M extends Text3DComponent ? 'text3d' : never;
|
|
11875
|
-
export class Geometry3D<M extends MeshComponentTypes = MeshComponent, S extends StyleComponent | Text3DStyleComponent | ModelStyleComponnet = StyleComponent, I extends InteractionComponent = InteractionComponent, T extends MappedComponentType<M> = MappedComponentType<M
|
|
11876
|
-
|
|
11877
|
-
|
|
11878
|
-
|
|
11879
|
-
|
|
11880
|
-
|
|
11881
|
-
|
|
11882
|
-
|
|
11883
|
-
|
|
11884
|
-
|
|
11885
|
-
|
|
13123
|
+
export class Geometry3D<M extends MeshComponentTypes = MeshComponent, S extends StyleComponent | Text3DStyleComponent | ModelStyleComponnet = StyleComponent, I extends InteractionComponent = InteractionComponent, T extends MappedComponentType<M> = MappedComponentType<M>, O extends OutlineComponent | undefined = OutlineComponent | undefined> {
|
|
13124
|
+
id: string | number;
|
|
13125
|
+
components: [M, S, I?, O?];
|
|
13126
|
+
get object3d(): M["mesh"];
|
|
13127
|
+
get parentObject3D(): GroupContainerObject3D | GeometryGroupObject3D | null;
|
|
13128
|
+
get type(): T;
|
|
13129
|
+
entities2D: Map<string | number, Geometry2D>;
|
|
13130
|
+
constructor(meshComponent: M, styleComponent: S);
|
|
13131
|
+
/** Attaching a 2D entity to the 3D entity so it will follow the style changes */
|
|
13132
|
+
attach(entity: Geometry2D): void;
|
|
13133
|
+
detach(entity: Geometry2D): void;
|
|
13134
|
+
removeAllEntities(): void;
|
|
11886
13135
|
}
|
|
11887
13136
|
export type TextGeometry3D = Geometry3D<Text3DComponent, Text3DStyleComponent, InteractionComponent, 'text3d'>;
|
|
11888
13137
|
export type CustomGeometry3D = Geometry3D<CustomGeometryComponent, StyleComponent, InteractionComponent, 'custom-geometry'>;
|
|
@@ -11892,86 +13141,86 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry3d' {
|
|
|
11892
13141
|
export type MeshGeometry3D = Geometry3D<MeshComponent, StyleComponent, InteractionComponent, 'geometry'>;
|
|
11893
13142
|
export type Geometry3DTypes = TextGeometry3D | CustomGeometry3D | PathGeometry3D | ImageGeometry3D | MeshGeometry3D | ModelGeometry3D;
|
|
11894
13143
|
export interface PathUniforms {
|
|
11895
|
-
|
|
11896
|
-
|
|
11897
|
-
|
|
11898
|
-
|
|
11899
|
-
|
|
11900
|
-
|
|
11901
|
-
|
|
11902
|
-
|
|
11903
|
-
|
|
11904
|
-
|
|
11905
|
-
|
|
11906
|
-
|
|
11907
|
-
|
|
11908
|
-
|
|
11909
|
-
|
|
11910
|
-
|
|
11911
|
-
|
|
11912
|
-
|
|
11913
|
-
|
|
11914
|
-
|
|
11915
|
-
|
|
11916
|
-
|
|
11917
|
-
|
|
11918
|
-
|
|
11919
|
-
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
|
|
11928
|
-
|
|
11929
|
-
|
|
11930
|
-
|
|
11931
|
-
|
|
11932
|
-
|
|
11933
|
-
|
|
11934
|
-
|
|
11935
|
-
|
|
11936
|
-
|
|
11937
|
-
|
|
11938
|
-
|
|
11939
|
-
|
|
11940
|
-
|
|
11941
|
-
|
|
11942
|
-
|
|
11943
|
-
|
|
11944
|
-
|
|
11945
|
-
|
|
11946
|
-
|
|
11947
|
-
|
|
11948
|
-
|
|
11949
|
-
|
|
11950
|
-
|
|
11951
|
-
|
|
11952
|
-
|
|
11953
|
-
|
|
11954
|
-
|
|
11955
|
-
|
|
11956
|
-
|
|
11957
|
-
|
|
11958
|
-
|
|
11959
|
-
|
|
11960
|
-
|
|
11961
|
-
|
|
11962
|
-
|
|
11963
|
-
|
|
11964
|
-
|
|
11965
|
-
|
|
11966
|
-
|
|
11967
|
-
|
|
11968
|
-
|
|
11969
|
-
|
|
11970
|
-
|
|
11971
|
-
|
|
11972
|
-
|
|
11973
|
-
|
|
11974
|
-
|
|
13144
|
+
vertexes: {
|
|
13145
|
+
type: 'f';
|
|
13146
|
+
value: number;
|
|
13147
|
+
};
|
|
13148
|
+
resolution: {
|
|
13149
|
+
type: 'v2';
|
|
13150
|
+
value: Vector2;
|
|
13151
|
+
};
|
|
13152
|
+
cameraParameters: {
|
|
13153
|
+
type: 'v2';
|
|
13154
|
+
value: Vector2;
|
|
13155
|
+
};
|
|
13156
|
+
complete: {
|
|
13157
|
+
type: 'f';
|
|
13158
|
+
value: number;
|
|
13159
|
+
};
|
|
13160
|
+
color: {
|
|
13161
|
+
type: 'c';
|
|
13162
|
+
value: Color;
|
|
13163
|
+
};
|
|
13164
|
+
pathLength: {
|
|
13165
|
+
type: 'f';
|
|
13166
|
+
value: number;
|
|
13167
|
+
};
|
|
13168
|
+
nearRadius: {
|
|
13169
|
+
type: 'f';
|
|
13170
|
+
value: number;
|
|
13171
|
+
};
|
|
13172
|
+
farRadius: {
|
|
13173
|
+
type: 'f';
|
|
13174
|
+
value: number;
|
|
13175
|
+
};
|
|
13176
|
+
nearZoom: {
|
|
13177
|
+
type: 'f';
|
|
13178
|
+
value: number;
|
|
13179
|
+
};
|
|
13180
|
+
farZoom: {
|
|
13181
|
+
type: 'f';
|
|
13182
|
+
value: number;
|
|
13183
|
+
};
|
|
13184
|
+
pulseColor: {
|
|
13185
|
+
type: 'c';
|
|
13186
|
+
value: Color;
|
|
13187
|
+
};
|
|
13188
|
+
pulse: {
|
|
13189
|
+
type: 'f';
|
|
13190
|
+
value: number;
|
|
13191
|
+
};
|
|
13192
|
+
pulseLength: {
|
|
13193
|
+
type: 'f';
|
|
13194
|
+
value: number;
|
|
13195
|
+
};
|
|
13196
|
+
pathIsVertical: {
|
|
13197
|
+
type: 'b';
|
|
13198
|
+
value: boolean;
|
|
13199
|
+
};
|
|
13200
|
+
arrowAnimationTimer: {
|
|
13201
|
+
type: 'f';
|
|
13202
|
+
value: number;
|
|
13203
|
+
};
|
|
13204
|
+
arrowTexture: {
|
|
13205
|
+
type: 't';
|
|
13206
|
+
value: Texture;
|
|
13207
|
+
};
|
|
13208
|
+
displayArrowsOnPath: {
|
|
13209
|
+
type: 'b';
|
|
13210
|
+
value: boolean;
|
|
13211
|
+
};
|
|
13212
|
+
flattenFactor: {
|
|
13213
|
+
type: 'f';
|
|
13214
|
+
value: number;
|
|
13215
|
+
};
|
|
13216
|
+
showPulse: {
|
|
13217
|
+
type: 'b';
|
|
13218
|
+
value: boolean;
|
|
13219
|
+
};
|
|
13220
|
+
opacityMultiplier: {
|
|
13221
|
+
type: 'f';
|
|
13222
|
+
value: number;
|
|
13223
|
+
};
|
|
11975
13224
|
}
|
|
11976
13225
|
export {};
|
|
11977
13226
|
}
|
|
@@ -11984,27 +13233,29 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/geometry2d' {
|
|
|
11984
13233
|
import type { InteractionComponent } from '@mappedin/mappedin-js/geojson/src/components/interaction';
|
|
11985
13234
|
import { type GeometryGroupObject3D } from '@mappedin/mappedin-js/geojson/src/entities/geometry-group';
|
|
11986
13235
|
export enum Geometry2DComponents {
|
|
11987
|
-
|
|
11988
|
-
|
|
13236
|
+
UI = 0,
|
|
13237
|
+
Interaction = 1
|
|
11989
13238
|
}
|
|
11990
13239
|
export class Geometry2DObject3D extends Object3D {
|
|
11991
13240
|
}
|
|
11992
13241
|
export class Geometry2D {
|
|
11993
|
-
|
|
11994
|
-
|
|
11995
|
-
|
|
11996
|
-
|
|
11997
|
-
|
|
11998
|
-
|
|
11999
|
-
|
|
12000
|
-
|
|
12001
|
-
|
|
12002
|
-
|
|
12003
|
-
|
|
12004
|
-
|
|
12005
|
-
|
|
12006
|
-
|
|
12007
|
-
|
|
13242
|
+
id: string | number;
|
|
13243
|
+
get type(): 'label' | 'marker';
|
|
13244
|
+
get parentObject3D(): GroupContainerObject3D | GeometryGroupObject3D | null;
|
|
13245
|
+
/** The geometry3D that this 2D entity is attached to */
|
|
13246
|
+
get attachedTo(): string | number | undefined;
|
|
13247
|
+
verticalOffset: number;
|
|
13248
|
+
/**
|
|
13249
|
+
* When the position of the entity changes, this should be set to true, so that systems like pan bounds can update
|
|
13250
|
+
*/
|
|
13251
|
+
positionDirty: boolean;
|
|
13252
|
+
occluderId?: number;
|
|
13253
|
+
object3d: Geometry2DObject3D;
|
|
13254
|
+
components: [MarkerComponent | LabelComponent, InteractionComponent?];
|
|
13255
|
+
disposed: boolean;
|
|
13256
|
+
constructor(ui: MarkerComponent | LabelComponent, position: Vector3, verticalOffset?: number);
|
|
13257
|
+
get position(): Vector3;
|
|
13258
|
+
setAltitude(z: number): void;
|
|
12008
13259
|
}
|
|
12009
13260
|
}
|
|
12010
13261
|
|
|
@@ -12029,13 +13280,17 @@ declare module '@mappedin/mappedin-js/geojson/src/services/text3d/text3d' {
|
|
|
12029
13280
|
import { BatchedText, Text } from 'troika-three-text';
|
|
12030
13281
|
import type { RendererCore } from '@mappedin/mappedin-js/geojson/src';
|
|
12031
13282
|
import type { Text3DComponent } from '@mappedin/mappedin-js/geojson/src/components/text3d';
|
|
13283
|
+
import { syncText } from '@mappedin/mappedin-js/geojson/src/services/text3d/utils';
|
|
13284
|
+
export function configureTroikaTextBuilder({ useWorker }: {
|
|
13285
|
+
useWorker: boolean;
|
|
13286
|
+
}): void;
|
|
12032
13287
|
export function createTroikaTextPoint(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
|
|
12033
13288
|
text: Text;
|
|
12034
13289
|
}>;
|
|
12035
13290
|
export function createTroikaTextArea(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
|
|
12036
13291
|
text: Text;
|
|
12037
13292
|
} | undefined>;
|
|
12038
|
-
export { BatchedText, Text };
|
|
13293
|
+
export { BatchedText, Text, syncText };
|
|
12039
13294
|
/**
|
|
12040
13295
|
* Promise caches the base64 font string. Then shared across all needed
|
|
12041
13296
|
*/
|
|
@@ -12053,11 +13308,21 @@ declare module '@mappedin/mappedin-js/geojson/src/services/text3d/text3d' {
|
|
|
12053
13308
|
export type ModuleType = {
|
|
12054
13309
|
createTroikaTextPoint: typeof createTroikaTextPoint;
|
|
12055
13310
|
createTroikaTextArea: typeof createTroikaTextArea;
|
|
13311
|
+
configureTroikaTextBuilder: typeof configureTroikaTextBuilder;
|
|
12056
13312
|
preloadFont: typeof preloadFont;
|
|
13313
|
+
syncText: typeof syncText;
|
|
12057
13314
|
BatchedText: typeof BatchedText;
|
|
12058
13315
|
};
|
|
12059
13316
|
}
|
|
12060
13317
|
|
|
13318
|
+
declare module '@mappedin/mappedin-js/geojson/src/components/focusable' {
|
|
13319
|
+
import type { Mesh } from 'three';
|
|
13320
|
+
export class FocusableComponent {
|
|
13321
|
+
focusMesh?: Mesh;
|
|
13322
|
+
dirty: boolean;
|
|
13323
|
+
}
|
|
13324
|
+
}
|
|
13325
|
+
|
|
12061
13326
|
declare module '@mappedin/mappedin-js/geojson/src/components/geometry-group-style' {
|
|
12062
13327
|
import { type Shading } from '@mappedin/mappedin-js/geojson/src/types';
|
|
12063
13328
|
type GeometryGroupStyle = {
|
|
@@ -12441,6 +13706,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/mesh-creation-and-opti
|
|
|
12441
13706
|
import { PubSub } from '@packages/internal/common';
|
|
12442
13707
|
import type { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
12443
13708
|
import type { ModelStyle } from '@mappedin/mappedin-js/geojson/src/components/styles';
|
|
13709
|
+
import { OutlineComponent } from '@mappedin/mappedin-js/geojson/src/components/outline';
|
|
12444
13710
|
export class MeshCreationAndOptimizationSystem extends PubSub<{
|
|
12445
13711
|
'model-loaded': void;
|
|
12446
13712
|
'geometry-2d-added': void;
|
|
@@ -12450,7 +13716,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/mesh-creation-and-opti
|
|
|
12450
13716
|
loader?: GLTFLoader;
|
|
12451
13717
|
constructor(state: RendererState, convertTo3DMapPosition: any);
|
|
12452
13718
|
getGLTFLoader(): Promise<GLTFLoader>;
|
|
12453
|
-
createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D<MeshComponent, StyleComponent, import("../../components/interaction").InteractionComponent, "geometry">;
|
|
13719
|
+
createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D<MeshComponent, StyleComponent, import("../../components/interaction").InteractionComponent, "geometry", OutlineComponent | undefined>;
|
|
12454
13720
|
createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: Partial<ModelStyle>): ModelGeometry3D;
|
|
12455
13721
|
populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
|
|
12456
13722
|
populateModelGroup(entities: Set<string | number>, url: string, tree: GeometryGroupObject3D): Promise<Geometry3DObject3D>;
|
|
@@ -12808,7 +14074,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/dom-resize/system' {
|
|
|
12808
14074
|
observers: Map<string | number, ResizeObserver>;
|
|
12809
14075
|
constructor(state: RendererState, domTree: Entity2DHTMLDivElementContainer);
|
|
12810
14076
|
setupObserver(): void;
|
|
12811
|
-
updateDimensions: (mutations:
|
|
14077
|
+
updateDimensions: (mutations: ResizeObserverEntry[]) => void;
|
|
12812
14078
|
update(): void;
|
|
12813
14079
|
destroy(): void;
|
|
12814
14080
|
}
|
|
@@ -12850,9 +14116,9 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/outline-interpolation/
|
|
|
12850
14116
|
export class OutlineInterpolationSystem {
|
|
12851
14117
|
#private;
|
|
12852
14118
|
/**
|
|
12853
|
-
* Set to true when we need to update the outline
|
|
14119
|
+
* Set to true when we need to update the outline opacity of all entities, regardless of zoom level.
|
|
12854
14120
|
*/
|
|
12855
|
-
|
|
14121
|
+
outlineOpacitiesDirty: boolean;
|
|
12856
14122
|
get geometries3DDirty(): boolean;
|
|
12857
14123
|
set geometries3DDirty(value: boolean);
|
|
12858
14124
|
constructor(rendererState: RendererState);
|
|
@@ -12861,7 +14127,8 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/outline-interpolation/
|
|
|
12861
14127
|
* @param zoomLevel - The current zoom level.
|
|
12862
14128
|
* @param isCameraZoomDirty - Whether the zoom level has changed since the last update. If this is true, the system will update if zoomLevel falls between range.
|
|
12863
14129
|
*/
|
|
12864
|
-
update(zoomLevel: number, isCameraZoomDirty?: boolean):
|
|
14130
|
+
update(zoomLevel: number, isCameraZoomDirty?: boolean): null | undefined;
|
|
14131
|
+
destroy(): void;
|
|
12865
14132
|
}
|
|
12866
14133
|
}
|
|
12867
14134
|
|
|
@@ -12905,6 +14172,7 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/geometry-in-focus/syst
|
|
|
12905
14172
|
resize(): void;
|
|
12906
14173
|
update: (cameraIsMoving?: boolean, cameraStoppedMovingTime?: number) => void;
|
|
12907
14174
|
updateRaf(): void;
|
|
14175
|
+
raycast(): void;
|
|
12908
14176
|
showRaycasters(): void;
|
|
12909
14177
|
hideRaycasters(): void;
|
|
12910
14178
|
destroy(): void;
|
|
@@ -12912,14 +14180,16 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/geometry-in-focus/syst
|
|
|
12912
14180
|
}
|
|
12913
14181
|
|
|
12914
14182
|
declare module '@mappedin/mappedin-js/geojson/src/systems/outdoor-layers/system' {
|
|
12915
|
-
import type { Map } from '@packages/internal/outdoor-context-v4';
|
|
14183
|
+
import type { LegacyFilterSpecification, Map } from '@packages/internal/outdoor-context-v4';
|
|
12916
14184
|
import type { Position } from '@mappedin/mappedin-js/geojson/src/renderer';
|
|
12917
14185
|
import { type BBox } from 'geojson';
|
|
12918
14186
|
export class OutdoorLayers {
|
|
14187
|
+
#private;
|
|
12919
14188
|
dirty: boolean;
|
|
12920
14189
|
hideLayersUnderPoint(point: Position, layers: string[]): void;
|
|
12921
14190
|
hideLayersIntersectingPolygons(bbox: BBox, polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[], layers: string[]): void;
|
|
12922
14191
|
constructor(map?: Map);
|
|
14192
|
+
expr: LegacyFilterSpecification[];
|
|
12923
14193
|
destroy(): void;
|
|
12924
14194
|
}
|
|
12925
14195
|
}
|
|
@@ -13003,7 +14273,6 @@ declare module '@mappedin/mappedin-js/geojson/src/components/styles/style' {
|
|
|
13003
14273
|
topColor?: string;
|
|
13004
14274
|
texture?: string;
|
|
13005
14275
|
topTexture?: string;
|
|
13006
|
-
outline: boolean;
|
|
13007
14276
|
showImage: boolean;
|
|
13008
14277
|
flipImageToFaceCamera: boolean;
|
|
13009
14278
|
url?: string;
|
|
@@ -13027,7 +14296,6 @@ declare module '@mappedin/mappedin-js/geojson/src/components/styles/style' {
|
|
|
13027
14296
|
altitude: number;
|
|
13028
14297
|
join: LineStyle['join'];
|
|
13029
14298
|
cap: LineStyle['cap'];
|
|
13030
|
-
outline: boolean;
|
|
13031
14299
|
showImage: boolean;
|
|
13032
14300
|
flipImageToFaceCamera: boolean;
|
|
13033
14301
|
url?: string;
|
|
@@ -13152,6 +14420,35 @@ declare module '@mappedin/mappedin-js/geojson/src/entities' {
|
|
|
13152
14420
|
export type { PathMesh, PatMeshContainer, PathMaterial, Geometry3DTypes, ImageGeometry3D, TextGeometry3D, ModelGeometry3D, CustomGeometry3D, MeshGeometry3D, } from '@mappedin/mappedin-js/geojson/src/entities/geometry3d';
|
|
13153
14421
|
}
|
|
13154
14422
|
|
|
14423
|
+
declare module '@mappedin/mappedin-js/geojson/src/systems/collisions/collider-processor' {
|
|
14424
|
+
import { Rectangle } from '@packages/internal/quad-tree';
|
|
14425
|
+
export type TSerializedCollider = {
|
|
14426
|
+
rank: number;
|
|
14427
|
+
enabledAndVisible: boolean;
|
|
14428
|
+
x: number;
|
|
14429
|
+
y: number;
|
|
14430
|
+
bboxes: {
|
|
14431
|
+
index: number;
|
|
14432
|
+
boundingBox: [number, number, number, number];
|
|
14433
|
+
boundingRect?: Rectangle;
|
|
14434
|
+
}[];
|
|
14435
|
+
shouldCollideWithScreenEdges?: boolean;
|
|
14436
|
+
lockedToStrategyIndex?: number;
|
|
14437
|
+
visible?: boolean;
|
|
14438
|
+
};
|
|
14439
|
+
export type TSerializedColliderResponse = [number, 1 | 0, Rectangle?];
|
|
14440
|
+
export function processColliders(colliders: TSerializedCollider[], totalWidth: any, totalHeight: any, watermarkWidth: any, watermarkHeight: any, watermarkPosition: any, msgId?: string): {
|
|
14441
|
+
msgId: string;
|
|
14442
|
+
colliders: TSerializedColliderResponse[];
|
|
14443
|
+
debug: {
|
|
14444
|
+
x: number;
|
|
14445
|
+
y: number;
|
|
14446
|
+
w: number;
|
|
14447
|
+
h: number;
|
|
14448
|
+
}[];
|
|
14449
|
+
};
|
|
14450
|
+
}
|
|
14451
|
+
|
|
13155
14452
|
declare module '@mappedin/mappedin-js/geojson/src/systems/exporter/exporter' {
|
|
13156
14453
|
import type { RendererState } from '@mappedin/mappedin-js/geojson/src/renderer';
|
|
13157
14454
|
export type GLTFExportOptions = {
|
|
@@ -13424,12 +14721,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object'
|
|
|
13424
14721
|
import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
13425
14722
|
class Layer {
|
|
13426
14723
|
containerId: string;
|
|
13427
|
-
labelIds: Set<string>;
|
|
13428
14724
|
layers: Map<string, string>;
|
|
13429
14725
|
renderer: RendererCore;
|
|
13430
14726
|
constructor(renderer: RendererCore, containerId: string, layers?: Map<any, any>);
|
|
13431
|
-
|
|
13432
|
-
|
|
14727
|
+
get visible(): boolean;
|
|
14728
|
+
setVisible(visible: boolean): void;
|
|
13433
14729
|
}
|
|
13434
14730
|
export class FloorObject implements MVFFloor {
|
|
13435
14731
|
#private;
|
|
@@ -13457,18 +14753,18 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object'
|
|
|
13457
14753
|
}
|
|
13458
14754
|
|
|
13459
14755
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
|
|
13460
|
-
import { Coordinate,
|
|
14756
|
+
import { Coordinate, MapObject, Space, type Floor, type Facade } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
|
|
13461
14757
|
import type { EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
|
|
13462
14758
|
import type { PolygonFeatureProperties } from '@packages/internal/mvf-utils';
|
|
13463
14759
|
import type { BBox, FeatureCollection, MultiLineString } from 'geojson';
|
|
13464
|
-
import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle, Position,
|
|
13465
|
-
import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/mappedin-js/mappedin-js/src';
|
|
13466
|
-
import type {
|
|
14760
|
+
import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle, Position, EntityId, PathState } from '@mappedin/core-sdk';
|
|
14761
|
+
import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model, MapData } from '@mappedin/mappedin-js/mappedin-js/src';
|
|
14762
|
+
import type { IAnchorable, TDoorsState, TMarkerState, TWallsState } from '@mappedin/mappedin-js/mappedin-js/src/types';
|
|
13467
14763
|
import type { Image, Path, Shape, Text3D } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
|
|
13468
14764
|
import type { GeoJsonApi } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/api';
|
|
13469
14765
|
import type { Tween } from '@tweenjs/tween.js';
|
|
13470
14766
|
import type { PathSegment } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects/path';
|
|
13471
|
-
import { FloorObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object';
|
|
14767
|
+
import type { FloorObject } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-object';
|
|
13472
14768
|
export function convertCoordinateToPosition(coord: Coordinate): Position;
|
|
13473
14769
|
export function convertPositionToCoordinate(coord: Position): Coordinate;
|
|
13474
14770
|
export const cutEntrancesFromLineStrings: (lineStrings: ObstructionCollection["features"], entranceCollection: EntranceCollection["features"]) => {
|
|
@@ -13480,7 +14776,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
|
|
|
13480
14776
|
export function translateDoorsStateToGeojsonCore(state: Partial<TDoorsState>, currentState: Partial<GeometryState>): Partial<GeometryState>;
|
|
13481
14777
|
export function translateWallsStateToGeojsonCore(state: Partial<TWallsState>, currentState: Partial<GeometryState>): Partial<GeometryState>;
|
|
13482
14778
|
export function translateSpaceStateToGeojsonCore(state: Partial<TGeometryState>, currentState: Partial<GeometryState>): Partial<GeometryState>;
|
|
13483
|
-
export function translateFloorGeometryStateToGeojsonCore(state: TFloorState['geometry']): Partial<GroupContainerState>;
|
|
13484
14779
|
export function differenceBetweenAngles(a: number, b: number): number;
|
|
13485
14780
|
export function getRelativeBearing(relativeBearingAngle: number, threshold: number): TDirectionInstructionAction['bearing'];
|
|
13486
14781
|
export function convertCollisionRankingTeirToNumber(tier: CollisionRankingTier): number;
|
|
@@ -13502,6 +14797,11 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/utils' {
|
|
|
13502
14797
|
export function expandBbox(bbox: BBox, bboxToExpand: BBox): number[];
|
|
13503
14798
|
export function unique<T>(array: T[]): T[];
|
|
13504
14799
|
export function getTargetFloorObject(coordinate: Coordinate, floorsById: Map<string, FloorObject>, defaultFloor: FloorObject): FloorObject;
|
|
14800
|
+
/** Gets the ID of a geometry that 2D entities can attach to */
|
|
14801
|
+
export function getAttachableGeometryId(target: IAnchorable): string | undefined;
|
|
14802
|
+
export function determineFloorVisibleBasedOnPath(path: EntityId<PathState> & {
|
|
14803
|
+
coordinates: Coordinate[];
|
|
14804
|
+
}, mapData: MapData, api: GeoJsonApi): boolean;
|
|
13505
14805
|
}
|
|
13506
14806
|
|
|
13507
14807
|
declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-object' {
|
|
@@ -13529,110 +14829,59 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/floor-stack-ob
|
|
|
13529
14829
|
}
|
|
13530
14830
|
}
|
|
13531
14831
|
|
|
13532
|
-
declare module '@mappedin/mappedin-js/
|
|
13533
|
-
import {
|
|
13534
|
-
|
|
13535
|
-
|
|
13536
|
-
|
|
13537
|
-
|
|
13538
|
-
|
|
13539
|
-
|
|
13540
|
-
|
|
13541
|
-
|
|
13542
|
-
|
|
13543
|
-
|
|
13544
|
-
|
|
13545
|
-
|
|
13546
|
-
|
|
13547
|
-
};
|
|
13548
|
-
/**
|
|
13549
|
-
* @experimental
|
|
13550
|
-
* @internal
|
|
13551
|
-
*/
|
|
13552
|
-
export type TDynamicFocusOptions = {
|
|
13553
|
-
/**
|
|
13554
|
-
* The minimum zoom level at which Dynamic Focus will detect a Facade and reveal the interior spaces.
|
|
13555
|
-
* @default 17
|
|
13556
|
-
*/
|
|
13557
|
-
minZoomLevel?: number;
|
|
14832
|
+
declare module '@mappedin/mappedin-js/geojson/src/components/outline' {
|
|
14833
|
+
import type { BufferAttribute, BufferGeometry } from 'three';
|
|
14834
|
+
type Outline = {
|
|
14835
|
+
color: string;
|
|
14836
|
+
dirty: boolean;
|
|
14837
|
+
visible: boolean;
|
|
14838
|
+
edgeColors?: BufferAttribute;
|
|
14839
|
+
ranges?: {
|
|
14840
|
+
start: number;
|
|
14841
|
+
count: number;
|
|
14842
|
+
};
|
|
14843
|
+
geometry?: BufferGeometry;
|
|
14844
|
+
currentOpacity: number;
|
|
14845
|
+
currentColor: [number, number, number];
|
|
14846
|
+
topFaceVerticesIndices?: number[];
|
|
13558
14847
|
};
|
|
13559
|
-
|
|
13560
|
-
|
|
13561
|
-
|
|
13562
|
-
|
|
13563
|
-
|
|
13564
|
-
|
|
13565
|
-
|
|
13566
|
-
|
|
13567
|
-
|
|
13568
|
-
|
|
13569
|
-
|
|
13570
|
-
|
|
13571
|
-
|
|
13572
|
-
|
|
13573
|
-
*/
|
|
13574
|
-
enable(options?: TDynamicFocusOptions): void;
|
|
13575
|
-
/**
|
|
13576
|
-
* @experimental
|
|
13577
|
-
* Disables Dynamic Focus and prevents the camera from automatically setting the floor stack when a facade is hovered.
|
|
13578
|
-
*/
|
|
13579
|
-
disable(): void;
|
|
13580
|
-
/**
|
|
13581
|
-
* @experimental
|
|
13582
|
-
* Returns the enabled state of Dynamic Focus.
|
|
13583
|
-
*/
|
|
13584
|
-
get enabled(): boolean;
|
|
13585
|
-
/**
|
|
13586
|
-
* @experimental
|
|
13587
|
-
* Sets the default floor for a floor stack. This is the floor that will be shown when the floor stack is in focus.
|
|
13588
|
-
* See {@link resetDefaultFloorForStack} to reset the default floor.
|
|
13589
|
-
* @param floorStack - The floor stack to set the default floor for.
|
|
13590
|
-
* @param floor - The floor to set as the default floor.
|
|
13591
|
-
*/
|
|
13592
|
-
setDefaultFloorForStack(floorStack: FloorStack, floor: Floor): void;
|
|
13593
|
-
/**
|
|
13594
|
-
* @experimental
|
|
13595
|
-
* Resets the default floor for a floor stack to it's initial value.
|
|
13596
|
-
* @param floorStack - The floor stack to reset the default floor for.
|
|
13597
|
-
*/
|
|
13598
|
-
resetDefaultFloorForStack(floorStack: FloorStack): void;
|
|
14848
|
+
export class OutlineComponent implements Outline {
|
|
14849
|
+
color: string;
|
|
14850
|
+
dirty: boolean;
|
|
14851
|
+
visible: boolean;
|
|
14852
|
+
edgeColors?: BufferAttribute;
|
|
14853
|
+
geometry?: BufferGeometry;
|
|
14854
|
+
ranges?: {
|
|
14855
|
+
start: number;
|
|
14856
|
+
count: number;
|
|
14857
|
+
};
|
|
14858
|
+
topFaceVerticesIndices?: number[];
|
|
14859
|
+
get currentOpacity(): number;
|
|
14860
|
+
get currentColor(): [number, number, number];
|
|
14861
|
+
constructor(color: string);
|
|
13599
14862
|
}
|
|
13600
|
-
type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
|
|
13601
14863
|
export {};
|
|
13602
14864
|
}
|
|
13603
14865
|
|
|
13604
|
-
declare module '@mappedin/mappedin-js/geojson/src/
|
|
13605
|
-
import {
|
|
13606
|
-
|
|
13607
|
-
|
|
13608
|
-
|
|
13609
|
-
|
|
13610
|
-
|
|
13611
|
-
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
visible?: boolean;
|
|
13619
|
-
};
|
|
13620
|
-
export type TSerializedColliderResponse = [number, 1 | 0, Rectangle?];
|
|
13621
|
-
export function processColliders(colliders: TSerializedCollider[], totalWidth: any, totalHeight: any, watermarkWidth: any, watermarkHeight: any, watermarkPosition: any, msgId?: string): {
|
|
13622
|
-
msgId: string;
|
|
13623
|
-
colliders: TSerializedColliderResponse[];
|
|
13624
|
-
debug: {
|
|
13625
|
-
x: number;
|
|
13626
|
-
y: number;
|
|
13627
|
-
w: number;
|
|
13628
|
-
h: number;
|
|
13629
|
-
}[];
|
|
13630
|
-
};
|
|
14866
|
+
declare module '@mappedin/mappedin-js/geojson/src/services/text3d/utils' {
|
|
14867
|
+
import type { Text } from 'troika-three-text';
|
|
14868
|
+
/**
|
|
14869
|
+
* Load font file and kick off the font processing.
|
|
14870
|
+
* Promise gets resolved when preloadFont finishes.
|
|
14871
|
+
*/
|
|
14872
|
+
export function preloadFont(fontUrl?: string): Promise<string>;
|
|
14873
|
+
/**
|
|
14874
|
+
* Fit text to area with a given max width and height, scaling the font size down if necessary.
|
|
14875
|
+
*/
|
|
14876
|
+
export function fitTextToArea(text: Text, maxWidth: number, maxHeight: number, scaleStep: number): Promise<{
|
|
14877
|
+
size: [width: number, height: number];
|
|
14878
|
+
}>;
|
|
14879
|
+
export function syncText(text: Text): Promise<void>;
|
|
13631
14880
|
}
|
|
13632
14881
|
|
|
13633
14882
|
declare module '@mappedin/mappedin-js/geojson/src/systems/interactions/system' {
|
|
13634
|
-
import { PerspectiveCamera, Vector3, Object3D,
|
|
13635
|
-
import { Raycaster, Vector2 } from 'three';
|
|
14883
|
+
import type { PerspectiveCamera, Vector3, Object3D, Intersection, Object3DEventMap } from 'three';
|
|
14884
|
+
import { Mesh, Raycaster, Vector2 } from 'three';
|
|
13636
14885
|
import type { Geometry2D } from '@mappedin/mappedin-js/geojson/src/entities/geometry2d';
|
|
13637
14886
|
import { QuadTree } from '@packages/internal/quad-tree';
|
|
13638
14887
|
import type { Geometry3D } from '@mappedin/mappedin-js/geojson/src/entities/geometry3d';
|