@mappedin/mappedin-js 4.0.15 → 4.0.18

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.
@@ -1,10 +1,12 @@
1
1
  // Generated by dts-bundle v0.7.3
2
+ // Dependencies for this module:
3
+ // ../geojson
2
4
 
3
5
  declare module '@mappedin/mappedin-js/lib/esm/get-venue' {
4
6
  import type { TGetVenueOptions } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
5
7
  import { Mappedin } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
6
8
  /** Classes */
7
- export { Mappedin } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
9
+ export { Mappedin, MappedinCollectionType } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
8
10
  export { MappedinLocation } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinLocation';
9
11
  export { MappedinPolygon } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinPolygon';
10
12
  export { MappedinNode } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinNode';
@@ -27,6 +29,7 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue' {
27
29
  /** API data types */
28
30
  export type { TLocationType, TNode, TImage, TLogo, TGalleryImage, TPhone, TSocial, TColor, TVortex, TPicture, TOpeningHours, TSiblingGroup, TState, TCategory, TEvent, TGeoReference, TMap, TMapGroup, TBuilding, TLocation, TPolygon, TPolygonRanking, TVenue, TMappedinAPI } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.API.types';
29
31
  export type { TGetVenueOptions } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
32
+ import { MAP_RENDER_MODE } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
30
33
  export type TShowVenueOptions = {
31
34
  /**
32
35
  * Sets the initial background color of the map, including while loading.
@@ -38,14 +41,24 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue' {
38
41
  */
39
42
  backgroundAlpha?: number;
40
43
  /**
41
- * Whether or not to display labels initially
44
+ * Whether or not to display default styled Floating Labels initially
42
45
  */
43
46
  labelAllLocationsOnInit?: boolean;
44
47
  /**
45
48
  * The id of the first map to show on map load
46
49
  */
47
50
  firstMapId?: string;
51
+ loadOptions?: {
52
+ /**
53
+ * Set the map render strategy in order to optimize FPS
54
+ *
55
+ * @beta
56
+ */
57
+ mapRenderStrategy?: MAP_RENDER_MODE;
58
+ };
48
59
  };
60
+ export { MAP_RENDER_MODE };
61
+ export function getVenueMVF(userOptions: TGetVenueOptions): Promise<Mappedin>;
49
62
  /**
50
63
  * Get Venue Data for a Mappedin Venue
51
64
  */
@@ -82,42 +95,70 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue' {
82
95
  url: any;
83
96
  updated_at: any;
84
97
  }): Promise<Mappedin>;
98
+ /**
99
+ * Get the bundle URL and updated_at time.
100
+ * @internal
101
+ */
102
+ export function getVenueMVFURL(userOptions: TGetVenueBundleOptions): Promise<{
103
+ url: string;
104
+ updated_at: string;
105
+ }>;
106
+ /**
107
+ * @internal
108
+ */
109
+ export function downloadVenueBundleMVF(options: TGetVenueOptions,
110
+ /**
111
+ * use Web Workers to speed up MVF parsing. This is likely only benefitial for larger venues,
112
+ * and may be determental to smaller ones, hence it is off by default
113
+ */
114
+ useWorker?: boolean): Promise<unknown>;
85
115
  }
86
116
 
87
117
  declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types' {
88
118
  export type TGetVenueOptions = {
89
- accessToken?: string;
90
- clientId?: string;
91
- clientSecret?: string;
92
- baseUrl?: string;
93
- includeHidden?: boolean;
94
- noAuth?: boolean;
95
- perspective?: string;
96
- language?: string;
97
- headers?: {
98
- [key in string]: string;
99
- };
100
- venue: string;
101
- things?: any;
119
+ accessToken?: string;
120
+ clientId?: string;
121
+ clientSecret?: string;
122
+ baseUrl?: string;
123
+ includeHidden?: boolean;
124
+ noAuth?: boolean;
125
+ perspective?: string;
126
+ language?: string;
127
+ headers?: {
128
+ [key in string]: string;
129
+ };
130
+ venue: string;
131
+ things?: any;
102
132
  };
