venue-js 1.2.0-next.7 → 1.2.0-next.9

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/dist/index.d.mts CHANGED
@@ -3,15 +3,16 @@ export { QueryObserver } from '@tanstack/query-core';
3
3
  import * as geojson from 'geojson';
4
4
  import { Position, Geometry, GeoJsonProperties, Feature, Point, Polygon, MultiPolygon, LineString, GeometryCollection } from 'geojson';
5
5
  import * as maptalks_dist_core_Class from 'maptalks/dist/core/Class';
6
- import * as maptalks from 'maptalks-gl';
6
+ import * as maptalks$1 from 'maptalks-gl';
7
7
  import { Map } from 'maptalks-gl';
8
8
  import { BaseObject, ThreeLayer } from 'maptalks.three';
9
- import { ExtrudePolygonOptionType } from 'maptalks.three/dist/type';
9
+ import * as maptalks from 'maptalks';
10
+ import { Extent, Coordinate, Marker, ui, LineString as LineString$1, Polygon as Polygon$1, MultiPolygon as MultiPolygon$1, MultiLineString } from 'maptalks';
11
+ import { BaseObjectOptionType, ExtrudePolygonOptionType } from 'maptalks.three/dist/type';
10
12
  import { PolygonOptionsType } from 'maptalks/dist/geometry/Polygon';
11
13
  import { LineStringOptionsType } from 'maptalks/dist/geometry/LineString';
12
- import { Extent, Marker, ui, LineString as LineString$1, Polygon as Polygon$1, MultiPolygon as MultiPolygon$1, MultiLineString } from 'maptalks';
13
14
  import { MapViewType, MapAnimationOptionsType, MapPaddingType } from 'maptalks/dist/map/Map';
14
- import { SpriteMaterial, AmbientLight, DirectionalLight } from 'three';
15
+ import { SpriteMaterial } from 'three';
15
16
 
16
17
  type Id = string;
