@mappedin/mappedin-js 6.0.1-beta.6 → 6.0.1-beta.8

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.
@@ -15,6 +15,7 @@
15
15
  // ../mappedin-js/@packages/internal/quad-tree
16
16
  // ../mappedin-js/@packages/internal/outdoor-context-v4
17
17
  // ../mappedin-js/@packages/internal/geojson-navigator
18
+ // ../mappedin-js/minisearch
18
19
  // ../mappedin-js/three/addons/loaders/GLTFLoader.js
19
20
  // ../mappedin-js/@mapbox/point-geometry
20
21
  // ../mappedin-js/@maplibre/maplibre-gl-style-spec
@@ -310,17 +311,20 @@ declare module '@mappedin/mappedin-js' {
310
311
  export type { Label, Marker, Path, Shape, CameraTransform, Model } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
311
312
  export type { Navigation, TNavigationOptions } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
312
313
  export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
313
- export { Coordinate, Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Image, Hyperlink, Location, Category, Venue, } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
314
- export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
314
+ export { Coordinate, Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Image, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, type Places, } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
315
+ export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
316
+ export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/mappedin-js/mappedin-js/src/search';
315
317
  }
316
318
 
317
319
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
318
- import { PubSub } from '@packages/internal/common';
319
320
  import { Analytics } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
321
+ import { PubSub } from '@packages/internal/common';
322
+ import type { TSearchOptions } from '@packages/internal/mvf-utils';
320
323
  import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
321
- import type Category from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
322
- import type Location from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
323
- import type Venue from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue';
324
+ import type EnterpriseCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
325
+ import type EnterpriseLocation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
326
+ import type EnterpriseVenue from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue';
327
+ import { Search } from '@mappedin/mappedin-js/mappedin-js/src/search';
324
328
  /**
325
329
  * A WeakMap to associate {@link MapData} instances with their internal representation.
326
330
  * We need a way to get the internal data object from the API
@@ -340,12 +344,32 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
340
344
  }> {
341
345
  #private;
342
346
  Analytics: Analytics;
347
+ /**
348
+ * Search API for MapData
349
+ *
350
+ * @example
351
+ * // Enable search
352
+ * const mapData = await getMapData({ search: { enabled: true } });
353
+ * // or
354
+ * await mapData.Search.enable();
355
+ *
356
+ * // Perform a search query
357
+ * const results = await mapData.Search.query('Coffee Shop');
358
+ * console.log(results.locations);
359
+ *
360
+ * // Get search suggestions
361
+ * const suggestions = await mapData.Search.suggest('Coff');
362
+ * console.log(suggestions);
363
+ */
364
+ Search: Search;
343
365
  /**
344
366
  * Constructs a new instance of {@link MapData}.
345
367
  *
346
368
  * @internal
347
369
  */
348
- constructor(internal: MapDataInternal);
370
+ constructor(internal: MapDataInternal, { search }?: {
371
+ search?: TSearchOptions;
372
+ });
349
373
  /**
350
374
  * The name of the map.
351
375
  *
@@ -364,10 +388,6 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
364
388
  * @returns {string} The organization ID of the map.
365
389
  */
366
390
  get organizationId(): string;
367
- /**
368
- * @internal
369
- */
370
- get venue(): Venue | undefined;
371
391
  /**
372
392
  * The token is used to fetch outdoor tiles.
373
393
  *
@@ -426,13 +446,23 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
426
446
  */
427
447
  getByType(type: 'annotation'): Annotation[];
428
448
  /**
429
- * @internal
449
+ * @returns The enterprise locations ({@link EnterpriseLocation}) on the map.
450
+ * @example
451
+ * const enterpriseLocations = mapData.getByType('enterprise-location');
430
452
  */
431
- getByType(type: 'location'): Location[];
453
+ getByType(type: 'enterprise-location'): EnterpriseLocation[];
432
454
  /**
433
- * @internal
455
+ * @returns The enterprise categories ({@link EnterpriseCategory}) on the map.
456
+ * @example
457
+ * const enterpriseCategories = mapData.getByType('enterprise-category');
434
458
  */
435
- getByType(type: 'category'): Category[];
459
+ getByType(type: 'enterprise-category'): EnterpriseCategory[];
460
+ /**
461
+ * @returns The enterprise venue ({@link EnterpriseVenue}) on the map.
462
+ * @example
463
+ * const enterpriseVenue = mapData.getByType('enterprise-venue');
464
+ */
465
+ getByType(type: 'enterprise-venue'): EnterpriseVenue;
436
466
  /**
437
467
  * Retrieves a specific map feature by its type and ID.
438
468
  *
@@ -449,8 +479,8 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data' {
449
479
  getById(type: 'object', id: string): MapObject | undefined;
450
480
  getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
451
481
  getById(type: 'annotation', id: string): Annotation | undefined;
452
- getById(type: 'location', id: string): Location | undefined;
453
- getById(type: 'category', id: string): Category | undefined;
482
+ getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
483
+ getById(type: 'enterprise-category', id: string): EnterpriseCategory | undefined;
454
484
  getById(type: string, id: string): object | undefined;
455
485
  /**
456
486
  * @internal
@@ -592,13 +622,13 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
592
622
  import Annotation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/annotation';
593
623
  import Hyperlink from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/hyperlink';
594
624
  import Image from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image';
595
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, Map as MVFMap, EnterpriseLocation, EnterpriseCategory } from '@mappedin/mvf';
596
- import type { MapDataObjects } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types';
597
- import Location from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
598
- import Category from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
599
- import Venue from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue';
600
- import { PubSub } from '@packages/internal/common';
625
+ import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, Map as MVFMap, EnterpriseLocationId, EnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory } from '@mappedin/mvf';
601
626
  import { AnalyticsInternal } from '@mappedin/mappedin-js/mappedin-js/src/analytics';
627
+ import EnterpriseLocation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location';
628
+ import EnterpriseCategory from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category';
629
+ import EnterpriseVenue from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue';
630
+ import { PubSub } from '@packages/internal/common';
631
+ import type { Places } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types';
602
632
  /**
603
633
  * Internal class representing detailed map data.
604
634
  *
@@ -632,13 +662,32 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
632
662
  * Represents a map of entrance IDs to obstruction IDs.
633
663
  */