103
133
  export type TGetVenueOptionsInternal = {
104
- baseUrl?: string;
105
- supplementaryUrl?: string;
106
- noAuth?: boolean;
107
- includeHidden?: boolean;
108
- apiGateway?: string;
109
- authorization?: string;
110
- /**
111
- * @deprecated 2D support will be removed in the future
112
- */
113
- do2D?: boolean;
114
- things?: any;
115
- headers?: any;
134
+ baseUrl?: string;
135
+ supplementaryUrl?: string;
136
+ noAuth?: boolean;
137
+ includeHidden?: boolean;
138
+ apiGateway?: string;
139
+ authorization?: string;
140
+ /**
141
+ * @deprecated 2D support will be removed in the future
142
+ */
143
+ do2D?: boolean;
144
+ things?: any;
145
+ headers?: any;
116
146
  };
147
+ export enum MAP_RENDER_MODE {
148
+ /** Each polygon, its geometry and mesh are sent to the GPU every render frame.
149
+ * This was the default rendering mode before 4.0.17
150
+ */
151
+ MULTI_GEOMETRY = "MULTI_GEOMETRY",
152
+ /** Polygons' geometries are grouped by material and merged together, resulting in far fewer
153
+ * draw calls to the GPU. Default rendering mode since 4.0.17
154
+ */
155
+ SINGLE_GEOMETRY = "SINGLE_GEOMETRY"
156
+ }
117
157
  }
118
158
 
119
159
  declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin' {
120
160
  import { Navigator } from '@mappedin/mappedin-js/lib/esm/get-venue/navigator';
161
+ import { MVFData } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.MVF.types';
121
162
  import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
122
163
  import { MappedinCategory } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinCategory';
123
164
  import { MappedinEvent } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinEvent';
@@ -133,7 +174,7 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin' {
133
174
  import { MappedinVenue } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinVenue';
134
175
  import { MappedinVortex } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinVortex';