17
18
  type MediaFile = {
@@ -182,6 +183,7 @@ type OccupantProperties = EntityTimestamps & {
182
183
  kiosk_ids: Id[];
183
184
  unit_ids: Id[];
184
185
  website_link: string | null;
186
+ show_name_on_all_units: boolean;
185
187
  };
186
188
  type OccupantFeature = ImdfFeature<OccupantGeometry, OccupantProperties>;
187
189
  type OpeningGeometry = LineString;
@@ -532,10 +534,13 @@ type OccupantFeaturePopulated = OccupantFeature & {
532
534
  * [IMDF] Occupant's position
533
535
  */
534
536
  anchor: AnchorFeaturePopulated;
537
+ ordinal: number;
535
538
  /**
536
539
  * [venue.in.th] Occupant's category
537
540
  */
538
541
  local_categories: TaxonomyFeaturePopulated[];
542
+ unit?: UnitFeaturePopulated;
543
+ kiosk?: KioskFeaturePopulated;
539
544
  /**
540
545
  * [venue.in.th] Bind correlation between units on an occupant,
541
546
  * which will be used for highlighting in the floor plan and
@@ -712,8 +717,87 @@ declare const safeFetchFeature: <T extends FeatureType = FeatureType>(featureTyp
712
717
  baseUrl: string;
713
718
  }) => Promise<FeatureResponseMap[T][]>;
714
719
 
720
+ /**
721
+ * Checks if a point is a valid coordinate pair.
722
+ *
723
+ * @param point - The point to be checked.
724
+ * @return True if the point is a valid coordinate pair, false otherwise.
725
+ */
726
+ declare const isValidCoordinate: (point: Position) => boolean;
727
+ /**
728
+ * Checks if an input represents a valid polygon, which may include holes.
729
+ * The input can be a single array of coordinates for simple polygons, or
730
+ * an array of arrays of coordinates for polygons with holes.
731
+ *
732
+ * @param polygon - The input representing a polygon.
733
+ * @return True if the polygon is valid, false otherwise.
734
+ */
735
+ declare const isValidPolygonCoordinates: (polygon: Position[] | Position[][]) => boolean;
736
+ /**
737
+ * Checks if an array of polygons forms a valid MultiPolygon.
738
+ *
739
+ * @param multipolygon - The array of polygons.
740
+ * @return True if the multipolygon is valid, false otherwise.
741
+ */
742
+ declare const isValidMultiPolygonCoordinates: (multipolygon: Position[][][]) => boolean;
743
+ /**
744
+ * Checks if a set of points forms a valid LineString.
745
+ * A valid LineString must have at least two points, each point must be a valid coordinate,
746
+ * and it should not form a closed loop.
747
+ *
748
+ * @param lineString - The array of points representing a LineString.
749
+ * @return True if the LineString is valid, false otherwise.
750
+ */
751
+ declare const isValidLineStringCoordinates: (lineString: Position[]) => boolean;
752
+ declare const isValidMultiPolygon: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
753
+ declare const isValidPolygon: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
754
+ declare const isValidLineString: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
755
+ declare const isValidPoint: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
756
+
757
+ declare function matchFilter(value: Value | Value[], filter: Filter): boolean;
758
+ declare function matchFilters<T extends Record<string, any>>(item: T, filters: Filters): boolean;
759
+
760
+ declare const getOccupantMainLocation: (occupant: OccupantFeaturePopulated) => UnitFeaturePopulated | KioskFeaturePopulated;
761
+ declare const getOccupantCorrelatedLocations: (occupant: OccupantFeaturePopulated) => Array<UnitFeaturePopulated | KioskFeaturePopulated>;
762
+ type OccupantMarkerPlacementType = 'ONCE_PER_LEVEL' | 'ALL_LOCATIONS';
763
+ declare const getOccupantMarkerLocations: (occupant: OccupantFeaturePopulated, options?: {
764
+ type: OccupantMarkerPlacementType;
765
+ }) => Array<UnitFeaturePopulated | KioskFeaturePopulated>;
766
+
767
+ type occupantHelper_OccupantMarkerPlacementType = OccupantMarkerPlacementType;
768
+ declare const occupantHelper_getOccupantCorrelatedLocations: typeof getOccupantCorrelatedLocations;
769
+ declare const occupantHelper_getOccupantMainLocation: typeof getOccupantMainLocation;
770
+ declare const occupantHelper_getOccupantMarkerLocations: typeof getOccupantMarkerLocations;
771
+ declare namespace occupantHelper {
772
+ export { type occupantHelper_OccupantMarkerPlacementType as OccupantMarkerPlacementType, occupantHelper_getOccupantCorrelatedLocations as getOccupantCorrelatedLocations, occupantHelper_getOccupantMainLocation as getOccupantMainLocation, occupantHelper_getOccupantMarkerLocations as getOccupantMarkerLocations };
773
+ }
774
+
715
775
  declare const getDataClient: (options: VenueClientOptions) => VenueDataClient;
716
776
 
777
+ type TextMarkerOptions = BaseObjectOptionType & {
778
+ text?: string;
779
+ textAlign?: CanvasTextAlign;
780
+ color?: CanvasFillStrokeStyles["fillStyle"];
781
+ fontFamily?: string;
782
+ fontSize?: number;
783
+ fontWeight?: number;
784
+ background?: CanvasFillStrokeStyles["fillStyle"];
785
+ lineHeight?: number;
786
+ strokeColor?: CanvasFillStrokeStyles["strokeStyle"];
787
+ strokeWidth?: number;
788
+ strokeStyle?: CanvasLineJoin;
789
+ padding?: number;
790
+ maxWidth?: number;
791
+ scale?: number;
792
+ altitude?: number;
793
+ bottomHeight?: number;
794
+ opacity?: number | {
795
+ stops: Stop[];
796
+ };
797
+ };
798
+
799
+ type Stop = [zoom: number, value: number];
800
+ type MapElement = maptalks.Geometry | BaseObject;
717
801
  /** 2D */
718
802
  type TypeRenderOptions<TOptionsType> = {
719
803
  default: TOptionsType;
@@ -747,10 +831,15 @@ type RendererManagerOptions = BaseRenderManagerOptions & {
747
831
  type: "3D";
748
832
  elements: Element3DRendererOptions;
749
833
  };
834
+ type HighlightElementOptions = {
835
+ reset: boolean;
836
+ };
837
+
838
+ type AnyMarkerOptions = TextMarkerOptions;
750
839
 
751
840
  declare class RendererManager extends EventTarget {
752
841
  #private;
753
- map: maptalks.Map;
842
+ map: maptalks$1.Map;
754
843
  options: RendererManagerOptions;
755
844
  /** Elements: Responsible for converting feature info elements and add to map */
756
845
  private elementRenderer;
@@ -760,17 +849,22 @@ declare class RendererManager extends EventTarget {
760
849
  private currentOrdinals;
761
850
  private markersMap;
762
851
  private markersByOrdinal;
763
- constructor(map: maptalks.Map, dataClient: VenueDataClient, options: RendererManagerOptions);
764
- getElementsByOrdinal: (ordinal: number) => BaseObject[] | maptalks.Geometry[];
765
- getMarkersByOrdinal: (ordinal: number) => BaseObject[] | maptalks.ui.UIMarker[];
852
+ private highlightControllers;
853
+ constructor(map: maptalks$1.Map, dataClient: VenueDataClient, options: RendererManagerOptions);
854
+ set onClickElement(func: any);
855
+ handleClickElement: (e: any) => void;
856
+ getElementsByOrdinal: (ordinal: number) => MapElement[];
766
857
  addElementsToManager: (id: any, elements: any, ordinal: any) => void;
767
- addMarkersToManager: (id: any, markers: any, ordinal: any) => void;
768
858
  changeLevelByOrdinal(targetOrdinal: null | number | number[]): void;
859
+ highlightElements: (elemIds: string[], options?: HighlightElementOptions) => void;
860
+ clearHighlightElements: () => void;
769
861
  /**
770
862
  * ========================================================================
771
863
  * Markers
772
864
  * ======================================================================== */
773
- createMarker(coordinate: Position, ordinal: number, text: string, options: any): void;
865
+ _getMarkersByOrdinal: (ordinal: number) => BaseObject[] | maptalks$1.ui.UIMarker[];
866
+ _addMarkersToManager: (id: any, markers: any, ordinal: any) => void;
867
+ createMarker(coordinate: Position, ordinal: number, text: string, options: AnyMarkerOptions): void;
774
868
  clearMarkers(): void;
775
869
  }
776
870
 
@@ -804,6 +898,7 @@ interface IndoorMapOptions {
804
898
  pixelRatio?: number;
805
899
  locale?: string;
806
900
  }
901
+ type AmenityHighlightMode = "2DMarker";
807
902
  type SymbolSet = string | null;
808
903
  interface IHighlightOptions {
809
904
  symbolSet?: SymbolSet;
@@ -816,6 +911,72 @@ interface ISetHighlightElementIdsOptions {
816
911
  highlight3DOptions?: IHighlightOptions;
817
912
  highlight2DOptions?: ISetHighlight2DElementIdsOptions;
818
913
  }
914
+ interface IMapExtrudeConfig {
915
+ height: number;
916
+ category: string;
917
+ }
918
+ interface ILightConfig {
919
+ ambientLight: IMapLightConfig;
920
+ directionalLight: IMapLightConfig;
921
+ }
922
+ interface IMapLightConfig {
923
+ color: string;
924
+ position?: number[];
925
+ intensity: number;
926
+ }
927
+ interface IExtrudeConfig {
928
+ kiosk: IMapExtrudeConfig[];
929
+ unit: IMapExtrudeConfig[];
930
+ }
931
+ interface IShortestPathConfig {
932
+ resolution: number;
933
+ }
934
+ interface IAllVenuesViewConfig {
935
+ zoom?: number;
936
+ pitch?: number;
937
+ center?: Coordinate;
938
+ bearing?: number;
939
+ }
940
+ interface IMapAnimation {
941
+ [k: string]: {
942
+ enable?: boolean;
943
+ speed?: number;
944
+ };
945
+ }
946
+ interface IUnitDistanceModifier {
947
+ [k: string]: number;
948
+ }
949
+ type IGraphOptions = {
950
+ baseDistance?: number;
951
+ multiplier?: number;
952
+ };
953
+ type IVerticalGraphOptions = IGraphOptions & {
954
+ scaleDistanceByLevel?: boolean;
955
+ };
956
+ interface IGraphFeatureOptions {
957
+ traversal?: IUnitDistanceModifier;
958
+ escalator?: IGraphOptions;
959
+ ramp?: IGraphOptions;
960
+ elevator?: IGraphOptions;
961
+ stairs?: IVerticalGraphOptions;
962
+ }
963
+ interface IMapConfig {
964
+ amenity_highlight_mode?: AmenityHighlightMode;
965
+ default_zoom?: number;
966
+ max_zoom?: number;
967
+ min_zoom?: number;
968
+ kiosk_pixel_ratio?: number;
969
+ mobile_pixel_ratio?: number;
970
+ extrude?: IExtrudeConfig;
971
+ light?: ILightConfig;
972
+ shortest_path?: IShortestPathConfig;
973
+ text_marker_type?: "marker" | "ui-marker";
974
+ extent_features_scale_factor?: number;
975
+ extent_scale_map_view_factor?: number;
976
+ all_venues_view?: IAllVenuesViewConfig;
977
+ animations?: IMapAnimation[];
978
+ prepare_steps?: IGraphFeatureOptions;
979
+ }
819
980
 
820
981
  declare class IndoorMap extends EventTarget {
821
982
  #private;
@@ -1032,11 +1193,7 @@ declare function styledFeatureGenerator(mapTheme: any): {
1032
1193
  create3DAmenityMarker: (feature: any, threeLayer: any, config: any) => SpriteMarker;
1033
1194
  create3DOccupantAmenityMarker: (feature: any, threeLayer: any, config: any) => SpriteMarker;
1034
1195
  create3DOpeningMarker: (feature: any, threeLayer: any, config: any) => SpriteMarker;
1035
- createVenue3DModel: (venue: any, threeLayer: any) => Promise<any[]>;
1036
- create3DFixture: (fixture: any, threeLayer: any) => Promise<any[]>;
1037
1196
  createExtrudedUnit: (unit: any, threeLayer: any, options: any) => any;
1038
- createAmbientLight: (config: any) => AmbientLight;
1039
- createDirectionalLight: (config: any) => DirectionalLight;
1040
1197
  };
1041
1198
  declare function getLocationByAmenity(feature: any): any;
1042
1199
  declare function getLocationByOccupant(feature: any): any;
@@ -1127,4 +1284,4 @@ declare const VENUE_EVENTS: {
1127
1284
  VENUE_MOVEINTOVIEW: string;
1128
1285
  };
1129
1286
 
1130
- export { ALL_FEATURE_TYPES, ALWAYS_VISIBLE_FEATURE_TYPES, type AmenityFeature, type AmenityFeaturePopulated, type AmenityGeometry, type AmenityProperties, type AnchorFeature, type AnchorFeaturePopulated, type AnchorGeometry, type AnchorProperties, BASE_LAYER_NAME, DEFAULT_BASE_URL, DEFAULT_HIGHLIGHT_OPTIONS, DEFAULT_LOCALE, DEFAULT_SET_HIGHLIGHT_2DELEMENT_IDS_OPTIONS, DESTINATION_MARKER_ID, type DetailFeature, type DetailGeometry, type DetailProperties, type ElementFeature, type ElementGeometry, type ElementProperties, type EventFeature, type EventGeometry, type EventProperties, type FeaturePopulatedResponseMap, type FeatureQueryOptions, type FeatureResponseMap, type FeatureType, type FilterParams, type FindParams, type FixtureFeature, type FixtureFeaturePopulated, type FixtureGeometry, type FixtureProperties, GEOJSON_FEATURE_TYPES, HIGHLIGHT_LAYER_NAME, IMDF_FEATURE_TYPES, type Id, type ImdfFeature, IndoorMap, type InternalFilterByType, type InternalFindById, type KioskFeature, type KioskFeaturePopulated, type KioskGeometry, type KioskProperties, LAST_USER_LOCATION_ELEMENT_ID_PREFIX, LAYERS, LAYER_FEATURE_TYPE_OBJ, LAYER_OPTIONS, LOCALE_SYMBOL_KEY, type LabelFeature, type LabelGeometry, type LabelProperties, type LevelFeature, type LevelFeaturePopulated, type LevelGeometry, type LevelProperties, MARKER_LAYER_NAME, type Media, type MediaFile, type Model3d, NONIMDF_FEATURE_TYPES, ORIGIN_MARKER_ID, type OccupantFeature, type OccupantFeaturePopulated, type OccupantGeometry, type OccupantProperties, type OpeningFeature, type OpeningFeaturePopulated, type OpeningGeometry, type OpeningProperties, POI_MARKER_LAYER_NAME, type Page, type PolygonalFeature, type PopulatableFeatureType, type PopulatedParams, type PrivilegeFeature, type PrivilegeGeometry, type PrivilegeProperties, type PromotionFeature, type PromotionProperties, type RelationshipFeature, type RelationshipGeometry, type RelationshipProperties, type SectionFeature, type SectionFeaturePopulated, type SectionGeometry, type SectionProperties, type SponsoredContentFeature, type SponsoredContentLegacyType, type SponsoredContentPlacementType, type SponsoredContentStrapiV4ApiResponse, type TaxonomyFeature, type TaxonomyFeaturePopulated, type TaxonomyGeometry, type TaxonomyProperties, USER_LOCATION_ELEMENT_ID, USER_LOCATION_LAYER_NAME, type UnitFeature, type UnitFeaturePopulated, type UnitGeometry, type UnitProperties, VENUE_EVENTS, type VenueClientOptions, type VenueDataClient, type VenueFeature, type VenueFeaturePopulated, type VenueGeometry, type VenueProperties, createPolygonFromLineString, createSpriteMaterialByLabelSymbol, createStyledUIMarkerElement, defaultFeatureQueryOptionsMap, fetchDeliveryApi, fetchPreviewApi, getBearingBetweenPoints, getCenterFromGeometry, getDataClient, getExtrudeConfigByFeature, getFeatureByLocationId, getLocationByAmenity, getLocationByFeature, getLocationByOccupant, getLocationIdByFeature, getOrdinalByLocationId, getRelatedLocationIdsByFeature, getRelatedLocationsByAmenity, getRelatedLocationsByFeature, getRelatedLocationsByOccupant, getSuitablyValueBetweenBearings, isClickableFeature, safeFetchFeature, styledFeatureGenerator };
1287
+ export { ALL_FEATURE_TYPES, ALWAYS_VISIBLE_FEATURE_TYPES, type AmenityFeature, type AmenityFeaturePopulated, type AmenityGeometry, type AmenityProperties, type AnchorFeature, type AnchorFeaturePopulated, type AnchorGeometry, type AnchorProperties, BASE_LAYER_NAME, DEFAULT_BASE_URL, DEFAULT_HIGHLIGHT_OPTIONS, DEFAULT_LOCALE, DEFAULT_SET_HIGHLIGHT_2DELEMENT_IDS_OPTIONS, DESTINATION_MARKER_ID, type DetailFeature, type DetailGeometry, type DetailProperties, type ElementFeature, type ElementGeometry, type ElementProperties, type EventFeature, type EventGeometry, type EventProperties, type FeaturePopulatedResponseMap, type FeatureQueryOptions, type FeatureResponseMap, type FeatureType, type FilterParams, type FindParams, type FixtureFeature, type FixtureFeaturePopulated, type FixtureGeometry, type FixtureProperties, GEOJSON_FEATURE_TYPES, HIGHLIGHT_LAYER_NAME, type IAllVenuesViewConfig, type IExtrudeConfig, type IGraphFeatureOptions, type IGraphOptions, type IHighlightOptions, IMDF_FEATURE_TYPES, type IMapAnimation, type IMapConfig, type IMapExtrudeConfig, type ISetHighlight2DElementIdsOptions, type ISetHighlightElementIdsOptions, type IUnitDistanceModifier, type IVerticalGraphOptions, type Id, type ImdfFeature, IndoorMap, type IndoorMapOptions, type InternalFilterByType, type InternalFindById, type KioskFeature, type KioskFeaturePopulated, type KioskGeometry, type KioskProperties, LAST_USER_LOCATION_ELEMENT_ID_PREFIX, LAYERS, LAYER_FEATURE_TYPE_OBJ, LAYER_OPTIONS, LOCALE_SYMBOL_KEY, type LabelFeature, type LabelGeometry, type LabelProperties, type LevelFeature, type LevelFeaturePopulated, type LevelGeometry, type LevelProperties, MARKER_LAYER_NAME, type Media, type MediaFile, type Model3d, NONIMDF_FEATURE_TYPES, ORIGIN_MARKER_ID, type OccupantFeature, type OccupantFeaturePopulated, type OccupantGeometry, occupantHelper as OccupantHelpers, type OccupantProperties, type OpeningFeature, type OpeningFeaturePopulated, type OpeningGeometry, type OpeningProperties, POI_MARKER_LAYER_NAME, type Page, type PolygonalFeature, type PopulatableFeatureType, type PopulatedParams, type PrivilegeFeature, type PrivilegeGeometry, type PrivilegeProperties, type PromotionFeature, type PromotionProperties, type RelationshipFeature, type RelationshipGeometry, type RelationshipProperties, type SectionFeature, type SectionFeaturePopulated, type SectionGeometry, type SectionProperties, type SponsoredContentFeature, type SponsoredContentLegacyType, type SponsoredContentPlacementType, type SponsoredContentStrapiV4ApiResponse, type SymbolSet, type TaxonomyFeature, type TaxonomyFeaturePopulated, type TaxonomyGeometry, type TaxonomyProperties, USER_LOCATION_ELEMENT_ID, USER_LOCATION_LAYER_NAME, type UnitFeature, type UnitFeaturePopulated, type UnitGeometry, type UnitProperties, VENUE_EVENTS, type VenueClientOptions, type VenueDataClient, type VenueFeature, type VenueFeaturePopulated, type VenueGeometry, type VenueProperties, createPolygonFromLineString, createSpriteMaterialByLabelSymbol, createStyledUIMarkerElement, defaultFeatureQueryOptionsMap, fetchDeliveryApi, fetchPreviewApi, getBearingBetweenPoints, getCenterFromGeometry, getDataClient, getExtrudeConfigByFeature, getFeatureByLocationId, getLocationByAmenity, getLocationByFeature, getLocationByOccupant, getLocationIdByFeature, getOrdinalByLocationId, getRelatedLocationIdsByFeature, getRelatedLocationsByAmenity, getRelatedLocationsByFeature, getRelatedLocationsByOccupant, getSuitablyValueBetweenBearings, isClickableFeature, isValidCoordinate, isValidLineString, isValidLineStringCoordinates, isValidMultiPolygon, isValidMultiPolygonCoordinates, isValidPoint, isValidPolygon, isValidPolygonCoordinates, matchFilter, matchFilters, safeFetchFeature, styledFeatureGenerator };
package/dist/index.d.ts CHANGED
@@ -3,15 +3,16 @@ export { QueryObserver } from '@tanstack/query-core';
3
3
  import * as geojson from 'geojson';
4
4
  import { Position, Geometry, GeoJsonProperties, Feature, Point, Polygon, MultiPolygon, LineString, GeometryCollection } from 'geojson';
5
5
  import * as maptalks_dist_core_Class from 'maptalks/dist/core/Class';
6
- import * as maptalks from 'maptalks-gl';
6
+ import * as maptalks$1 from 'maptalks-gl';
7
7
  import { Map } from 'maptalks-gl';
8
8
  import { BaseObject, ThreeLayer } from 'maptalks.three';
9
- import { ExtrudePolygonOptionType } from 'maptalks.three/dist/type';
9
+ import * as maptalks from 'maptalks';
10
+ import { Extent, Coordinate, Marker, ui, LineString as LineString$1, Polygon as Polygon$1, MultiPolygon as MultiPolygon$1, MultiLineString } from 'maptalks';
11
+ import { BaseObjectOptionType, ExtrudePolygonOptionType } from 'maptalks.three/dist/type';
10
12
  import { PolygonOptionsType } from 'maptalks/dist/geometry/Polygon';
11
13
  import { LineStringOptionsType } from 'maptalks/dist/geometry/LineString';
12
- import { Extent, Marker, ui, LineString as LineString$1, Polygon as Polygon$1, MultiPolygon as MultiPolygon$1, MultiLineString } from 'maptalks';
13
14
  import { MapViewType, MapAnimationOptionsType, MapPaddingType } from 'maptalks/dist/map/Map';
14
- import { SpriteMaterial, AmbientLight, DirectionalLight } from 'three';
15
+ import { SpriteMaterial } from 'three';
15
16
 
16
17
  type Id = string;
17
18
  type MediaFile = {
@@ -182,6 +183,7 @@ type OccupantProperties = EntityTimestamps & {
182
183
  kiosk_ids: Id[];
183
184
  unit_ids: Id[];
184
185
  website_link: string | null;
186
+ show_name_on_all_units: boolean;
185
187
  };
186
188
  type OccupantFeature = ImdfFeature<OccupantGeometry, OccupantProperties>;
187
189
  type OpeningGeometry = LineString;
@@ -532,10 +534,13 @@ type OccupantFeaturePopulated = OccupantFeature & {
532
534
  * [IMDF] Occupant's position
533
535
  */
534
536
  anchor: AnchorFeaturePopulated;
537
+ ordinal: number;
535
538
  /**
536
539
  * [venue.in.th] Occupant's category
537
540
  */
538
541
  local_categories: TaxonomyFeaturePopulated[];
542
+ unit?: UnitFeaturePopulated;
543
+ kiosk?: KioskFeaturePopulated;
539
544
  /**
540
545
  * [venue.in.th] Bind correlation between units on an occupant,
541
546
  * which will be used for highlighting in the floor plan and
@@ -712,8 +717,87 @@ declare const safeFetchFeature: <T extends FeatureType = FeatureType>(featureTyp
712
717
  baseUrl: string;
713
718
  }) => Promise<FeatureResponseMap[T][]>;
714
719
 
720
+ /**
721
+ * Checks if a point is a valid coordinate pair.
722
+ *
723
+ * @param point - The point to be checked.
724
+ * @return True if the point is a valid coordinate pair, false otherwise.
725
+ */
726
+ declare const isValidCoordinate: (point: Position) => boolean;
727
+ /**
728
+ * Checks if an input represents a valid polygon, which may include holes.
729
+ * The input can be a single array of coordinates for simple polygons, or
730
+ * an array of arrays of coordinates for polygons with holes.
731
+ *
732
+ * @param polygon - The input representing a polygon.
733
+ * @return True if the polygon is valid, false otherwise.
734
+ */
735
+ declare const isValidPolygonCoordinates: (polygon: Position[] | Position[][]) => boolean;
736
+ /**
737
+ * Checks if an array of polygons forms a valid MultiPolygon.
738
+ *
739
+ * @param multipolygon - The array of polygons.
740
+ * @return True if the multipolygon is valid, false otherwise.
741
+ */
742
+ declare const isValidMultiPolygonCoordinates: (multipolygon: Position[][][]) => boolean;
743
+ /**
744
+ * Checks if a set of points forms a valid LineString.
745
+ * A valid LineString must have at least two points, each point must be a valid coordinate,
746
+ * and it should not form a closed loop.
747
+ *
748
+ * @param lineString - The array of points representing a LineString.
749
+ * @return True if the LineString is valid, false otherwise.
750
+ */
751
+ declare const isValidLineStringCoordinates: (lineString: Position[]) => boolean;
752
+ declare const isValidMultiPolygon: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
753
+ declare const isValidPolygon: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
754
+ declare const isValidLineString: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
755
+ declare const isValidPoint: (geometry: Exclude<Geometry, GeometryCollection>) => boolean;
756
+
757
+ declare function matchFilter(value: Value | Value[], filter: Filter): boolean;
758
+ declare function matchFilters<T extends Record<string, any>>(item: T, filters: Filters): boolean;
759
+
760
+ declare const getOccupantMainLocation: (occupant: OccupantFeaturePopulated) => UnitFeaturePopulated | KioskFeaturePopulated;
761
+ declare const getOccupantCorrelatedLocations: (occupant: OccupantFeaturePopulated) => Array<UnitFeaturePopulated | KioskFeaturePopulated>;
762
+ type OccupantMarkerPlacementType = 'ONCE_PER_LEVEL' | 'ALL_LOCATIONS';
763
+ declare const getOccupantMarkerLocations: (occupant: OccupantFeaturePopulated, options?: {
764
+ type: OccupantMarkerPlacementType;
765
+ }) => Array<UnitFeaturePopulated | KioskFeaturePopulated>;
766
+
767
+ type occupantHelper_OccupantMarkerPlacementType = OccupantMarkerPlacementType;
768
+ declare const occupantHelper_getOccupantCorrelatedLocations: typeof getOccupantCorrelatedLocations;
769
+ declare const occupantHelper_getOccupantMainLocation: typeof getOccupantMainLocation;
770
+ declare const occupantHelper_getOccupantMarkerLocations: typeof getOccupantMarkerLocations;
771
+ declare namespace occupantHelper {
772
+ export { type occupantHelper_OccupantMarkerPlacementType as OccupantMarkerPlacementType, occupantHelper_getOccupantCorrelatedLocations as getOccupantCorrelatedLocations, occupantHelper_getOccupantMainLocation as getOccupantMainLocation, occupantHelper_getOccupantMarkerLocations as getOccupantMarkerLocations };
773
+ }
774
+
715
775
  declare const getDataClient: (options: VenueClientOptions) => VenueDataClient;
716
776
 
777
+ type TextMarkerOptions = BaseObjectOptionType & {
778
+ text?: string;
779
+ textAlign?: CanvasTextAlign;
780
+ color?: CanvasFillStrokeStyles["fillStyle"];
781
+ fontFamily?: string;
782
+ fontSize?: number;
783
+ fontWeight?: number;
784
+ background?: CanvasFillStrokeStyles["fillStyle"];
785
+ lineHeight?: number;
786
+ strokeColor?: CanvasFillStrokeStyles["strokeStyle"];
787
+ strokeWidth?: number;
788
+ strokeStyle?: CanvasLineJoin;
789
+ padding?: number;
790
+ maxWidth?: number;
791
+ scale?: number;
792
+ altitude?: number;
793
+ bottomHeight?: number;
794
+ opacity?: number | {
795
+ stops: Stop[];
796
+ };
797
+ };
798
+
799
+ type Stop = [zoom: number, value: number];
800
+ type MapElement = maptalks.Geometry | BaseObject;
717
801
  /** 2D */
718
802
  type TypeRenderOptions<TOptionsType> = {
719
803
  default: TOptionsType;
@@ -747,10 +831,15 @@ type RendererManagerOptions = BaseRenderManagerOptions & {
747
831
  type: "3D";
748
832
  elements: Element3DRendererOptions;
749
833
  };
834
+ type HighlightElementOptions = {
835
+ reset: boolean;
836
+ };
837
+
838
+ type AnyMarkerOptions = TextMarkerOptions;
750
839
 
751
840
  declare class RendererManager extends EventTarget {
752
841
  #private;
753
- map: maptalks.Map;
842
+ map: maptalks$1.Map;
754
843
  options: RendererManagerOptions;
755
844
  /** Elements: Responsible for converting feature info elements and add to map */
756
845
  private elementRenderer;
@@ -760,17 +849,22 @@ declare class RendererManager extends EventTarget {
760
849
  private currentOrdinals;
761
850
  private markersMap;
762
851
  private markersByOrdinal;
763
- constructor(map: maptalks.Map, dataClient: VenueDataClient, options: RendererManagerOptions);
764
- getElementsByOrdinal: (ordinal: number) => BaseObject[] | maptalks.Geometry[];
765
- getMarkersByOrdinal: (ordinal: number) => BaseObject[] | maptalks.ui.UIMarker[];
852
+ private highlightControllers;
853
+ constructor(map: maptalks$1.Map, dataClient: VenueDataClient, options: RendererManagerOptions);
854
+ set onClickElement(func: any);
855
+ handleClickElement: (e: any) => void;
856
+ getElementsByOrdinal: (ordinal: number) => MapElement[];
766
857
  addElementsToManager: (id: any, elements: any, ordinal: any) => void;
767
- addMarkersToManager: (id: any, markers: any, ordinal: any) => void;
768
858
  changeLevelByOrdinal(targetOrdinal: null | number | number[]): void;
859
+ highlightElements: (elemIds: string[], options?: HighlightElementOptions) => void;
860
+ clearHighlightElements: () => void;
769
861
  /**
770
862
  * ========================================================================
771
863
  * Markers
772
864
  * ======================================================================== */
773
- createMarker(coordinate: Position, ordinal: number, text: string, options: any): void;
865
+ _getMarkersByOrdinal: (ordinal: number) => BaseObject[] | maptalks$1.ui.UIMarker[];
866
+ _addMarkersToManager: (id: any, markers: any, ordinal: any) => void;
867
+ createMarker(coordinate: Position, ordinal: number, text: string, options: AnyMarkerOptions): void;
774
868
  clearMarkers(): void;
775
869
  }
776
870
 
@@ -804,6 +898,7 @@ interface IndoorMapOptions {
804
898
  pixelRatio?: number;
805
899
  locale?: string;
806
900
  }
901
+ type AmenityHighlightMode = "2DMarker";
807
902
  type SymbolSet = string | null;
808
903
  interface IHighlightOptions {
809
904
  symbolSet?: SymbolSet;
@@ -816,6 +911,72 @@ interface ISetHighlightElementIdsOptions {
816
911
  highlight3DOptions?: IHighlightOptions;
817
912
  highlight2DOptions?: ISetHighlight2DElementIdsOptions;
818
913
  }
914
+ interface IMapExtrudeConfig {
915
+ height: number;
916
+ category: string;
917
+ }
918
+ interface ILightConfig {
919
+ ambientLight: IMapLightConfig;
920
+ directionalLight: IMapLightConfig;
921
+ }
922
+ interface IMapLightConfig {
923
+ color: string;
924
+ position?: number[];
925
+ intensity: number;
926
+ }
927
+ interface IExtrudeConfig {
928
+ kiosk: IMapExtrudeConfig[];
929
+ unit: IMapExtrudeConfig[];
930
+ }
931
+ interface IShortestPathConfig {
932
+ resolution: number;
933
+ }
934
+ interface IAllVenuesViewConfig {
935
+ zoom?: number;
936
+ pitch?: number;
937
+ center?: Coordinate;
938
+ bearing?: number;
939
+ }
940
+ interface IMapAnimation {
941
+ [k: string]: {
942
+ enable?: boolean;
943
+ speed?: number;
944
+ };
945
+ }
946
+ interface IUnitDistanceModifier {
947
+ [k: string]: number;
948
+ }
949
+ type IGraphOptions = {
950
+ baseDistance?: number;
951
+ multiplier?: number;
952
+ };
953
+ type IVerticalGraphOptions = IGraphOptions & {
954
+ scaleDistanceByLevel?: boolean;
955
+ };
956
+ interface IGraphFeatureOptions {
957
+ traversal?: IUnitDistanceModifier;
958
+ escalator?: IGraphOptions;
959
+ ramp?: IGraphOptions;
960
+ elevator?: IGraphOptions;
961
+ stairs?: IVerticalGraphOptions;
962
+ }
963
+ interface IMapConfig {
964
+ amenity_highlight_mode?: AmenityHighlightMode;
965
+ default_zoom?: number;
966
+ max_zoom?: number;
967
+ min_zoom?: number;
968
+ kiosk_pixel_ratio?: number;
969
+ mobile_pixel_ratio?: number;
970
+ extrude?: IExtrudeConfig;
971
+ light?: ILightConfig;
972
+ shortest_path?: IShortestPathConfig;
973
+ text_marker_type?: "marker" | "ui-marker";
974
+ extent_features_scale_factor?: number;
975
+ extent_scale_map_view_factor?: number;
976
+ all_venues_view?: IAllVenuesViewConfig;
977
+ animations?: IMapAnimation[];
978
+ prepare_steps?: IGraphFeatureOptions;
979
+ }
819
980
 
820
981
  declare class IndoorMap extends EventTarget {
821
982
  #private;
@@ -1032,11 +1193,7 @@ declare function styledFeatureGenerator(mapTheme: any): {
1032
1193
  create3DAmenityMarker: (feature: any, threeLayer: any, config: any) => SpriteMarker;
1033
1194
  create3DOccupantAmenityMarker: (feature: any, threeLayer: any, config: any) => SpriteMarker;
1034
1195
  create3DOpeningMarker: (feature: any, threeLayer: any, config: any) => SpriteMarker;
1035
- createVenue3DModel: (venue: any, threeLayer: any) => Promise<any[]>;
1036
- create3DFixture: (fixture: any, threeLayer: any) => Promise<any[]>;
1037
1196
  createExtrudedUnit: (unit: any, threeLayer: any, options: any) => any;
1038
- createAmbientLight: (config: any) => AmbientLight;
1039
- createDirectionalLight: (config: any) => DirectionalLight;
1040
1197
  };
1041
1198
  declare function getLocationByAmenity(feature: any): any;
1042
1199
  declare function getLocationByOccupant(feature: any): any;
@@ -1127,4 +1284,4 @@ declare const VENUE_EVENTS: {
1127
1284
  VENUE_MOVEINTOVIEW: string;
1128
1285
  };
1129
1286
 
1130
- export { ALL_FEATURE_TYPES, ALWAYS_VISIBLE_FEATURE_TYPES, type AmenityFeature, type AmenityFeaturePopulated, type AmenityGeometry, type AmenityProperties, type AnchorFeature, type AnchorFeaturePopulated, type AnchorGeometry, type AnchorProperties, BASE_LAYER_NAME, DEFAULT_BASE_URL, DEFAULT_HIGHLIGHT_OPTIONS, DEFAULT_LOCALE, DEFAULT_SET_HIGHLIGHT_2DELEMENT_IDS_OPTIONS, DESTINATION_MARKER_ID, type DetailFeature, type DetailGeometry, type DetailProperties, type ElementFeature, type ElementGeometry, type ElementProperties, type EventFeature, type EventGeometry, type EventProperties, type FeaturePopulatedResponseMap, type FeatureQueryOptions, type FeatureResponseMap, type FeatureType, type FilterParams, type FindParams, type FixtureFeature, type FixtureFeaturePopulated, type FixtureGeometry, type FixtureProperties, GEOJSON_FEATURE_TYPES, HIGHLIGHT_LAYER_NAME, IMDF_FEATURE_TYPES, type Id, type ImdfFeature, IndoorMap, type InternalFilterByType, type InternalFindById, type KioskFeature, type KioskFeaturePopulated, type KioskGeometry, type KioskProperties, LAST_USER_LOCATION_ELEMENT_ID_PREFIX, LAYERS, LAYER_FEATURE_TYPE_OBJ, LAYER_OPTIONS, LOCALE_SYMBOL_KEY, type LabelFeature, type LabelGeometry, type LabelProperties, type LevelFeature, type LevelFeaturePopulated, type LevelGeometry, type LevelProperties, MARKER_LAYER_NAME, type Media, type MediaFile, type Model3d, NONIMDF_FEATURE_TYPES, ORIGIN_MARKER_ID, type OccupantFeature, type OccupantFeaturePopulated, type OccupantGeometry, type OccupantProperties, type OpeningFeature, type OpeningFeaturePopulated, type OpeningGeometry, type OpeningProperties, POI_MARKER_LAYER_NAME, type Page, type PolygonalFeature, type PopulatableFeatureType, type PopulatedParams, type PrivilegeFeature, type PrivilegeGeometry, type PrivilegeProperties, type PromotionFeature, type PromotionProperties, type RelationshipFeature, type RelationshipGeometry, type RelationshipProperties, type SectionFeature, type SectionFeaturePopulated, type SectionGeometry, type SectionProperties, type SponsoredContentFeature, type SponsoredContentLegacyType, type SponsoredContentPlacementType, type SponsoredContentStrapiV4ApiResponse, type TaxonomyFeature, type TaxonomyFeaturePopulated, type TaxonomyGeometry, type TaxonomyProperties, USER_LOCATION_ELEMENT_ID, USER_LOCATION_LAYER_NAME, type UnitFeature, type UnitFeaturePopulated, type UnitGeometry, type UnitProperties, VENUE_EVENTS, type VenueClientOptions, type VenueDataClient, type VenueFeature, type VenueFeaturePopulated, type VenueGeometry, type VenueProperties, createPolygonFromLineString, createSpriteMaterialByLabelSymbol, createStyledUIMarkerElement, defaultFeatureQueryOptionsMap, fetchDeliveryApi, fetchPreviewApi, getBearingBetweenPoints, getCenterFromGeometry, getDataClient, getExtrudeConfigByFeature, getFeatureByLocationId, getLocationByAmenity, getLocationByFeature, getLocationByOccupant, getLocationIdByFeature, getOrdinalByLocationId, getRelatedLocationIdsByFeature, getRelatedLocationsByAmenity, getRelatedLocationsByFeature, getRelatedLocationsByOccupant, getSuitablyValueBetweenBearings, isClickableFeature, safeFetchFeature, styledFeatureGenerator };
1287
+ export { ALL_FEATURE_TYPES, ALWAYS_VISIBLE_FEATURE_TYPES, type AmenityFeature, type AmenityFeaturePopulated, type AmenityGeometry, type AmenityProperties, type AnchorFeature, type AnchorFeaturePopulated, type AnchorGeometry, type AnchorProperties, BASE_LAYER_NAME, DEFAULT_BASE_URL, DEFAULT_HIGHLIGHT_OPTIONS, DEFAULT_LOCALE, DEFAULT_SET_HIGHLIGHT_2DELEMENT_IDS_OPTIONS, DESTINATION_MARKER_ID, type DetailFeature, type DetailGeometry, type DetailProperties, type ElementFeature, type ElementGeometry, type ElementProperties, type EventFeature, type EventGeometry, type EventProperties, type FeaturePopulatedResponseMap, type FeatureQueryOptions, type FeatureResponseMap, type FeatureType, type FilterParams, type FindParams, type FixtureFeature, type FixtureFeaturePopulated, type FixtureGeometry, type FixtureProperties, GEOJSON_FEATURE_TYPES, HIGHLIGHT_LAYER_NAME, type IAllVenuesViewConfig, type IExtrudeConfig, type IGraphFeatureOptions, type IGraphOptions, type IHighlightOptions, IMDF_FEATURE_TYPES, type IMapAnimation, type IMapConfig, type IMapExtrudeConfig, type ISetHighlight2DElementIdsOptions, type ISetHighlightElementIdsOptions, type IUnitDistanceModifier, type IVerticalGraphOptions, type Id, type ImdfFeature, IndoorMap, type IndoorMapOptions, type InternalFilterByType, type InternalFindById, type KioskFeature, type KioskFeaturePopulated, type KioskGeometry, type KioskProperties, LAST_USER_LOCATION_ELEMENT_ID_PREFIX, LAYERS, LAYER_FEATURE_TYPE_OBJ, LAYER_OPTIONS, LOCALE_SYMBOL_KEY, type LabelFeature, type LabelGeometry, type LabelProperties, type LevelFeature, type LevelFeaturePopulated, type LevelGeometry, type LevelProperties, MARKER_LAYER_NAME, type Media, type MediaFile, type Model3d, NONIMDF_FEATURE_TYPES, ORIGIN_MARKER_ID, type OccupantFeature, type OccupantFeaturePopulated, type OccupantGeometry, occupantHelper as OccupantHelpers, type OccupantProperties, type OpeningFeature, type OpeningFeaturePopulated, type OpeningGeometry, type OpeningProperties, POI_MARKER_LAYER_NAME, type Page, type PolygonalFeature, type PopulatableFeatureType, type PopulatedParams, type PrivilegeFeature, type PrivilegeGeometry, type PrivilegeProperties, type PromotionFeature, type PromotionProperties, type RelationshipFeature, type RelationshipGeometry, type RelationshipProperties, type SectionFeature, type SectionFeaturePopulated, type SectionGeometry, type SectionProperties, type SponsoredContentFeature, type SponsoredContentLegacyType, type SponsoredContentPlacementType, type SponsoredContentStrapiV4ApiResponse, type SymbolSet, type TaxonomyFeature, type TaxonomyFeaturePopulated, type TaxonomyGeometry, type TaxonomyProperties, USER_LOCATION_ELEMENT_ID, USER_LOCATION_LAYER_NAME, type UnitFeature, type UnitFeaturePopulated, type UnitGeometry, type UnitProperties, VENUE_EVENTS, type VenueClientOptions, type VenueDataClient, type VenueFeature, type VenueFeaturePopulated, type VenueGeometry, type VenueProperties, createPolygonFromLineString, createSpriteMaterialByLabelSymbol, createStyledUIMarkerElement, defaultFeatureQueryOptionsMap, fetchDeliveryApi, fetchPreviewApi, getBearingBetweenPoints, getCenterFromGeometry, getDataClient, getExtrudeConfigByFeature, getFeatureByLocationId, getLocationByAmenity, getLocationByFeature, getLocationByOccupant, getLocationIdByFeature, getOrdinalByLocationId, getRelatedLocationIdsByFeature, getRelatedLocationsByAmenity, getRelatedLocationsByFeature, getRelatedLocationsByOccupant, getSuitablyValueBetweenBearings, isClickableFeature, isValidCoordinate, isValidLineString, isValidLineStringCoordinates, isValidMultiPolygon, isValidMultiPolygonCoordinates, isValidPoint, isValidPolygon, isValidPolygonCoordinates, matchFilter, matchFilters, safeFetchFeature, styledFeatureGenerator };