634
664
  readonly obstructionIdByEntranceId: Record<string, string>;
635
- readonly venue?: Venue;
665
+ readonly venue?: EnterpriseVenue;
666
+ enterpriseMode: boolean;
667
+ nodesById: Record<string, Node>;
668
+ spacesById: Record<string, Space>;
669
+ floorsById: Record<string, Floor>;
670
+ connectionsById: Record<string, Connection>;
671
+ objectsById: Record<string, MapObject>;
672
+ doorsById: Record<string, Door>;
673
+ pointsOfInterestById: Record<string, PointOfInterest>;
674
+ annotationsById: Record<string, Annotation>;
675
+ locationsById: Record<EnterpriseLocationId, EnterpriseLocation>;
676
+ categoriesById: Record<EnterpriseCategoryId, EnterpriseCategory>;
636
677
  doorsByNodeId: Record<string, Door>;
637
- locationsBySpaceId: Record<string, EnterpriseLocation[]>;
678
+ locationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
679
+ mvfAnnotationsById: Record<string, AnnotationCollection['features'][number]>;
680
+ mvfConnectionsById: Record<string, MVFConnection>;
681
+ mvfConnectionsByNodeId: Record<string, MVFConnection>;
682
+ mvfEntrancesById: Record<string, EntranceCollection['features'][number]>;
683
+ mvfNodesById: Record<string, NodeCollection['features'][number]>;
684
+ mvfObstructionById: Record<string, ObstructionCollection['features'][number]>;
685
+ mvfSpacesById: Record<string, SpaceCollection['features'][number]>;
686
+ mvfMapsById: Record<string, MVFMap>;
638
687
  /**
639
688
  * @internal
640
689
  */
641
- constructor(mvf: ParsedMVF, outdoorViewToken?: string);
690
+ constructor(mvf: ParsedMVF, outdoorViewToken?: string, enterpriseMode?: boolean);
642
691
  /**
643
692
  * Retrieves the map name.
644
693
  *
@@ -697,8 +746,8 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
697
746
  * @returns {Annotation[]} An array of Annotation objects.
698
747
  */
699
748
  get nodes(): Node[];
700
- get locations(): Location[];
701
- get categories(): Category[];
749
+ get locations(): EnterpriseLocation[];
750
+ get categories(): EnterpriseCategory[];
702
751
  /**
703
752
  * Retrieves an object by its type and ID.
704
753
  *
@@ -714,9 +763,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
714
763
  getById(type: 'object', id: string): MapObject | undefined;
715
764
  getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
716
765
  getById(type: 'annotation', id: string): Annotation | undefined;
717
- getById(type: 'location', id: string): Location | undefined;
718
- getById(type: 'category', id: string): Category | undefined;
719
- getMapDataById(id: string): MapDataObjects | undefined;
766
+ getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
767
+ getById(type: 'enterprise-category', id: string): EnterpriseCategory | undefined;
768
+ getMapDataById(id: string): Places | undefined;
720
769
  /**
721
770
  * Retrieves a feature by its type and ID from the Mappedin Venue Format (MVF) data.
722
771
  *
@@ -743,14 +792,14 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
743
792
  languagePacks: {
744
793
  [key: string]: {
745
794
  location: {
746
- [key: string]: Partial<EnterpriseLocation>;
795
+ [key: string]: Partial<MVFEnterpriseLocation>;
747
796
  };
748
797
  category: {
749
- [key: string]: Partial<EnterpriseCategory>;
798
+ [key: string]: Partial<MVFEnterpriseCategory>;
750
799
  };
751
800
  };
752
801
  };
753
- getPropTranslation(type: 'location' | 'category', prop: string, id: string, fallback: EnterpriseLocation[keyof EnterpriseLocation] | EnterpriseCategory[keyof EnterpriseCategory]): unknown;
802
+ getPropTranslation(type: 'enterprise-location' | 'enterprise-category', prop: string, id: string, fallback: MVFEnterpriseLocation[keyof MVFEnterpriseLocation] | MVFEnterpriseCategory[keyof MVFEnterpriseCategory]): unknown;
754
803
  changeLanguage(languageCode: string): Promise<void>;
755
804
  /**
756
805
  * Cleans up resources used by the instance.
@@ -759,9 +808,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects' {
759
808
  */
760
809
  destroy(): void;
761
810
  }
762
- export { MapDataInternal, Space, Floor, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, Location, Category, Venue, };
811
+ export { MapDataInternal, Space, Floor, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
763
812
  export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space';
764
- export type { MapDataObjects };
813
+ export type { Places };
765
814
  }
766
815
 
767
816
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-view' {
@@ -1064,7 +1113,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/maplibre-overlay' {
1064
1113
 
1065
1114
  declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1066
1115
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1067
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1116
+ import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
1068
1117
  import type { Label, Marker, Model, Image } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
1069
1118
  import type { EasingCurve } from '@mappedin/core-sdk/src/camera';
1070
1119
  export type DeepRequired<T> = Required<{
@@ -1391,7 +1440,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/types' {
1391
1440
  /**
1392
1441
  * Defines the target for navigation operations.
1393
1442
  */
1394
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection;
1443
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation;
1395
1444
  /**
1396
1445
  * Defines the special zone for navigation operations.
1397
1446
  */
@@ -1996,29 +2045,35 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson' {
1996
2045
  export { Images } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images';
1997
2046
  }
1998
2047
 
