@siemens/maps-ng 48.0.0-next.5

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/index.d.ts ADDED
@@ -0,0 +1,731 @@
1
+ import * as _siemens_element_translate_ng from '@siemens/element-translate-ng';
2
+ import * as _angular_core from '@angular/core';
3
+ import { ElementRef, Type, ViewContainerRef, TemplateRef, AfterViewInit, OnChanges, OnDestroy, AfterViewChecked, SimpleChanges } from '@angular/core';
4
+ import Map from 'ol/Map';
5
+ import Control from 'ol/control/Control';
6
+ import Overlay, { Positioning } from 'ol/Overlay';
7
+ import Feature, { FeatureLike } from 'ol/Feature';
8
+ import Point from 'ol/geom/Point';
9
+ import Layer from 'ol/layer/Layer';
10
+ import VectorLayer from 'ol/layer/Vector';
11
+ import Cluster from 'ol/source/Cluster';
12
+ import VectorSource from 'ol/source/Vector';
13
+ import { Style } from 'ol/style';
14
+ import { Coordinate } from 'ol/coordinate';
15
+ import MapBrowserEvent from 'ol/MapBrowserEvent';
16
+ import { StyleLike } from 'ol/style/Style';
17
+ import Select, { SelectEvent } from 'ol/interaction/Select';
18
+ export * from '@siemens/maps-ng/translate';
19
+
20
+ declare class SiMapTooltipComponent {
21
+ protected readonly content: _angular_core.Signal<ElementRef<any>>;
22
+ /**
23
+ * Cutoff text for tooltips, when cluster combines more than 4 features
24
+ *
25
+ * @defaultValue
26
+ * ```
27
+ * t(() =>$localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)
28
+ * ```
29
+ */
30
+ readonly moreText: _angular_core.InputSignal<_siemens_element_translate_ng.TranslatableString>;
31
+ /**
32
+ * Adds the maximum length of a string thats allowed in a tooltip and if its longer it cuts off the rest and adds 3 dots at the end.
33
+ * If set to -1, it will not cut off the string.
34
+ * @defaultValue 50
35
+ */
36
+ readonly maxLabelLength: _angular_core.InputSignal<number>;
37
+ get nativeElement(): HTMLElement;
38
+ protected readonly hiddenEntries: _angular_core.WritableSignal<number>;
39
+ private readonly elementRef;
40
+ /**
41
+ * Method sets tooltip content. If parameter is of type
42
+ * string, it will directly set it as tooltip content.
43
+ * If it is array of string, it will render it as list of those strings.
44
+ *
45
+ * @param labels - array of strings or string itself
46
+ */
47
+ setTooltip(labels: string[] | string): void;
48
+ private getLabelSnippet;
49
+ private setContent;
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiMapTooltipComponent, never>;
51
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiMapTooltipComponent, "si-map-tooltip", never, { "moreText": { "alias": "moreText"; "required": false; "isSignal": true; }; "maxLabelLength": { "alias": "maxLabelLength"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
52
+ }
53
+
54
+ /**
55
+ * Copyright (c) Siemens 2016 - 2025
56
+ * SPDX-License-Identifier: MIT
57
+ */
58
+ /** */
59
+ interface MapPoint extends MapPointMetaData {
60
+ /**
61
+ * Latitude value for marker
62
+ */
63
+ lat: number;
64
+ /**
65
+ * Longtitude value for marker
66
+ */
67
+ lon: number;
68
+ }
69
+ interface MapPointMetaData {
70
+ /**
71
+ * Marker name
72
+ */
73
+ name: string;
74
+ /**
75
+ * Marker description, can be simple string or HTML as string
76
+ */
77
+ description: string;
78
+ /**
79
+ * Marker style
80
+ */
81
+ marker?: MarkerOptions;
82
+ /**
83
+ * Extra properties to be passed along (click function consumes it)
84
+ */
85
+ extraProperties?: any;
86
+ /**
87
+ * If you want your point to be clustered by it's group, you need to set the group id here for this point
88
+ * Color with the same id will be assigned. Must be higher than 0
89
+ */
90
+ group?: number;
91
+ /**
92
+ * Click functionality, do any extra staff when clicking on the point, just create needed logic for click functionality
93
+ */
94
+ click?(extraProperties?: any): void;
95
+ }
96
+ type MarkerStatusType = 'success' | 'info' | 'warning' | 'danger' | 'caution' | 'critical' | 'default' | 'unknown';
97
+ interface LabelOptions {
98
+ /**
99
+ * Text to display as label
100
+ */
101
+ text: string;
102
+ }
103
+ interface MarkerOptions {
104
+ /**
105
+ * Visual representation of marker
106
+ */
107
+ type: 'icon' | 'dot' | 'status';
108
+ /**
109
+ * Color of the marker, HEX or css compliant color value. Only use when a semantic status
110
+ * isn't working for the use-case.
111
+ */
112
+ color?: string;
113
+ /**
114
+ * Semantic status for coloring. This is also theme-aware.
115
+ */
116
+ status?: MarkerStatusType;
117
+ /**
118
+ * Icon options
119
+ */
120
+ icon?: IconMarkerOptions;
121
+ }
122
+ interface IconMarkerOptions {
123
+ /**
124
+ * Path to the icon image
125
+ */
126
+ src?: string;
127
+ /**
128
+ * Scale value for marker
129
+ */
130
+ scale?: number;
131
+ }
132
+
133
+ interface RenderOptions {
134
+ component?: Type<any>;
135
+ mapPoints: MapPointMetaData | MapPointMetaData[];
136
+ map?: Map;
137
+ }
138
+ declare class SiMapPopoverComponent {
139
+ private readonly elementRef;
140
+ protected readonly maxHeight: _angular_core.WritableSignal<number | null>;
141
+ protected readonly contentContainer: _angular_core.Signal<ViewContainerRef>;
142
+ protected readonly defaultContent: _angular_core.Signal<TemplateRef<any>>;
143
+ protected readonly defaultCluster: _angular_core.Signal<TemplateRef<any>>;
144
+ render({ component, mapPoints, map }: RenderOptions): void;
145
+ private renderCustomComponent;
146
+ private renderDefault;
147
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiMapPopoverComponent, never>;
148
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiMapPopoverComponent, "si-map-popover", never, {}, {}, never, never, true, never>;
149
+ }
150
+
151
+ /**
152
+ * Copyright (c) Siemens 2016 - 2025
153
+ * SPDX-License-Identifier: MIT
154
+ */
155
+ /** */
156
+ declare const DEFAULT_STROKE_WEIGHT = 2;
157
+ declare const DEFAULT_CLUSTER_TYPE = "donut";
158
+ declare const DEFAULT_DONUT_RATIO = 0.6;
159
+ declare const ANIMATION_DURATION = 500;
160
+ declare const DEFAULT_ICON = "assets/default-marker-icon.svg";
161
+ declare const DEFAULT_ICON_SCALE = 1;
162
+ declare const SIEMENS_FONT = "bold 13px \"Siemens sans\"";
163
+ declare const SIEMENS_FONT_LABELS = "700 14px \"Siemens sans\"";
164
+ declare const DEFAULT_OFFSET = 14;
165
+ declare const DEFAULT_FEATURE_SELECT_ZOOM = 10;
166
+ declare const DEFAULT_FEATURE_CLICK_ZOOM = 15;
167
+ declare const DEFAULT_CLUSTER_CLICK_ZOOM = 15;
168
+ declare const DEFAULT_GLOBAL_ZOOM = 5;
169
+ declare const DEFAULT_CLUSTER_DISTANCE = 40;
170
+ /** @deprecated will be removed in favour of individual inputs. */
171
+ declare const DEFAULT_FIT_PADDING: number[];
172
+ /** Updates the amount of buildings to be shown in a cluster tooltip after hovering over it */
173
+ declare const TOOLTIP_FEATURES_TO_DISPLAY = 4;
174
+ /** Specifies the maximum amount of buildings allowed to be displayed as a number in a cluster */
175
+ declare const MAX_CLUSTER_BUILDINGS = 99;
176
+ /** Defines the cluster radius size, so all the clusters are of the same size */
177
+ declare const CLUSTER_RADIUS_SIZE = 20;
178
+ /** Chart inside the cluster is internally divided into 20 fragments */
179
+ declare const CLUSTER_CHARTS_FRAGMENTS = 20;
180
+ declare const GEOJSON_LAYER = "geojson-layer";
181
+ declare const POINTS_LAYER = "points-layer";
182
+ declare const LAYER_NAME = "layerName";
183
+
184
+ /**
185
+ * Copyright (c) Siemens 2016 - 2025
186
+ * SPDX-License-Identifier: MIT
187
+ */
188
+ /** */
189
+ type ColorPalette = 'status' | 'element';
190
+ type ColorPalettes = {
191
+ [key in ColorPalette]: string[];
192
+ };
193
+
194
+ /**
195
+ * Class for grouping functionality
196
+ */
197
+ declare class Grouping {
198
+ private readonly _colors;
199
+ private readonly _palette?;
200
+ constructor(groupColors?: Record<number, string> | ColorPalette);
201
+ get colors(): string[];
202
+ get palette(): string | undefined;
203
+ get length(): number;
204
+ getColor(groupId: number): string;
205
+ }
206
+
207
+ /**
208
+ * Copyright (c) Siemens 2016 - 2025
209
+ * SPDX-License-Identifier: MIT
210
+ */
211
+
212
+ interface OverlayNativeProperties {
213
+ /**
214
+ * Layer for popup element, an element to be displayed over the map and attached to a single map location.
215
+ */
216
+ overlay?: Overlay;
217
+ /**
218
+ * List of controls to activate for map, additional controls like full screen, etc. can be added here
219
+ * Defaults are zoom in and out
220
+ */
221
+ controls?: Control[];
222
+ }
223
+
224
+ /**
225
+ * Copyright (c) Siemens 2016 - 2025
226
+ * SPDX-License-Identifier: MIT
227
+ */
228
+
229
+ declare const themeElement: {
230
+ style: () => {
231
+ fillColor: string;
232
+ strokeColor: string;
233
+ textColor: string;
234
+ defaultMarkerColor: string;
235
+ status: Record<MarkerStatusType, string>;
236
+ colorPalette: ColorPalettes;
237
+ };
238
+ };
239
+ type ThemeType = ReturnType<typeof themeElement.style>;
240
+
241
+ declare class MapService {
242
+ private styleCache;
243
+ private clusterStyleCache;
244
+ private labelStyleCache;
245
+ private grouping?;
246
+ private _theme?;
247
+ private wrappedTextCache;
248
+ private labelTextStyleCache;
249
+ resetCaches(): void;
250
+ private wrapLabelText;
251
+ private getLabelTextStyle;
252
+ private zoomCallback;
253
+ private getZoom;
254
+ setZoomCallback(callback?: () => number | undefined): void;
255
+ setTheme(groupColors: Record<number, string> | ColorPalette | undefined): void;
256
+ get theme(): ThemeType;
257
+ /**
258
+ * Create feature with parameters
259
+ * @param points - the list of points
260
+ */
261
+ createFeatures(points: MapPoint[], alwaysShowLabels?: boolean): Feature[];
262
+ /**
263
+ * Initialize animated cluster layer for points if clustering is enabled
264
+ * @param features - for the source
265
+ * @param markerAnimation - animation value for markers
266
+ * @param clusterDistance - number distance between clusters
267
+ * @param multiWorld - boolean if points should be repeated on multiple world maps
268
+ */
269
+ clusterLayer(features: Feature[], markerAnimation: boolean, clusterDistance: number, multiWorld: boolean): Layer;
270
+ /**
271
+ * Create vector layer when clustering is disabled
272
+ * @param features - list of Features
273
+ * @param multiWorld - boolean if points should be repeated on multiple world maps
274
+ */
275
+ vectorLayer(features: Feature[], multiWorld: boolean, defaultStyle?: boolean): VectorLayer<VectorSource>;
276
+ labelLayer(features: Feature[], multiWorld: boolean, maxLabelLength: number, maxLines: number, clusterLayer?: Layer): VectorLayer<VectorSource>;
277
+ /**
278
+ * Cluster styling
279
+ *
280
+ * @param feature - Feature
281
+ */
282
+ getClusterStyle(feature: Feature): Style[];
283
+ /**
284
+ * Separate feature styling with icon
285
+ * @param feature - to style
286
+ * @param cluster - indication
287
+ * @param grouping - colors
288
+ */
289
+ getFeatureStyle(feature: Feature, cluster: boolean, features: Feature[], dummy?: boolean): Style[];
290
+ getLabelStyle(feature: Feature<Point>, features: Feature<Point>[], maxLabelLength: number, maxLines: number, clusterSource?: Cluster<Feature<Point>>, dummy?: boolean): Style[];
291
+ getMarkerOffset(feature: Feature): [number, number];
292
+ getMarkerSize(feature: Feature): [number, number];
293
+ private getClusterChart;
294
+ private getClusterChartData;
295
+ /**
296
+ * Calculates minimal safe distance for clustering to avoid overlapping of clusters
297
+ */
298
+ private calculateClusteringDistance;
299
+ private transformChartData;
300
+ private getMarkerStyle;
301
+ /**
302
+ * Decides what color should Marker be painted with.
303
+ *
304
+ * Markers are painted with group colors if group id is present. If marker color is specified,
305
+ * it takes precedence over the group color.
306
+ */
307
+ private getMarkerColor;
308
+ private getDotMarker;
309
+ private getIconMarker;
310
+ private getStatusMarkerColor;
311
+ private getStatusMarker;
312
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MapService, never>;
313
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<MapService>;
314
+ }
315
+
316
+ declare class SelectCluster extends Select {
317
+ private zoomOnClick;
318
+ private maxZoom;
319
+ private fitClusterPadding;
320
+ constructor(options: {
321
+ fitClusterPadding: () => number[];
322
+ maxZoom: () => number;
323
+ style?: StyleLike | null;
324
+ zoomOnClick: () => boolean;
325
+ });
326
+ selectCluster(e: SelectEvent): void;
327
+ zoomToCluster(cluster: Feature[]): void;
328
+ }
329
+
330
+ interface ClusterHolder {
331
+ feature?: Feature;
332
+ }
333
+ declare class SiMapComponent implements AfterViewInit, OnChanges, OnDestroy, AfterViewChecked {
334
+ /**
335
+ * Points to be rendered on the map as features.
336
+ */
337
+ readonly points: _angular_core.ModelSignal<MapPoint[] | undefined>;
338
+ /**
339
+ * Payload of a geo-JSON object.
340
+ */
341
+ readonly geoJson: _angular_core.InputSignal<any>;
342
+ /**
343
+ * Callback function to add custom styling to the drawn geo-JSON features.
344
+ */
345
+ readonly styleFunction: _angular_core.InputSignal<StyleLike | undefined>;
346
+ /**
347
+ * Projection format used to render the geo-JSON payload.
348
+ *
349
+ * @defaultValue 'EPSG:3857'
350
+ */
351
+ readonly geoJsonProjection: _angular_core.InputSignal<string>;
352
+ /**
353
+ * Enable or disable animation of markers.
354
+ *
355
+ * @defaultValue false
356
+ */
357
+ readonly markerAnimation: _angular_core.InputSignal<boolean>;
358
+ /**
359
+ * Enable or disable clustering of points on the map.
360
+ *
361
+ * @defaultValue false
362
+ */
363
+ readonly cluster: _angular_core.InputSignal<boolean>;
364
+ /**
365
+ * Defines which colors should be used when points are grouped. Grouping means
366
+ * that points are painted with their group color and they are displayed as
367
+ * series in donut chart inside cluster.
368
+ *
369
+ * @defaultValue 'status'
370
+ */
371
+ readonly groupColors: _angular_core.InputSignal<Record<number, string> | ColorPalette>;
372
+ /**
373
+ * - **overlay**: Layer for popup element, an element to be displayed over the
374
+ * map and attached to a single map location.
375
+ * - **controls**: List of controls to activate for map, additional controls
376
+ * like full screen, etc. can be added here.
377
+ */
378
+ readonly nativeProperties: _angular_core.InputSignal<OverlayNativeProperties | undefined>;
379
+ /**
380
+ * Type of background map, for example `'https://api.maptiler.com/maps/voyager/style.json?key=xxx'`
381
+ * (Token key is required). The styleJson defines the tiler source and the
382
+ * used styles for different layers, should only be used if the siemens
383
+ * default styles by using `maptilerKey` isn't good enough.
384
+ */
385
+ readonly styleJson: _angular_core.InputSignal<any>;
386
+ /**
387
+ * Option to switch on/off the display of tooltip while hovering over single
388
+ * point.
389
+ *
390
+ * @defaultValue false
391
+ */
392
+ readonly displayTooltipOnHover: _angular_core.InputSignal<boolean>;
393
+ /**
394
+ * Option to switch on/off the display of popover when clicked.
395
+ * Default set to true (on).
396
+ *
397
+ * @defaultValue true
398
+ */
399
+ readonly displayPopoverOnClick: _angular_core.InputSignal<boolean>;
400
+ /**
401
+ * Option to switch on/off popover when hovered.
402
+ * Default is set to false (off)
403
+ *
404
+ * @defaultValue false
405
+ */
406
+ readonly displayPopoverOnHover: _angular_core.InputSignal<boolean>;
407
+ /**
408
+ * Provide your key for MapTiler, this will use the default siemens element
409
+ * styles which can be used in both light and dark mode. Shouldn't be used
410
+ * together with styleJson.
411
+ */
412
+ readonly maptilerKey: _angular_core.InputSignal<string | undefined>;
413
+ /**
414
+ * Option to switch on/off the display of tooltip while hovering over cluster.
415
+ *
416
+ * @defaultValue false
417
+ */
418
+ readonly displayTooltipOnClusterHover: _angular_core.InputSignal<boolean>;
419
+ /**
420
+ * Defines range in which points are clustered. In pixels.
421
+ *
422
+ * @defaultValue DEFAULT_CLUSTER_DISTANCE
423
+ */
424
+ readonly clusterDistance: _angular_core.InputSignal<number>;
425
+ /**
426
+ * Zoom level when calling the `select()` method on the component.
427
+ * Defaults to 10.
428
+ *
429
+ * @defaultValue DEFAULT_FEATURE_SELECT_ZOOM
430
+ */
431
+ readonly featureSelectZoom: _angular_core.InputSignal<number>;
432
+ /**
433
+ * Max zoom level which is used when clicking on feature on the map.
434
+ * Defaults to 15.
435
+ *
436
+ * @defaultValue DEFAULT_FEATURE_CLICK_ZOOM
437
+ */
438
+ readonly featureClickZoom: _angular_core.InputSignal<number>;
439
+ /**
440
+ * Max zoom level for clicking on a cluster on the map. Defaults to 15.
441
+ *
442
+ * @defaultValue DEFAULT_CLUSTER_CLICK_ZOOM
443
+ */
444
+ readonly clusterClickZoom: _angular_core.InputSignal<number>;
445
+ /**
446
+ * Max zoom level on load or when clicking the reset button. Defaults to 5.
447
+ *
448
+ * @defaultValue DEFAULT_GLOBAL_ZOOM
449
+ */
450
+ readonly globalZoom: _angular_core.InputSignal<number>;
451
+ /**
452
+ * When enabled, features will be automatically zoom to on click.
453
+ *
454
+ * @defaultValue false
455
+ */
456
+ readonly autoZoomFeatureClick: _angular_core.InputSignal<boolean>;
457
+ /**
458
+ * When disabled, clusters will no longer automatically be zoomed to on click.
459
+ *
460
+ * @defaultValue true
461
+ */
462
+ readonly autoZoomClusterClick: _angular_core.InputSignal<boolean>;
463
+ /**
464
+ * Custom popover component
465
+ */
466
+ readonly popoverComponent: _angular_core.InputSignal<Type<any> | undefined>;
467
+ /**
468
+ * Custom popover component for clustering
469
+ */
470
+ readonly clusterPopoverComponent: _angular_core.InputSignal<Type<any> | undefined>;
471
+ /**
472
+ * Custom popover component
473
+ */
474
+ readonly popoverComponentProps: _angular_core.InputSignal<any>;
475
+ /**
476
+ * Close the popover on click
477
+ *
478
+ * @defaultValue true
479
+ */
480
+ readonly popoverCloseOnClick: _angular_core.InputSignal<boolean>;
481
+ /**
482
+ * Padding (in pixels) applied to the map view when zooming to a cluster, preventing points from being clipped at the edges.
483
+ * Specified as [top, right, bottom, left].
484
+ *
485
+ * @defaultValue [20, 20, 20, 20]
486
+ */
487
+ readonly fitClusterPadding: _angular_core.InputSignal<[number, number, number, number]>;
488
+ /**
489
+ * For Point geometry, padding (in pixels) to be cleared to fit the point inside the view after a click on it.
490
+ * Values in the array are: [top, right, bottom, left].
491
+ *
492
+ * @defaultValue [20, 20, 20, 20]
493
+ */
494
+ readonly fitPointPadding: _angular_core.InputSignal<number[]>;
495
+ /**
496
+ * For GeoJson, padding (in pixels) to be cleared to fit the GeoJson inside the view after a click on it.
497
+ * Values in the array are: [top, right, bottom, left].
498
+ *
499
+ * @defaultValue [20, 20, 20, 20]
500
+ */
501
+ readonly fitGeoJsonPadding: _angular_core.InputSignal<number[]>;
502
+ /**
503
+ * Cutoff text for tooltips, when cluster combines more than 4 features
504
+ *
505
+ * @deprecated Use `SiMapTooltipComponent` instead to set the `moreText` input e.g. `<si-map ...><si-map-tooltip [moreText]="'KEY_MORE'" /></si-map>`.
506
+ *
507
+ * @defaultValue
508
+ * ```
509
+ * t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)
510
+ * ```
511
+ */
512
+ readonly moreText: _angular_core.InputSignal<_siemens_element_translate_ng.TranslatableString>;
513
+ /**
514
+ * Show multiple worlds, including points that cross the 180th meridian.
515
+ *
516
+ * @defaultValue true
517
+ */
518
+ readonly multiWorld: _angular_core.InputSignal<boolean>;
519
+ /**
520
+ * Show the label permanently next to the point.
521
+ * Normally the label is shown on hover or click.
522
+ * By enabling this it will always be visible next to the marker.
523
+ *
524
+ * @defaultValue false
525
+ */
526
+ readonly alwaysShowLabels: _angular_core.InputSignal<boolean>;
527
+ /**
528
+ * Maximum number of characters per line for always displayed labels of a point.
529
+ * If the label exceeds this limit, it will be wrapped or trimmed.
530
+ * If set to 0, label trimming will be disabled.
531
+ * This setting is effective only when {@link alwaysShowLabels} is enabled.
532
+ * Important: Changing this is not recommended in most cases and may cause issues with positioning of the labels.
533
+ *
534
+ * @defaultValue 20
535
+ */
536
+ readonly maxLabelLineLength: _angular_core.InputSignal<number>;
537
+ /**
538
+ * Maximum number of lines for always displayed labels of a point.
539
+ * If the label exceeds this limit, it will be trimmed.
540
+ * This setting is effective only when {@link alwaysShowLabels} is enabled and {@link maxLabelLineLength} is not 0.
541
+ * Important: Changing this is not recommended in most cases and may cause issues with positioning of the labels.
542
+ *
543
+ * @defaultValue 3
544
+ */
545
+ readonly maxLabelLines: _angular_core.InputSignal<number>;
546
+ /**
547
+ * Emitted when points on the map are selected or de-selected
548
+ */
549
+ readonly pointsSelected: _angular_core.OutputEmitterRef<MapPoint[]>;
550
+ /**
551
+ * Emitted when the points are available as features. So consumers can call methods like `zoomToPoints()` on the actual point list.
552
+ */
553
+ readonly pointsRefreshed: _angular_core.OutputEmitterRef<void>;
554
+ protected readonly popover: _angular_core.Signal<SiMapPopoverComponent>;
555
+ protected readonly popoverElement: _angular_core.Signal<ElementRef<any>>;
556
+ protected readonly defaultTooltip: _angular_core.Signal<SiMapTooltipComponent | undefined>;
557
+ protected readonly projectedTooltip: _angular_core.Signal<SiMapTooltipComponent | undefined>;
558
+ protected readonly tooltip: _angular_core.Signal<SiMapTooltipComponent>;
559
+ protected readonly mapReference: _angular_core.Signal<ElementRef<HTMLElement>>;
560
+ /** OpenLayers map instance. */
561
+ map?: Map;
562
+ tooltipOverlay: Overlay;
563
+ popoverOverlay: Overlay;
564
+ /** @defaultValue false */
565
+ isClicked: boolean;
566
+ /** @defaultValue [] */
567
+ features: Feature[];
568
+ selected?: Feature;
569
+ targetFeature?: Feature;
570
+ protected attributionsLabel: _siemens_element_translate_ng.TranslatableString;
571
+ protected zoomInLabel: _siemens_element_translate_ng.TranslatableString;
572
+ protected zoomOutLabel: _siemens_element_translate_ng.TranslatableString;
573
+ protected zoomToDefaultLabel: _siemens_element_translate_ng.TranslatableString;
574
+ protected clusterInteraction?: SelectCluster;
575
+ private selectedCluster?;
576
+ private darkTheme;
577
+ private readonly mapService;
578
+ private readonly ngZone;
579
+ private readonly translateService;
580
+ constructor();
581
+ private layerFilter;
582
+ ngOnChanges(changes: SimpleChanges): void;
583
+ ngAfterViewInit(): void;
584
+ ngAfterViewChecked(): void;
585
+ ngOnDestroy(): void;
586
+ onThemeSwitchInternal(event: Event): void;
587
+ onThemeSwitch(dark: boolean): void;
588
+ /**
589
+ * @deprecated has no effect and will be removed in v48
590
+ */
591
+ onResize(): void;
592
+ private removePixelRatioListener;
593
+ private readonly updatePixelRatio;
594
+ /**
595
+ * Changes the pixel ration in OL which is not supported directly by OL.
596
+ */
597
+ private changeOpenLayerPixelRation;
598
+ /**
599
+ * Initialize map and it's layers
600
+ */
601
+ init(): void;
602
+ private centerValid;
603
+ private fixCenter;
604
+ /**
605
+ * Setting up the layers for the map (cluster/vector layer)
606
+ */
607
+ private setLayers;
608
+ /**
609
+ * Setting up the geoJson layer
610
+ */
611
+ setGeoJsonLayer(): void;
612
+ private setTheme;
613
+ private refreshLayersStyle;
614
+ /**
615
+ * Set Map style
616
+ * @param dark - boolean if dark theme should be active or not
617
+ * @param key - the api key for the maptiler styleJSON
618
+ * @param styleJSON - a preexisting styleJSON as url with key already provided
619
+ */
620
+ setMapStyle(dark?: boolean, key?: string, styleJSON?: string): void;
621
+ /**
622
+ * Set mapbox styles
623
+ * @param styleJSON - the styleJSON as a JSON object
624
+ */
625
+ mapboxStyles(styleJSON: any): void;
626
+ /**
627
+ * Create overlay for tooltip and popover
628
+ * @param nativeProperties - native properties
629
+ * @param container - to create overlay in
630
+ * @param position - overlay positioning
631
+ */
632
+ createOverlay(container: HTMLElement, position: Positioning, nativeProperties?: OverlayNativeProperties, isTooltip?: boolean): Overlay;
633
+ /**
634
+ * On feature hovering show tooltip and change cursor style
635
+ * @param event - A hovering event
636
+ */
637
+ onFeatureHover(event: MapBrowserEvent<UIEvent>): void;
638
+ /** Display tooltip on hovering over feature type of Feature. */
639
+ displayTooltip(feats: FeatureLike[]): void;
640
+ private doShowTooltip;
641
+ /**
642
+ * Clicking on cluster event
643
+ * @param event - openlayers event
644
+ */
645
+ onClusterClick(event: MapBrowserEvent<UIEvent>): void;
646
+ private emitSelection;
647
+ /**
648
+ * Zoom to cluster features
649
+ * @param clusterFeatures - features to zoom in
650
+ */
651
+ zoomCluster(clusterFeatures: Feature[]): void;
652
+ /**
653
+ * Close popup
654
+ */
655
+ closePopup(): boolean;
656
+ /**
657
+ * Return features inside feature object in case of cluster enabled/disabled
658
+ * @param feat - feature to get features from
659
+ */
660
+ featureCallback(feat: FeatureLike, clusterHolder?: ClusterHolder): Feature[] | undefined;
661
+ /**
662
+ * Zoom to features, gets coordinates of points and creates bounding extent
663
+ * @param points - list of points to zoom in, if empty all points will be zoomed to, need to be the same reference as the input
664
+ * @param zoomLevel - number for level to zoom in
665
+ */
666
+ zoomToPoints(points: MapPoint[], zoomLevel: number, shouldAnimate?: boolean): void;
667
+ /**
668
+ * Zoom to features, gets coordinates of features and creates bounding extent
669
+ * @param features - list of features to zoom in, if empty all features will be zoomed to
670
+ * @param zoomLevel - number for level to zoom in
671
+ */
672
+ zoomToFeatures(features: Feature[], zoomLevel: number, shouldAnimate?: boolean): void;
673
+ /**
674
+ * Zoom to GeoJson using coordinates of point of click
675
+ * @param coordinate - coordinates of point of click
676
+ * @param zoomLevel - number for level to zoom in
677
+ */
678
+ zoomToGeoJson(coordinate: Coordinate, zoomLevel: number, shouldAnimate?: boolean): void;
679
+ private zoomToCoordinates;
680
+ /**
681
+ * Refresh points with new set of points
682
+ * @param points - to refresh with
683
+ */
684
+ refresh(points: MapPoint[], zoomToFeatures?: boolean): void;
685
+ private doRefresh;
686
+ clear(): void;
687
+ private doClear;
688
+ /**
689
+ * Selecting the certain point on map with API
690
+ * @param point - which select
691
+ */
692
+ select(point: MapPoint, maxZoomLevel?: number): void;
693
+ private doSelect;
694
+ /** API for feature clicking with extra properties. */
695
+ featureClick(feature: Feature, event?: any, zoom?: boolean): void;
696
+ private setPopOver;
697
+ /**
698
+ * Show tooltip with content on hover over feature
699
+ * @param feature - to show popup on
700
+ */
701
+ showTooltipContent(feature: Feature): boolean;
702
+ /** Sends data into cluster tooltip based on number of
703
+ * @param features - in it
704
+ * */
705
+ showClusterTooltipContent(features: Feature[], cluster?: Feature): boolean;
706
+ hideOverlays(): void;
707
+ private getFeatureCoordinate;
708
+ /**
709
+ * Calculates cluster center coordinates (lon, lat) for cluster tooltip positioning base on
710
+ * @param features - (lon, lan)
711
+ */
712
+ private calculateClusterCoordinates;
713
+ private showClusterPopover;
714
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiMapComponent, never>;
715
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiMapComponent, "si-map", never, { "points": { "alias": "points"; "required": false; "isSignal": true; }; "geoJson": { "alias": "geoJson"; "required": false; "isSignal": true; }; "styleFunction": { "alias": "styleFunction"; "required": false; "isSignal": true; }; "geoJsonProjection": { "alias": "geoJsonProjection"; "required": false; "isSignal": true; }; "markerAnimation": { "alias": "markerAnimation"; "required": false; "isSignal": true; }; "cluster": { "alias": "cluster"; "required": false; "isSignal": true; }; "groupColors": { "alias": "groupColors"; "required": false; "isSignal": true; }; "nativeProperties": { "alias": "nativeProperties"; "required": false; "isSignal": true; }; "styleJson": { "alias": "styleJson"; "required": false; "isSignal": true; }; "displayTooltipOnHover": { "alias": "displayTooltipOnHover"; "required": false; "isSignal": true; }; "displayPopoverOnClick": { "alias": "displayPopoverOnClick"; "required": false; "isSignal": true; }; "displayPopoverOnHover": { "alias": "displayPopoverOnHover"; "required": false; "isSignal": true; }; "maptilerKey": { "alias": "maptilerKey"; "required": false; "isSignal": true; }; "displayTooltipOnClusterHover": { "alias": "displayTooltipOnClusterHover"; "required": false; "isSignal": true; }; "clusterDistance": { "alias": "clusterDistance"; "required": false; "isSignal": true; }; "featureSelectZoom": { "alias": "featureSelectZoom"; "required": false; "isSignal": true; }; "featureClickZoom": { "alias": "featureClickZoom"; "required": false; "isSignal": true; }; "clusterClickZoom": { "alias": "clusterClickZoom"; "required": false; "isSignal": true; }; "globalZoom": { "alias": "globalZoom"; "required": false; "isSignal": true; }; "autoZoomFeatureClick": { "alias": "autoZoomFeatureClick"; "required": false; "isSignal": true; }; "autoZoomClusterClick": { "alias": "autoZoomClusterClick"; "required": false; "isSignal": true; }; "popoverComponent": { "alias": "popoverComponent"; "required": false; "isSignal": true; }; "clusterPopoverComponent": { "alias": "clusterPopoverComponent"; "required": false; "isSignal": true; }; "popoverComponentProps": { "alias": "popoverComponentProps"; "required": false; "isSignal": true; }; "popoverCloseOnClick": { "alias": "popoverCloseOnClick"; "required": false; "isSignal": true; }; "fitClusterPadding": { "alias": "fitClusterPadding"; "required": false; "isSignal": true; }; "fitPointPadding": { "alias": "fitPointPadding"; "required": false; "isSignal": true; }; "fitGeoJsonPadding": { "alias": "fitGeoJsonPadding"; "required": false; "isSignal": true; }; "moreText": { "alias": "moreText"; "required": false; "isSignal": true; }; "multiWorld": { "alias": "multiWorld"; "required": false; "isSignal": true; }; "alwaysShowLabels": { "alias": "alwaysShowLabels"; "required": false; "isSignal": true; }; "maxLabelLineLength": { "alias": "maxLabelLineLength"; "required": false; "isSignal": true; }; "maxLabelLines": { "alias": "maxLabelLines"; "required": false; "isSignal": true; }; }, { "points": "pointsChange"; "pointsSelected": "pointsSelected"; "pointsRefreshed": "pointsRefreshed"; }, ["projectedTooltip"], ["si-map-tooltip"], true, never>;
716
+ }
717
+
718
+ declare class SiMapModule {
719
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiMapModule, never>;
720
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiMapModule, never, [typeof SiMapComponent, typeof SiMapPopoverComponent, typeof SiMapTooltipComponent], [typeof SiMapComponent]>;
721
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiMapModule>;
722
+ }
723
+
724
+ declare class ElementMapsNgModule {
725
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElementMapsNgModule, never>;
726
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ElementMapsNgModule, never, never, [typeof SiMapModule]>;
727
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<ElementMapsNgModule>;
728
+ }
729
+
730
+ export { ANIMATION_DURATION, CLUSTER_CHARTS_FRAGMENTS, CLUSTER_RADIUS_SIZE, DEFAULT_CLUSTER_CLICK_ZOOM, DEFAULT_CLUSTER_DISTANCE, DEFAULT_CLUSTER_TYPE, DEFAULT_DONUT_RATIO, DEFAULT_FEATURE_CLICK_ZOOM, DEFAULT_FEATURE_SELECT_ZOOM, DEFAULT_FIT_PADDING, DEFAULT_GLOBAL_ZOOM, DEFAULT_ICON, DEFAULT_ICON_SCALE, DEFAULT_OFFSET, DEFAULT_STROKE_WEIGHT, ElementMapsNgModule, GEOJSON_LAYER, Grouping, LAYER_NAME, MAX_CLUSTER_BUILDINGS, MapService, POINTS_LAYER, SIEMENS_FONT, SIEMENS_FONT_LABELS, SiMapComponent, SiMapModule, SiMapPopoverComponent, SiMapTooltipComponent, TOOLTIP_FEATURES_TO_DISPLAY };
731
+ export type { ColorPalette, ColorPalettes, IconMarkerOptions, LabelOptions, MapPoint, MapPointMetaData, MarkerOptions, MarkerStatusType, OverlayNativeProperties, RenderOptions };