135
176
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
136
- export enum CollectionType {
177
+ export enum MappedinCollectionType {
137
178
  CATEGORY = "categories",
138
179
  EVENT = "events",
139
180
  LOCATION = "locations",
@@ -144,14 +185,14 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin' {
144
185
  VORTEX = "vortexes"
145
186
  }
146
187
  type TAccessors = {
147
- [CollectionType.CATEGORY]: MappedinCategory;
148
- [CollectionType.EVENT]: MappedinEvent;
149
- [CollectionType.LOCATION]: MappedinLocation;
150
- [CollectionType.MAPGROUP]: MappedinMapGroup;
151
- [CollectionType.MAP]: MappedinMap;
152
- [CollectionType.NODE]: MappedinNode;
153
- [CollectionType.POLYGON]: MappedinPolygon;
154
- [CollectionType.VORTEX]: MappedinVortex;
188
+ [MappedinCollectionType.CATEGORY]: MappedinCategory;
189
+ [MappedinCollectionType.EVENT]: MappedinEvent;
190
+ [MappedinCollectionType.LOCATION]: MappedinLocation;
191
+ [MappedinCollectionType.MAPGROUP]: MappedinMapGroup;
192
+ [MappedinCollectionType.MAP]: MappedinMap;
193
+ [MappedinCollectionType.NODE]: MappedinNode;
194
+ [MappedinCollectionType.POLYGON]: MappedinPolygon;
195
+ [MappedinCollectionType.VORTEX]: MappedinVortex;
155
196
  };
156
197
  const THINGS: {
157
198
  categories: typeof MappedinCategory;
@@ -347,6 +388,11 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin' {
347
388
  [id: string]: MappedinRankings;
348
389
  };
349
390
  getCollectionItemById<T extends keyof TAccessors, I extends string>(name: T, id: I): TAccessors[T] | null;
391
+ /**
392
+ * @hidden
393
+ * @internal
394
+ */
395
+ hydrateFromMVF(mvfData: MVFData): Promise<undefined>;
350
396
  /**
351
397
  *
352
398
  * [experimental] Hydrate the Mappedin instance using a response from either {@link IMappedin.toString()}, {@link getVenueBundle} or by downloading the bundle manually
@@ -481,6 +527,59 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinPolygo
481
527
  export class MappedinPolygon extends MappedinNavigatable {
482
528
  #private;
483
529
  geometry: any;
530
+ image?: {
531
+ visible: boolean;
532
+ url: string | Blob;
533
+ original: string | Blob;
534
+ useLocalScaling: boolean;
535
+ viewBox: {
536
+ width: number;
537
+ height: number;
538
+ };
539
+ scale: {
540
+ x: number;
541
+ y: number;
542
+ };
543
+ fitToBounds: boolean;
544
+ position: {
545
+ x: number;
546
+ y: number;
547
+ z: number;
548
+ };
549
+ rotation: {
550
+ x: number;
551
+ y: number;
552
+ z: number;
553
+ };
554
+ };
555
+ holes?: unknown[];
556
+ textures?: {
557
+ image: any;
558
+ name: 'front' | 'side';
559
+ useFrontFaceImage?: boolean;
560
+ }[];
561
+ material: {
562
+ color: string;
563
+ opacity?: number;
564
+ };
565
+ label?: {
566
+ visible: boolean;
567
+ text: string;
568
+ align: string;
569
+ position: {
570
+ x: number;
571
+ y: number;
572
+ z: number;
573
+ };
574
+ rotation: {
575
+ x: number;
576
+ y: number;
577
+ z: number;
578
+ };
579
+ fontFamily: string;
580
+ fontSize: number;
581
+ color: string;
582
+ };
484
583
  /**
485
584
  * Node ID.
486
585
  *
@@ -667,6 +766,7 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinMap' {
667
766
  import type { TGeoReference } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.API.types';
668
767
  import type { MappedinMapGroup } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinMapGroup';
669
768
  import { MappedinCoordinate } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinCoordinate';
769
+ import { MappedinLocation } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue';
670
770
  /**
671
771
  * A {@link MappedinMap} belonging to a specific {@link MappedinVenue}. Typically represents a certain floor. Give this to a {@link MapView} to display to the user.
672
772
  *
@@ -693,6 +793,11 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinMap' {
693
793
  shortName: string;
694
794
  elevation: number;
695
795
  scale?: number;
796
+ layers: {
797
+ visible: boolean;
798
+ name: string;
799
+ id: string;
800
+ }[];
696
801
  x_scale?: number;
697
802
  perspectiveId?: string;
698
803
  scene: any;
@@ -707,6 +812,11 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinMap' {
707
812
  * @property polygons {[MappedinPolygon]}
708
813
  */
709
814
  get polygons(): MappedinPolygon[] | undefined;
815
+ /**
816
+ * Locations on this map
817
+ */
818
+ get locations(): MappedinLocation[];
819
+ get nodes(): import("./MappedinNode").MappedinNode[];
710
820
  /**
711
821
  * Map Group this map belongs to.
712
822
  *
@@ -744,28 +854,56 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinEvent'
744
854
  import type { Mappedin } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
745
855
  import type { MappedinLocation } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinLocation';
746
856
  /**
747
- * An event.
857
+ * An event such as a promotion attached to a location in a venue for a period of time. Events can be created in the Mappedin CMS.
748
858
  *
749
859
  * @class MappedinEvent
750
860
  */
751
861
  export class MappedinEvent {
752
862
  #private;
863
+ /**
864
+ * Unique id string of the event.
865
+ */
753
866
  id: string;
754
867
  type: string;
868
+ /**
869
+ * Event name
870
+ */
755
871
  name: string;
872
+ /**
873
+ * Optional, longer description of the event.
874
+ */
756
875
  description?: string | undefined;
876
+ /**
877
+ * Optional image to be used for displaying the event.
878
+ */
757
879
  image?: TImage | undefined;
880
+ /**
881
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
882
+ */
758
883
  startDate?: number | undefined;
884
+ /**
885
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
886
+ */
759
887
  endDate?: number | undefined;
888
+ /**
889
+ * Timestamp when the event should be displayed. Javascript date in milliseconds since 1 January 1970 UTC.
890
+ */
760
891
  showDate?: number | undefined;
892
+ /**
893
+ * @internal
894
+ */
761
895
  constructor(mappedin: Mappedin, data: any);
762
896
  /**
763
- * Location this Event is occuring at.
764
- *
765
- * @property location {MappedinLocation}
897
+ * Location this event is occuring at.
766
898
  */
767
899
  location(): MappedinLocation | undefined;
900
+ /**
901
+ * @internal
902
+ */
768
903
  static hydrate(events: any, mappedin: Mappedin): MappedinEvent[];
904
+ /**
905
+ * @internal
906
+ */
769
907
  static fetch(mappedin: Mappedin): Promise<MappedinEvent[]>;
770
908
  toJSON(): any;
771
909
  }
@@ -838,9 +976,10 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinVenue'
838
976
  tzidOverride: string;
839
977
  utcOffset: string;
840
978
  website: string;
841
- constructor(data: any);
842
- static hydrate(data: any): MappedinVenue;
979
+ constructor(mappedin: Mappedin, data: any);
980
+ static hydrate(data: any, mappedin: Mappedin): MappedinVenue;
843
981
  static fetch(mappedin: Mappedin): Promise<MappedinVenue>;
982
+ get isMultiBuilding(): any;
844
983
  toJSON(): any;
845
984
  }