2048
+ declare module '@mappedin/mappedin-js/mappedin-js/src/search' {
2049
+ export type { SearchResult, SearchResultItem, SearchOptions, Suggestion, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, MatchInfo, } from '@mappedin/mappedin-js/mappedin-js/src/search/internal';
2050
+ export type { SearchState } from '@mappedin/mappedin-js/mappedin-js/src/search/external';
2051
+ export { Search } from '@mappedin/mappedin-js/mappedin-js/src/search/external';
2052
+ }
2053
+
1999
2054
  declare module '@mappedin/mappedin-js/mappedin-js/src/analytics' {
2000
2055
  export { Analytics, AnalyticsInternal } from '@mappedin/mappedin-js/mappedin-js/src/analytics/customer';
2001
2056
  export type { AnalyticsUpdateOptions } from '@mappedin/mappedin-js/mappedin-js/src/analytics/customer';
2002
2057
  }
2003
2058
 
2004
2059
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category' {
2005
- import type { EnterpriseCategory } from '@mappedin/mvf';
2006
- import type { MapDataInternal, Location } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2060
+ import type { EnterpriseCategory as MVFEnterpriseCategory } from '@mappedin/mvf';
2061
+ import type { MapDataInternal, EnterpriseLocation } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2007
2062
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2008
2063
  /**
2009
- * A Category is a collection of similar Locations.
2064
+ * An EnterpriseCategory is a collection of similar EnterpriseLocations.
2010
2065
  *
2011
2066
  */
