@progress/kendo-angular-map 17.0.0-develop.8 → 17.0.0

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.
Files changed (68) hide show
  1. package/README.md +25 -16
  2. package/common/collection.component.d.ts +1 -1
  3. package/{esm2020 → esm2022}/common/collection-item.component.mjs +8 -5
  4. package/{esm2020 → esm2022}/common/collection.component.mjs +15 -6
  5. package/{esm2020 → esm2022}/common/collection.service.mjs +7 -3
  6. package/{esm2020 → esm2022}/common/configuration.service.mjs +9 -5
  7. package/{esm2020 → esm2022}/common/map-instance-observer.mjs +8 -8
  8. package/{esm2020 → esm2022}/common/settings.component.mjs +6 -4
  9. package/{esm2020 → esm2022}/events/base-event.mjs +7 -3
  10. package/{esm2020 → esm2022}/events/map-click-event.mjs +8 -0
  11. package/{esm2020 → esm2022}/events/marker-activate-event.mjs +8 -0
  12. package/{esm2020 → esm2022}/events/marker-click-event.mjs +8 -0
  13. package/{esm2020 → esm2022}/events/marker-created-event.mjs +8 -0
  14. package/{esm2020 → esm2022}/events/pan-end-event.mjs +12 -0
  15. package/{esm2020 → esm2022}/events/pan-event.mjs +12 -0
  16. package/{esm2020 → esm2022}/events/preventable-event.mjs +4 -7
  17. package/{esm2020 → esm2022}/events/shape-click-event.mjs +12 -0
  18. package/{esm2020 → esm2022}/events/shape-created-event.mjs +16 -0
  19. package/{esm2020 → esm2022}/events/shape-feature-created-event.mjs +16 -0
  20. package/{esm2020 → esm2022}/events/shape-mouse-enter-event.mjs +12 -0
  21. package/{esm2020 → esm2022}/events/shape-mouse-leave-event.mjs +12 -0
  22. package/{esm2020 → esm2022}/events/zoom-end-event.mjs +4 -0
  23. package/{esm2020 → esm2022}/events/zoom-start-event.mjs +4 -0
  24. package/{esm2020 → esm2022}/map/bubble-layer.component.mjs +48 -9
  25. package/{esm2020 → esm2022}/map/layer/tooltip.component.mjs +5 -3
  26. package/{esm2020 → esm2022}/map/layer.component.mjs +32 -3
  27. package/{esm2020 → esm2022}/map/layers.component.mjs +6 -9
  28. package/{esm2020 → esm2022}/map/marker-layer.component.mjs +32 -9
  29. package/{esm2020 → esm2022}/map/shape-layer.component.mjs +20 -9
  30. package/{esm2020 → esm2022}/map/tile-layer.component.mjs +28 -9
  31. package/{esm2020 → esm2022}/map.component.mjs +198 -132
  32. package/{esm2020 → esm2022}/map.module.mjs +4 -4
  33. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  34. package/{esm2020 → esm2022}/tooltip/base-tooltip.mjs +19 -10
  35. package/{esm2020 → esm2022}/tooltip/bubble-tooltip-template.directive.mjs +4 -3
  36. package/{esm2020 → esm2022}/tooltip/bubble-tooltip.component.mjs +7 -3
  37. package/{esm2020 → esm2022}/tooltip/marker-tooltip-template.directive.mjs +4 -3
  38. package/{esm2020 → esm2022}/tooltip/marker-tooltip.component.mjs +7 -3
  39. package/{esm2020 → esm2022}/tooltip/shape-tooltip-template.directive.mjs +4 -3
  40. package/{esm2020 → esm2022}/tooltip/shape-tooltip.component.mjs +7 -3
  41. package/{esm2020 → esm2022}/tooltip/tooltip-popup.component.mjs +21 -19
  42. package/{esm2020 → esm2022}/tooltip/tooltip-template.service.mjs +4 -6
  43. package/{fesm2020 → fesm2022}/progress-kendo-angular-map.mjs +645 -279
  44. package/map/bubble-layer.component.d.ts +1 -1
  45. package/map/layer.component.d.ts +1 -1
  46. package/map/layers.component.d.ts +2 -4
  47. package/map/marker-layer.component.d.ts +1 -1
  48. package/map/shape-layer.component.d.ts +1 -1
  49. package/map/tile-layer.component.d.ts +1 -1
  50. package/map.component.d.ts +1 -1
  51. package/package.json +16 -22
  52. package/schematics/ngAdd/index.js +1 -1
  53. package/tooltip/base-tooltip.d.ts +3 -3
  54. package/tooltip/tooltip-popup.component.d.ts +1 -4
  55. package/fesm2015/progress-kendo-angular-map.mjs +0 -1958
  56. /package/{esm2020 → esm2022}/common/copy-changes.mjs +0 -0
  57. /package/{esm2020 → esm2022}/common/has-parent.mjs +0 -0
  58. /package/{esm2020 → esm2022}/common/to-simple-changes.mjs +0 -0
  59. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  60. /package/{esm2020 → esm2022}/events/before-reset-event.mjs +0 -0
  61. /package/{esm2020 → esm2022}/events/instance-event.service.mjs +0 -0
  62. /package/{esm2020 → esm2022}/events/reset-event.mjs +0 -0
  63. /package/{esm2020 → esm2022}/events.mjs +0 -0
  64. /package/{esm2020 → esm2022}/index.mjs +0 -0
  65. /package/{esm2020 → esm2022}/progress-kendo-angular-map.mjs +0 -0
  66. /package/{esm2020 → esm2022}/tooltip/body-factory.mjs +0 -0
  67. /package/{esm2020 → esm2022}/tooltip/popup-settings.interface.mjs +0 -0
  68. /package/{esm2020 → esm2022}/tooltip.mjs +0 -0