846
985
  }
@@ -1181,9 +1320,6 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.API.t
1181
1320
  export type TMapGroup = {
1182
1321
  name: string;
1183
1322
  id: string;
1184
- maps: {
1185
- id: TMap['id'];
1186
- }[];
1187
1323
  };
1188
1324
  export type TBuilding = TLocation & {
1189
1325
  groupId: string;
@@ -1236,27 +1372,32 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.API.t
1236
1372
  entranceNodeId: string;
1237
1373
  score: number;
1238
1374
  };
1239
- export type TVenue = {
1240
- address: string;
1241
- city: string;
1242
- countrycode: string;
1243
- defaultMap: string;
1244
- externalId: string;
1375
+ export type TLocationState = {
1245
1376
  id: string;
1246
- latitude: number;
1247
- logo: TLogo;
1248
- longitude: number;
1249
- metadata?: any;
1250
1377
  name: string;
1251
- operationHours: TOpeningHours[];
1252
- postal: string;
1253
- slug: string;
1254
- state: string;
1255
- telephone: string;
1256
- tzid: string;
1257
- tzidOverride: string;
1258
- utcOffset: string;
1259
- website: string;
1378
+ value: string;
1379
+ };
1380
+ export type TVenue = {
1381
+ address?: string;
1382
+ city?: string;
1383
+ countrycode?: string;
1384
+ defaultMap?: string;
1385
+ externalId?: string;
1386
+ id?: string;
1387
+ latitude?: number;
1388
+ logo?: TLogo;
1389
+ longitude?: number;
1390
+ metadata?: any;
1391
+ name?: string;
1392
+ operationHours?: TOpeningHours[];
1393
+ postal?: string;
1394
+ slug?: string;
1395
+ state?: string;
1396
+ telephone?: string;
1397
+ tzid?: string;
1398
+ tzidOverride?: string;
1399
+ utcOffset?: string;
1400
+ website?: string;
1260
1401
  };
1261
1402
  export type TMappedinAPI = {
1262
1403
  nodes: TNode[];
@@ -1268,7 +1409,211 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.API.t
1268
1409
  themes: any;
1269
1410
  venue: TVenue;
1270
1411
  vortexes: TVortex[];
1412
+ locationStates?: TLocationState[];
1413
+ };
1414
+ }
1415
+
1416
+ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.MVF.types' {
1417
+ import { FeatureCollection, Polygon, Point, MultiPolygon } from 'geojson';
1418
+ type ManifestFile = {
1419
+ type: 'file';
1420
+ name: string;
1421
+ };
1422
+ type ManifestFolder = {
1423
+ type: 'folder';
1424
+ name: string;
1425
+ children: ManifestFile[];
1426
+ };
1427
+ type OpeningHours = {
1428
+ opens: string;
1429
+ closes: string;
1430
+ dayOfWeek: string;
1431
+ validFrom?: string;
1432
+ validThrough?: string;
1433
+ };
1434
+ type Image = {
1435
+ original?: string;
1436
+ xlarge?: string;
1437
+ xxlarge?: string;
1438
+ medium?: string;
1439
+ '140x140'?: string;
1440
+ xsmall?: string;
1441
+ xxsmall?: string;
1442
+ '66x66'?: string;
1443
+ small?: string;
1444
+ large?: string;
1445
+ };
1446
+ type PolygonImage = string;
1447
+ type Phone = {
1448
+ number: string;
1449
+ extension?: string;
1450
+ };
1451
+ type Link = {
1452
+ label: string;
1453
+ url: string;
1454
+ };
1455
+ type Social = {
1456
+ facebook?: string;
1457
+ twitter?: string;
1458
+ instagram?: string;
1459
+ website?: string;
1460
+ };
1461
+ type LocationState = {
1462
+ type: string;
1463
+ start?: string;
1464
+ end?: string;
1465
+ };
1466
+ type ImageTransform = {
1467
+ position: {
1468
+ x: number;
1469
+ y: number;
1470
+ z: number;
1471
+ };
1472
+ rotation: number;
1473
+ scale: {
1474
+ x: number;
1475
+ y: number;
1476
+ };
1477
+ };
1478
+ type SiblingGroup = {
1479
+ label: string;
1480
+ siblings: string[];
1481
+ };
1482
+ export type MILocationProperties = {
1483
+ id: string;
1484
+ address?: string | null;
1485
+ categories: string[];
1486
+ description?: string | null;
1487
+ email?: string | null;
1488
+ externalId?: string | null;
1489
+ hours?: OpeningHours[] | null;
1490
+ links?: Link[] | null;
1491
+ logo?: Image | null;
1492
+ name: string;
1493
+ phone?: Phone | null;
1494
+ picture?: Image | null;
1495
+ services?: string | null;
1496
+ siblingGroups?: SiblingGroup[] | null;
1497
+ social?: Social | null;
1498
+ spaces?: TLocationSpaceReference[] | null;
1499
+ states?: LocationState[] | null;
1500
+ type: string;
1501
+ };
1502
+ export type MICategoryProperties = {
1503
+ id: string;
1504
+ name: string;
1505
+ picture?: Image;
1506
+ };
1507
+ export type MIBuildingProperties = {
1508
+ id: string;
1509
+ name: string;
1510
+ venue: string;
1511
+ };
1512
+ export type MILevelProperties = {
1513
+ id: string;
1514
+ abbreviation?: string;
1515
+ building?: string;
1516
+ elevation?: number;
1517
+ name: string;
1518
+ };
1519
+ export type MIPolygonlikeProperties = {
1520
+ id: string;
1521
+ altitude?: string;
1522
+ color?: string;
1523
+ externalId?: string | null;
1524
+ height?: string;
1525
+ layer?: string;
1526
+ level: string;
1527
+ parent?: string | null;
1528
+ };
1529
+ type TPseudoNodeSpaceReference = {
1530
+ node: string;
1531
+ map: string;
1532
+ };
1533
+ export type TRealSpaceReference = {
1534
+ id: string;
1535
+ map: string;
1536
+ };
1537
+ type TLocationSpaceReference = TPseudoNodeSpaceReference | TRealSpaceReference;
1538
+ export type TEntrances = {
1539
+ id: string;
1540
+ level: string;
1541
+ };
1542
+ export type MISpaceProperties = MIPolygonlikeProperties & {
1543
+ entrances: TEntrances[];
1544
+ };
1545
+ export type MIObstructionProperties = MIPolygonlikeProperties;
1546
+ export type MIConnectionProperties = {
1547
+ id: string;
1548
+ accessible: boolean;
1549
+ destinations: string[];
1550
+ level: string;
1551
+ multiplier: number;
1552
+ name: string;
1553
+ type: string;
1554
+ weight: number;
1555
+ };
1556
+ export type MINodeProperties = {
1557
+ id: string;
1558
+ accessible: boolean;
1559
+ externalId: string | null;
1560
+ level: string;
1561
+ multiplier: number;
1562
+ neighbors: string[];
1563
+ weight: number;
1564
+ };
1565
+ export type MIManifestProperties = {
1566
+ name: string;
1567
+ folder_struct: (ManifestFolder | ManifestFile)[];
1568
+ version: string;
1569
+ time: string;
1570
+ };
1571
+ export type MILayerStyleProperties = {
1572
+ layer: string;
1573
+ altitude: number;
1574
+ color: string;
1575
+ height: number;
1576
+ opacity: number;
1577
+ };
1578
+ export type MIPolygonStyleProperties = {
1579
+ id: string;
1580
+ altitude: number;
1581
+ color: string;
1582
+ height: number;
1583
+ image: PolygonImage;
1584
+ imageTransform: ImageTransform;
1585
+ opacity: number;
1586
+ };
1587
+ export type MIGeoJSONManifestCollection = FeatureCollection<Point, MIManifestProperties>;
1588
+ export type MIGeoJSONBuildingCollection = FeatureCollection<Polygon, MIBuildingProperties>;
1589
+ export type MIGeoJSONConnectionCollection = FeatureCollection<Point, MIConnectionProperties>;
1590
+ export type MIGeoJSONLevelCollection = FeatureCollection<Polygon | MultiPolygon, MILevelProperties>;
1591
+ export type MIGeoJSONSpaceCollection = FeatureCollection<Polygon, MISpaceProperties>;
1592
+ export type MIGeoJSONObstructionCollection = FeatureCollection<Polygon, MIObstructionProperties>;
1593
+ export type MIGeoJSONNodeCollection = FeatureCollection<Point, MINodeProperties>;
1594
+ export type MIGeoJSONLocationCollection = FeatureCollection<null, MILocationProperties>;
1595
+ export type MIGeoJSONCategoryCollection = FeatureCollection<null, MICategoryProperties>;
1596
+ export type MIGeoJSONLayerStyleCollection = FeatureCollection<null, MILayerStyleProperties>;
1597
+ export type MIGeoJSONPolygonStyleCollection = FeatureCollection<null, MIPolygonStyleProperties>;
1598
+ export type WithIDs<T> = Map<string, T>;
1599
+ /**
1600
+ * The entire data collection for an MVF, in a single JSON collection.
1601
+ *
1602
+ */
1603
+ export type MVFData = {
1604
+ connection: WithIDs<MIGeoJSONConnectionCollection>;
1605
+ level: WithIDs<MIGeoJSONLevelCollection>;
1606
+ node: WithIDs<MIGeoJSONNodeCollection>;
1607
+ obstruction: WithIDs<MIGeoJSONObstructionCollection>;
1608
+ polygonStyle: WithIDs<MIGeoJSONPolygonStyleCollection>;
1609
+ space: WithIDs<MIGeoJSONSpaceCollection>;
1610
+ building: MIGeoJSONBuildingCollection;
1611
+ category: MIGeoJSONCategoryCollection;
1612
+ layerStyle: MIGeoJSONLayerStyleCollection;
1613
+ location: MIGeoJSONLocationCollection;
1614
+ manifest: MIGeoJSONManifestCollection;
1271
1615
  };
