@progress/kendo-angular-map 0.1.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 (90) hide show
  1. package/LICENSE.md +11 -0
  2. package/NOTICE.txt +654 -0
  3. package/README.md +31 -0
  4. package/bundles/kendo-angular-map.umd.js +5 -0
  5. package/common/collection-item.component.d.ts +39 -0
  6. package/common/collection.component.d.ts +27 -0
  7. package/common/collection.service.d.ts +31 -0
  8. package/common/configuration.service.d.ts +32 -0
  9. package/common/copy-changes.d.ts +11 -0
  10. package/common/map-instance-observer.d.ts +12 -0
  11. package/common/settings.component.d.ts +37 -0
  12. package/common/to-simple-changes.d.ts +11 -0
  13. package/esm2015/common/collection-item.component.js +59 -0
  14. package/esm2015/common/collection.component.js +51 -0
  15. package/esm2015/common/collection.service.js +33 -0
  16. package/esm2015/common/configuration.service.js +58 -0
  17. package/esm2015/common/copy-changes.js +21 -0
  18. package/esm2015/common/map-instance-observer.js +19 -0
  19. package/esm2015/common/settings.component.js +58 -0
  20. package/esm2015/common/to-simple-changes.js +18 -0
  21. package/esm2015/events/base-event.js +22 -0
  22. package/esm2015/events/before-reset-event.js +16 -0
  23. package/esm2015/events/instance-event.service.js +32 -0
  24. package/esm2015/events/map-click-event.js +18 -0
  25. package/esm2015/events/marker-activate-event.js +18 -0
  26. package/esm2015/events/marker-click-event.js +18 -0
  27. package/esm2015/events/marker-created-event.js +20 -0
  28. package/esm2015/events/pan-end-event.js +19 -0
  29. package/esm2015/events/pan-event.js +19 -0
  30. package/esm2015/events/preventable-event.js +39 -0
  31. package/esm2015/events/reset-event.js +18 -0
  32. package/esm2015/events/shape-click-event.js +19 -0
  33. package/esm2015/events/shape-created-event.js +18 -0
  34. package/esm2015/events/shape-feature-created-event.js +20 -0
  35. package/esm2015/events/shape-mouse-enter-event.js +22 -0
  36. package/esm2015/events/shape-mouse-leave-event.js +22 -0
  37. package/esm2015/events/zoom-end-event.js +17 -0
  38. package/esm2015/events/zoom-start-event.js +19 -0
  39. package/esm2015/events.js +19 -0
  40. package/esm2015/kendo-angular-map.js +8 -0
  41. package/esm2015/main.js +14 -0
  42. package/esm2015/map/bubble-layer.component.js +59 -0
  43. package/esm2015/map/layer/tooltip.component.js +35 -0
  44. package/esm2015/map/layer.component.js +57 -0
  45. package/esm2015/map/layers.component.js +36 -0
  46. package/esm2015/map/marker-layer.component.js +53 -0
  47. package/esm2015/map/shape-layer.component.js +49 -0
  48. package/esm2015/map/tile-layer.component.js +51 -0
  49. package/esm2015/map.component.js +353 -0
  50. package/esm2015/map.directives.js +25 -0
  51. package/esm2015/map.module.js +32 -0
  52. package/esm2015/package-metadata.js +15 -0
  53. package/events/base-event.d.ts +21 -0
  54. package/events/before-reset-event.d.ts +16 -0
  55. package/events/instance-event.service.d.ts +11 -0
  56. package/events/map-click-event.d.ts +24 -0
  57. package/events/marker-activate-event.d.ts +24 -0
  58. package/events/marker-click-event.d.ts +24 -0
  59. package/events/marker-created-event.d.ts +26 -0
  60. package/events/pan-end-event.d.ts +28 -0
  61. package/events/pan-event.d.ts +28 -0
  62. package/events/preventable-event.d.ts +28 -0
  63. package/events/reset-event.d.ts +18 -0
  64. package/events/shape-click-event.d.ts +29 -0
  65. package/events/shape-created-event.d.ts +25 -0
  66. package/events/shape-feature-created-event.d.ts +33 -0
  67. package/events/shape-mouse-enter-event.d.ts +32 -0
  68. package/events/shape-mouse-leave-event.d.ts +32 -0
  69. package/events/zoom-end-event.d.ts +20 -0
  70. package/events/zoom-start-event.d.ts +22 -0
  71. package/events.d.ts +19 -0
  72. package/fesm2015/kendo-angular-map.js +1240 -0
  73. package/kendo-angular-map.d.ts +9 -0
  74. package/main.d.ts +14 -0
  75. package/map/bubble-layer.component.d.ts +29 -0
  76. package/map/layer/tooltip.component.d.ts +21 -0
  77. package/map/layer.component.d.ts +35 -0
  78. package/map/layers.component.d.ts +20 -0
  79. package/map/marker-layer.component.d.ts +25 -0
  80. package/map/shape-layer.component.d.ts +24 -0
  81. package/map/tile-layer.component.d.ts +24 -0
  82. package/map.component.d.ts +214 -0
  83. package/map.directives.d.ts +16 -0
  84. package/map.module.d.ts +22 -0
  85. package/package-metadata.d.ts +9 -0
  86. package/package.json +86 -0
  87. package/schematics/collection.json +12 -0
  88. package/schematics/ngAdd/index.js +21 -0
  89. package/schematics/ngAdd/index.js.map +1 -0
  90. package/schematics/ngAdd/schema.json +28 -0