@@ -1,1958 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as i0 from '@angular/core';
6
- import { Injectable, SimpleChange, Directive, TemplateRef, Component, ChangeDetectionStrategy, ContentChild, SecurityContext, Input, forwardRef, ElementRef, EventEmitter, ViewChild, Output, ContentChildren, Optional, NgModule } from '@angular/core';
7
- import { BehaviorSubject, Subject, combineLatest } from 'rxjs';
8
- import * as i3 from '@angular/platform-browser';
9
- import { isDocumentAvailable, hasObservers, ResizeSensorComponent, ResizeBatchService } from '@progress/kendo-angular-common';
10
- import * as i3$1 from '@progress/kendo-angular-l10n';
11
- import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
12
- import { mapMarkerTargetIcon, mapMarkerIcon, plusIcon, minusIcon, caretAltUpIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';
13
- import { InstanceObserver, Map } from '@progress/kendo-charts';
14
- export { Extent, Location } from '@progress/kendo-charts';
15
- import { validatePackage } from '@progress/kendo-licensing';
16
- import { tap } from 'rxjs/operators';
17
- import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
18
- import * as i1 from '@progress/kendo-angular-popup';
19
- import { PopupService, POPUP_CONTAINER } from '@progress/kendo-angular-popup';
20
- import * as i4 from '@progress/kendo-angular-icons';
21
- import { IconsService } from '@progress/kendo-angular-icons';
22
-
23
- /**
24
- * @hidden
25
- */
26
- class Change {
27
- constructor(key, value) {
28
- this.key = key;
29
- this.value = value;
30
- }
31
- }
32
- /**
33
- * @hidden
34
- */
35
- class ConfigurationService {
36
- constructor(ngZone) {
37
- this.ngZone = ngZone;
38
- this.store = {};
39
- this.source = new BehaviorSubject({});
40
- this.initSource();
41
- }
42
- initSource() {
43
- this.changes = this.source.asObservable();
44
- }
45
- push(store) {
46
- this.store = store;
47
- this.next();
48
- }
49
- notify(change) {
50
- this.set(change.key, change.value);
51
- this.next();
52
- }
53
- set(field, value) {
54
- let store = this.store;
55
- const parts = field.split('.');
56
- let key = parts.shift();
57
- while (parts.length > 0) {
58
- store = store[key] = store[key] || {};
59
- key = parts.shift();
60
- }
61
- store[key] = value;
62
- }
63
- next() {
64
- this.ngZone.runOutsideAngular(() => {
65
- this.source.next(this.store);
66
- });
67
- }
68
- }
69
- ConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
70
- ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, decorators: [{
72
- type: Injectable
73
- }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
74
-
75
- /**
76
- * @hidden
77
- */
78
- class ItemChange {
79
- constructor(sender, options) {
80
- this.sender = sender;
81
- this.options = options;
82
- }
83
- }
84
- /**
85
- * @hidden
86
- */
87
- class CollectionService {
88
- constructor() {
89
- this.source = new Subject();
90
- this.itemChanges = this.source.asObservable();
91
- }
92
- notify(change) {
93
- this.source.next(change);
94
- }
95
- }
96
- CollectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
97
- CollectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionService });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionService, decorators: [{
99
- type: Injectable
100
- }], ctorParameters: function () { return []; } });
101
-
102
- /**
103
- * @hidden
104
- */
105
- function copyChanges(changes, options) {
106
- for (const propertyName in changes) {
107
- if (!changes.hasOwnProperty(propertyName)) {
108
- continue;
109
- }
110
- const value = changes[propertyName].currentValue;
111
- if (value === undefined) {
112
- delete options[propertyName];
113
- }
114
- else {
115
- options[propertyName] = value;
116
- }
117
- }
118
- }
119
-
120
- /**
121
- * @hidden
122
- */
123
- function toSimpleChanges(changes) {
124
- const result = {};
125
- for (const propertyName in changes) {
126
- if (!changes.hasOwnProperty(propertyName)) {
127
- continue;
128
- }
129
- result[propertyName] = new SimpleChange(null, changes[propertyName], false);
130
- }
131
- return result;
132
- }
133
-
134
- /**
135
- * @hidden
136
- */
137
- class CollectionItemComponent {
138
- constructor(configurationService, collectionService) {
139
- this.configurationService = configurationService;
140
- this.collectionService = collectionService;
141
- this.index = -1;
142
- this.options = {};
143
- this.subscription = configurationService.changes.subscribe(store => {
144
- this.options = store;
145
- this.notify();
146
- });
147
- }
148
- ngOnChanges(changes) {
149
- const store = this.configurationService.store;
150
- copyChanges(changes, store);
151
- this.configurationService.push(store);
152
- }
153
- /**
154
- * Updates the component fields with the specified values and refreshes the Chart.
155
- *
156
- * Use this method when the configuration values cannot be set through the template.
157
- *
158
- * @example
159
- * ```ts-no-run
160
- * item.notifyChanges({ visible: true });
161
- * ```
162
- *
163
- * @param changes An object containing the updated input fields.
164
- */
165
- notifyChanges(changes) {
166
- this.ngOnChanges(toSimpleChanges(changes));
167
- }
168
- ngOnDestroy() {
169
- this.subscription.unsubscribe();
170
- }
171
- notify() {
172
- if (!this.collectionService) {
173
- return;
174
- }
175
- this.collectionService.notify(new ItemChange(this, this.options));
176
- }
177
- }
178
- CollectionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionItemComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }], target: i0.ɵɵFactoryTarget.Directive });
179
- CollectionItemComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CollectionItemComponent, usesOnChanges: true, ngImport: i0 });
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionItemComponent, decorators: [{
181
- type: Directive
182
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }]; } });
183
-
184
- /**
185
- * @hidden
186
- */
187
- class SettingsComponent {
188
- constructor(configKey, configurationService) {
189
- this.configKey = configKey;
190
- this.configurationService = configurationService;
191
- this.store = {};
192
- if (configKey === undefined) {
193
- throw new Error('Configuration key not set');
194
- }
195
- }
196
- ngOnDestroy() {
197
- this.store = undefined;
198
- this.notify();
199
- }
200
- ngOnChanges(changes) {
201
- copyChanges(changes, this.store);
202
- this.notify();
203
- }
204
- /**
205
- * Updates the component fields with the specified values and refreshes the component.
206
- *
207
- * Use this method when the configuration values cannot be set through the template.
208
- *
209
- * @example
210
- * ```ts-no-run
211
- * item.notifyChanges({ visible: true });
212
- * ```
213
- *
214
- * @param changes An object containing the updated input fields.
215
- */
216
- notifyChanges(changes) {
217
- this.ngOnChanges(toSimpleChanges(changes));
218
- }
219
- markAsVisible() {
220
- this.store.visible = true;
221
- this.notify();
222
- }
223
- notify() {
224
- this.configurationService.notify(new Change(this.configKey, this.store));
225
- }
226
- }
227
- SettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SettingsComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
228
- SettingsComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SettingsComponent, usesOnChanges: true, ngImport: i0 });
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SettingsComponent, decorators: [{
230
- type: Directive
231
- }], ctorParameters: function () { return [{ type: undefined }, { type: ConfigurationService }]; } });
232
-
233
- /**
234
- * The configuration options of the Map layer tooltip.
235
- *
236
- * @hidden
237
- */
238
- class LayerTooltipComponent extends SettingsComponent {
239
- constructor(configurationService) {
240
- super('tooltip', configurationService);
241
- this.configurationService = configurationService;
242
- }
243
- get layerTooltipTemplateRef() {
244
- return this.layerTooltipTemplate;
245
- }
246
- }
247
- LayerTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LayerTooltipComponent, deps: [{ token: ConfigurationService }], target: i0.ɵɵFactoryTarget.Component });
248
- LayerTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LayerTooltipComponent, isStandalone: true, selector: "kendo-map-layer-tooltip", queries: [{ propertyName: "layerTooltipTemplate", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LayerTooltipComponent, decorators: [{
250
- type: Component,
251
- args: [{
252
- changeDetection: ChangeDetectionStrategy.OnPush,
253
- selector: 'kendo-map-layer-tooltip',
254
- template: '',
255
- standalone: true
256
- }]
257
- }], ctorParameters: function () { return [{ type: ConfigurationService }]; }, propDecorators: { layerTooltipTemplate: [{
258
- type: ContentChild,
259
- args: [TemplateRef, { static: false }]
260
- }] } });
261
-
262
- /**
263
- * @hidden
264
- */
265
- class LayerComponent extends CollectionItemComponent {
266
- constructor(type, configurationService, collectionService, sanitizer) {
267
- super(configurationService, collectionService);
268
- this.type = type;
269
- this.configurationService = configurationService;
270
- this.collectionService = collectionService;
271
- this.sanitizer = sanitizer;
272
- }
273
- ngOnChanges(changes) {
274
- const store = this.configurationService.store;
275
- store.type = this.type;
276
- const attrChange = changes['attribution'];
277
- if (attrChange && this.sanitizer) {
278
- attrChange.currentValue = this.sanitizer.sanitize(SecurityContext.HTML, attrChange.currentValue);
279
- }
280
- super.ngOnChanges(changes);
281
- }
282
- get layerTooltipTemplateRef() {
283
- if (this.layerTooltip) {
284
- return this.layerTooltip.layerTooltipTemplateRef;
285
- }
286
- }
287
- }
288
- LayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LayerComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
289
- LayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LayerComponent, inputs: { attribution: "attribution", extent: "extent", maxZoom: "maxZoom", minZoom: "minZoom", opacity: "opacity", zIndex: "zIndex" }, queries: [{ propertyName: "layerTooltip", first: true, predicate: LayerTooltipComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LayerComponent, decorators: [{
291
- type: Directive
292
- }], ctorParameters: function () { return [{ type: undefined }, { type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { attribution: [{
293
- type: Input
294
- }], extent: [{
295
- type: Input
296
- }], maxZoom: [{
297
- type: Input
298
- }], minZoom: [{
299
- type: Input
300
- }], opacity: [{
301
- type: Input
302
- }], zIndex: [{
303
- type: Input
304
- }], layerTooltip: [{
305
- type: ContentChild,
306
- args: [LayerTooltipComponent, { static: false }]
307
- }] } });
308
-
309
- /**
310
- * A vector shape layer for bubble maps. [See example](slug:bubble_layers_map).
311
- */
312
- class BubbleLayerComponent extends LayerComponent {
313
- constructor(configurationService, collectionService, sanitizer) {
314
- super('bubble', configurationService, collectionService, sanitizer);
315
- this.configurationService = configurationService;
316
- this.collectionService = collectionService;
317
- this.sanitizer = sanitizer;
318
- }
319
- }
320
- BubbleLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BubbleLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
321
- BubbleLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BubbleLayerComponent, isStandalone: true, selector: "kendo-map-bubble-layer", inputs: { data: "data", locationField: "locationField", valueField: "valueField", symbol: "symbol", style: "style", maxSize: "maxSize", minSize: "minSize" }, providers: [
322
- ConfigurationService,
323
- {
324
- provide: LayerComponent,
325
- useExisting: forwardRef(() => BubbleLayerComponent)
326
- }
327
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BubbleLayerComponent, decorators: [{
329
- type: Component,
330
- args: [{
331
- changeDetection: ChangeDetectionStrategy.OnPush,
332
- providers: [
333
- ConfigurationService,
334
- {
335
- provide: LayerComponent,
336
- useExisting: forwardRef(() => BubbleLayerComponent)
337
- }
338
- ],
339
- selector: 'kendo-map-bubble-layer',
340
- template: '',
341
- standalone: true
342
- }]
343
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
344
- type: Input
345
- }], locationField: [{
346
- type: Input
347
- }], valueField: [{
348
- type: Input
349
- }], symbol: [{
350
- type: Input
351
- }], style: [{
352
- type: Input
353
- }], maxSize: [{
354
- type: Input
355
- }], minSize: [{
356
- type: Input
357
- }] } });
358
-
359
- /**
360
- * @hidden
361
- */
362
- function hasParent(element, parent) {
363
- let current = element;
364
- while (current && current !== parent) {
365
- current = current.parentNode;
366
- }
367
- return current ? true : false;
368
- }
369
-
370
- /**
371
- * @hidden
372
- */
373
- class MapInstanceObserver extends InstanceObserver {
374
- constructor(instance) {
375
- super(instance);
376
- this.handlerMap = {
377
- hideTooltip: 'onHideTooltip',
378
- init: 'onInit',
379
- render: 'onRender',
380
- showTooltip: 'onShowTooltip',
381
- centerChange: 'onCenterChange',
382
- zoomChange: 'onZoomChange'
383
- };
384
- }
385
- }
386
-
387
- /**
388
- * @hidden
389
- */
390
- class BaseEvent {
391
- /**
392
- * @hidden
393
- */
394
- constructor(sender) {
395
- this.sender = sender;
396
- }
397
- }
398
- BaseEvent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseEvent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
399
- BaseEvent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: BaseEvent, ngImport: i0 });
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseEvent, decorators: [{
401
- type: Directive
402
- }], ctorParameters: function () { return [{ type: undefined }]; } });
403
-
404
- /**
405
- * Fired immediately before the map is reset. This event is typically used for cleanup by layer implementers.
406
- */
407
- class BeforeResetEvent extends BaseEvent {
408
- /**
409
- * @hidden
410
- */
411
- constructor(_, sender) {
412
- super(sender);
413
- }
414
- }
415
-
416
- /**
417
- * Fired when the user clicks on the map.
418
- */
419
- class MapClickEvent extends BaseEvent {
420
- /**
421
- * @hidden
422
- */
423
- constructor(e, sender) {
424
- super(sender);
425
- this.location = e.location;
426
- this.originalEvent = e.originalEvent;
427
- }
428
- }
429
-
430
- /**
431
- * Fired when a marker has been displayed and has a DOM element assigned.
432
- */
433
- class MarkerActivateEvent extends BaseEvent {
434
- /**
435
- * @hidden
436
- */
437
- constructor(e, sender) {
438
- super(sender);
439
- this.marker = e.marker;
440
- this.layer = e.layer;
441
- }
442
- }
443
-
444
- /**
445
- * Fired when a marker has been clicked or tapped.
446
- */
447
- class MarkerClickEvent extends BaseEvent {
448
- /**
449
- * @hidden
450
- */
451
- constructor(e, sender) {
452
- super(sender);
453
- this.marker = e.marker;
454
- this.layer = e.layer;
455
- }
456
- }
457
-
458
- /**
459
- * @hidden
460
- */
461
- class PreventableEvent extends BaseEvent {
462
- constructor() {
463
- super(...arguments);
464
- this.prevented = false;
465
- }
466
- /**
467
- * Prevents the default action for a specified event.
468
- * In this way, the source component suppresses
469
- * the built-in behavior that follows the event.
470
- */
471
- preventDefault() {
472
- this.prevented = true;
473
- }
474
- /**
475
- * Returns `true` if the event was prevented
476
- * by any of its subscribers.
477
- *
478
- * @returns `true` if the default action was prevented.
479
- * Otherwise, returns `false`.
480
- */
481
- isDefaultPrevented() {
482
- return this.prevented;
483
- }
484
- }
485
- PreventableEvent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreventableEvent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
486
- PreventableEvent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PreventableEvent, usesInheritance: true, ngImport: i0 });
487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreventableEvent, decorators: [{
488
- type: Directive
489
- }] });
490
-
491
- /**
492
- * Fired when a marker has been created and is about to be displayed.
493
- *
494
- * Cancelling the event will prevent the marker from being shown.
495
- */
496
- class MarkerCreatedEvent extends PreventableEvent {
497
- /**
498
- * @hidden
499
- */
500
- constructor(e, sender) {
501
- super(sender);
502
- this.marker = e.marker;
503
- this.layer = e.layer;
504
- }
505
- }
506
-
507
- /**
508
- * Fires after the map viewport has been moved.
509
- */
510
- class PanEndEvent extends BaseEvent {
511
- /**
512
- * @hidden
513
- */
514
- constructor(e, sender) {
515
- super(sender);
516
- this.origin = e.origin;
517
- this.center = e.center;
518
- this.originalEvent = e.originalEvent;
519
- }
520
- }
521
-
522
- /**
523
- * Fired while the map viewport is being moved.
524
- */
525
- class PanEvent extends BaseEvent {
526
- /**
527
- * @hidden
528
- */
529
- constructor(e, sender) {
530
- super(sender);
531
- this.origin = e.origin;
532
- this.center = e.center;
533
- this.originalEvent = e.originalEvent;
534
- }
535
- }
536
-
537
- /**
538
- * Fired when the map is reset.
539
- *
540
- * This typically occurs on initial load and after a zoom/center change.
541
- */
542
- class ResetEvent extends BaseEvent {
543
- /**
544
- * @hidden
545
- */
546
- constructor(_, sender) {
547
- super(sender);
548
- }
549
- }
550
-
551
- /**
552
- * Fired when a shape is clicked or tapped.
553
- */
554
- class ShapeClickEvent extends BaseEvent {
555
- /**
556
- * @hidden
557
- */
558
- constructor(e, sender) {
559
- super(sender);
560
- this.layer = e.layer;
561
- this.shape = e.shape;
562
- this.originalEvent = e.originalEvent;
563
- }
564
- }
565
-
566
- /**
567
- * Fired when a shape is created, but is not rendered yet.
568
- */
569
- class ShapeCreatedEvent extends BaseEvent {
570
- /**
571
- * @hidden
572
- */
573
- constructor(e, sender) {
574
- super(sender);
575
- this.layer = e.layer;
576
- this.shape = e.shape;
577
- this.dataItem = e.shape.dataItem;
578
- this.location = e.shape.location;
579
- }
580
- }
581
-
582
- /**
583
- * Fired when a [GeoJSON Feature](https://geojson.org/geojson-spec.html#feature-objects) is created on a shape layer.
584
- */
585
- class ShapeFeatureCreatedEvent extends BaseEvent {
586
- /**
587
- * @hidden
588
- */
589
- constructor(e, sender) {
590
- super(sender);
591
- this.dataItem = e.dataItem;
592
- this.layer = e.layer;
593
- this.group = e.group;
594
- this.properties = e.properties;
595
- }
596
- }
597
-
598
- /**
599
- * Fired when the mouse enters a shape.
600
- *
601
- * > This event will fire reliably only for shapes that have set fill color.
602
- * > The opacity can still be set to 0 so the shapes appear to have no fill.
603
- */
604
- class ShapeMouseEnterEvent extends BaseEvent {
605
- /**
606
- * @hidden
607
- */
608
- constructor(e, sender) {
609
- super(sender);
610
- this.layer = e.layer;
611
- this.shape = e.shape;
612
- this.originalEvent = e.originalEvent;
613
- }
614
- }
615
-
616
- /**
617
- * Fired when the mouse leaves a shape.
618
- *
619
- * > This event will fire reliably only for shapes that have set fill color.
620
- * > The opacity can still be set to 0 so the shapes appear to have no fill.
621
- */
622
- class ShapeMouseLeaveEvent extends BaseEvent {
623
- /**
624
- * @hidden
625
- */
626
- constructor(e, sender) {
627
- super(sender);
628
- this.layer = e.layer;
629
- this.shape = e.shape;
630
- this.originalEvent = e.originalEvent;
631
- }
632
- }
633
-
634
- /**
635
- * Fired when the map zoom level has changed.
636
- */
637
- class ZoomEndEvent extends BaseEvent {
638
- /**
639
- * @hidden
640
- */
641
- constructor(e, sender) {
642
- super(sender);
643
- this.originalEvent = e.originalEvent;
644
- }
645
- }
646
-
647
- /**
648
- * Fired when the map zoom level is about to change.
649
- *
650
- * Cancelling the event will prevent the user action.
651
- */
652
- class ZoomStartEvent extends PreventableEvent {
653
- /**
654
- * @hidden
655
- */
656
- constructor(e, sender) {
657
- super(sender);
658
- this.originalEvent = e.originalEvent;
659
- }
660
- }
661
-
662
- const EVENT_MAP = {
663
- beforeReset: BeforeResetEvent,
664
- click: MapClickEvent,
665
- markerActivate: MarkerActivateEvent,
666
- markerClick: MarkerClickEvent,
667
- markerCreated: MarkerCreatedEvent,
668
- panEnd: PanEndEvent,
669
- pan: PanEvent,
670
- reset: ResetEvent,
671
- shapeClick: ShapeClickEvent,
672
- shapeCreated: ShapeCreatedEvent,
673
- shapeFeatureCreated: ShapeFeatureCreatedEvent,
674
- shapeMouseEnter: ShapeMouseEnterEvent,
675
- shapeMouseLeave: ShapeMouseLeaveEvent,
676
- zoomEnd: ZoomEndEvent,
677
- zoomStart: ZoomStartEvent
678
- };
679
- /**
680
- * @hidden
681
- */
682
- class InstanceEventService {
683
- create(name, args, sender) {
684
- if (EVENT_MAP[name]) {
685
- return new EVENT_MAP[name](args, sender);
686
- }
687
- }
688
- }
689
-
690
- /**
691
- * @hidden
692
- */
693
- const packageMetadata = {
694
- name: '@progress/kendo-angular-map',
695
- productName: 'Kendo UI for Angular',
696
- productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
697
- publishDate: 1729170407,
698
- version: '17.0.0-develop.8',
699
- licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
700
- };
701
-
702
- const POSITION_MODE = 'absolute';
703
- const COLLISION = { horizontal: "fit", vertical: "fit" };
704
- /**
705
- * @hidden
706
- */
707
- class BaseTooltip {
708
- constructor(popupService, localizationService) {
709
- this.popupService = popupService;
710
- this.localizationService = localizationService;
711
- this.animate = true;
712
- this.style = {
713
- position: 'relative'
714
- };
715
- this.popupRef = null;
716
- }
717
- get active() {
718
- return this.popupRef !== null;
719
- }
720
- show(e) {
721
- const offset = this.position(e.anchor);
722
- if (!this.popupRef) {
723
- this.popupRef = this.popupService.open(Object.assign({
724
- offset: offset,
725
- popupAlign: { vertical: 'bottom', horizontal: 'center' },
726
- animate: this.animate,
727
- content: this.templateRef,
728
- collision: COLLISION,
729
- positionMode: POSITION_MODE
730
- }, this.popupSettings));
731
- if (this.localizationService.rtl) {
732
- this.popupRef.popupElement.setAttribute('dir', 'rtl');
733
- }
734
- this.onInit();
735
- }
736
- else {
737
- const popup = this.popupRef.popup.instance;
738
- popup.offset = offset;
739
- }
740
- }
741
- hide() {
742
- if (this.popupRef) {
743
- this.popupRef.close();
744
- this.popupRef = null;
745
- }
746
- }
747
- onInit() {
748
- //calling on init
749
- }
750
- ngOnDestroy() {
751
- this.hide();
752
- }
753
- position(offset) {
754
- if (!this.popupSettings || !this.popupSettings.appendTo) {
755
- return offset;
756
- }
757
- const appendTo = this.popupSettings.appendTo.element.nativeElement;
758
- const bbox = appendTo.getBoundingClientRect();
759
- const { scrollLeft, scrollTop } = this.scrollOffset(appendTo);
760
- return {
761
- left: offset.left - bbox.left - scrollLeft,
762
- top: offset.top - bbox.top - scrollTop
763
- };
764
- }
765
- scrollOffset(element) {
766
- if (!element) {
767
- return null;
768
- }
769
- let scrollLeft = element.scrollLeft;
770
- let scrollTop = element.scrollTop;
771
- let parent = element.parentElement;
772
- while (parent) {
773
- scrollLeft += parent.scrollLeft;
774
- scrollTop += parent.scrollTop;
775
- parent = parent.parentElement;
776
- }
777
- return { scrollLeft, scrollTop };
778
- }
779
- }
780
- BaseTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseTooltip, deps: [{ token: i1.PopupService }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
781
- BaseTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: BaseTooltip, ngImport: i0 });
782
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseTooltip, decorators: [{
783
- type: Directive
784
- }], ctorParameters: function () { return [{ type: i1.PopupService }, { type: i3$1.LocalizationService }]; } });
785
-
786
- /**
787
- * @hidden
788
- */
789
- function bodyFactory() {
790
- if (isDocumentAvailable()) {
791
- return new ElementRef(document.body);
792
- }
793
- }
794
-
795
- /**
796
- * @hidden
797
- */
798
- class TooltipTemplateService {
799
- constructor() {
800
- this.templates = [];
801
- }
802
- registerTemplate(layerIndex, template) {
803
- if (layerIndex > -1) {
804
- this.templates[layerIndex] = template;
805
- }
806
- }
807
- getTemplate(layerIndex) {
808
- if (layerIndex > -1) {
809
- return this.templates[layerIndex];
810
- }
811
- }
812
- }
813
- TooltipTemplateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TooltipTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
814
- TooltipTemplateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TooltipTemplateService });
815
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TooltipTemplateService, decorators: [{
816
- type: Injectable
817
- }] });
818
-
819
- /**
820
- * @hidden
821
- */
822
- class TooltipPopupComponent extends BaseTooltip {
823
- constructor(popupService, templateService, localizationService, ngZone) {
824
- super(popupService, localizationService);
825
- this.popupService = popupService;
826
- this.templateService = templateService;
827
- this.localizationService = localizationService;
828
- this.ngZone = ngZone;
829
- this.tooltipContext = {};
830
- this.animate = true;
831
- this.wrapperClass = 'k-tooltip-wrapper';
832
- this.leave = new EventEmitter();
833
- this.popupClasses = {};
834
- }
835
- show(e) {
836
- this.tooltipTemplateRef = this.templateService.getTemplate(e.layerIndex);
837
- if (!this.tooltipTemplateRef) {
838
- return;
839
- }
840
- this.popupClasses = Object.assign({
841
- 'k-tooltip': true,
842
- 'k-map-tooltip': true,
843
- [e.className]: Boolean(e.className)
844
- }, this.classNames);
845
- this.tooltipContext = e;
846
- super.show(e);
847
- }
848
- containsElement(element) {
849
- if (this.popupRef) {
850
- return hasParent(element, this.popupRef.popupElement);
851
- }
852
- }
853
- onInit() {
854
- this.ngZone.runOutsideAngular(() => {
855
- this.mouseleaveSubscription = this.popupRef.popupElement.addEventListener('mouseleave', (args) => {
856
- this.leave.emit(args);
857
- });
858
- });
859
- this.popupRef.popupElement.classList.add(this.wrapperClass);
860
- }
861
- hide() {
862
- if (this.mouseleaveSubscription) {
863
- this.mouseleaveSubscription();
864
- this.mouseleaveSubscription = null;
865
- }
866
- this.tooltipTemplateRef = null;
867
- super.hide();
868
- }
869
- }
870
- TooltipPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TooltipPopupComponent, deps: [{ token: i1.PopupService }, { token: TooltipTemplateService }, { token: i3$1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
871
- TooltipPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TooltipPopupComponent, isStandalone: true, selector: "kendo-map-tooltip-popup", inputs: { animate: "animate", classNames: "classNames", popupSettings: "popupSettings", wrapperClass: "wrapperClass" }, outputs: { leave: "leave" }, providers: [PopupService, {
872
- provide: POPUP_CONTAINER,
873
- useFactory: bodyFactory
874
- }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
875
- <ng-template #content>
876
- <div [ngClass]="popupClasses" [ngStyle]="style">
877
- <div class="k-tooltip-content">
878
- <ng-template [ngTemplateOutlet]="tooltipTemplateRef"
879
- [ngTemplateOutletContext]="tooltipContext">
880
- </ng-template>
881
- </div>
882
- </div>
883
- </ng-template>
884
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
885
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TooltipPopupComponent, decorators: [{
886
- type: Component,
887
- args: [{
888
- providers: [PopupService, {
889
- provide: POPUP_CONTAINER,
890
- useFactory: bodyFactory
891
- }],
892
- selector: 'kendo-map-tooltip-popup',
893
- template: `
894
- <ng-template #content>
895
- <div [ngClass]="popupClasses" [ngStyle]="style">
896
- <div class="k-tooltip-content">
897
- <ng-template [ngTemplateOutlet]="tooltipTemplateRef"
898
- [ngTemplateOutletContext]="tooltipContext">
899
- </ng-template>
900
- </div>
901
- </div>
902
- </ng-template>
903
- `,
904
- standalone: true,
905
- imports: [NgClass, NgStyle, NgTemplateOutlet]
906
- }]
907
- }], ctorParameters: function () { return [{ type: i1.PopupService }, { type: TooltipTemplateService }, { type: i3$1.LocalizationService }, { type: i0.NgZone }]; }, propDecorators: { templateRef: [{
908
- type: ViewChild,
909
- args: ['content', { static: true }]
910
- }], animate: [{
911
- type: Input
912
- }], classNames: [{
913
- type: Input
914
- }], popupSettings: [{
915
- type: Input
916
- }], wrapperClass: [{
917
- type: Input
918
- }], leave: [{
919
- type: Output
920
- }] } });
921
-
922
- // Static SVG Icons used by the Map
923
- const svgIcons = {
924
- mapMarkerTargetIcon,
925
- mapMarkerIcon,
926
- plusIcon,
927
- minusIcon,
928
- caretAltUpIcon,
929
- caretAltDownIcon,
930
- caretAltLeftIcon,
931
- caretAltRightIcon
932
- };
933
- /**
934
- * Represents the [Kendo UI Map component for Angular]({% slug overview_map %}).
935
- *
936
- * @example
937
- * ```ts
938
- * import { Component } from '@angular/core';
939
- *
940
- * _@Component({
941
- * selector: 'my-app',
942
- * template: `
943
- * <kendo-map [center]="center" [zoom]="15">
944
- * <kendo-map-layers>
945
- * <kendo-map-tile-layer
946
- * [subdomains]="tileSubdomains"
947
- * [urlTemplate]="tileUrl"
948
- * attribution="&copy; <a href='https://osm.org/copyright'>OpenStreetMap contributors</a>"
949
- * >
950
- * </kendo-map-tile-layer>
951
- * <kendo-map-marker-layer
952
- * [data]="markers"
953
- * locationField="latlng"
954
- * titleField="name"
955
- * >
956
- * </kendo-map-marker-layer>
957
- * </kendo-map-layers>
958
- * </kendo-map>
959
- * `
960
- * })
961
- * class AppComponent {
962
- * tileSubdomains = ["a", "b", "c"];
963
- * tileUrl = (e: TileUrlTemplateArgs): string =>
964
- * `https://${e.subdomain}.tile.openstreetmap.org/${e.zoom}/${e.x}/${e.y}.png`;
965
- *
966
- * center = [30.2675, -97.7409];
967
- * markers = [{ latlng: [30.2675, -97.7409], name: "Zevo Toys" }];
968
- * }
969
- *
970
- * ```
971
- */
972
- class MapComponent {
973
- constructor(configurationService, instanceEventService, element, localizationService, changeDetector, ngZone, renderer, iconsService) {
974
- this.configurationService = configurationService;
975
- this.instanceEventService = instanceEventService;
976
- this.element = element;
977
- this.localizationService = localizationService;
978
- this.changeDetector = changeDetector;
979
- this.ngZone = ngZone;
980
- this.renderer = renderer;
981
- this.iconsService = iconsService;
982
- /**
983
- * Limits the automatic resizing of the Map. Sets the maximum number of times per second
984
- * that the component redraws its content when the size of its container changes.
985
- * Defaults to `10`. To disable the automatic resizing, set it to `0`.
986
- *
987
- * @example
988
- * ```ts
989
- * _@Component({
990
- * selector: 'my-app',
991
- * template: `
992
- * <kendo-map [resizeRateLimit]="2">
993
- * <!-- ^^^^^^^^^^^^^^^^^^^^^^
994
- * Will update the size of the Map up to two times a second.
995
- * Resize the example pane or window to try it out.
996
- * -->
997
- * </kendo-map>
998
- * `
999
- * })
1000
- * export class AppComponent {
1001
- * }
1002
- * ```
1003
- */
1004
- this.resizeRateLimit = 10;
1005
- /**
1006
- * The initial zoom level.
1007
- *
1008
- * Typical web maps use zoom levels from 0 (whole world) to 19 (sub-meter features).
1009
- *
1010
- * The map size is derived from the zoom level and minScale options: `size = (2 ^ zoom) * minSize`
1011
- *
1012
- * > Map zoom rounds floating point numbers. This is done so as the majority of web maps use the whole [`zoom levels`](https://wiki.openstreetmap.org/wiki/Zoom_levels) 0 through to 19.
1013
- *
1014
- * @default 3
1015
- */
1016
- this.zoom = 3;
1017
- /**
1018
- * Fired immediately before the map is reset. This event is typically used for cleanup by layer implementers.
1019
- */
1020
- this.beforeReset = new EventEmitter();
1021
- /**
1022
- * Fired when the user clicks on the map.
1023
- */
1024
- this.mapClick = new EventEmitter();
1025
- /**
1026
- * Fired when a marker has been displayed and has a DOM element assigned.
1027
- */
1028
- this.markerActivate = new EventEmitter();
1029
- /**
1030
- * Fired when a marker has been clicked or tapped.
1031
- */
1032
- this.markerClick = new EventEmitter();
1033
- /**
1034
- * Fired when a marker has been created and is about to be displayed.
1035
- *
1036
- * Cancelling the event will prevent the marker from being shown.
1037
- */
1038
- this.markerCreated = new EventEmitter();
1039
- /**
1040
- * Fires after the map viewport has been moved.
1041
- */
1042
- this.panEnd = new EventEmitter();
1043
- /**
1044
- * Fired while the map viewport is being moved.
1045
- */
1046
- this.pan = new EventEmitter();
1047
- /**
1048
- * Fired when the map is reset.
1049
- *
1050
- * This typically occurs on initial load and after a zoom/center change.
1051
- */
1052
- this.reset = new EventEmitter();
1053
- /**
1054
- * Fired when a shape is clicked or tapped.
1055
- */
1056
- this.shapeClick = new EventEmitter();
1057
- /**
1058
- * Fired when a shape is created, but is not rendered yet.
1059
- */
1060
- this.shapeCreated = new EventEmitter();
1061
- /**
1062
- * Fired when a [GeoJSON Feature](https://geojson.org/geojson-spec.html#feature-objects) is created on a shape layer.
1063
- */
1064
- this.shapeFeatureCreated = new EventEmitter();
1065
- /**
1066
- * Fired when the mouse enters a shape.
1067
- *
1068
- * > This event will fire reliably only for shapes that have set fill color.
1069
- * > The opacity can still be set to 0 so the shapes appear to have no fill.
1070
- */
1071
- this.shapeMouseEnter = new EventEmitter();
1072
- /**
1073
- * Fired when the mouse leaves a shape.
1074
- *
1075
- * > This event will fire reliably only for shapes that have set fill color.
1076
- * > The opacity can still be set to 0 so the shapes appear to have no fill.
1077
- */
1078
- this.shapeMouseLeave = new EventEmitter();
1079
- /**
1080
- * Fired when the map zoom level is about to change.
1081
- *
1082
- * Cancelling the event will prevent the user action.
1083
- */
1084
- this.zoomStart = new EventEmitter();
1085
- /**
1086
- * Fired when the map zoom level has changed.
1087
- */
1088
- this.zoomEnd = new EventEmitter();
1089
- /**
1090
- * Fired when the map center has been changed.
1091
- */
1092
- this.centerChange = new EventEmitter();
1093
- /**
1094
- * Fired when the map zoom level has been changed.
1095
- */
1096
- this.zoomChange = new EventEmitter();
1097
- this.initResizeSensor = false;
1098
- this.theme = null;
1099
- this.rtl = false;
1100
- validatePackage(packageMetadata);
1101
- }
1102
- ngAfterViewInit() {
1103
- if (this.canRender) {
1104
- this.ngZone.runOutsideAngular(() => {
1105
- const mapMouseleave = this.renderer.listen(this.element.nativeElement, 'mouseleave', this.mapMouseleave.bind(this));
1106
- this.domSubscriptions = () => {
1107
- mapMouseleave();
1108
- };
1109
- });
1110
- }
1111
- this.setDirection();
1112
- this.initConfig();
1113
- this.subscriptions = this.localizationService.changes.subscribe(() => this.setDirection());
1114
- }
1115
- ngAfterViewChecked() {
1116
- if (this.instance && this.autoResize) {
1117
- this.ngZone.runOutsideAngular(() => {
1118
- clearTimeout(this.resizeTimeout);
1119
- this.resizeTimeout = setTimeout(() => {
1120
- this.resize();
1121
- }, 0);
1122
- });
1123
- }
1124
- }
1125
- ngOnChanges(changes) {
1126
- if (this.instance) {
1127
- if (changes['zoom']) {
1128
- this.instance.zoom(changes['zoom'].currentValue);
1129
- delete changes['zoom'];
1130
- }
1131
- if (changes['center']) {
1132
- this.instance.center(changes['center'].currentValue);
1133
- delete changes['center'];
1134
- }
1135
- if (Object.keys(changes).length === 0) {
1136
- return;
1137
- }
1138
- }
1139
- const store = this.configurationService.store;
1140
- copyChanges(changes, store);
1141
- store.popupSettings = null;
1142
- this.configurationService.push(store);
1143
- }
1144
- ngOnDestroy() {
1145
- this.destroyed = true;
1146
- if (this.optionsChange) {
1147
- this.optionsChange.unsubscribe();
1148
- }
1149
- if (this.domSubscriptions) {
1150
- this.domSubscriptions();
1151
- this.domSubscriptions = null;
1152
- }
1153
- if (this.instance) {
1154
- this.instance.destroy();
1155
- this.instance = null;
1156
- }
1157
- if (this.subscriptions) {
1158
- this.subscriptions.unsubscribe();
1159
- }
1160
- }
1161
- /**
1162
- * The marker layers instances.
1163
- */
1164
- get layers() {
1165
- var _a;
1166
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.layers;
1167
- }
1168
- /**
1169
- * Gets the extent (visible area) of the map.
1170
- */
1171
- get extent() {
1172
- var _a;
1173
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.extent();
1174
- }
1175
- /**
1176
- * Sets the extent (visible area) of the map.
1177
- */
1178
- set extent(extent) {
1179
- var _a;
1180
- (_a = this.instance) === null || _a === void 0 ? void 0 : _a.extent(extent);
1181
- }
1182
- /**
1183
- * Detects the size of the container and redraws the Map.
1184
- * Resizing is automatic unless you set the `resizeRateLimit` option to `0`.
1185
- */
1186
- resize() {
1187
- //this.instance?.resize();
1188
- }
1189
- /**
1190
- * Retrieves the size of the visible portion of the map.
1191
- *
1192
- * @returns The size (width and height) of the visible portion of the map.
1193
- */
1194
- viewSize() {
1195
- var _a;
1196
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.viewSize();
1197
- }
1198
- /**
1199
- * Returns the event coordinates relative to the map element. Offset coordinates are not synchronized to a particular location on the map.
1200
- *
1201
- * @param e The mouse event.
1202
- * @returns The event coordinates relative to the map element.
1203
- */
1204
- eventOffset(e) {
1205
- var _a;
1206
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.eventOffset(e);
1207
- }
1208
- /**
1209
- * Retrieves projected (layer) coordinates that correspond to this mouse event. Layer coordinates are absolute and change only when the zoom level is changed.
1210
- *
1211
- * @param e The mouse event.
1212
- * @returns The projected (layer) coordinates that correspond to this event.
1213
- */
1214
- eventToLayer(e) {
1215
- var _a;
1216
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.eventToLayer(e);
1217
- }
1218
- /**
1219
- * Retrieves the geographic location that correspond to this mouse event.
1220
- *
1221
- * @param e The mouse event.
1222
- * @returns The geographic location that correspond to this mouse event.
1223
- */
1224
- eventToLocation(e) {
1225
- var _a;
1226
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.eventToLocation(e);
1227
- }
1228
- /**
1229
- * Retrieves relative (view) coordinates that correspond to this mouse event. Layer elements positioned on these coordinates will appear under the mouse cursor.
1230
- * View coordinates are no longer valid after a map reset.
1231
- *
1232
- * @param e The mouse event.
1233
- * @returns The relative (view) coordinates that correspond to this mouse event.
1234
- */
1235
- eventToView(e) {
1236
- var _a;
1237
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.eventToView(e);
1238
- }
1239
- /**
1240
- * Transforms layer (projected) coordinates to geographical location.
1241
- *
1242
- * @param point The layer (projected) coordinates. An array argument is assumed to be in x, y order.
1243
- * @param zoom Optional. Assumed zoom level. Defaults to the current zoom level.
1244
- * @returns The geographic location that corresponds to the layer coordinates.
1245
- */
1246
- layerToLocation(point, zoom) {
1247
- var _a;
1248
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.layerToLocation(point, zoom);
1249
- }
1250
- /**
1251
- * Returns the layer (projected) coordinates that correspond to a geographical location.
1252
- *
1253
- * @param location The geographic location. An array argument is assumed to be in [Latitude, Longitude] order.
1254
- * @param zoom Optional. Assumed zoom level. Defaults to the current zoom level.
1255
- * @returns The layer (projected) coordinates.
1256
- */
1257
- locationToLayer(location, zoom) {
1258
- var _a;
1259
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.locationToLayer(location, zoom);
1260
- }
1261
- /**
1262
- * Returns the view (relative) coordinates that correspond to a geographical location.
1263
- *
1264
- * @param location The geographic location. An array argument is assumed to be in [Latitude, Longitude] order.
1265
- * @returns The view coordinates that correspond to a geographical location.
1266
- */
1267
- locationToView(location) {
1268
- var _a;
1269
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.locationToView(location);
1270
- }
1271
- /**
1272
- * Returns the geographical location that correspond to the view (relative) coordinates.
1273
- *
1274
- * @param point The view coordinates. An array argument is assumed to be in x, y order.
1275
- * @param zoom Optional. Assumed zoom level. Defaults to the current zoom level.
1276
- * @returns The geographic location that corresponds to the view coordinates.
1277
- */
1278
- viewToLocation(point, zoom) {
1279
- var _a;
1280
- return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.viewToLocation(point, zoom);
1281
- }
1282
- /**
1283
- * @hidden
1284
- */
1285
- onResize() {
1286
- if (this.autoResize) {
1287
- this.resize();
1288
- }
1289
- }
1290
- /**
1291
- * @hidden
1292
- */
1293
- get canRender() {
1294
- return isDocumentAvailable() && Boolean(this.element);
1295
- }
1296
- get autoResize() {
1297
- return this.resizeRateLimit > 0;
1298
- }
1299
- init() {
1300
- if (!this.canRender) {
1301
- return;
1302
- }
1303
- const element = this.element.nativeElement;
1304
- this.renderer.setStyle(element, 'display', 'block');
1305
- const instanceObserver = new MapInstanceObserver(this);
1306
- this.createInstance(element, instanceObserver);
1307
- }
1308
- initConfig() {
1309
- if (!isDocumentAvailable()) {
1310
- return;
1311
- }
1312
- this.ngZone.runOutsideAngular(() => {
1313
- this.optionsChange = combineLatest([this.configurationService.changes, this.iconsService.changes])
1314
- .pipe(tap(([options, iconSettings]) => {
1315
- this.options = Object.assign(Object.assign({}, options), { icons: Object.assign(Object.assign({}, iconSettings), { svgIcons }) });
1316
- }))
1317
- .subscribe(() => {
1318
- if (!this.instance) {
1319
- this.init();
1320
- return;
1321
- }
1322
- this.instance.setOptions(this.options);
1323
- });
1324
- });
1325
- }
1326
- createInstance(element, observer) {
1327
- this.instance = new Map(element, this.options, this.theme, {
1328
- observer: observer,
1329
- rtl: this.rtl,
1330
- sender: this
1331
- });
1332
- }
1333
- activeEmitter(name) {
1334
- const alias = name === 'click' ? 'mapClick' : name;
1335
- const emitter = this[alias];
1336
- if (emitter && emitter.emit && hasObservers(emitter)) {
1337
- return emitter;
1338
- }
1339
- }
1340
- trigger(name, e) {
1341
- const emitter = this.activeEmitter(name);
1342
- if (emitter) {
1343
- const args = this.instanceEventService.create(name, e, this);
1344
- if (!this.instance && e.sender) {
1345
- // Ensure instance reference is populated for events trigger during initialization.
1346
- this.instance = e.sender;
1347
- }
1348
- this.run(() => {
1349
- emitter.emit(args);
1350
- });
1351
- return args.isDefaultPrevented && args.isDefaultPrevented();
1352
- }
1353
- }
1354
- run(callback, inZone = true, detectChanges) {
1355
- if (inZone) {
1356
- if (detectChanges) {
1357
- this.changeDetector.markForCheck();
1358
- }
1359
- this.ngZone.run(callback);
1360
- }
1361
- else {
1362
- callback();
1363
- if (detectChanges) {
1364
- this.detectChanges();
1365
- }
1366
- }
1367
- }
1368
- detectChanges() {
1369
- if (!this.destroyed) {
1370
- this.changeDetector.detectChanges();
1371
- }
1372
- }
1373
- setDirection() {
1374
- this.rtl = this.isRTL;
1375
- if (this.element) {
1376
- this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
1377
- }
1378
- }
1379
- get isRTL() {
1380
- return Boolean(this.localizationService.rtl);
1381
- }
1382
- onInit(e) {
1383
- this.instance = e.sender;
1384
- }
1385
- onShowTooltip(e) {
1386
- this.run(() => {
1387
- this.tooltipInstance.show(e);
1388
- }, true, true);
1389
- }
1390
- onHideTooltip() {
1391
- this.run(() => {
1392
- this.tooltipInstance.hide();
1393
- }, true, true);
1394
- }
1395
- onCenterChange(e) {
1396
- this.centerChange.next(e.center);
1397
- }
1398
- onZoomChange(e) {
1399
- this.zoomChange.next(e.zoom);
1400
- }
1401
- /**
1402
- * @hidden
1403
- */
1404
- tooltipMouseleave(e) {
1405
- const relatedTarget = e.relatedTarget;
1406
- const chartElement = this.element.nativeElement;
1407
- if (this.instance && (!relatedTarget || !hasParent(relatedTarget, chartElement))) {
1408
- this.tooltipInstance.hide();
1409
- }
1410
- }
1411
- /**
1412
- * @hidden
1413
- */
1414
- mapMouseleave(e) {
1415
- const relatedTarget = e.relatedTarget;
1416
- const chartElement = this.element.nativeElement;
1417
- if (this.instance && (!relatedTarget || !(this.tooltipInstance.containsElement(relatedTarget) || hasParent(relatedTarget, chartElement)))) {
1418
- this.tooltipInstance.hide();
1419
- }
1420
- }
1421
- }
1422
- MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapComponent, deps: [{ token: ConfigurationService }, { token: InstanceEventService }, { token: i0.ElementRef }, { token: i3$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i4.IconsService }], target: i0.ɵɵFactoryTarget.Component });
1423
- MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapComponent, isStandalone: true, selector: "kendo-map", inputs: { resizeRateLimit: "resizeRateLimit", center: "center", controls: "controls", minZoom: "minZoom", maxZoom: "maxZoom", minSize: "minSize", pannable: "pannable", popupSettings: "popupSettings", wraparound: "wraparound", zoom: "zoom", zoomable: "zoomable" }, outputs: { beforeReset: "beforeReset", mapClick: "mapClick", markerActivate: "markerActivate", markerClick: "markerClick", markerCreated: "markerCreated", panEnd: "panEnd", pan: "pan", reset: "reset", shapeClick: "shapeClick", shapeCreated: "shapeCreated", shapeFeatureCreated: "shapeFeatureCreated", shapeMouseEnter: "shapeMouseEnter", shapeMouseLeave: "shapeMouseLeave", zoomStart: "zoomStart", zoomEnd: "zoomEnd", centerChange: "centerChange", zoomChange: "zoomChange" }, providers: [
1424
- ConfigurationService,
1425
- InstanceEventService,
1426
- LocalizationService,
1427
- TooltipTemplateService,
1428
- {
1429
- provide: L10N_PREFIX,
1430
- useValue: 'kendo.map'
1431
- }
1432
- ], viewQueries: [{ propertyName: "tooltipInstance", first: true, predicate: TooltipPopupComponent, descendants: true, static: true }], exportAs: ["kendoMap"], usesOnChanges: true, ngImport: i0, template: `
1433
- <kendo-map-tooltip-popup (leave)="tooltipMouseleave($event)" [popupSettings]="popupSettings">
1434
- </kendo-map-tooltip-popup>
1435
- <div [style.width.%]="100" [style.height.%]="100"><!-- required for resize sensor to initialize properly -->
1436
- <kendo-resize-sensor (resize)="onResize()" [rateLimit]="resizeRateLimit"></kendo-resize-sensor>
1437
- </div>
1438
- `, isInline: true, dependencies: [{ kind: "component", type: TooltipPopupComponent, selector: "kendo-map-tooltip-popup", inputs: ["animate", "classNames", "popupSettings", "wrapperClass"], outputs: ["leave"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1439
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapComponent, decorators: [{
1440
- type: Component,
1441
- args: [{
1442
- selector: 'kendo-map',
1443
- changeDetection: ChangeDetectionStrategy.OnPush,
1444
- exportAs: 'kendoMap',
1445
- providers: [
1446
- ConfigurationService,
1447
- InstanceEventService,
1448
- LocalizationService,
1449
- TooltipTemplateService,
1450
- {
1451
- provide: L10N_PREFIX,
1452
- useValue: 'kendo.map'
1453
- }
1454
- ],
1455
- template: `
1456
- <kendo-map-tooltip-popup (leave)="tooltipMouseleave($event)" [popupSettings]="popupSettings">
1457
- </kendo-map-tooltip-popup>
1458
- <div [style.width.%]="100" [style.height.%]="100"><!-- required for resize sensor to initialize properly -->
1459
- <kendo-resize-sensor (resize)="onResize()" [rateLimit]="resizeRateLimit"></kendo-resize-sensor>
1460
- </div>
1461
- `,
1462
- standalone: true,
1463
- imports: [TooltipPopupComponent, ResizeSensorComponent]
1464
- }]
1465
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: InstanceEventService }, { type: i0.ElementRef }, { type: i3$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i4.IconsService }]; }, propDecorators: { resizeRateLimit: [{
1466
- type: Input
1467
- }], center: [{
1468
- type: Input
1469
- }], controls: [{
1470
- type: Input
1471
- }], minZoom: [{
1472
- type: Input
1473
- }], maxZoom: [{
1474
- type: Input
1475
- }], minSize: [{
1476
- type: Input
1477
- }], pannable: [{
1478
- type: Input
1479
- }], popupSettings: [{
1480
- type: Input
1481
- }], wraparound: [{
1482
- type: Input
1483
- }], zoom: [{
1484
- type: Input
1485
- }], zoomable: [{
1486
- type: Input
1487
- }], beforeReset: [{
1488
- type: Output
1489
- }], mapClick: [{
1490
- type: Output
1491
- }], markerActivate: [{
1492
- type: Output
1493
- }], markerClick: [{
1494
- type: Output
1495
- }], markerCreated: [{
1496
- type: Output
1497
- }], panEnd: [{
1498
- type: Output
1499
- }], pan: [{
1500
- type: Output
1501
- }], reset: [{
1502
- type: Output
1503
- }], shapeClick: [{
1504
- type: Output
1505
- }], shapeCreated: [{
1506
- type: Output
1507
- }], shapeFeatureCreated: [{
1508
- type: Output
1509
- }], shapeMouseEnter: [{
1510
- type: Output
1511
- }], shapeMouseLeave: [{
1512
- type: Output
1513
- }], zoomStart: [{
1514
- type: Output
1515
- }], zoomEnd: [{
1516
- type: Output
1517
- }], centerChange: [{
1518
- type: Output
1519
- }], zoomChange: [{
1520
- type: Output
1521
- }], tooltipInstance: [{
1522
- type: ViewChild,
1523
- args: [TooltipPopupComponent, { static: true }]
1524
- }] } });
1525
-
1526
- /**
1527
- * @hidden
1528
- */
1529
- class CollectionComponent {
1530
- constructor(configKey, configurationService, collectionService) {
1531
- this.configKey = configKey;
1532
- this.configurationService = configurationService;
1533
- this.collectionService = collectionService;
1534
- this.items = [];
1535
- this.subscription = collectionService.itemChanges.subscribe(changes => this.processChanges(changes));
1536
- }
1537
- ngOnDestroy() {
1538
- this.subscription.unsubscribe();
1539
- }
1540
- ngAfterContentInit() {
1541
- this.readItems();
1542
- this.children.changes.subscribe(() => this.readItems());
1543
- }
1544
- processChanges(changes) {
1545
- if (!this.children) {
1546
- return;
1547
- }
1548
- const index = this.children.toArray().indexOf(changes.sender);
1549
- if (index < 0) {
1550
- return;
1551
- }
1552
- this.items[index] = changes.options;
1553
- changes.sender.index = index;
1554
- this.change();
1555
- }
1556
- readItems() {
1557
- this.items = this.children.map((item, index) => {
1558
- item.index = index;
1559
- return item.options;
1560
- });
1561
- this.change();
1562
- }
1563
- change() {
1564
- this.configurationService.notify(new Change(this.configKey, this.items.length === 0 ? undefined : this.items));
1565
- }
1566
- }
1567
- CollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
1568
- CollectionComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CollectionComponent, ngImport: i0 });
1569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionComponent, decorators: [{
1570
- type: Directive
1571
- }], ctorParameters: function () { return [{ type: undefined }, { type: ConfigurationService }, { type: CollectionService }]; } });
1572
-
1573
- /**
1574
- * A collection of one or more layers.
1575
- */
1576
- class LayersComponent extends CollectionComponent {
1577
- constructor(configurationService, collectionService) {
1578
- super('layers', configurationService, collectionService);
1579
- this.configurationService = configurationService;
1580
- this.collectionService = collectionService;
1581
- }
1582
- }
1583
- LayersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LayersComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }], target: i0.ɵɵFactoryTarget.Component });
1584
- LayersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LayersComponent, isStandalone: true, selector: "kendo-map-layers", providers: [CollectionService], queries: [{ propertyName: "children", predicate: LayerComponent }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LayersComponent, decorators: [{
1586
- type: Component,
1587
- args: [{
1588
- changeDetection: ChangeDetectionStrategy.OnPush,
1589
- providers: [CollectionService],
1590
- selector: 'kendo-map-layers',
1591
- template: '',
1592
- standalone: true
1593
- }]
1594
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, propDecorators: { children: [{
1595
- type: ContentChildren,
1596
- args: [LayerComponent]
1597
- }] } });
1598
-
1599
- /**
1600
- * A vector shape layer for bubble maps. [See example](slug:marker_layers_map).
1601
- */
1602
- class MarkerLayerComponent extends LayerComponent {
1603
- constructor(configurationService, collectionService, sanitizer) {
1604
- super('marker', configurationService, collectionService, sanitizer);
1605
- this.configurationService = configurationService;
1606
- this.collectionService = collectionService;
1607
- this.sanitizer = sanitizer;
1608
- }
1609
- }
1610
- MarkerLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkerLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1611
- MarkerLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MarkerLayerComponent, isStandalone: true, selector: "kendo-map-marker-layer", inputs: { data: "data", locationField: "locationField", titleField: "titleField", shape: "shape" }, providers: [
1612
- ConfigurationService,
1613
- {
1614
- provide: LayerComponent,
1615
- useExisting: forwardRef(() => MarkerLayerComponent)
1616
- }
1617
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1618
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkerLayerComponent, decorators: [{
1619
- type: Component,
1620
- args: [{
1621
- changeDetection: ChangeDetectionStrategy.OnPush,
1622
- providers: [
1623
- ConfigurationService,
1624
- {
1625
- provide: LayerComponent,
1626
- useExisting: forwardRef(() => MarkerLayerComponent)
1627
- }
1628
- ],
1629
- selector: 'kendo-map-marker-layer',
1630
- template: '',
1631
- standalone: true
1632
- }]
1633
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
1634
- type: Input
1635
- }], locationField: [{
1636
- type: Input
1637
- }], titleField: [{
1638
- type: Input
1639
- }], shape: [{
1640
- type: Input
1641
- }] } });
1642
-
1643
- /**
1644
- * Defines a vector shape layer bound to GeoJSON data. [See example](slug:shape_layers_map).
1645
- */
1646
- class ShapeLayerComponent extends LayerComponent {
1647
- constructor(configurationService, collectionService, sanitizer) {
1648
- super('shape', configurationService, collectionService, sanitizer);
1649
- this.configurationService = configurationService;
1650
- this.collectionService = collectionService;
1651
- this.sanitizer = sanitizer;
1652
- }
1653
- }
1654
- ShapeLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShapeLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1655
- ShapeLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ShapeLayerComponent, isStandalone: true, selector: "kendo-map-shape-layer", inputs: { data: "data", style: "style" }, providers: [
1656
- ConfigurationService,
1657
- {
1658
- provide: LayerComponent,
1659
- useExisting: forwardRef(() => ShapeLayerComponent)
1660
- }
1661
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShapeLayerComponent, decorators: [{
1663
- type: Component,
1664
- args: [{
1665
- changeDetection: ChangeDetectionStrategy.OnPush,
1666
- providers: [
1667
- ConfigurationService,
1668
- {
1669
- provide: LayerComponent,
1670
- useExisting: forwardRef(() => ShapeLayerComponent)
1671
- }
1672
- ],
1673
- selector: 'kendo-map-shape-layer',
1674
- template: '',
1675
- standalone: true
1676
- }]
1677
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
1678
- type: Input
1679
- }], style: [{
1680
- type: Input
1681
- }] } });
1682
-
1683
- /**
1684
- * Defines a vector shape layer bound to GeoJSON data. [See example](slug:tile_layers_map).
1685
- */
1686
- class TileLayerComponent extends LayerComponent {
1687
- constructor(configurationService, collectionService, sanitizer) {
1688
- super('tile', configurationService, collectionService, sanitizer);
1689
- this.configurationService = configurationService;
1690
- this.collectionService = collectionService;
1691
- this.sanitizer = sanitizer;
1692
- }
1693
- }
1694
- TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1695
- TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TileLayerComponent, isStandalone: true, selector: "kendo-map-tile-layer", inputs: { tileSize: "tileSize", subdomains: "subdomains", urlTemplate: "urlTemplate" }, providers: [
1696
- ConfigurationService,
1697
- {
1698
- provide: LayerComponent,
1699
- useExisting: forwardRef(() => TileLayerComponent)
1700
- }
1701
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1702
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, decorators: [{
1703
- type: Component,
1704
- args: [{
1705
- changeDetection: ChangeDetectionStrategy.OnPush,
1706
- providers: [
1707
- ConfigurationService,
1708
- {
1709
- provide: LayerComponent,
1710
- useExisting: forwardRef(() => TileLayerComponent)
1711
- }
1712
- ],
1713
- selector: 'kendo-map-tile-layer',
1714
- template: '',
1715
- standalone: true
1716
- }]
1717
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { tileSize: [{
1718
- type: Input
1719
- }], subdomains: [{
1720
- type: Input
1721
- }], urlTemplate: [{
1722
- type: Input
1723
- }] } });
1724
-
1725
- /**
1726
- * A directive that sets a [template](link:site.data.urls.angular['templatesyntax'])
1727
- * within the `<kendo-map-tooltip>` component for the Map
1728
- * [Bubble layer tooltip](slug:bubble_layers_map#toc-tooltips).
1729
- *
1730
- * The available inputs for the bubble tooltip template are:
1731
- * * `dataItem: any`&mdash;The original data item used to create the bubble.
1732
- * * `layerIndex: number`&mdash;The index of the layer for the tooltip.
1733
- * * `location: Location`&mdash;The location of the bubble.
1734
- * * `value: number`&mdash;The value of the bubble.
1735
- */
1736
- class BubbleTooltipTemplateDirective {
1737
- constructor(templateRef) {
1738
- this.templateRef = templateRef;
1739
- }
1740
- }
1741
- BubbleTooltipTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BubbleTooltipTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1742
- BubbleTooltipTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: BubbleTooltipTemplateDirective, isStandalone: true, selector: "[kendoMapBubbleTooltipTemplate]", ngImport: i0 });
1743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BubbleTooltipTemplateDirective, decorators: [{
1744
- type: Directive,
1745
- args: [{
1746
- selector: '[kendoMapBubbleTooltipTemplate]',
1747
- standalone: true
1748
- }]
1749
- }], ctorParameters: function () {
1750
- return [{ type: i0.TemplateRef, decorators: [{
1751
- type: Optional
1752
- }] }];
1753
- } });
1754
-
1755
- /**
1756
- * A directive that sets a [template](link:site.data.urls.angular['templatesyntax'])
1757
- * within the `<kendo-map-tooltip>` component for the Map
1758
- * [Marker layer tooltip](slug:marker_layers_map#toc-tooltips).
1759
- *
1760
- * The available inputs for the marker tooltip template are:
1761
- * * `title: string`&mdash;The marker title.
1762
- * * `layerIndex: number`&mdash;The index of the layer for the tooltip.
1763
- * * `location: Location`&mdash;The marker location.
1764
- */
1765
- class MarkerTooltipTemplateDirective {
1766
- constructor(templateRef) {
1767
- this.templateRef = templateRef;
1768
- }
1769
- }
1770
- MarkerTooltipTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkerTooltipTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1771
- MarkerTooltipTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MarkerTooltipTemplateDirective, isStandalone: true, selector: "[kendoMapMarkerTooltipTemplate]", ngImport: i0 });
1772
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkerTooltipTemplateDirective, decorators: [{
1773
- type: Directive,
1774
- args: [{
1775
- selector: '[kendoMapMarkerTooltipTemplate]',
1776
- standalone: true
1777
- }]
1778
- }], ctorParameters: function () {
1779
- return [{ type: i0.TemplateRef, decorators: [{
1780
- type: Optional
1781
- }] }];
1782
- } });
1783
-
1784
- /**
1785
- * A directive that sets a [template](link:site.data.urls.angular['templatesyntax'])
1786
- * within the `<kendo-map-tooltip>` component for the Map
1787
- * [Shape layer tooltip](slug:shape_layers_map#toc-tooltips).
1788
- *
1789
- * The available inputs for the shape tooltip template are:
1790
- * * `dataItem: any`&mdash;The original data item used to create the shape.
1791
- * * `layerIndex: number`&mdash;The index of the layer for the tooltip.
1792
- * * `location: Location`&mdash;The location of the center of the shape.
1793
- */
1794
- class ShapeTooltipTemplateDirective {
1795
- constructor(templateRef) {
1796
- this.templateRef = templateRef;
1797
- }
1798
- }
1799
- ShapeTooltipTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShapeTooltipTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1800
- ShapeTooltipTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ShapeTooltipTemplateDirective, isStandalone: true, selector: "[kendoMapShapeTooltipTemplate]", ngImport: i0 });
1801
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShapeTooltipTemplateDirective, decorators: [{
1802
- type: Directive,
1803
- args: [{
1804
- selector: '[kendoMapShapeTooltipTemplate]',
1805
- standalone: true
1806
- }]
1807
- }], ctorParameters: function () {
1808
- return [{ type: i0.TemplateRef, decorators: [{
1809
- type: Optional
1810
- }] }];
1811
- } });
1812
-
1813
- /**
1814
- * The configuration options of the [Bubble Layer Tooltip](slug:bubble_layers_map#toc-tooltips).
1815
- */
1816
- class BubbleTooltipComponent extends SettingsComponent {
1817
- constructor(configurationService, templateService, layer) {
1818
- super('tooltip', configurationService);
1819
- this.configurationService = configurationService;
1820
- this.templateService = templateService;
1821
- this.layer = layer;
1822
- }
1823
- ngAfterContentChecked() {
1824
- var _a;
1825
- this.templateService.registerTemplate(this.layer.index, (_a = this.bubbleTooltipTemplate) === null || _a === void 0 ? void 0 : _a.templateRef);
1826
- }
1827
- }
1828
- BubbleTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BubbleTooltipComponent, deps: [{ token: ConfigurationService }, { token: TooltipTemplateService }, { token: LayerComponent }], target: i0.ɵɵFactoryTarget.Component });
1829
- BubbleTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BubbleTooltipComponent, isStandalone: true, selector: "kendo-map-bubble-layer-tooltip", queries: [{ propertyName: "bubbleTooltipTemplate", first: true, predicate: BubbleTooltipTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
1830
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BubbleTooltipComponent, decorators: [{
1831
- type: Component,
1832
- args: [{
1833
- selector: 'kendo-map-bubble-layer-tooltip',
1834
- template: '',
1835
- standalone: true
1836
- }]
1837
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: TooltipTemplateService }, { type: LayerComponent }]; }, propDecorators: { bubbleTooltipTemplate: [{
1838
- type: ContentChild,
1839
- args: [BubbleTooltipTemplateDirective, { static: false }]
1840
- }] } });
1841
-
1842
- /**
1843
- * The configuration options of the [Marker Layer Tooltip](slug:marker_layers_map#toc-tooltips).
1844
- */
1845
- class MarkerTooltipComponent extends SettingsComponent {
1846
- constructor(configurationService, templateService, layer) {
1847
- super('tooltip', configurationService);
1848
- this.configurationService = configurationService;
1849
- this.templateService = templateService;
1850
- this.layer = layer;
1851
- }
1852
- ngAfterContentChecked() {
1853
- var _a;
1854
- this.templateService.registerTemplate(this.layer.index, (_a = this.markerTooltipTemplate) === null || _a === void 0 ? void 0 : _a.templateRef);
1855
- }
1856
- }
1857
- MarkerTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkerTooltipComponent, deps: [{ token: ConfigurationService }, { token: TooltipTemplateService }, { token: LayerComponent }], target: i0.ɵɵFactoryTarget.Component });
1858
- MarkerTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MarkerTooltipComponent, isStandalone: true, selector: "kendo-map-marker-layer-tooltip", queries: [{ propertyName: "markerTooltipTemplate", first: true, predicate: MarkerTooltipTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
1859
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkerTooltipComponent, decorators: [{
1860
- type: Component,
1861
- args: [{
1862
- selector: 'kendo-map-marker-layer-tooltip',
1863
- template: '',
1864
- standalone: true
1865
- }]
1866
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: TooltipTemplateService }, { type: LayerComponent }]; }, propDecorators: { markerTooltipTemplate: [{
1867
- type: ContentChild,
1868
- args: [MarkerTooltipTemplateDirective, { static: false }]
1869
- }] } });
1870
-
1871
- /**
1872
- * The configuration options of the [Shape Layer Tooltip](slug:shape_layers_map#toc-tooltips).
1873
- */
1874
- class ShapeTooltipComponent extends SettingsComponent {
1875
- constructor(configurationService, templateService, layer) {
1876
- super('tooltip', configurationService);
1877
- this.configurationService = configurationService;
1878
- this.templateService = templateService;
1879
- this.layer = layer;
1880
- }
1881
- ngAfterContentChecked() {
1882
- var _a;
1883
- this.templateService.registerTemplate(this.layer.index, (_a = this.shapeTooltipTemplate) === null || _a === void 0 ? void 0 : _a.templateRef);
1884
- }
1885
- }
1886
- ShapeTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShapeTooltipComponent, deps: [{ token: ConfigurationService }, { token: TooltipTemplateService }, { token: LayerComponent }], target: i0.ɵɵFactoryTarget.Component });
1887
- ShapeTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ShapeTooltipComponent, isStandalone: true, selector: "kendo-map-shape-layer-tooltip", queries: [{ propertyName: "shapeTooltipTemplate", first: true, predicate: ShapeTooltipTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
1888
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShapeTooltipComponent, decorators: [{
1889
- type: Component,
1890
- args: [{
1891
- selector: 'kendo-map-shape-layer-tooltip',
1892
- template: '',
1893
- standalone: true
1894
- }]
1895
- }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: TooltipTemplateService }, { type: LayerComponent }]; }, propDecorators: { shapeTooltipTemplate: [{
1896
- type: ContentChild,
1897
- args: [ShapeTooltipTemplateDirective, { static: false }]
1898
- }] } });
1899
-
1900
- /**
1901
- * Utility array that contains all `Map` related components and directives.
1902
- */
1903
- const KENDO_MAP = [
1904
- BubbleLayerComponent,
1905
- BubbleTooltipComponent,
1906
- BubbleTooltipTemplateDirective,
1907
- LayersComponent,
1908
- MapComponent,
1909
- MarkerLayerComponent,
1910
- MarkerTooltipComponent,
1911
- MarkerTooltipTemplateDirective,
1912
- ShapeLayerComponent,
1913
- ShapeTooltipComponent,
1914
- ShapeTooltipTemplateDirective,
1915
- TileLayerComponent
1916
- ];
1917
-
1918
- //IMPORTANT: NgModule export kept for backwards compatibility
1919
- /**
1920
- * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
1921
- * definition for the Map component.
1922
- * @example
1923
- *
1924
- * ```ts
1925
- * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
1926
- * import { BrowserModule } from '@angular/platform-browser';
1927
- * import { NgModule } from '@angular/core';
1928
- * import { MapModule } from '@progress/kendo-angular-map';
1929
- * import { AppComponent } from './app.component';
1930
- *
1931
- * @NgModule({
1932
- * declarations: [AppComponent],
1933
- * imports: [BrowserModule, BrowserAnimationsModule, MapModule],
1934
- * bootstrap: [AppComponent]
1935
- * })
1936
- * export class AppModule {}
1937
- *```
1938
- */
1939
- class MapModule {
1940
- }
1941
- MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1942
- MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [BubbleLayerComponent, BubbleTooltipComponent, BubbleTooltipTemplateDirective, LayersComponent, MapComponent, MarkerLayerComponent, MarkerTooltipComponent, MarkerTooltipTemplateDirective, ShapeLayerComponent, ShapeTooltipComponent, ShapeTooltipTemplateDirective, TileLayerComponent], exports: [BubbleLayerComponent, BubbleTooltipComponent, BubbleTooltipTemplateDirective, LayersComponent, MapComponent, MarkerLayerComponent, MarkerTooltipComponent, MarkerTooltipTemplateDirective, ShapeLayerComponent, ShapeTooltipComponent, ShapeTooltipTemplateDirective, TileLayerComponent] });
1943
- MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, providers: [IconsService, ResizeBatchService], imports: [BubbleLayerComponent, BubbleTooltipComponent, LayersComponent, MapComponent, MarkerLayerComponent, MarkerTooltipComponent, ShapeLayerComponent, ShapeTooltipComponent, TileLayerComponent] });
1944
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
1945
- type: NgModule,
1946
- args: [{
1947
- imports: [...KENDO_MAP],
1948
- exports: [...KENDO_MAP],
1949
- providers: [IconsService, ResizeBatchService]
1950
- }]
1951
- }] });
1952
-
1953
- /**
1954
- * Generated bundle index. Do not edit.
1955
- */
1956
-
1957
- export { BeforeResetEvent, BubbleLayerComponent, BubbleTooltipComponent, BubbleTooltipTemplateDirective, KENDO_MAP, LayerTooltipComponent, LayersComponent, MapClickEvent, MapComponent, MapModule, MarkerActivateEvent, MarkerClickEvent, MarkerCreatedEvent, MarkerLayerComponent, MarkerTooltipComponent, MarkerTooltipTemplateDirective, PanEndEvent, PanEvent, ResetEvent, ShapeClickEvent, ShapeCreatedEvent, ShapeFeatureCreatedEvent, ShapeLayerComponent, ShapeMouseEnterEvent, ShapeMouseLeaveEvent, ShapeTooltipComponent, ShapeTooltipTemplateDirective, TileLayerComponent, TooltipPopupComponent, ZoomEndEvent, ZoomStartEvent, bodyFactory };
1958
-