1616
+ export {};
1272
1617
  }
1273
1618
 
1274
1619
  declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinLocationRankings' {
@@ -1320,75 +1665,11 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinTheme'
1320
1665
  }
1321
1666
  }
1322
1667
 
1323
- declare module '@mappedin/mappedin-js/lib/esm/get-venue/navigator/Directive' {
1324
- import ILocation from '@mappedin/mappedin-js/lib/esm/get-venue/navigator/interfaces/ILocation';
1325
- import IMap from '@mappedin/mappedin-js/lib/esm/get-venue/navigator/interfaces/IMap';
1326
- import INode from '@mappedin/mappedin-js/lib/esm/get-venue/navigator/interfaces/INode';
1327
- export enum ACTION_TYPE {
1328
- DEPARTURE = "Departure",
1329
- TAKEVORTEX = "TakeVortex",
1330
- EXITVORTEX = "ExitVortex",
1331
- TURN = "Turn",
1332
- ARRIVAL = "Arrival"
1333
- }
1334
- export enum BEARING_TYPE {
1335
- STRAIGHT = "Straight",
1336
- RIGHT = "Right",
1337
- SLIGHTRIGHT = "SlightRight",
1338
- LEFT = "Left",
1339
- SLIGHTLEFT = "SlightLeft"
1340
- }
1341
- export enum VORTEX_DIRECTION_TYPE {
1342
- UP = "up",
1343
- DOWN = "down",
1344
- NONE = "none"
1345
- }
1346
- interface IActionDeparture {
1347
- type: ACTION_TYPE.DEPARTURE;
1348
- }
1349
- interface IActionArrival {
1350
- type: ACTION_TYPE.ARRIVAL;
1351
- }
1352
- interface IActionTakeVortex {
1353
- type: ACTION_TYPE.TAKEVORTEX;
1354
- toMap: IMap;
1355
- fromMap: IMap;
1356
- direction: VORTEX_DIRECTION_TYPE;
1357
- }
1358
- interface IActionExitVortex {
1359
- type: ACTION_TYPE.EXITVORTEX;
1360
- toMap: IMap;
1361
- fromMap: IMap;
1362
- }
1363
- interface IActionTurn {
1364
- type: ACTION_TYPE.TURN;
1365
- bearing: BEARING_TYPE;
1366
- referencePosition?: string;
1367
- }
1368
- export type IAction = IActionArrival | IActionDeparture | IActionTurn | IActionTakeVortex | IActionExitVortex;
1369
- class Directive {
1370
- node?: INode;
1371
- instruction: string;
1372
- action?: IAction;
1373
- atLocation?: ILocation;
1374
- type?: BEARING_TYPE;
1375
- distance: number;
1376
- constructor({ origin, action, distance, atLocation, instruction }: {
1377
- origin?: INode;
1378
- action?: IAction;
1379
- distance?: number;
1380
- atLocation?: ILocation;
1381
- instruction?: string;
1382
- });
1383
- }
1384
- export default Directive;
1385
- }
1386
-
1387
1668
  declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue' {