@@ -0,0 +1,1240 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 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, EventEmitter, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';
7
+ import { BehaviorSubject, Subject } from 'rxjs';
8
+ import * as i3 from '@angular/platform-browser';
9
+ import * as i4 from '@progress/kendo-angular-common';
10
+ import { isDocumentAvailable, hasObservers, ResizeSensorModule } from '@progress/kendo-angular-common';
11
+ import * as i3$1 from '@progress/kendo-angular-l10n';
12
+ import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
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 { CommonModule } from '@angular/common';
18
+
19
+ /**
20
+ * @hidden
21
+ */
22
+ class Change {
23
+ constructor(key, value) {
24
+ this.key = key;
25
+ this.value = value;
26
+ }
27
+ }
28
+ /**
29
+ * @hidden
30
+ */
31
+ class ConfigurationService {
32
+ constructor(ngZone) {
33
+ this.ngZone = ngZone;
34
+ this.store = {};
35
+ this.source = new BehaviorSubject({});
36
+ this.initSource();
37
+ }
38
+ initSource() {
39
+ this.changes = this.source.asObservable();
40
+ }
41
+ push(store) {
42
+ this.store = store;
43
+ this.next();
44
+ }
45
+ notify(change) {
46
+ this.set(change.key, change.value);
47
+ this.next();
48
+ }
49
+ set(field, value) {
50
+ let store = this.store;
51
+ const parts = field.split('.');
52
+ let key = parts.shift();
53
+ while (parts.length > 0) {
54
+ store = store[key] = store[key] || {};
55
+ key = parts.shift();
56
+ }
57
+ store[key] = value;
58
+ }
59
+ next() {
60
+ this.ngZone.runOutsideAngular(() => {
61
+ this.source.next(this.store);
62
+ });
63
+ }
64
+ }
65
+ ConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ConfigurationService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
66
+ ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ConfigurationService });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ConfigurationService, decorators: [{
68
+ type: Injectable
69
+ }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
70
+
71
+ /**
72
+ * @hidden
73
+ */
74
+ class ItemChange {
75
+ constructor(sender, options) {
76
+ this.sender = sender;
77
+ this.options = options;
78
+ }
79
+ }
80
+ /**
81
+ * @hidden
82
+ */
83
+ class CollectionService {
84
+ constructor() {
85
+ this.source = new Subject();
86
+ this.itemChanges = this.source.asObservable();
87
+ }
88
+ notify(change) {
89
+ this.source.next(change);
90
+ }
91
+ }
92
+ CollectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
93
+ CollectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionService });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionService, decorators: [{
95
+ type: Injectable
96
+ }], ctorParameters: function () { return []; } });
97
+
98
+ /**
99
+ * @hidden
100
+ */
101
+ function copyChanges(changes, options) {
102
+ for (const propertyName in changes) {
103
+ if (!changes.hasOwnProperty(propertyName)) {
104
+ continue;
105
+ }
106
+ const value = changes[propertyName].currentValue;
107
+ if (value === undefined) {
108
+ delete options[propertyName];
109
+ }
110
+ else {
111
+ options[propertyName] = value;
112
+ }
113
+ }
114
+ }
115
+
116
+ /**
117
+ * @hidden
118
+ */
119
+ function toSimpleChanges(changes) {
120
+ const result = {};
121
+ for (const propertyName in changes) {
122
+ if (!changes.hasOwnProperty(propertyName)) {
123
+ continue;
124
+ }
125
+ result[propertyName] = new SimpleChange(null, changes[propertyName], false);
126
+ }
127
+ return result;
128
+ }
129
+
130
+ /**
131
+ * @hidden
132
+ */
133
+ class CollectionItemComponent {
134
+ constructor(configurationService, collectionService) {
135
+ this.configurationService = configurationService;
136
+ this.collectionService = collectionService;
137
+ this.options = {};
138
+ this.subscription = configurationService.changes.subscribe(store => {
139
+ this.options = store;
140
+ this.notify();
141
+ });
142
+ }
143
+ ngOnChanges(changes) {
144
+ const store = this.configurationService.store;
145
+ copyChanges(changes, store);
146
+ this.configurationService.push(store);
147
+ }
148
+ /**
149
+ * Updates the component fields with the specified values and refreshes the Chart.
150
+ *
151
+ * Use this method when the configuration values cannot be set through the template.
152
+ *
153
+ * @example
154
+ * ```ts-no-run
155
+ * item.notifyChanges({ visible: true });
156
+ * ```
157
+ *
158
+ * @param changes An object containing the updated input fields.
159
+ */
160
+ notifyChanges(changes) {
161
+ this.ngOnChanges(toSimpleChanges(changes));
162
+ }
163
+ ngOnDestroy() {
164
+ this.subscription.unsubscribe();
165
+ }
166
+ notify() {
167
+ if (!this.collectionService) {
168
+ return;
169
+ }
170
+ this.collectionService.notify(new ItemChange(this, this.options));
171
+ }
172
+ }
173
+ CollectionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionItemComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }], target: i0.ɵɵFactoryTarget.Directive });
174
+ CollectionItemComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: CollectionItemComponent, usesOnChanges: true, ngImport: i0 });
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionItemComponent, decorators: [{
176
+ type: Directive
177
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }]; } });
178
+
179
+ /**
180
+ * @hidden
181
+ */
182
+ class SettingsComponent {
183
+ constructor(configKey, configurationService) {
184
+ this.configKey = configKey;
185
+ this.configurationService = configurationService;
186
+ this.store = {};
187
+ if (configKey === undefined) {
188
+ throw new Error('Configuration key not set');
189
+ }
190
+ }
191
+ ngOnDestroy() {
192
+ this.store = undefined;
193
+ this.notify();
194
+ }
195
+ ngOnChanges(changes) {
196
+ copyChanges(changes, this.store);
197
+ this.notify();
198
+ }
199
+ /**
200
+ * Updates the component fields with the specified values and refreshes the component.
201
+ *
202
+ * Use this method when the configuration values cannot be set through the template.
203
+ *
204
+ * @example
205
+ * ```ts-no-run
206
+ * item.notifyChanges({ visible: true });
207
+ * ```
208
+ *
209
+ * @param changes An object containing the updated input fields.
210
+ */
211
+ notifyChanges(changes) {
212
+ this.ngOnChanges(toSimpleChanges(changes));
213
+ }
214
+ markAsVisible() {
215
+ this.store.visible = true;
216
+ this.notify();
217
+ }
218
+ notify() {
219
+ this.configurationService.notify(new Change(this.configKey, this.store));
220
+ }
221
+ }
222
+ SettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SettingsComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
223
+ SettingsComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SettingsComponent, usesOnChanges: true, ngImport: i0 });
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SettingsComponent, decorators: [{
225
+ type: Directive
226
+ }], ctorParameters: function () { return [{ type: undefined }, { type: ConfigurationService }]; } });
227
+
228
+ /**
229
+ * The configuration options of the Map layer tooltip.
230
+ *
231
+ * @hidden
232
+ */
233
+ class LayerTooltipComponent extends SettingsComponent {
234
+ constructor(configurationService) {
235
+ super('tooltip', configurationService);
236
+ this.configurationService = configurationService;
237
+ }
238
+ get layerTooltipTemplateRef() {
239
+ return this.layerTooltipTemplate;
240
+ }
241
+ }
242
+ LayerTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LayerTooltipComponent, deps: [{ token: ConfigurationService }], target: i0.ɵɵFactoryTarget.Component });
243
+ LayerTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LayerTooltipComponent, 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 });
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LayerTooltipComponent, decorators: [{
245
+ type: Component,
246
+ args: [{
247
+ changeDetection: ChangeDetectionStrategy.OnPush,
248
+ selector: 'kendo-map-layer-tooltip',
249
+ template: ''
250
+ }]
251
+ }], ctorParameters: function () { return [{ type: ConfigurationService }]; }, propDecorators: { layerTooltipTemplate: [{
252
+ type: ContentChild,
253
+ args: [TemplateRef, { static: false }]
254
+ }] } });
255
+
256
+ /**
257
+ * @hidden
258
+ */
259
+ class LayerComponent extends CollectionItemComponent {
260
+ constructor(type, configurationService, collectionService, sanitizer) {
261
+ super(configurationService, collectionService);
262
+ this.type = type;
263
+ this.configurationService = configurationService;
264
+ this.collectionService = collectionService;
265
+ this.sanitizer = sanitizer;
266
+ }
267
+ ngOnChanges(changes) {
268
+ const store = this.configurationService.store;
269
+ store.type = this.type;
270
+ const attrChange = changes['attribution'];
271
+ if (attrChange && this.sanitizer) {
272
+ attrChange.currentValue = this.sanitizer.sanitize(SecurityContext.HTML, attrChange.currentValue);
273
+ }
274
+ super.ngOnChanges(changes);
275
+ }
276
+ get layerTooltipTemplateRef() {
277
+ if (this.layerTooltip) {
278
+ return this.layerTooltip.layerTooltipTemplateRef;
279
+ }
280
+ }
281
+ }
282
+ LayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LayerComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
283
+ LayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", 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 });
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LayerComponent, decorators: [{
285
+ type: Directive
286
+ }], ctorParameters: function () { return [{ type: undefined }, { type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { attribution: [{
287
+ type: Input
288
+ }], extent: [{
289
+ type: Input
290
+ }], maxZoom: [{
291
+ type: Input
292
+ }], minZoom: [{
293
+ type: Input
294
+ }], opacity: [{
295
+ type: Input
296
+ }], zIndex: [{
297
+ type: Input
298
+ }], layerTooltip: [{
299
+ type: ContentChild,
300
+ args: [LayerTooltipComponent, { static: false }]
301
+ }] } });
302
+
303
+ /**
304
+ * A vector shape layer for bubble maps.
305
+ */
306
+ class BubbleLayerComponent extends LayerComponent {
307
+ constructor(configurationService, collectionService, sanitizer) {
308
+ super('bubble', configurationService, collectionService, sanitizer);
309
+ this.configurationService = configurationService;
310
+ this.collectionService = collectionService;
311
+ this.sanitizer = sanitizer;
312
+ }
313
+ }
314
+ BubbleLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BubbleLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
315
+ BubbleLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: BubbleLayerComponent, selector: "kendo-map-bubble-layer", inputs: { data: "data", locationField: "locationField", valueField: "valueField", symbol: "symbol", style: "style", maxSize: "maxSize", minSize: "minSize" }, providers: [
316
+ ConfigurationService,
317
+ {
318
+ provide: LayerComponent,
319
+ useExisting: forwardRef(() => BubbleLayerComponent)
320
+ }
321
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BubbleLayerComponent, decorators: [{
323
+ type: Component,
324
+ args: [{
325
+ changeDetection: ChangeDetectionStrategy.OnPush,
326
+ providers: [
327
+ ConfigurationService,
328
+ {
329
+ provide: LayerComponent,
330
+ useExisting: forwardRef(() => BubbleLayerComponent)
331
+ }
332
+ ],
333
+ selector: 'kendo-map-bubble-layer',
334
+ template: ''
335
+ }]
336
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
337
+ type: Input
338
+ }], locationField: [{
339
+ type: Input
340
+ }], valueField: [{
341
+ type: Input
342
+ }], symbol: [{
343
+ type: Input
344
+ }], style: [{
345
+ type: Input
346
+ }], maxSize: [{
347
+ type: Input
348
+ }], minSize: [{
349
+ type: Input
350
+ }] } });
351
+
352
+ /**
353
+ * @hidden
354
+ */
355
+ class MapInstanceObserver extends InstanceObserver {
356
+ constructor(instance) {
357
+ super(instance);
358
+ this.handlerMap = {
359
+ hideTooltip: 'onHideTooltip',
360
+ init: 'onInit',
361
+ render: 'onRender',
362
+ showTooltip: 'onShowTooltip'
363
+ };
364
+ }
365
+ }
366
+
367
+ /**
368
+ * @hidden
369
+ */
370
+ class BaseEvent {
371
+ /**
372
+ * @hidden
373
+ */
374
+ constructor(sender) {
375
+ this.sender = sender;
376
+ }
377
+ }
378
+ BaseEvent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BaseEvent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
379
+ BaseEvent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: BaseEvent, ngImport: i0 });
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BaseEvent, decorators: [{
381
+ type: Directive
382
+ }], ctorParameters: function () { return [{ type: undefined }]; } });
383
+
384
+ /**
385
+ * Fired immediately before the map is reset. This event is typically used for cleanup by layer implementers.
386
+ */
387
+ class BeforeResetEvent extends BaseEvent {
388
+ /**
389
+ * @hidden
390
+ */
391
+ constructor(_, sender) {
392
+ super(sender);
393
+ }
394
+ }
395
+
396
+ /**
397
+ * Fired when the user clicks on the map.
398
+ */
399
+ class MapClickEvent extends BaseEvent {
400
+ /**
401
+ * @hidden
402
+ */
403
+ constructor(e, sender) {
404
+ super(sender);
405
+ this.location = e.location;
406
+ this.originalEvent = e.originalEvent;
407
+ }
408
+ }
409
+
410
+ /**
411
+ * Fired when a marker has been displayed and has a DOM element assigned.
412
+ */
413
+ class MarkerActivateEvent extends BaseEvent {
414
+ /**
415
+ * @hidden
416
+ */
417
+ constructor(e, sender) {
418
+ super(sender);
419
+ this.marker = e.marker;
420
+ this.layer = e.layer;
421
+ }
422
+ }
423
+
424
+ /**
425
+ * Fired when a marker has been clicked or tapped.
426
+ */
427
+ class MarkerClickEvent extends BaseEvent {
428
+ /**
429
+ * @hidden
430
+ */
431
+ constructor(e, sender) {
432
+ super(sender);
433
+ this.marker = e.marker;
434
+ this.layer = e.layer;
435
+ }
436
+ }
437
+
438
+ /**
439
+ * @hidden
440
+ */
441
+ class PreventableEvent extends BaseEvent {
442
+ constructor() {
443
+ super(...arguments);
444
+ this.prevented = false;
445
+ }
446
+ /**
447
+ * Prevents the default action for a specified event.
448
+ * In this way, the source component suppresses
449
+ * the built-in behavior that follows the event.
450
+ */
451
+ preventDefault() {
452
+ this.prevented = true;
453
+ }
454
+ /**
455
+ * Returns `true` if the event was prevented
456
+ * by any of its subscribers.
457
+ *
458
+ * @returns `true` if the default action was prevented.
459
+ * Otherwise, returns `false`.
460
+ */
461
+ isDefaultPrevented() {
462
+ return this.prevented;
463
+ }
464
+ }
465
+ PreventableEvent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreventableEvent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
466
+ PreventableEvent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: PreventableEvent, usesInheritance: true, ngImport: i0 });
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreventableEvent, decorators: [{
468
+ type: Directive
469
+ }] });
470
+
471
+ /**
472
+ * Fired when a marker has been created and is about to be displayed.
473
+ *
474
+ * Cancelling the event will prevent the marker from being shown.
475
+ */
476
+ class MarkerCreatedEvent extends PreventableEvent {
477
+ /**
478
+ * @hidden
479
+ */
480
+ constructor(e, sender) {
481
+ super(sender);
482
+ this.marker = e.marker;
483
+ this.layer = e.layer;
484
+ }
485
+ }
486
+
487
+ /**
488
+ * Fires after the map viewport has been moved.
489
+ */
490
+ class PanEndEvent extends BaseEvent {
491
+ /**
492
+ * @hidden
493
+ */
494
+ constructor(e, sender) {
495
+ super(sender);
496
+ this.origin = e.origin;
497
+ this.center = e.center;
498
+ this.originalEvent = e.originalEvent;
499
+ }
500
+ }
501
+
502
+ /**
503
+ * Fired while the map viewport is being moved.
504
+ */
505
+ class PanEvent extends BaseEvent {
506
+ /**
507
+ * @hidden
508
+ */
509
+ constructor(e, sender) {
510
+ super(sender);
511
+ this.origin = e.origin;
512
+ this.center = e.center;
513
+ this.originalEvent = e.originalEvent;
514
+ }
515
+ }
516
+
517
+ /**
518
+ * Fired when the map is reset.
519
+ *
520
+ * This typically occurs on initial load and after a zoom/center change.
521
+ */
522
+ class ResetEvent extends BaseEvent {
523
+ /**
524
+ * @hidden
525
+ */
526
+ constructor(_, sender) {
527
+ super(sender);
528
+ }
529
+ }
530
+
531
+ /**
532
+ * Fired when a shape is clicked or tapped.
533
+ */
534
+ class ShapeClickEvent extends BaseEvent {
535
+ /**
536
+ * @hidden
537
+ */
538
+ constructor(e, sender) {
539
+ super(sender);
540
+ this.layer = e.layer;
541
+ this.shape = e.shape;
542
+ this.originalEvent = e.originalEvent;
543
+ }
544
+ }
545
+
546
+ /**
547
+ * Fired when a shape is created, but is not rendered yet.
548
+ */
549
+ class ShapeCreatedEvent extends BaseEvent {
550
+ /**
551
+ * @hidden
552
+ */
553
+ constructor(e, sender) {
554
+ super(sender);
555
+ this.layer = e.layer;
556
+ this.shape = e.shape;
557
+ }
558
+ }
559
+
560
+ /**
561
+ * Fired when a [GeoJSON Feature](https://geojson.org/geojson-spec.html#feature-objects) is created on a shape layer.
562
+ */
563
+ class ShapeFeatureCreatedEvent extends BaseEvent {
564
+ /**
565
+ * @hidden
566
+ */
567
+ constructor(e, sender) {
568
+ super(sender);
569
+ this.dataItem = e.dataItem;
570
+ this.layer = e.layer;
571
+ this.group = e.group;
572
+ this.properties = e.properties;
573
+ }
574
+ }
575
+
576
+ /**
577
+ * Fired when the mouse enters a shape.
578
+ *
579
+ * > This event will fire reliably only for shapes that have set fill color.
580
+ * > The opacity can still be set to 0 so the shapes appear to have no fill.
581
+ */
582
+ class ShapeMouseEnterEvent extends BaseEvent {
583
+ /**
584
+ * @hidden
585
+ */
586
+ constructor(e, sender) {
587
+ super(sender);
588
+ this.layer = e.layer;
589
+ this.shape = e.shape;
590
+ this.originalEvent = e.originalEvent;
591
+ }
592
+ }
593
+
594
+ /**
595
+ * Fired when the mouse leaves a shape.
596
+ *
597
+ * > This event will fire reliably only for shapes that have set fill color.
598
+ * > The opacity can still be set to 0 so the shapes appear to have no fill.
599
+ */
600
+ class ShapeMouseLeaveEvent extends BaseEvent {
601
+ /**
602
+ * @hidden
603
+ */
604
+ constructor(e, sender) {
605
+ super(sender);
606
+ this.layer = e.layer;
607
+ this.shape = e.shape;
608
+ this.originalEvent = e.originalEvent;
609
+ }
610
+ }
611
+
612
+ /**
613
+ * Fired when the map zoom level has changed.
614
+ */
615
+ class ZoomEndEvent extends BaseEvent {
616
+ /**
617
+ * @hidden
618
+ */
619
+ constructor(e, sender) {
620
+ super(sender);
621
+ this.originalEvent = e.originalEvent;
622
+ }
623
+ }
624
+
625
+ /**
626
+ * Fired when the map zoom level is about to change.
627
+ *
628
+ * Cancelling the event will prevent the user action.
629
+ */
630
+ class ZoomStartEvent extends PreventableEvent {
631
+ /**
632
+ * @hidden
633
+ */
634
+ constructor(e, sender) {
635
+ super(sender);
636
+ this.originalEvent = e.originalEvent;
637
+ }
638
+ }
639
+
640
+ const EVENT_MAP = {
641
+ beforeReset: BeforeResetEvent,
642
+ click: MapClickEvent,
643
+ markerActivate: MarkerActivateEvent,
644
+ markerClick: MarkerClickEvent,
645
+ markerCreated: MarkerCreatedEvent,
646
+ panEnd: PanEndEvent,
647
+ pan: PanEvent,
648
+ reset: ResetEvent,
649
+ shapeClick: ShapeClickEvent,
650
+ shapeCreated: ShapeCreatedEvent,
651
+ shapeFeatureCreated: ShapeFeatureCreatedEvent,
652
+ shapeMouseEnter: ShapeMouseEnterEvent,
653
+ shapeMouseLeave: ShapeMouseLeaveEvent,
654
+ zoomEnd: ZoomEndEvent,
655
+ zoomStart: ZoomStartEvent
656
+ };
657
+ /**
658
+ * @hidden
659
+ */
660
+ class InstanceEventService {
661
+ create(name, args, sender) {
662
+ if (EVENT_MAP[name]) {
663
+ return new EVENT_MAP[name](args, sender);
664
+ }
665
+ }
666
+ }
667
+
668
+ /**
669
+ * @hidden
670
+ */
671
+ const packageMetadata = {
672
+ name: '@progress/kendo-angular-map',
673
+ productName: 'Kendo UI for Angular',
674
+ productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
675
+ publishDate: 1651675099,
676
+ version: '',
677
+ licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
678
+ };
679
+
680
+ /**
681
+ * A sample component
682
+ */
683
+ class MapComponent {
684
+ constructor(configurationService, instanceEventService, element, localizationService, changeDetector, ngZone, renderer) {
685
+ this.configurationService = configurationService;
686
+ this.instanceEventService = instanceEventService;
687
+ this.element = element;
688
+ this.localizationService = localizationService;
689
+ this.changeDetector = changeDetector;
690
+ this.ngZone = ngZone;
691
+ this.renderer = renderer;
692
+ /**
693
+ * Limits the automatic resizing of the Map. Sets the maximum number of times per second
694
+ * that the component redraws its content when the size of its container changes.
695
+ * Defaults to `10`. To disable the automatic resizing, set it to `0`.
696
+ *
697
+ * @example
698
+ * ```ts
699
+ * _@Component({
700
+ * selector: 'my-app',
701
+ * template: `
702
+ * <kendo-map [resizeRateLimit]="2">
703
+ * <!-- ^^^^^^^^^^^^^^^^^^^^^^
704
+ * Will update the size of the Map up to two times a second.
705
+ * Resize the example pane or window to try it out.
706
+ * -->
707
+ * </kendo-map>
708
+ * `
709
+ * })
710
+ * export class AppComponent {
711
+ * }
712
+ * ```
713
+ */
714
+ this.resizeRateLimit = 10;
715
+ /**
716
+ * The initial zoom level.
717
+ *
718
+ * Typical web maps use zoom levels from 0 (whole world) to 19 (sub-meter features).
719
+ *
720
+ * The map size is derived from the zoom level and minScale options: `size = (2 ^ zoom) * minSize`
721
+ *
722
+ * > 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.
723
+ *
724
+ * @default 3
725
+ */
726
+ this.zoom = 3;
727
+ /**
728
+ * Fired immediately before the map is reset. This event is typically used for cleanup by layer implementers.
729
+ */
730
+ this.beforeReset = new EventEmitter();
731
+ /**
732
+ * Fired when the user clicks on the map.
733
+ */
734
+ this.mapClick = new EventEmitter();
735
+ /**
736
+ * Fired when a marker has been displayed and has a DOM element assigned.
737
+ */
738
+ this.markerActivate = new EventEmitter();
739
+ /**
740
+ * Fired when a marker has been clicked or tapped.
741
+ */
742
+ this.markerClick = new EventEmitter();
743
+ /**
744
+ * Fired when a marker has been created and is about to be displayed.
745
+ *
746
+ * Cancelling the event will prevent the marker from being shown.
747
+ */
748
+ this.markerCreated = new EventEmitter();
749
+ /**
750
+ * Fires after the map viewport has been moved.
751
+ */
752
+ this.panEnd = new EventEmitter();
753
+ /**
754
+ * Fired while the map viewport is being moved.
755
+ */
756
+ this.pan = new EventEmitter();
757
+ /**
758
+ * Fired when the map is reset.
759
+ *
760
+ * This typically occurs on initial load and after a zoom/center change.
761
+ */
762
+ this.reset = new EventEmitter();
763
+ /**
764
+ * Fired when a shape is clicked or tapped.
765
+ */
766
+ this.shapeClick = new EventEmitter();
767
+ /**
768
+ * Fired when a shape is created, but is not rendered yet.
769
+ */
770
+ this.shapeCreated = new EventEmitter();
771
+ /**
772
+ * Fired when a [GeoJSON Feature](https://geojson.org/geojson-spec.html#feature-objects) is created on a shape layer.
773
+ */
774
+ this.shapeFeatureCreated = new EventEmitter();
775
+ /**
776
+ * Fired when the mouse enters a shape.
777
+ *
778
+ * > This event will fire reliably only for shapes that have set fill color.
779
+ * > The opacity can still be set to 0 so the shapes appear to have no fill.
780
+ */
781
+ this.shapeMouseEnter = new EventEmitter();
782
+ /**
783
+ * Fired when the mouse leaves a shape.
784
+ *
785
+ * > This event will fire reliably only for shapes that have set fill color.
786
+ * > The opacity can still be set to 0 so the shapes appear to have no fill.
787
+ */
788
+ this.shapeMouseLeave = new EventEmitter();
789
+ /**
790
+ * Fired when the map zoom level is about to change.
791
+ *
792
+ * Cancelling the event will prevent the user action.
793
+ */
794
+ this.zoomStart = new EventEmitter();
795
+ /**
796
+ * Fired when the map zoom level has changed.
797
+ */
798
+ this.zoomEnd = new EventEmitter();
799
+ this.theme = null;
800
+ this.rtl = false;
801
+ validatePackage(packageMetadata);
802
+ }
803
+ ngAfterViewInit() {
804
+ this.setDirection();
805
+ this.initConfig();
806
+ this.subscriptions = this.localizationService.changes.subscribe(() => this.setDirection());
807
+ }
808
+ ngAfterViewChecked() {
809
+ if (this.instance && this.autoResize) {
810
+ this.ngZone.runOutsideAngular(() => {
811
+ clearTimeout(this.resizeTimeout);
812
+ this.resizeTimeout = setTimeout(() => {
813
+ this.resize();
814
+ }, 0);
815
+ });
816
+ }
817
+ }
818
+ ngOnChanges(changes) {
819
+ const store = this.configurationService.store;
820
+ copyChanges(changes, store);
821
+ store.popupSettings = null;
822
+ this.configurationService.push(store);
823
+ }
824
+ /**
825
+ * Detects the size of the container and redraws the Map.
826
+ * Resizing is automatic unless you set the `resizeRateLimit` option to `0`.
827
+ */
828
+ resize() {
829
+ if (this.instance) {
830
+ //this.instance.resize();
831
+ }
832
+ }
833
+ /**
834
+ * @hidden
835
+ */
836
+ onResize() {
837
+ if (this.autoResize) {
838
+ this.resize();
839
+ }
840
+ }
841
+ get canRender() {
842
+ return isDocumentAvailable() && Boolean(this.surfaceElement);
843
+ }
844
+ get autoResize() {
845
+ return this.resizeRateLimit > 0;
846
+ }
847
+ init() {
848
+ if (!this.canRender) {
849
+ return;
850
+ }
851
+ const element = this.surfaceElement.nativeElement;
852
+ const instanceObserver = new MapInstanceObserver(this);
853
+ this.createInstance(element, instanceObserver);
854
+ }
855
+ initConfig() {
856
+ if (!isDocumentAvailable()) {
857
+ return;
858
+ }
859
+ this.ngZone.runOutsideAngular(() => {
860
+ this.optionsChange = this.configurationService.changes
861
+ .pipe(tap((result) => {
862
+ this.options = result;
863
+ }))
864
+ .subscribe(() => {
865
+ if (!this.instance) {
866
+ this.init();
867
+ return;
868
+ }
869
+ this.instance.setOptions(this.options);
870
+ });
871
+ });
872
+ }
873
+ createInstance(element, observer) {
874
+ this.instance = new Map(element, this.options, this.theme, {
875
+ observer: observer,
876
+ rtl: this.rtl,
877
+ sender: this
878
+ });
879
+ }
880
+ activeEmitter(name) {
881
+ const alias = name === 'click' ? 'mapClick' : name;
882
+ const emitter = this[alias];
883
+ if (emitter && emitter.emit && hasObservers(emitter)) {
884
+ return emitter;
885
+ }
886
+ }
887
+ trigger(name, e) {
888
+ const emitter = this.activeEmitter(name);
889
+ if (emitter) {
890
+ const args = this.instanceEventService.create(name, e, this);
891
+ this.run(() => {
892
+ emitter.emit(args);
893
+ });
894
+ return args.isDefaultPrevented && args.isDefaultPrevented();
895
+ }
896
+ }
897
+ run(callback, inZone = true, detectChanges) {
898
+ if (inZone) {
899
+ if (detectChanges) {
900
+ this.changeDetector.markForCheck();
901
+ }
902
+ this.ngZone.run(callback);
903
+ }
904
+ else {
905
+ callback();
906
+ if (detectChanges) {
907
+ this.detectChanges();
908
+ }
909
+ }
910
+ }
911
+ detectChanges() {
912
+ if (!this.destroyed) {
913
+ this.changeDetector.detectChanges();
914
+ }
915
+ }
916
+ setDirection() {
917
+ this.rtl = this.isRTL;
918
+ if (this.element) {
919
+ this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');
920
+ }
921
+ }
922
+ get isRTL() {
923
+ return Boolean(this.localizationService.rtl);
924
+ }
925
+ }
926
+ MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", 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 }], target: i0.ɵɵFactoryTarget.Component });
927
+ MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MapComponent, selector: "kendo-map", inputs: { resizeRateLimit: "resizeRateLimit", center: "center", controls: "controls", minZoom: "minZoom", maxZoom: "maxZoom", minSize: "minSize", pannable: "pannable", 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" }, providers: [
928
+ ConfigurationService,
929
+ InstanceEventService,
930
+ LocalizationService,
931
+ {
932
+ provide: L10N_PREFIX,
933
+ useValue: 'kendo.map'
934
+ }
935
+ ], viewQueries: [{ propertyName: "surfaceElement", first: true, predicate: ["surface"], descendants: true, static: true }], exportAs: ["kendoChart"], usesOnChanges: true, ngImport: i0, template: `
936
+ <div #surface></div>
937
+ <kendo-resize-sensor (resize)="onResize()" [rateLimit]="resizeRateLimit"></kendo-resize-sensor>
938
+ `, isInline: true, components: [{ type: i4.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
939
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MapComponent, decorators: [{
940
+ type: Component,
941
+ args: [{
942
+ selector: 'kendo-map',
943
+ changeDetection: ChangeDetectionStrategy.OnPush,
944
+ exportAs: 'kendoChart',
945
+ providers: [
946
+ ConfigurationService,
947
+ InstanceEventService,
948
+ LocalizationService,
949
+ {
950
+ provide: L10N_PREFIX,
951
+ useValue: 'kendo.map'
952
+ }
953
+ ],
954
+ template: `
955
+ <div #surface></div>
956
+ <kendo-resize-sensor (resize)="onResize()" [rateLimit]="resizeRateLimit"></kendo-resize-sensor>
957
+ `
958
+ }]
959
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: InstanceEventService }, { type: i0.ElementRef }, { type: i3$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { resizeRateLimit: [{
960
+ type: Input
961
+ }], center: [{
962
+ type: Input
963
+ }], controls: [{
964
+ type: Input
965
+ }], minZoom: [{
966
+ type: Input
967
+ }], maxZoom: [{
968
+ type: Input
969
+ }], minSize: [{
970
+ type: Input
971
+ }], pannable: [{
972
+ type: Input
973
+ }], wraparound: [{
974
+ type: Input
975
+ }], zoom: [{
976
+ type: Input
977
+ }], zoomable: [{
978
+ type: Input
979
+ }], beforeReset: [{
980
+ type: Output
981
+ }], mapClick: [{
982
+ type: Output
983
+ }], markerActivate: [{
984
+ type: Output
985
+ }], markerClick: [{
986
+ type: Output
987
+ }], markerCreated: [{
988
+ type: Output
989
+ }], panEnd: [{
990
+ type: Output
991
+ }], pan: [{
992
+ type: Output
993
+ }], reset: [{
994
+ type: Output
995
+ }], shapeClick: [{
996
+ type: Output
997
+ }], shapeCreated: [{
998
+ type: Output
999
+ }], shapeFeatureCreated: [{
1000
+ type: Output
1001
+ }], shapeMouseEnter: [{
1002
+ type: Output
1003
+ }], shapeMouseLeave: [{
1004
+ type: Output
1005
+ }], zoomStart: [{
1006
+ type: Output
1007
+ }], zoomEnd: [{
1008
+ type: Output
1009
+ }], surfaceElement: [{
1010
+ type: ViewChild,
1011
+ args: ['surface', { static: true }]
1012
+ }] } });
1013
+
1014
+ /**
1015
+ * @hidden
1016
+ */
1017
+ class CollectionComponent {
1018
+ constructor(configKey, configurationService, collectionService) {
1019
+ this.configKey = configKey;
1020
+ this.configurationService = configurationService;
1021
+ this.collectionService = collectionService;
1022
+ this.items = [];
1023
+ this.subscription = collectionService.itemChanges.subscribe(changes => this.processChanges(changes));
1024
+ }
1025
+ ngOnDestroy() {
1026
+ this.subscription.unsubscribe();
1027
+ }
1028
+ ngAfterContentInit() {
1029
+ this.readItems();
1030
+ this.children.changes.subscribe(() => this.readItems());
1031
+ }
1032
+ processChanges(changes) {
1033
+ if (!this.children) {
1034
+ return;
1035
+ }
1036
+ const index = this.children.toArray().indexOf(changes.sender);
1037
+ if (index < 0) {
1038
+ return;
1039
+ }
1040
+ this.items[index] = changes.options;
1041
+ this.change();
1042
+ }
1043
+ readItems() {
1044
+ this.items = this.children.map(s => s.options);
1045
+ this.change();
1046
+ }
1047
+ change() {
1048
+ this.configurationService.notify(new Change(this.configKey, this.items.length === 0 ? undefined : this.items));
1049
+ }
1050
+ }
1051
+ CollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
1052
+ CollectionComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: CollectionComponent, ngImport: i0 });
1053
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CollectionComponent, decorators: [{
1054
+ type: Directive
1055
+ }], ctorParameters: function () { return [{ type: undefined }, { type: ConfigurationService }, { type: CollectionService }]; } });
1056
+
1057
+ /**
1058
+ * A collection of one or more layers.
1059
+ */
1060
+ class LayersComponent extends CollectionComponent {
1061
+ constructor(configurationService, collectionService) {
1062
+ super('layers', configurationService, collectionService);
1063
+ this.configurationService = configurationService;
1064
+ this.collectionService = collectionService;
1065
+ }
1066
+ }
1067
+ LayersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LayersComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }], target: i0.ɵɵFactoryTarget.Component });
1068
+ LayersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LayersComponent, selector: "kendo-map-layers", providers: [CollectionService], queries: [{ propertyName: "children", predicate: LayerComponent }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: LayersComponent, decorators: [{
1070
+ type: Component,
1071
+ args: [{
1072
+ changeDetection: ChangeDetectionStrategy.OnPush,
1073
+ providers: [CollectionService],
1074
+ selector: 'kendo-map-layers',
1075
+ template: ''
1076
+ }]
1077
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, propDecorators: { children: [{
1078
+ type: ContentChildren,
1079
+ args: [LayerComponent]
1080
+ }] } });
1081
+
1082
+ /**
1083
+ * A vector shape layer for bubble maps.
1084
+ */
1085
+ class MarkerLayerComponent extends LayerComponent {
1086
+ constructor(configurationService, collectionService, sanitizer) {
1087
+ super('marker', configurationService, collectionService, sanitizer);
1088
+ this.configurationService = configurationService;
1089
+ this.collectionService = collectionService;
1090
+ this.sanitizer = sanitizer;
1091
+ }
1092
+ }
1093
+ MarkerLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MarkerLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1094
+ MarkerLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MarkerLayerComponent, selector: "kendo-map-marker-layer", inputs: { data: "data", locationField: "locationField", titleField: "titleField", shape: "shape" }, providers: [
1095
+ ConfigurationService,
1096
+ {
1097
+ provide: LayerComponent,
1098
+ useExisting: forwardRef(() => MarkerLayerComponent)
1099
+ }
1100
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MarkerLayerComponent, decorators: [{
1102
+ type: Component,
1103
+ args: [{
1104
+ changeDetection: ChangeDetectionStrategy.OnPush,
1105
+ providers: [
1106
+ ConfigurationService,
1107
+ {
1108
+ provide: LayerComponent,
1109
+ useExisting: forwardRef(() => MarkerLayerComponent)
1110
+ }
1111
+ ],
1112
+ selector: 'kendo-map-marker-layer',
1113
+ template: ''
1114
+ }]
1115
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
1116
+ type: Input
1117
+ }], locationField: [{
1118
+ type: Input
1119
+ }], titleField: [{
1120
+ type: Input
1121
+ }], shape: [{
1122
+ type: Input
1123
+ }] } });
1124
+
1125
+ /**
1126
+ * Defines a vector shape layer bound to GeoJSON data.
1127
+ */
1128
+ class ShapeLayerComponent extends LayerComponent {
1129
+ constructor(configurationService, collectionService, sanitizer) {
1130
+ super('shape', configurationService, collectionService, sanitizer);
1131
+ this.configurationService = configurationService;
1132
+ this.collectionService = collectionService;
1133
+ this.sanitizer = sanitizer;
1134
+ }
1135
+ }
1136
+ ShapeLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ShapeLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1137
+ ShapeLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShapeLayerComponent, selector: "kendo-map-shape-layer", inputs: { data: "data", style: "style" }, providers: [
1138
+ ConfigurationService,
1139
+ {
1140
+ provide: LayerComponent,
1141
+ useExisting: forwardRef(() => ShapeLayerComponent)
1142
+ }
1143
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ShapeLayerComponent, decorators: [{
1145
+ type: Component,
1146
+ args: [{
1147
+ changeDetection: ChangeDetectionStrategy.OnPush,
1148
+ providers: [
1149
+ ConfigurationService,
1150
+ {
1151
+ provide: LayerComponent,
1152
+ useExisting: forwardRef(() => ShapeLayerComponent)
1153
+ }
1154
+ ],
1155
+ selector: 'kendo-map-shape-layer',
1156
+ template: ''
1157
+ }]
1158
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { data: [{
1159
+ type: Input
1160
+ }], style: [{
1161
+ type: Input
1162
+ }] } });
1163
+
1164
+ /**
1165
+ * Defines a vector shape layer bound to GeoJSON data.
1166
+ */
1167
+ class TileLayerComponent extends LayerComponent {
1168
+ constructor(configurationService, collectionService, sanitizer) {
1169
+ super('tile', configurationService, collectionService, sanitizer);
1170
+ this.configurationService = configurationService;
1171
+ this.collectionService = collectionService;
1172
+ this.sanitizer = sanitizer;
1173
+ }
1174
+ }
1175
+ TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TileLayerComponent, deps: [{ token: ConfigurationService }, { token: CollectionService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1176
+ TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TileLayerComponent, selector: "kendo-map-tile-layer", inputs: { tileSize: "tileSize", subdomains: "subdomains", urlTemplate: "urlTemplate" }, providers: [
1177
+ ConfigurationService,
1178
+ {
1179
+ provide: LayerComponent,
1180
+ useExisting: forwardRef(() => TileLayerComponent)
1181
+ }
1182
+ ], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TileLayerComponent, decorators: [{
1184
+ type: Component,
1185
+ args: [{
1186
+ changeDetection: ChangeDetectionStrategy.OnPush,
1187
+ providers: [
1188
+ ConfigurationService,
1189
+ {
1190
+ provide: LayerComponent,
1191
+ useExisting: forwardRef(() => TileLayerComponent)
1192
+ }
1193
+ ],
1194
+ selector: 'kendo-map-tile-layer',
1195
+ template: ''
1196
+ }]
1197
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: i3.DomSanitizer }]; }, propDecorators: { tileSize: [{
1198
+ type: Input
1199
+ }], subdomains: [{
1200
+ type: Input
1201
+ }], urlTemplate: [{
1202
+ type: Input
1203
+ }] } });
1204
+
1205
+ /**
1206
+ * @hidden
1207
+ */
1208
+ const MAP_DIRECTIVES = [
1209
+ MapComponent,
1210
+ LayersComponent,
1211
+ BubbleLayerComponent,
1212
+ MarkerLayerComponent,
1213
+ ShapeLayerComponent,
1214
+ TileLayerComponent,
1215
+ LayerTooltipComponent
1216
+ ];
1217
+
1218
+ /**
1219
+ * Sample module
1220
+ */
1221
+ class MapModule {
1222
+ }
1223
+ MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1224
+ MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MapModule, declarations: [MapComponent, LayersComponent, BubbleLayerComponent, MarkerLayerComponent, ShapeLayerComponent, TileLayerComponent, LayerTooltipComponent], imports: [CommonModule, ResizeSensorModule], exports: [MapComponent, LayersComponent, BubbleLayerComponent, MarkerLayerComponent, ShapeLayerComponent, TileLayerComponent, LayerTooltipComponent] });
1225
+ MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MapModule, imports: [[CommonModule, ResizeSensorModule]] });
1226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MapModule, decorators: [{
1227
+ type: NgModule,
1228
+ args: [{
1229
+ declarations: [MAP_DIRECTIVES],
1230
+ imports: [CommonModule, ResizeSensorModule],
1231
+ exports: [MAP_DIRECTIVES]
1232
+ }]
1233
+ }] });
1234
+
1235
+ /**
1236
+ * Generated bundle index. Do not edit.
1237
+ */
1238
+
1239
+ export { BeforeResetEvent, BubbleLayerComponent, LayerTooltipComponent, LayersComponent, MapClickEvent, MapComponent, MapModule, MarkerActivateEvent, MarkerClickEvent, MarkerCreatedEvent, MarkerLayerComponent, PanEndEvent, PanEvent, ResetEvent, ShapeClickEvent, ShapeCreatedEvent, ShapeFeatureCreatedEvent, ShapeLayerComponent, ShapeMouseEnterEvent, ShapeMouseLeaveEvent, TileLayerComponent, ZoomEndEvent, ZoomStartEvent };
1240
+