2012
- class Category extends BaseMapData implements Omit<EnterpriseCategory, 'children' | 'locations'> {
2067
+ class EnterpriseCategory extends BaseMapData implements Omit<MVFEnterpriseCategory, 'children' | 'locations'> {
2013
2068
  #private;
2014
2069
  /**
2015
2070
  * @internal
2016
2071
  */
2017
- static readonly __type = "category";
2072
+ static readonly __type = "enterprise-category";
2018
2073
  /**
2019
2074
  * @internal
2020
2075
  */
2021
- readonly __type = "category";
2076
+ readonly __type = "enterprise-category";
2022
2077
  name: string;
2023
2078
  color?: string | undefined;
2024
2079
  externalId: string;
@@ -2027,24 +2082,24 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category'
2027
2082
  iconFromDefaultList?: string | null | undefined;
2028
2083
  sortOrder: number;
2029
2084
  /**
2030
- * Checks if the provided instance is of type Category.
2085
+ * Checks if the provided instance is of type EnterpriseCategory.
2031
2086
  *
2032
2087
  * @param instance The instance to check.
2033
- * @returns {boolean} True if the instance is a Category, false otherwise.
2088
+ * @returns {boolean} True if the instance is a EnterpriseCategory, false otherwise.
2034
2089
  */
2035
- static is(instance: object): instance is Category;
2090
+ static is(instance: object): instance is EnterpriseCategory;
2036
2091
  /**
2037
2092
  * @internal
2038
2093
  */
2039
2094
  constructor(data: MapDataInternal, options: {
2040
- mvfData: EnterpriseCategory;
2095
+ mvfData: MVFEnterpriseCategory;
2041
2096
  });
2042
- get children(): Category[];
2043
- get locations(): Location[];
2097
+ get children(): EnterpriseCategory[];
2098
+ get locations(): EnterpriseLocation[];
2044
2099
  /**
2045
- * Serializes the category data to JSON.
2100
+ * Serializes the EnterpriseCategory data to JSON.
2046
2101
  *
2047
- * @returns An object representing the category.
2102
+ * @returns An object representing the EnterpriseCategory.
2048
2103
  */
2049
2104
  toJSON(): {
2050
2105
  id: string;
@@ -2057,29 +2112,29 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/category'
2057
2112
  */
2058
2113
  destroy(): void;
2059
2114
  }
2060
- export default Category;
2115
+ export default EnterpriseCategory;
2061
2116
  }
2062
2117
 
2063
2118
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location' {
2064
- import type { EnterpriseLocation, LocationState, OperationHours, SiblingGroup } from '@mappedin/mvf';
2119
+ import type { EnterpriseLocation as MVFEnterpriseLocation, LocationState, OperationHours, SiblingGroup } from '@mappedin/mvf';
2065
2120
  import type { Coordinate, MapDataInternal, Space } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2066
2121
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2067
2122
  import type Node from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node';
2068
2123
  /**
2069
- * A class representing location data within the map.
2124
+ * A class representing enterprise location data within the map.
2070
2125
  *
2071
- * A Location is something like a store, or a washroom on a map.
2126
+ * An EnterpriseLocation is something like a store, or a washroom on a map.
2072
2127
  */
2073
- class Location extends BaseMapData implements Omit<EnterpriseLocation, 'polygons' | 'nodes' | 'links'> {
2128
+ class EnterpriseLocation extends BaseMapData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links'> {
2074
2129
  #private;
2075
2130
  /**
2076
2131
  * @internal
2077
2132
  */
2078
- static readonly __type = "location";
2133
+ static readonly __type = "enterprise-location";
2079
2134
  /**
2080
2135
  * @internal
2081
2136
  */
2082
- readonly __type = "location";
2137
+ readonly __type = "enterprise-location";
2083
2138
  description?: string | undefined;
2084
2139
  name: string;
2085
2140
  amenity?: string | undefined;
@@ -2112,25 +2167,25 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location'
2112
2167
  tags?: string[] | undefined;
2113
2168
  type: string;
2114
2169
  /**
2115
- * Checks if the provided instance is of type Location.
2170
+ * Checks if the provided instance is of type EnterpriseLocation.
2116
2171
  *
2117
2172
  * @param instance The instance to check.
2118
- * @returns {boolean} True if the instance is a Location, false otherwise.
2173
+ * @returns {boolean} True if the instance is a EnterpriseLocation, false otherwise.
2119
2174
  */
2120
- static is(instance: object): instance is Location;
2175
+ static is(instance: object): instance is EnterpriseLocation;
2121
2176
  /**
2122
2177
  * @internal
2123
2178
  */
2124
2179
  constructor(data: MapDataInternal, options: {
2125
- mvfData: EnterpriseLocation;
2180
+ mvfData: MVFEnterpriseLocation;
2126
2181
  });
2127
2182
  get coordinates(): Coordinate[];
2128
2183
  get nodes(): Node[];
2129
2184
  get spaces(): Space[];
2130
2185
  /**
2131
- * Serializes the location data to JSON.
2186
+ * Serializes the EnterpriseLocation data to JSON.
2132
2187
  *
2133
- * @returns An object representing the location.
2188
+ * @returns An object representing the EnterpriseLocation.
2134
2189
  */
2135
2190
  toJSON(): {
2136
2191
  id: string;
@@ -2143,26 +2198,26 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/location'
2143
2198
  */
2144
2199
  destroy(): void;
2145
2200
  }
2146
- export default Location;
2201
+ export default EnterpriseLocation;
2147
2202
  }
2148
2203
 
2149
2204
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue' {
2150
- import type { EnterpriseVenue, Language } from '@mappedin/mvf';
2205
+ import type { EnterpriseVenue as MVFEnterpriseVenue, Language } from '@mappedin/mvf';
2151
2206
  import type { Hyperlink, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2152
2207
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2153
2208
  /**
2154
- * A Venue is a specific place (like a mall, office building, or stadium) with one or more Floors
2209
+ * An EnterpriseVenue is a specific place (like a mall, office building, or stadium) with one or more Floors
2155
2210
  */
2156
- class Venue extends BaseMapData implements EnterpriseVenue {
2211
+ class EnterpriseVenue extends BaseMapData implements MVFEnterpriseVenue {
2157
2212
  #private;
2158
2213
  /**
2159
2214
  * @internal
2160
2215
  */
2161
- static readonly __type = "venue";
2216
+ static readonly __type = "enterprise-venue";
2162
2217
  /**
2163
2218
  * @internal
2164
2219
  */
2165
- readonly __type = "venue";
2220
+ readonly __type = "enterprise-venue";
2166
2221
  countrycode?: string | undefined;
2167
2222
  externalId: string;
2168
2223
  defaultLanguage: Language;
@@ -2177,28 +2232,28 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue' {
2177
2232
  topLocations?: string[] | undefined;
2178
2233
  tzid?: string | undefined;
2179
2234
  /**
2180
- * Checks if the provided instance is of type Venue.
2235
+ * Checks if the provided instance is of type EnterpriseVenue.
2181
2236
  *
2182
2237
  * @param instance The instance to check.
2183
- * @returns {boolean} True if the instance is a Venue, false otherwise.
2238
+ * @returns {boolean} True if the instance is a EnterpriseVenue, false otherwise.
2184
2239
  */
2185
- static is(instance: object): instance is Venue;
2240
+ static is(instance: object): instance is EnterpriseVenue;
2186
2241
  /**
2187
2242
  * @internal
2188
2243
  */
2189
2244
  constructor(_data: MapDataInternal, options: {
2190
- mvfData: EnterpriseVenue;
2245
+ mvfData: MVFEnterpriseVenue;
2191
2246
  });
2192
2247
  /**
2193
- * Gets the name of the venue.
2248
+ * Gets the name of the EnterpriseVenue.
2194
2249
  *
2195
- * @returns {string} The name of the venue.
2250
+ * @returns {string} The name of the EnterpriseVenue.
2196
2251
  */
2197
2252
  get name(): string;
2198
2253
  /**
2199
- * Serializes the venue data to JSON.
2254
+ * Serializes the EnterpriseVenue data to JSON.
2200
2255
  *
2201
- * @returns An object representing the venue.
2256
+ * @returns An object representing the EnterpriseVenue.
2202
2257
  */
2203
2258
  toJSON(): {
2204
2259
  id: string;
@@ -2211,7 +2266,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/venue' {
2211
2266
  */
2212
2267
  destroy(): void;
2213
2268
  }
2214
- export default Venue;
2269
+ export default EnterpriseVenue;
2215
2270
  }
2216
2271
 
2217
2272
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/stacked-maps/stacked-maps' {
@@ -2450,10 +2505,10 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door' {
2450
2505
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space' {
2451
2506
  import type { Image, SpaceCollection } from '@mappedin/mvf';
2452
2507
  import Coordinate from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/coordinate';
2453
- import type { Location, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2508
+ import type { EnterpriseLocation, MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
2454
2509
  import type Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
2455
2510
  import BaseMapData from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/base-object';
2456
- import Door from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door';
2511
+ import type Door from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door';
2457
2512
  /**
2458
2513
  * Represents the various types of spaces that can be defined within a map.
2459
2514
  * - 'room': A standard room or enclosed area.
@@ -2511,7 +2566,7 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space' {
2511
2566
  /**
2512
2567
  * @internal
2513
2568
  */
2514
- get locations(): Location[];
2569
+ get locations(): EnterpriseLocation[];
2515
2570
  /**
2516
2571
  * Gets the {@link Floor} object associated with the space.
2517
2572
  *
@@ -3206,13 +3261,15 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/image' {
3206
3261
  declare module '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/types' {
3207
3262
  import type Door from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/door';
3208
3263
  import type Floor from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/floor';
3209
- import type Node from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/node';
3210
3264
  import type Space from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/space';
3211
3265
  import type PointOfInterest from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/poi';
3212
3266
  import type Annotation from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/annotation';
3213
3267
  import type Connection from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/connection';
3214
3268
  import type MapObject from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects/object';
3215
- export type MapDataObjects = Space | Floor | Node | Door | Connection | MapObject | PointOfInterest | Annotation;
3269
+ /**
3270
+ * Places are the main objects that can be searched for.
3271
+ */
3272
+ export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation;
3216
3273
  }
3217
3274
 
3218
3275
  declare module '@mappedin/mappedin-js/mappedin-js/src' {
@@ -3498,8 +3555,9 @@ declare module '@mappedin/mappedin-js/mappedin-js/src' {
3498
3555
  export type { Label, Marker, Path, Shape, CameraTransform, Model } from '@mappedin/mappedin-js/mappedin-js/src/map-view-objects';
3499
3556
  export type { Navigation, TNavigationOptions } from '@mappedin/mappedin-js/mappedin-js/src/navigation';
3500
3557
  export type { TSpaceType } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
3501
- export { Coordinate, Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Image, Hyperlink, Location, Category, Venue, } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
3502
- export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
3558
+ export { Coordinate, Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Image, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, type Places, } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
3559
+ export type { Camera, Models, Labels, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, } from '@mappedin/mappedin-js/mappedin-js/src/api-geojson';
3560
+ export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/mappedin-js/mappedin-js/src/search';
3503
3561
  }
3504
3562
 
3505
3563
  declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
@@ -3730,10 +3788,18 @@ declare module '@mappedin/mappedin-js/geojson/src/components/marker' {
3730
3788
  }
3731
3789
 
3732
3790
  declare module '@mappedin/mappedin-js/geojson/src/components/path' {
3733
- import { type Mesh, type ShaderMaterial, type BufferGeometry, Vector3 } from 'three';
3734
- import type { Position } from '@mappedin/mappedin-js/geojson/src/types';
3791
+ import { Vector3 } from 'three';
3792
+ import type { Mesh, ShaderMaterial, BufferGeometry } from 'three';
3793
+ import type { EntityId, Position } from '@mappedin/mappedin-js/geojson/src/types';
3735
3794
  import { Geometry3DObject3D } from '@mappedin/mappedin-js/geojson/src/entities/geometry3d';
3736
3795
  import type { FeatureCollection, Point } from 'geojson';
3796
+ import type { GroupContainerState } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
3797
+ export type PathProperties = {
3798
+ /**
3799
+ * The parentId of the point. The point will be anchored to the altitude of this parent group container.
3800
+ */
3801
+ parentId?: EntityId<GroupContainerState> | string | null;
3802
+ };
3737
3803
  /**
3738
3804
  * State representing a Path
3739
3805
  */
@@ -3805,7 +3871,7 @@ declare module '@mappedin/mappedin-js/geojson/src/components/path' {
3805
3871
  material?: ShaderMaterial;
3806
3872
  geometry?: BufferGeometry;
3807
3873
  outline?: Mesh;
3808
- feature: FeatureCollection<Point>;
3874
+ feature: FeatureCollection<Point, PathProperties>;
3809
3875
  options: AddPathOptions;
3810
3876
  nearRadius: number;
3811
3877
  farRadius: number;
@@ -3814,8 +3880,12 @@ declare module '@mappedin/mappedin-js/geojson/src/components/path' {
3814
3880
  altitudeAdjustment: number;
3815
3881
  displayArrowsOnPath: boolean;
3816
3882
  animateArrowsOnPath: boolean;
3883
+ /**
3884
+ * If the path is vertical it will be rebuilt whenever altitudeDirty = true. This will be set during the first render of the path.
3885
+ */
3886
+ isVertical: boolean;
3817
3887
  dirty: boolean;
3818
- constructor(feature: FeatureCollection<Point, any>, options?: AddPathOptions);
3888
+ constructor(feature: FeatureCollection<Point, PathProperties>, options?: AddPathOptions);
3819
3889
  setColor(): void;
3820
3890
  setOpacity(): void;
3821
3891
  set completeFraction(value: number);
@@ -5190,6 +5260,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
5190
5260
  import './utils/object-this-polyfill';
5191
5261
  import { Vector3, Raycaster, Camera as ThreeCamera } from 'three';
5192
5262
  import type { GroupContainerState } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
5263
+ import { GroupContainerObject3D } from '@mappedin/mappedin-js/geojson/src/entities/group-container';
5193
5264
  import { PubSub } from '@mappedin/mappedin-js/packages/common/pubsub';
5194
5265
  import { CollisionSystem } from '@mappedin/mappedin-js/geojson/src/systems/collisions/system';
5195
5266
  import { InteractionSystem } from '@mappedin/mappedin-js/geojson/src/systems/interactions';
@@ -5207,7 +5278,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
5207
5278
  import { TwoDVisibilitySystem } from '@mappedin/mappedin-js/geojson/src/systems/2d-visibility/system';
5208
5279
  import { RenderSystem } from '@mappedin/mappedin-js/geojson/src/systems/render/system';
5209
5280
  import type { Position as GeoJsonPosition, FeatureCollection, LineString, MultiPolygon, Polygon, Point, Feature } from 'geojson';
5210
- import type { AddPathOptions, PathState } from '@mappedin/mappedin-js/geojson/src/components/path';
5281
+ import type { AddPathOptions, PathProperties, PathState } from '@mappedin/mappedin-js/geojson/src/components/path';
5211
5282
  import { StackSystem } from '@mappedin/mappedin-js/geojson/src/systems/stack/system';
5212
5283
  import { CameraSystem } from '@mappedin/mappedin-js/geojson/src/systems/camera';
5213
5284
  import { DOMDrawSystem } from '@mappedin/mappedin-js/geojson/src/systems/dom-draw/system';
@@ -5320,6 +5391,7 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
5320
5391
  id: string;
5321
5392
  type: string;
5322
5393
  };
5394
+ getParentContainer: (parent?: EntityId<GroupContainerState> | string | number | null, defaultToScene?: boolean) => GroupContainerObject3D | undefined;
5323
5395
  /**
5324
5396
  * Add a custom THREE.js entity to the map. The geometry is placed at the GeoJSON coordinate and includes a `setup` and `update` methods.
5325
5397
  * Setup is called when the first time the geometry visible, and update is called every render frame.
@@ -5348,21 +5420,13 @@ declare module '@mappedin/mappedin-js/geojson/src/renderer' {
5348
5420
  /**
5349
5421
  * Add a Path along a set of GeoJSON coordinates that can be animated.
5350
5422
  */
5351
- addPath(geometry: FeatureCollection<Point, any>, options?: AddPathOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<PathState>;
5423
+ addPath(geometry: FeatureCollection<Point, PathProperties>, options?: AddPathOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<PathState>;
5352
5424
  /**
5353
5425
  * Updates the watermark on the map.
5354
5426
  *
5355
5427
  * @param options {WatermarkOptions}
5356
5428
  */
5357
5429
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
5358
- /**
5359
- * @deprecated
5360
- * @TODO: remove this method and do this in setstate instead
5361
- */
5362
- updateStackState(container: EntityId<GroupContainerState> | string | number, opts: {
5363
- expandedFactor?: number;
5364
- activeId?: string;
5365
- }): void;
5366
5430
  /**
5367
5431
  * Remove an entity from the renderer and release associated resources.
5368
5432
  */
@@ -6908,6 +6972,339 @@ declare module '@mappedin/mappedin-js/mappedin-js/src/api-geojson/images' {
6908
6972
  export {};
6909
6973
  }
6910
6974
 
6975
+ declare module '@mappedin/mappedin-js/mappedin-js/src/search/internal' {
6976
+ import type { SearchResult as MiniSearchResult, Suggestion, MatchInfo } from 'minisearch';
6977
+ import type { EnterpriseLocation, EnterpriseCategory, Places } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
6978
+ import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
6979
+ import { z } from 'zod';
6980
+ export class InternalSearch {
6981
+ constructor(mapData: MapData);
6982
+ /**
6983
+ * Populates the search indexes with the map data.
6984
+ * @returns A promise that resolves when the indexes are populated.
6985
+ */
6986
+ populate(): Promise<any[]>;
6987
+ search(term: string, options?: SearchOptions): Promise<SearchResult>;
6988
+ suggest(term: string, options?: SuggestOptions): Promise<Suggestion[]>;
6989
+ }
6990
+ export type SearchResultItem<T extends Places | EnterpriseLocation | EnterpriseCategory> = {
6991
+ type: T['__type'];
6992
+ match: MiniSearchResult['match'];
6993
+ score: number;
6994
+ item: T;
6995
+ };
6996
+ /**
6997
+ * @interface
6998
+ */
6999
+ export type SearchResultEnterpriseCategory = SearchResultItem<EnterpriseCategory>;
7000
+ /**
7001
+ * @interface
7002
+ */
7003
+ export type SearchResultEnterpriseLocations = SearchResultItem<EnterpriseLocation>;
7004
+ /**
7005
+ * @interface
7006
+ */
7007
+ export type SearchResultPlaces = SearchResultItem<Places>;
7008
+ /**
7009
+ * Search results
7010
+ */
7011
+ export type SearchResult = {
7012
+ /**
7013
+ * Places search results
7014
+ */
7015
+ places: SearchResultPlaces[];
7016
+ /**
7017
+ * Enterprise Locations search results
7018
+ */
7019
+ enterpriseLocations?: SearchResultEnterpriseLocations[];
7020
+ /**
7021
+ * Enterprise Categories search results
7022
+ */
7023
+ enterpriseCategories?: SearchResultEnterpriseCategory[];
7024
+ };
7025
+ export function removeAccents(it: string): string;
7026
+ const searchOptionsSchema: z.ZodObject<{
7027
+ /**
7028
+ * Options for searching places.
7029
+ * @property {Object} [fields] - Fields to search in places.
7030
+ * @property {boolean} [name] - Whether to search in the name field of places.
7031
+ * @property {boolean} [description] - Whether to search in the description field of places.
7032
+ * @property {number} [limit] - Maximum number of place results to return.
7033
+ */
7034
+ places: z.ZodOptional<z.ZodObject<{
7035
+ /**
7036
+ * Fields to search in places.
7037
+ * @property {boolean} [name] - Whether to search in the name field of places.
7038
+ * @property {boolean} [description] - Whether to search in the description field of places.
7039
+ */
7040
+ fields: z.ZodOptional<z.ZodObject<{
7041
+ /** Enable searching by place name */
7042
+ name: z.ZodOptional<z.ZodBoolean>;
7043
+ /** Enable searching by place description */
7044
+ description: z.ZodOptional<z.ZodBoolean>;
7045
+ }, "strip", z.ZodTypeAny, {
7046
+ name?: boolean | undefined;
7047
+ description?: boolean | undefined;
7048
+ }, {
7049
+ name?: boolean | undefined;
7050
+ description?: boolean | undefined;
7051
+ }>>;
7052
+ /** Maximum number of place results to return */
7053
+ limit: z.ZodOptional<z.ZodNumber>;
7054
+ }, "strip", z.ZodTypeAny, {
7055
+ limit?: number | undefined;
7056
+ fields?: {
7057
+ name?: boolean | undefined;
7058
+ description?: boolean | undefined;
7059
+ } | undefined;
7060
+ }, {
7061
+ limit?: number | undefined;
7062
+ fields?: {
7063
+ name?: boolean | undefined;
7064
+ description?: boolean | undefined;
7065
+ } | undefined;
7066
+ }>>;
7067
+ /**
7068
+ * Options for searching categories.
7069
+ * @property {Object} [fields] - Fields to search in categories.
7070
+ * @property {boolean} [name] - Whether to search in the name field of categories.
7071
+ * @property {boolean} [description] - Whether to search in the description field of categories.
7072
+ * @property {boolean} ['locations.name'] - Whether to search in the locations' names of categories.
7073
+ * @property {number} [limit] - Maximum number of category results to return.
7074
+ */
7075
+ enterpriseCategories: z.ZodOptional<z.ZodObject<{
7076
+ /**
7077
+ * Fields to search in categories.
7078
+ * @property {boolean} [name] - Whether to search in the name field of categories.
7079
+ * @property {boolean} [description] - Whether to search in the description field of categories.
7080
+ * @property {boolean} ['locations.name'] - Whether to search in the locations' names of categories.
7081
+ */
7082
+ fields: z.ZodOptional<z.ZodObject<{
7083
+ /** Enable searching by category name */
7084
+ name: z.ZodOptional<z.ZodBoolean>;
7085
+ /** Enable searching by category description */
7086
+ description: z.ZodOptional<z.ZodBoolean>;
7087
+ /** Enable searching by names of locations within the category */
7088
+ 'locations.name': z.ZodOptional<z.ZodBoolean>;
7089
+ }, "strip", z.ZodTypeAny, {
7090
+ name?: boolean | undefined;
7091
+ description?: boolean | undefined;
7092
+ 'locations.name'?: boolean | undefined;
7093
+ }, {
7094
+ name?: boolean | undefined;
7095
+ description?: boolean | undefined;
7096
+ 'locations.name'?: boolean | undefined;
7097
+ }>>;
7098
+ /** Maximum number of category results to return */
7099
+ limit: z.ZodOptional<z.ZodNumber>;
7100
+ }, "strip", z.ZodTypeAny, {
7101
+ limit?: number | undefined;
7102
+ fields?: {
7103
+ name?: boolean | undefined;
7104
+ description?: boolean | undefined;
7105
+ 'locations.name'?: boolean | undefined;
7106
+ } | undefined;
7107
+ }, {
7108
+ limit?: number | undefined;
7109
+ fields?: {
7110
+ name?: boolean | undefined;
7111
+ description?: boolean | undefined;
7112
+ 'locations.name'?: boolean | undefined;
7113
+ } | undefined;
7114
+ }>>;
7115
+ /**
7116
+ * Options for searching locations.
7117
+ * @property {Object} [fields] - Fields to search in locations.
7118
+ * @property {boolean} [name] - Whether to search in the name field of locations.
7119
+ * @property {boolean} [tags] - Whether to search in the tags field of locations.
7120
+ * @property {boolean} [description] - Whether to search in the description field of locations.
7121
+ * @property {number} [limit] - Maximum number of location results to return.
7122
+ */
7123
+ enterpriseLocations: z.ZodOptional<z.ZodObject<{
7124
+ /**
7125
+ * Fields to search in locations.
7126
+ * @property {boolean} [name] - Whether to search in the name field of locations.
7127
+ * @property {boolean} [tags] - Whether to search in the tags field of locations.
7128
+ * @property {boolean} [description] - Whether to search in the description field of locations.
7129
+ */
7130
+ fields: z.ZodOptional<z.ZodObject<{
7131
+ /** Enable searching by location name */
7132
+ name: z.ZodOptional<z.ZodBoolean>;
7133
+ /** Enable searching by location tags */
7134
+ tags: z.ZodOptional<z.ZodBoolean>;
7135
+ /** Enable searching by location description */
7136
+ description: z.ZodOptional<z.ZodBoolean>;
7137
+ }, "strip", z.ZodTypeAny, {
7138
+ name?: boolean | undefined;
7139
+ description?: boolean | undefined;
7140
+ tags?: boolean | undefined;
7141
+ }, {
7142
+ name?: boolean | undefined;
7143
+ description?: boolean | undefined;
7144
+ tags?: boolean | undefined;
7145
+ }>>;
7146
+ /** Maximum number of location results to return */
7147
+ limit: z.ZodOptional<z.ZodNumber>;
7148
+ }, "strip", z.ZodTypeAny, {
7149
+ limit?: number | undefined;
7150
+ fields?: {
7151
+ name?: boolean | undefined;
7152
+ description?: boolean | undefined;
7153
+ tags?: boolean | undefined;
7154
+ } | undefined;
7155
+ }, {
7156
+ limit?: number | undefined;
7157
+ fields?: {
7158
+ name?: boolean | undefined;
7159
+ description?: boolean | undefined;
7160
+ tags?: boolean | undefined;
7161
+ } | undefined;
7162
+ }>>;
7163
+ }, "strip", z.ZodTypeAny, {
7164
+ enterpriseLocations?: {
7165
+ limit?: number | undefined;
7166
+ fields?: {
7167
+ name?: boolean | undefined;
7168
+ description?: boolean | undefined;
7169
+ tags?: boolean | undefined;
7170
+ } | undefined;
7171
+ } | undefined;
7172
+ enterpriseCategories?: {
7173
+ limit?: number | undefined;
7174
+ fields?: {
7175
+ name?: boolean | undefined;
7176
+ description?: boolean | undefined;
7177
+ 'locations.name'?: boolean | undefined;
7178
+ } | undefined;
7179
+ } | undefined;
7180
+ places?: {
7181
+ limit?: number | undefined;
7182
+ fields?: {
7183
+ name?: boolean | undefined;
7184
+ description?: boolean | undefined;
7185
+ } | undefined;
7186
+ } | undefined;
7187
+ }, {
7188
+ enterpriseLocations?: {
7189
+ limit?: number | undefined;
7190
+ fields?: {
7191
+ name?: boolean | undefined;
7192
+ description?: boolean | undefined;
7193
+ tags?: boolean | undefined;
7194
+ } | undefined;
7195
+ } | undefined;
7196
+ enterpriseCategories?: {
7197
+ limit?: number | undefined;
7198
+ fields?: {
7199
+ name?: boolean | undefined;
7200
+ description?: boolean | undefined;
7201
+ 'locations.name'?: boolean | undefined;
7202
+ } | undefined;
7203
+ } | undefined;
7204
+ places?: {
7205
+ limit?: number | undefined;
7206
+ fields?: {
7207
+ name?: boolean | undefined;
7208
+ description?: boolean | undefined;
7209
+ } | undefined;
7210
+ } | undefined;
7211
+ }>;
7212
+ const suggestOptionsSchema: z.ZodObject<{
7213
+ /**
7214
+ * Options for searching places.
7215
+ * @property {boolean} [enabled] - Whether to search in places.
7216
+ */
7217
+ places: z.ZodOptional<z.ZodObject<{
7218
+ /** Enable searching by place name */
7219
+ enabled: z.ZodOptional<z.ZodBoolean>;
7220
+ }, "strip", z.ZodTypeAny, {
7221
+ enabled?: boolean | undefined;
7222
+ }, {
7223
+ enabled?: boolean | undefined;
7224
+ }>>;
7225
+ /**
7226
+ * Options for searching locations.
7227
+ * @property {boolean} [enabled] - Whether to search in locations.
7228
+ */
7229
+ enterpriseLocations: z.ZodOptional<z.ZodObject<{
7230
+ /** Enable searching by location name */
7231
+ enabled: z.ZodOptional<z.ZodBoolean>;
7232
+ }, "strip", z.ZodTypeAny, {
7233
+ enabled?: boolean | undefined;
7234
+ }, {
7235
+ enabled?: boolean | undefined;
7236
+ }>>;
7237
+ }, "strip", z.ZodTypeAny, {
7238
+ enterpriseLocations?: {
7239
+ enabled?: boolean | undefined;
7240
+ } | undefined;
7241
+ places?: {
7242
+ enabled?: boolean | undefined;
7243
+ } | undefined;
7244
+ }, {
7245
+ enterpriseLocations?: {
7246
+ enabled?: boolean | undefined;
7247
+ } | undefined;
7248
+ places?: {
7249
+ enabled?: boolean | undefined;
7250
+ } | undefined;
7251
+ }>;
7252
+ export type SearchOptions = z.infer<typeof searchOptionsSchema>;
7253
+ export type SuggestOptions = z.infer<typeof suggestOptionsSchema>;
7254
+ export { Suggestion, MatchInfo };
7255
+ }
7256
+
7257
+ declare module '@mappedin/mappedin-js/mappedin-js/src/search/external' {
7258
+ import type MapData from '@mappedin/mappedin-js/mappedin-js/src/map-data';
7259
+ import type { InternalSearch, SearchOptions, SuggestOptions } from '@mappedin/mappedin-js/mappedin-js/src/search/internal';
7260
+ import type { MapDataInternal } from '@mappedin/mappedin-js/mappedin-js/src/map-data-objects';
7261
+ export class Search {
7262
+ #private;
7263
+ /**
7264
+ * Whether the search is enabled.
7265
+ * @default false
7266
+ */
7267
+ enabled: boolean;
7268
+ constructor(mapData: MapData, mapDataInternal: MapDataInternal, { enabled }?: {
7269
+ enabled?: boolean;
7270
+ });
7271
+ /**
7272
+ * Searches for places, locations, and categories.
7273
+ * @param term - The search term.
7274
+ * @param options - The search options.
7275
+ * @returns The search results.
7276
+ * @example
7277
+ * ```ts
7278
+ * const results = await search.query('Coffee Shop');
7279
+ * console.log(results.locations);
7280
+ * ```
7281
+ */
7282
+ query(term: string, options?: SearchOptions): ReturnType<typeof InternalSearch.prototype.search>;
7283
+ /**
7284
+ * Suggests the names of places, locations, and categories.
7285
+ * @param term - The search term.
7286
+ * @param options - The suggest options.
7287
+ * @returns The search suggestions.
7288
+ * @example
7289
+ * ```ts
7290
+ * const suggestions = await search.suggest('Coffee');
7291
+ * console.log(suggestions);
7292
+ * ```
7293
+ */
7294
+ suggest(term: string, options?: SuggestOptions): Promise<import("minisearch").Suggestion[]>;
7295
+ /**
7296
+ * Enables the search.
7297
+ */
7298
+ enable(): Promise<void>;
7299
+ }
7300
+ export type SearchState = {
7301
+ /**
7302
+ * Whether the search is enabled.
7303
+ */
7304
+ enabled: boolean;
7305
+ };
7306
+ }
7307
+
6911
7308
  declare module '@mappedin/mappedin-js/mappedin-js/src/analytics/customer' {
6912
7309
  /**
6913
7310
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
@@ -8293,7 +8690,7 @@ declare module '@mappedin/mappedin-js/geojson/src/entities/utils' {
8293
8690
  export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
8294
8691
  export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
8295
8692
  export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
8296
- export function updateAltitude(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: number): void;
8693
+ export function updateAltitude(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: number): boolean;
8297
8694
  export function updateOutline(entity: Geometry3DTypes, update?: boolean): boolean;
8298
8695
  }
8299
8696
 
@@ -16876,8 +17273,10 @@ declare module '@mappedin/mappedin-js/geojson/src/systems/path/system' {
16876
17273
  export class PathSystem extends PubSub<{
16877
17274
  'animate:path': undefined;
16878
17275
  }> {
17276
+ altitudeDirty: boolean;
16879
17277
  convertTo3DMapPosition: RendererCore['convertTo3DMapPosition'];
16880
- constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
17278
+ getParentContainer: RendererCore['getParentContainer'];
17279
+ constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition'], getParentContainer: RendererCore['getParentContainer']);
16881
17280
  update(minZoomAltitude: number, maxZoomAltitude: number, currentZoomAltitude: number): void;
16882
17281
  }
16883
17282
  }