1388
1669
  import type { TGetVenueOptions } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
1389
1670
  import { Mappedin } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
1390
1671
  /** Classes */
1391
- export { Mappedin } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
1672
+ export { Mappedin, MappedinCollectionType } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin';
1392
1673
  export { MappedinLocation } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinLocation';
1393
1674
  export { MappedinPolygon } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinPolygon';
1394
1675
  export { MappedinNode } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/MappedinNode';
@@ -1411,6 +1692,7 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue' {
1411
1692
  /** API data types */
1412
1693
  export type { TLocationType, TNode, TImage, TLogo, TGalleryImage, TPhone, TSocial, TColor, TVortex, TPicture, TOpeningHours, TSiblingGroup, TState, TCategory, TEvent, TGeoReference, TMap, TMapGroup, TBuilding, TLocation, TPolygon, TPolygonRanking, TVenue, TMappedinAPI } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.API.types';
1413
1694
  export type { TGetVenueOptions } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
1695
+ import { MAP_RENDER_MODE } from '@mappedin/mappedin-js/lib/esm/get-venue/get-venue/Mappedin.types';
1414
1696
  export type TShowVenueOptions = {
1415
1697
  /**
1416
1698
  * Sets the initial background color of the map, including while loading.
@@ -1422,14 +1704,24 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue' {
1422
1704
  */
1423
1705
  backgroundAlpha?: number;
1424
1706
  /**
1425
- * Whether or not to display labels initially
1707
+ * Whether or not to display default styled Floating Labels initially
1426
1708
  */
1427
1709
  labelAllLocationsOnInit?: boolean;
1428
1710
  /**
1429
1711
  * The id of the first map to show on map load
1430
1712
  */
1431
1713
  firstMapId?: string;
1714
+ loadOptions?: {
1715
+ /**
1716
+ * Set the map render strategy in order to optimize FPS
1717
+ *
1718
+ * @beta
1719
+ */
1720
+ mapRenderStrategy?: MAP_RENDER_MODE;
1721
+ };
1432
1722
  };
1723
+ export { MAP_RENDER_MODE };
1724
+ export function getVenueMVF(userOptions: TGetVenueOptions): Promise<Mappedin>;
1433
1725
  /**
1434
1726
  * Get Venue Data for a Mappedin Venue
1435
1727
  */
@@ -1466,6 +1758,87 @@ declare module '@mappedin/mappedin-js/lib/esm/get-venue/get-venue' {
1466
1758
  url: any;
1467
1759
  updated_at: any;
1468
1760
  }): Promise<Mappedin>;
1761
+ /**
1762
+ * Get the bundle URL and updated_at time.
1763
+ * @internal
1764
+ */
1765
+ export function getVenueMVFURL(userOptions: TGetVenueBundleOptions): Promise<{
1766
+ url: string;
1767
+ updated_at: string;
1768
+ }>;
1769
+ /**
1770
+ * @internal
1771
+ */
1772
+ export function downloadVenueBundleMVF(options: TGetVenueOptions,
1773
+ /**
1774
+ * use Web Workers to speed up MVF parsing. This is likely only benefitial for larger venues,
1775
+ * and may be determental to smaller ones, hence it is off by default
1776
+ */
1777
+ useWorker?: boolean): Promise<unknown>;
1778
+ }
1779
+
1780
+ declare module '@mappedin/mappedin-js/lib/esm/get-venue/navigator/Directive' {
1781
+ import ILocation from '@mappedin/mappedin-js/lib/esm/get-venue/navigator/interfaces/ILocation';
1782
+ import IMap from '@mappedin/mappedin-js/lib/esm/get-venue/navigator/interfaces/IMap';
1783
+ import INode from '@mappedin/mappedin-js/lib/esm/get-venue/navigator/interfaces/INode';
1784
+ export enum ACTION_TYPE {
1785
+ DEPARTURE = "Departure",
1786
+ TAKEVORTEX = "TakeVortex",
1787
+ EXITVORTEX = "ExitVortex",
1788
+ TURN = "Turn",
1789
+ ARRIVAL = "Arrival"
1790
+ }
1791
+ export enum BEARING_TYPE {
1792
+ STRAIGHT = "Straight",
1793
+ RIGHT = "Right",
1794
+ SLIGHTRIGHT = "SlightRight",
1795
+ LEFT = "Left",
1796
+ SLIGHTLEFT = "SlightLeft"
1797
+ }
1798
+ export enum VORTEX_DIRECTION_TYPE {
1799
+ UP = "up",
1800
+ DOWN = "down",
1801
+ NONE = "none"
1802
+ }
1803
+ interface IActionDeparture {
1804
+ type: ACTION_TYPE.DEPARTURE;
1805
+ }
1806
+ interface IActionArrival {
1807
+ type: ACTION_TYPE.ARRIVAL;
1808
+ }
1809
+ interface IActionTakeVortex {
1810
+ type: ACTION_TYPE.TAKEVORTEX;
1811
+ toMap: IMap;
1812
+ fromMap: IMap;
1813
+ direction: VORTEX_DIRECTION_TYPE;
1814
+ }
1815
+ interface IActionExitVortex {
1816
+ type: ACTION_TYPE.EXITVORTEX;
1817
+ toMap: IMap;
1818
+ fromMap: IMap;
1819
+ }
1820
+ interface IActionTurn {
1821
+ type: ACTION_TYPE.TURN;
1822
+ bearing: BEARING_TYPE;
1823
+ referencePosition?: string;
1824
+ }
1825
+ export type IAction = IActionArrival | IActionDeparture | IActionTurn | IActionTakeVortex | IActionExitVortex;
1826
+ class Directive {
1827
+ node?: INode;
1828
+ instruction: string;
1829
+ action?: IAction;
1830
+ atLocation?: ILocation;
1831
+ type?: BEARING_TYPE;
1832
+ distance: number;
1833
+ constructor({ origin, action, distance, atLocation, instruction }: {
1834
+ origin?: INode;
1835
+ action?: IAction;
1836
+ distance?: number;
1837
+ atLocation?: ILocation;
1838
+ instruction?: string;
1839
+ });
1840
+ }
1841
+ export default Directive;
1469
1842
  }
1470
1843
 
1471
1844
  declare module '@mappedin/mappedin-js/lib/esm/get-venue/navigator/NavigationGraph' {