@artstesh/maps 3.0.2 → 4.0.2

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 (52) hide show
  1. package/dist/esm2020/map/common/destructible.component.mjs +4 -4
  2. package/dist/esm2020/map/map-plate/features/markers/markers.component.mjs +4 -4
  3. package/dist/esm2020/map/map-plate/layers/feature-layer/feature-layer.component.mjs +4 -4
  4. package/dist/esm2020/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
  5. package/dist/esm2020/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +4 -4
  6. package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.component.mjs +4 -4
  7. package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +4 -4
  8. package/dist/esm2020/map/map-plate/map-plate.component.mjs +4 -4
  9. package/dist/esm2020/map/map-plate/map-plate.factory.service.mjs +4 -4
  10. package/dist/esm2020/map/map.module.mjs +5 -5
  11. package/dist/esm2020/map/services/map-management.service.mjs +4 -4
  12. package/dist/esm2020/map/services/map-postboy.service.mjs +4 -4
  13. package/dist/esm2020/map/services/map-state.service.mjs +4 -4
  14. package/dist/esm2020/map/services/message-registrator.service.mjs +4 -4
  15. package/dist/esm2020/map/services/service.collector.mjs +4 -4
  16. package/dist/esm2020/src/map/common/destructible.component.mjs +4 -4
  17. package/dist/esm2020/src/map/map-plate/features/markers/markers.component.mjs +4 -4
  18. package/dist/esm2020/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +4 -4
  19. package/dist/esm2020/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
  20. package/dist/esm2020/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +4 -4
  21. package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +4 -4
  22. package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +4 -4
  23. package/dist/esm2020/src/map/map-plate/map-plate.component.mjs +4 -4
  24. package/dist/esm2020/src/map/map-plate/map-plate.factory.service.mjs +4 -4
  25. package/dist/esm2020/src/map/map.module.mjs +5 -5
  26. package/dist/esm2020/src/map/services/map-management.service.mjs +4 -4
  27. package/dist/esm2020/src/map/services/map-postboy.service.mjs +4 -4
  28. package/dist/esm2020/src/map/services/map-state.service.mjs +4 -4
  29. package/dist/esm2020/src/map/services/message-registrator.service.mjs +4 -4
  30. package/dist/esm2020/src/map/services/service.collector.mjs +4 -4
  31. package/dist/fesm2015/maps-components-src-map.mjs +46 -46
  32. package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
  33. package/dist/fesm2015/maps-components.mjs +46 -46
  34. package/dist/fesm2015/maps-components.mjs.map +1 -1
  35. package/dist/fesm2020/maps-components-src-map.mjs +46 -46
  36. package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
  37. package/dist/fesm2020/maps-components.mjs +46 -46
  38. package/dist/fesm2020/maps-components.mjs.map +1 -1
  39. package/dist/map/common/destructible.component.d.ts +1 -1
  40. package/dist/map/map-plate/features/markers/markers.component.d.ts +1 -1
  41. package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
  42. package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
  43. package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
  44. package/dist/map/map-plate/map-plate.component.d.ts +1 -1
  45. package/dist/package.json +2 -2
  46. package/dist/src/map/common/destructible.component.d.ts +1 -1
  47. package/dist/src/map/map-plate/features/markers/markers.component.d.ts +1 -1
  48. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
  49. package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
  50. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
  51. package/dist/src/map/map-plate/map-plate.component.d.ts +1 -1
  52. package/package.json +18 -17
@@ -26,9 +26,9 @@ class DestructibleComponent {
26
26
  this.onDestroy();
27
27
  }
28
28
  }
29
- DestructibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DestructibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- DestructibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DestructibleComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DestructibleComponent, decorators: [{
29
+ DestructibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DestructibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ DestructibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DestructibleComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DestructibleComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ template: '' }]
34
34
  }] });
@@ -240,9 +240,9 @@ class MapPostboyService {
240
240
  this.applications[message.id].next(message);
241
241
  }
242
242
  }
243
- MapPostboyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
244
- MapPostboyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPostboyService });
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPostboyService, decorators: [{
243
+ MapPostboyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
244
+ MapPostboyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService });
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService, decorators: [{
246
246
  type: Injectable
247
247
  }] });
248
248
 
@@ -256,9 +256,9 @@ class MessageRegistratorService {
256
256
  service.register(RemoveTileCommand.ID, new Subject());
257
257
  }
258
258
  }
259
- MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
260
- MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MessageRegistratorService });
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MessageRegistratorService, decorators: [{
259
+ MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
260
+ MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService });
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
262
262
  type: Injectable
263
263
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
264
264
 
@@ -268,9 +268,9 @@ class MapStateService {
268
268
  postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => (this.map = m));
269
269
  }
270
270
  }
271
- MapStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
272
- MapStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapStateService });
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapStateService, decorators: [{
271
+ MapStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
272
+ MapStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService });
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService, decorators: [{
274
274
  type: Injectable
275
275
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
276
276
 
@@ -330,18 +330,18 @@ class MapManagementService {
330
330
  });
331
331
  }
332
332
  }
333
- MapManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapManagementService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
334
- MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapManagementService });
335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapManagementService, decorators: [{
333
+ MapManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
334
+ MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService });
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, decorators: [{
336
336
  type: Injectable
337
337
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
338
338
 
339
339
  class ServiceCollector {
340
340
  constructor(registrator, management, state) { }
341
341
  }
342
- ServiceCollector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ServiceCollector, deps: [{ token: MessageRegistratorService }, { token: MapManagementService }, { token: MapStateService }], target: i0.ɵɵFactoryTarget.Injectable });
343
- ServiceCollector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ServiceCollector });
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ServiceCollector, decorators: [{
342
+ ServiceCollector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector, deps: [{ token: MessageRegistratorService }, { token: MapManagementService }, { token: MapStateService }], target: i0.ɵɵFactoryTarget.Injectable });
343
+ ServiceCollector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector });
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector, decorators: [{
345
345
  type: Injectable
346
346
  }], ctorParameters: function () { return [{ type: MessageRegistratorService }, { type: MapManagementService }, { type: MapStateService }]; } });
347
347
 
@@ -359,9 +359,9 @@ class MapPlateFactory {
359
359
  });
360
360
  }
361
361
  }
362
- MapPlateFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPlateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
363
- MapPlateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPlateFactory, providedIn: 'root' });
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPlateFactory, decorators: [{
362
+ MapPlateFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
363
+ MapPlateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, providedIn: 'root' });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, decorators: [{
365
365
  type: Injectable,
366
366
  args: [{
367
367
  providedIn: 'root',
@@ -408,9 +408,9 @@ class OsmTileLayerComponent extends DestructibleComponent {
408
408
  this._map.addLayer(this.layer);
409
409
  }
410
410
  }
411
- OsmTileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OsmTileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
412
- OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
413
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
411
+ OsmTileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
412
+ OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
414
414
  type: Component,
415
415
  args: [{ selector: 'lib-osm-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
416
416
  }], ctorParameters: function () { return []; }, propDecorators: { url: [{
@@ -454,9 +454,9 @@ class MapPlateComponent extends DestructibleComponent {
454
454
  this.map.updateSize();
455
455
  }
456
456
  }
457
- MapPlateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: ServiceCollector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
458
- MapPlateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapPlateComponent, decorators: [{
457
+ MapPlateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: ServiceCollector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
458
+ MapPlateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, decorators: [{
460
460
  type: Component,
461
461
  args: [{ selector: 'lib-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"] }]
462
462
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: ServiceCollector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
@@ -546,9 +546,9 @@ class TileLayerFactory {
546
546
  return { x: x, y: y };
547
547
  }
548
548
  }
549
- TileLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
550
- TileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TileLayerFactory, providedIn: 'root' });
551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TileLayerFactory, decorators: [{
549
+ TileLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
550
+ TileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, providedIn: 'root' });
551
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, decorators: [{
552
552
  type: Injectable,
553
553
  args: [{
554
554
  providedIn: 'root',
@@ -585,9 +585,9 @@ class TileLayerComponent extends DestructibleComponent {
585
585
  this.postboy.fire(new RemoveTileCommand(this.layer));
586
586
  }
587
587
  }
588
- TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TileLayerComponent, deps: [{ token: MapPostboyService }, { token: TileLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
589
- TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TileLayerComponent, selector: "lib-tile-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
590
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TileLayerComponent, decorators: [{
588
+ TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, deps: [{ token: MapPostboyService }, { token: TileLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
589
+ TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TileLayerComponent, selector: "lib-tile-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, decorators: [{
591
591
  type: Component,
592
592
  args: [{ selector: 'lib-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
593
593
  }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: TileLayerFactory }]; }, propDecorators: { settings: [{
@@ -655,9 +655,9 @@ class FeatureLayerFactory {
655
655
  return layer;
656
656
  }
657
657
  }
658
- FeatureLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FeatureLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
659
- FeatureLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FeatureLayerFactory, decorators: [{
658
+ FeatureLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
659
+ FeatureLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
660
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, decorators: [{
661
661
  type: Injectable,
662
662
  args: [{
663
663
  providedIn: 'root',
@@ -695,9 +695,9 @@ class FeatureLayerComponent extends DestructibleComponent {
695
695
  this.postboy.fire(new RemoveLayerCommand(this.layer));
696
696
  }
697
697
  }
698
- FeatureLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FeatureLayerComponent, deps: [{ token: MapPostboyService }, { token: FeatureLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
699
- FeatureLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
700
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FeatureLayerComponent, decorators: [{
698
+ FeatureLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerComponent, deps: [{ token: MapPostboyService }, { token: FeatureLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
699
+ FeatureLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerComponent, decorators: [{
701
701
  type: Component,
702
702
  args: [{ selector: 'lib-feature-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
703
703
  }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: FeatureLayerFactory }]; }, propDecorators: { settings: [{
@@ -728,9 +728,9 @@ class MarkersComponent extends DestructibleComponent {
728
728
  this.postboy.fire(new PlaceLayerFeaturesCommand(this.layerName, this._markers.map((m) => m.feature)));
729
729
  }
730
730
  }
731
- MarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MarkersComponent, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
732
- MarkersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MarkersComponent, selector: "lib-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
733
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MarkersComponent, decorators: [{
731
+ MarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkersComponent, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
732
+ MarkersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MarkersComponent, selector: "lib-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkersComponent, decorators: [{
734
734
  type: Component,
735
735
  args: [{ selector: 'lib-markers', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
736
736
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; }, propDecorators: { layerName: [{
@@ -741,15 +741,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
741
741
 
742
742
  class MapModule {
743
743
  }
744
- MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
745
- MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: MapModule, declarations: [DestructibleComponent,
744
+ MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
745
+ MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MapModule, declarations: [DestructibleComponent,
746
746
  MapPlateComponent,
747
747
  TileLayerComponent,
748
748
  OsmTileLayerComponent,
749
749
  FeatureLayerComponent,
750
750
  MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent] });
751
- MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapModule, imports: [CommonModule] });
752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MapModule, decorators: [{
751
+ MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
752
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
753
753
  type: NgModule,
754
754
  args: [{
755
755
  imports: [CommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"maps-components-src-map.mjs","sources":["../../projects/maps-components/src/map/common/destructible.component.ts","../../projects/maps-components/src/map/models/map-lyrs.enum.ts","../../projects/maps-components/src/map/models/map-settings.ts","../../projects/maps-components/src/map/common/id.generator.ts","../../projects/maps-components/src/map/models/marker-model.ts","../../projects/maps-components/src/map/messages/generic-message.ts","../../projects/maps-components/src/map/messages/events/map-rendered.event.ts","../../projects/maps-components/src/map/messages/commands/add-layer.command.ts","../../projects/maps-components/src/map/messages/commands/place-layer-features.command.ts","../../projects/maps-components/src/map/messages/commands/remove-layer.command.ts","../../projects/maps-components/src/map/messages/commands/add-tile.command.ts","../../projects/maps-components/src/map/messages/commands/remove-tile.command.ts","../../projects/maps-components/src/map/services/map-postboy.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-management.service.ts","../../projects/maps-components/src/map/services/service.collector.ts","../../projects/maps-components/src/map/map-plate/map-plate.factory.service.ts","../../projects/maps-components/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.html","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.component.ts","../../projects/maps-components/src/map/map-plate/features/markers/markers.component.ts","../../projects/maps-components/src/map/map.module.ts","../../projects/maps-components/src/map/helpers/marker-style.helper.ts","../../projects/maps-components/src/map/public-api.ts","../../projects/maps-components/src/map/maps-components-src-map.ts"],"sourcesContent":["import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({ template: '' })\nexport class DestructibleComponent implements OnDestroy {\n protected subs: Subscription[] = [];\n protected onDestroy?: () => void;\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n if (this.onDestroy) this.onDestroy();\n }\n}\n","export enum MapLyrs {\n Hybrid = 1,\n Satellite,\n Streets,\n Terrain,\n}\n\nexport class MapLyrsLabel {\n private static lyrs = {\n [MapLyrs.Hybrid]: 's,h',\n [MapLyrs.Satellite]: 's',\n [MapLyrs.Streets]: 'm',\n [MapLyrs.Terrain]: 'p',\n };\n\n public static get(lyrs: MapLyrs): string {\n return MapLyrsLabel.lyrs[lyrs];\n }\n}\n","import { MapLyrs } from './map-lyrs.enum';\n\nexport class MapSettings {\n center: number[] = [0, 0];\n maxZoom: number = 19;\n minZoom: number = 0;\n zoom: number = 4;\n lyrs: MapLyrs = MapLyrs.Hybrid;\n language: string = 'en';\n\n public static copy(model: MapSettings): MapSettings {\n const result = new MapSettings();\n result.center = model.center;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zoom = model.zoom;\n result.lyrs = model.lyrs;\n result.language = model.language;\n return result;\n }\n\n setCenter(center: number[]): MapSettings {\n return MapSettings.copy({ ...this, center });\n }\n\n setMaxZoom(maxZoom: number): MapSettings {\n return MapSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): MapSettings {\n return MapSettings.copy({ ...this, minZoom });\n }\n\n setZoom(zoom: number): MapSettings {\n return MapSettings.copy({ ...this, zoom });\n }\n\n setLyrs(lyrs: MapLyrs): MapSettings {\n return MapSettings.copy({ ...this, lyrs });\n }\n\n setLanguage(language: string): MapSettings {\n return MapSettings.copy({ ...this, language });\n }\n\n public isSame(model: MapSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zoom !== model.zoom) return false;\n if (this.lyrs !== model.lyrs) return false;\n if (this.language !== model.language) return false;\n return this.center.length !== model.center.length || !!this.center.filter((c, i) => c !== model.center[i]);\n }\n}\n","export class IdGenerator {\n private static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');\n\n public static get(): string {\n let result: string[] = [];\n for (let i = 0; i < 7; i++) {\n result.push(\n IdGenerator.collection\n .sort(() => 0.5 - Math.random())\n .slice(0, 5)\n .join(''),\n );\n }\n return result.join('-');\n }\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry, Point } from 'ol/geom';\n\nexport class MarkerModel {\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n public readonly id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n if (id == null) this.id = IdGenerator.get();\n this._feature = this.getFeature();\n }\n\n private _feature: Feature<Geometry>;\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n\n private getFeature(): Feature<Geometry> {\n const feature = new Feature(new Point([this.lng, this.lat]));\n feature.setId(this.id);\n if (this.info) {\n Object.keys(this.info).forEach((k) => feature.set(k, this.info![k]));\n }\n return feature;\n }\n}\n","import { Observable, Subject } from 'rxjs';\n\nexport abstract class GenericMessage {\n public abstract id: string;\n}\n\nexport abstract class CallbackMessage<T> extends GenericMessage {\n protected result$ = new Subject<T>();\n public result: Observable<T> = this.result$.asObservable();\n\n public finish(value: T): void {\n this.result$.next(value);\n this.result$.complete();\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport Map from 'ol/Map';\n\nexport class MapRenderedEvent extends GenericMessage {\n public static readonly ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';\n\n constructor(public map: Map) {\n super();\n }\n\n public get id(): string {\n return MapRenderedEvent.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\nexport class AddLayerCommand extends GenericMessage {\n public static readonly ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';\n\n constructor(public layer: Layer<VectorSource<any>>) {\n super();\n }\n\n public get id(): string {\n return AddLayerCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\n\nexport class PlaceLayerFeaturesCommand extends GenericMessage {\n public static readonly ID = '8caf86bc-869b-426f-b36d-4642f6b8aab0';\n\n constructor(public layer: string, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return PlaceLayerFeaturesCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport BaseLayer from 'ol/layer/Base';\n\nexport class RemoveLayerCommand extends GenericMessage {\n public static readonly ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';\n\n constructor(public layer: BaseLayer) {\n super();\n }\n\n public get id(): string {\n return RemoveLayerCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\n\nexport class AddTileCommand extends GenericMessage {\n public static readonly ID = '25b7df28-72ce-4453-9fe6-54285a2fdc57';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return AddTileCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport BaseLayer from 'ol/layer/Base';\nimport TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\n\nexport class RemoveTileCommand extends GenericMessage {\n public static readonly ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return RemoveTileCommand.ID;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { GenericMessage } from '../messages';\n\n@Injectable()\nexport class MapPostboyService {\n private applications: { [id: string]: Subject<any> } = {};\n\n public register<T>(id: string, sub: Subject<T>): void {\n this.applications[id] = sub;\n }\n\n public subscribe<T>(id: string): Observable<T> {\n if (!this.applications[id]) throw new Error(`There is no event with id ${id}`);\n return this.applications[id].asObservable();\n }\n\n fire<T extends GenericMessage>(message: T): void {\n if (!this.applications[message.id]) throw new Error(`There is no event with id ${message.id}`);\n this.applications[message.id].next(message);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MapPostboyService } from './map-postboy.service';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { MapRenderedEvent } from '../messages';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\n\n@Injectable()\nexport class MessageRegistratorService {\n constructor(service: MapPostboyService) {\n service.register(MapRenderedEvent.ID, new ReplaySubject<MapRenderedEvent>(1));\n service.register(AddLayerCommand.ID, new Subject<AddLayerCommand>());\n service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject<PlaceLayerFeaturesCommand>(1));\n service.register(RemoveLayerCommand.ID, new Subject<RemoveLayerCommand>());\n service.register(AddTileCommand.ID, new Subject<AddTileCommand>());\n service.register(RemoveTileCommand.ID, new Subject<RemoveTileCommand>());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapRenderedEvent } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\n\n@Injectable()\nexport class MapStateService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {\n postboy.subscribe<Map>(MapRenderedEvent.ID).subscribe((m) => (this.map = m));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { MapRenderedEvent } from '../messages';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\n\n@Injectable()\nexport class MapManagementService {\n private map?: Map;\n private layers: { [name: string]: Layer<VectorSource<any>> } = {};\n\n constructor(private postboy: MapPostboyService) {\n this.observeMapRender();\n this.observeAddLayer();\n this.observeRemoveLayer();\n this.observePlaceFeatures();\n this.observeAddTile();\n this.observeRemoveTile();\n }\n\n private observeRemoveTile() {\n this.postboy.subscribe<RemoveTileCommand>(RemoveTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeAddTile() {\n this.postboy.subscribe<AddTileCommand>(AddTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.addLayer(c.layer);\n });\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeAddLayer() {\n this.postboy.subscribe<AddLayerCommand>(AddLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers[c.layer.get('name')] = c.layer;\n this.map.addLayer(c.layer);\n });\n }\n\n private observePlaceFeatures() {\n this.postboy.subscribe<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID).subscribe((c) => {\n if (!this.layers[c.layer]) return;\n this.layers[c.layer]?.getSource()?.clear();\n this.layers[c.layer].getSource()?.addFeatures(c.features);\n });\n }\n\n private observeRemoveLayer() {\n this.postboy.subscribe<RemoveLayerCommand>(RemoveLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n delete this.layers[c.layer.get('name')];\n this.map.removeLayer(c.layer);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessageRegistratorService } from './message-registrator.service';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\n\n@Injectable()\nexport class ServiceCollector {\n constructor(registrator: MessageRegistratorService, management: MapManagementService, state: MapStateService) {}\n}\n","import { Injectable } from '@angular/core';\nimport Map from 'ol/Map';\nimport { MapSettings } from '../models';\nimport View from 'ol/View';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapPlateFactory {\n public build(settings: MapSettings): Map {\n return new Map({\n controls: [],\n view: new View({\n center: settings?.center || [0, 0],\n zoom: settings?.zoom || 4,\n minZoom: settings?.minZoom || 0,\n maxZoom: settings?.maxZoom || 19,\n }),\n layers: [],\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport OSM from 'ol/source/OSM';\nimport { Map } from 'ol';\n\n@Component({\n selector: 'lib-osm-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OsmTileLayerComponent extends DestructibleComponent implements OnInit {\n public layer?: TileLayer<TileSource>;\n\n constructor() {\n super();\n }\n\n private _url: string = '';\n\n @Input() set url(value: string | undefined) {\n if (!value || this._url === value) return;\n this._url = value;\n this.initLayer();\n }\n\n private _map?: Map;\n\n @Input() set map(value: Map | undefined) {\n if (!value || this._map === value) return;\n this._map = value;\n this.initLayer();\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n if (this.layer) {\n this._map?.removeLayer(this.layer);\n }\n // @ts-ignore\n this.layer?.setMap(null);\n }\n\n private initLayer(): void {\n if (!this._url || !this._map) return;\n if (this.layer) this._map.removeLayer(this.layer);\n this.layer = new TileLayer({\n source: new OSM({\n url: this._url,\n }),\n });\n this.layer.set('name', 'osm-tile-layer');\n this._map.addLayer(this.layer);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { MapLyrsLabel, MapSettings } from '../models';\nimport Map from 'ol/Map';\nimport { useGeographic } from 'ol/proj';\nimport { DestructibleComponent } from '../common/destructible.component';\nimport { MessageRegistratorService } from '../services/message-registrator.service';\nimport { MapPostboyService } from '../services/map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapStateService } from '../services/map-state.service';\nimport { MapManagementService } from '../services/map-management.service';\nimport { ServiceCollector } from '../services/service.collector';\nimport { MapPlateFactory } from './map-plate.factory.service';\n\n@Component({\n selector: 'lib-map-plate',\n templateUrl: './map-plate.component.html',\n styleUrls: ['./map-plate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector],\n})\nexport class MapPlateComponent extends DestructibleComponent implements OnInit {\n map!: Map;\n osmUrl = '';\n\n constructor(\n private elementRef: ElementRef,\n private postboy: MapPostboyService,\n private mapFactory: MapPlateFactory,\n registrator: ServiceCollector,\n private detector: ChangeDetectorRef,\n ) {\n super();\n }\n\n _settings: MapSettings = new MapSettings();\n\n @Input() set settings(value: MapSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setOsm();\n }\n\n ngOnInit(): void {\n useGeographic();\n this.map = this.mapFactory.build(this._settings);\n this.map.setTarget(this.elementRef.nativeElement);\n this.detector.detectChanges();\n this.map.once('postrender', () => {\n this.map.updateSize();\n this.postboy.fire(new MapRenderedEvent(this.map));\n });\n this.setOsm();\n }\n\n private setOsm(): void {\n if (!this.map) return;\n this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${\n this._settings.language\n }&x={x}&y={y}&z={z}`;\n this.detector.detectChanges();\n this.map.updateSize();\n }\n}\n","<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n","export class TileLayerSettings {\n maxZoom: number = 19;\n minZoom: number = 0;\n opacity: number = 0.6;\n url: string = '';\n projection: string = 'EPSG:3857';\n\n public static copy(model: TileLayerSettings): TileLayerSettings {\n const result = new TileLayerSettings();\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.projection = model.projection;\n result.opacity = model.opacity;\n result.url = model.url;\n return result;\n }\n\n setUrl(url: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, url });\n }\n\n setMaxZoom(maxZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, minZoom });\n }\n\n setOpacity(opacity: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, opacity });\n }\n\n setProjection(projection: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, projection });\n }\n\n public isSame(model: TileLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.url !== model.url) return false;\n if (this.projection !== model.projection) return false;\n if (this.opacity !== model.opacity) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XYZ } from 'ol/source';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { TileCoord } from 'ol/tilecoord';\nimport { get } from 'ol/proj';\nimport TileLayer from 'ol/layer/Tile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TileLayerFactory {\n public build(settings: TileLayerSettings): TileLayer<XYZ> {\n const source = new XYZ({\n tileSize: 256,\n maxZoom: settings.maxZoom || 14,\n minZoom: settings.minZoom || 1,\n projection: get(settings.projection)!,\n tileUrlFunction: this.getTileFunc(settings),\n crossOrigin: 'Anonymous',\n });\n return new TileLayer({ source, opacity: settings.opacity });\n }\n\n private getTileFunc(settings: TileLayerSettings): (tileCoord: TileCoord) => string {\n return (tileCoord) => {\n const zoom = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2];\n const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);\n const bound = 1 << zoom;\n return settings.url\n .replace('{x}', String(normalizedCoord?.x || x))\n .replace('{z}', String(zoom))\n .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));\n };\n }\n\n private getNormalizedCoord(coord: { x: number; y: number }, zoom: number) {\n const y = coord.y;\n let x = coord.x;\n const tileRange = 1 << zoom;\n if (y < 0 || y >= tileRange) return null;\n if (x < 0 || x >= tileRange) x = ((x % tileRange) + tileRange) % tileRange;\n return { x: x, y: y };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { XYZ } from 'ol/source';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { TileLayerFactory } from './tile-layer.factory';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { FeatureLayerSettings } from '../feature-layer/feature-layer.settings';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { AddTileCommand } from '../../../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';\n\n@Component({\n selector: 'lib-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileLayerComponent extends DestructibleComponent {\n public layer?: TileLayer<XYZ>;\n\n constructor(private postboy: MapPostboyService, private factory: TileLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: TileLayerSettings = new TileLayerSettings();\n\n @Input() set settings(value: TileLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddTileCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveTileCommand(this.layer));\n }\n}\n","import Style, { StyleFunction } from 'ol/style/Style';\nimport { IdGenerator } from '../../../common/id.generator';\n\nexport class FeatureLayerSettings {\n name: string = IdGenerator.get();\n zIndex: number = 1;\n maxZoom: number = 19;\n minZoom: number = 0;\n style?: Style | StyleFunction;\n\n public static copy(model: FeatureLayerSettings): FeatureLayerSettings {\n const result = new FeatureLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.style = model.style;\n return result;\n }\n\n setZIndex(zIndex: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, zIndex });\n }\n\n setName(name: string): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, name });\n }\n\n setMaxZoom(maxZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, minZoom });\n }\n\n setStyle(style: Style | StyleFunction): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, style });\n }\n\n public isSame(model: FeatureLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureLayerFactory {\n public build(settings: FeatureLayerSettings): Layer<VectorSource<any>> {\n const source = new Source({});\n const layer = new Layer({\n source: source,\n maxZoom: settings.maxZoom,\n minZoom: settings.minZoom,\n zIndex: settings.zIndex,\n });\n if (settings.style) layer.setStyle(settings.style);\n layer.set('name', settings.name);\n return layer;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Layer } from 'ol/layer';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { filter, first } from 'rxjs/operators';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { FeatureLayerFactory } from './feature-layer.factory';\n\n@Component({\n selector: 'lib-feature-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureLayerComponent extends DestructibleComponent implements OnInit {\n public layer: Layer<VectorSource<any>> | null = null;\n\n constructor(private postboy: MapPostboyService, private factory: FeatureLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: FeatureLayerSettings = new FeatureLayerSettings();\n\n @Input() set settings(value: FeatureLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddLayerCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveLayerCommand(this.layer));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MarkerModel } from '../../../models/marker-model';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\n\n@Component({\n selector: 'lib-markers',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkersComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _markers: MarkerModel[] = [];\n\n @Input() set markers(value: MarkerModel[]) {\n this._markers = value;\n this.putMarkers();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putMarkers());\n }\n\n private putMarkers(): void {\n if (!this._markers?.length) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._markers.map((m) => m.feature),\n ),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DestructibleComponent } from './common/destructible.component';\nimport { MapPlateComponent } from './map-plate/map-plate.component';\nimport { TileLayerComponent } from './map-plate/layers/tile-layer/tile-layer.component';\nimport { OsmTileLayerComponent } from './map-plate/layers/osm-tile-layer/osm-tile-layer.component';\nimport { FeatureLayerComponent } from './map-plate/layers/feature-layer/feature-layer.component';\nimport { MarkersComponent } from './map-plate/features/markers/markers.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DestructibleComponent,\n MapPlateComponent,\n TileLayerComponent,\n OsmTileLayerComponent,\n FeatureLayerComponent,\n MarkersComponent,\n ],\n exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent],\n})\nexport class MapModule {}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Icon, Stroke } from 'ol/style';\n\nexport class MarkerStyleHelper {\n public static fromSvg(svg: string, size: [number, number] = [30, 30], zIndex = 400): Style {\n let image = new Image();\n image.src = 'data:image/svg+xml,' + escape(svg);\n return new Style({\n image: new Icon({\n img: image,\n imgSize: size,\n }),\n zIndex,\n });\n }\n\n public static circle(radius: number, fill: string, strokeColor: string, strokeWidth = 1): Style {\n return new Style({\n image: new Circle({\n radius,\n fill: new Fill({ color: fill }),\n stroke: new Stroke({ color: strokeColor, width: strokeWidth }),\n }),\n });\n }\n}\n","/*\n * Public API Surface of maps\n */\n\nexport * from './map.module';\nexport * from './models/index';\nexport * from './map-plate/map-plate.component';\nexport * from './services/map-postboy.service';\nexport * from './messages/index';\nexport * from './map-plate/layers/index';\nexport * from './map-plate/features/index';\nexport * from './services/map-postboy.service';\nexport * from './services/message-registrator.service';\nexport * from './helpers/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MapPostboyService","i1.MessageRegistratorService","i2.MapManagementService","i3.MapStateService","i2.MapPlateFactory","i3.ServiceCollector","i5.OsmTileLayerComponent","i2.TileLayerFactory","Source","Layer","i2.FeatureLayerFactory"],"mappings":"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"}
1
+ {"version":3,"file":"maps-components-src-map.mjs","sources":["../../projects/maps-components/src/map/common/destructible.component.ts","../../projects/maps-components/src/map/models/map-lyrs.enum.ts","../../projects/maps-components/src/map/models/map-settings.ts","../../projects/maps-components/src/map/common/id.generator.ts","../../projects/maps-components/src/map/models/marker-model.ts","../../projects/maps-components/src/map/messages/generic-message.ts","../../projects/maps-components/src/map/messages/events/map-rendered.event.ts","../../projects/maps-components/src/map/messages/commands/add-layer.command.ts","../../projects/maps-components/src/map/messages/commands/place-layer-features.command.ts","../../projects/maps-components/src/map/messages/commands/remove-layer.command.ts","../../projects/maps-components/src/map/messages/commands/add-tile.command.ts","../../projects/maps-components/src/map/messages/commands/remove-tile.command.ts","../../projects/maps-components/src/map/services/map-postboy.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-management.service.ts","../../projects/maps-components/src/map/services/service.collector.ts","../../projects/maps-components/src/map/map-plate/map-plate.factory.service.ts","../../projects/maps-components/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.html","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.component.ts","../../projects/maps-components/src/map/map-plate/features/markers/markers.component.ts","../../projects/maps-components/src/map/map.module.ts","../../projects/maps-components/src/map/helpers/marker-style.helper.ts","../../projects/maps-components/src/map/public-api.ts","../../projects/maps-components/src/map/maps-components-src-map.ts"],"sourcesContent":["import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({ template: '' })\nexport class DestructibleComponent implements OnDestroy {\n protected subs: Subscription[] = [];\n protected onDestroy?: () => void;\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n if (this.onDestroy) this.onDestroy();\n }\n}\n","export enum MapLyrs {\n Hybrid = 1,\n Satellite,\n Streets,\n Terrain,\n}\n\nexport class MapLyrsLabel {\n private static lyrs = {\n [MapLyrs.Hybrid]: 's,h',\n [MapLyrs.Satellite]: 's',\n [MapLyrs.Streets]: 'm',\n [MapLyrs.Terrain]: 'p',\n };\n\n public static get(lyrs: MapLyrs): string {\n return MapLyrsLabel.lyrs[lyrs];\n }\n}\n","import { MapLyrs } from './map-lyrs.enum';\n\nexport class MapSettings {\n center: number[] = [0, 0];\n maxZoom: number = 19;\n minZoom: number = 0;\n zoom: number = 4;\n lyrs: MapLyrs = MapLyrs.Hybrid;\n language: string = 'en';\n\n public static copy(model: MapSettings): MapSettings {\n const result = new MapSettings();\n result.center = model.center;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zoom = model.zoom;\n result.lyrs = model.lyrs;\n result.language = model.language;\n return result;\n }\n\n setCenter(center: number[]): MapSettings {\n return MapSettings.copy({ ...this, center });\n }\n\n setMaxZoom(maxZoom: number): MapSettings {\n return MapSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): MapSettings {\n return MapSettings.copy({ ...this, minZoom });\n }\n\n setZoom(zoom: number): MapSettings {\n return MapSettings.copy({ ...this, zoom });\n }\n\n setLyrs(lyrs: MapLyrs): MapSettings {\n return MapSettings.copy({ ...this, lyrs });\n }\n\n setLanguage(language: string): MapSettings {\n return MapSettings.copy({ ...this, language });\n }\n\n public isSame(model: MapSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zoom !== model.zoom) return false;\n if (this.lyrs !== model.lyrs) return false;\n if (this.language !== model.language) return false;\n return this.center.length !== model.center.length || !!this.center.filter((c, i) => c !== model.center[i]);\n }\n}\n","export class IdGenerator {\n private static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');\n\n public static get(): string {\n let result: string[] = [];\n for (let i = 0; i < 7; i++) {\n result.push(\n IdGenerator.collection\n .sort(() => 0.5 - Math.random())\n .slice(0, 5)\n .join(''),\n );\n }\n return result.join('-');\n }\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry, Point } from 'ol/geom';\n\nexport class MarkerModel {\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n public readonly id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n if (id == null) this.id = IdGenerator.get();\n this._feature = this.getFeature();\n }\n\n private _feature: Feature<Geometry>;\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n\n private getFeature(): Feature<Geometry> {\n const feature = new Feature(new Point([this.lng, this.lat]));\n feature.setId(this.id);\n if (this.info) {\n Object.keys(this.info).forEach((k) => feature.set(k, this.info![k]));\n }\n return feature;\n }\n}\n","import { Observable, Subject } from 'rxjs';\n\nexport abstract class GenericMessage {\n public abstract id: string;\n}\n\nexport abstract class CallbackMessage<T> extends GenericMessage {\n protected result$ = new Subject<T>();\n public result: Observable<T> = this.result$.asObservable();\n\n public finish(value: T): void {\n this.result$.next(value);\n this.result$.complete();\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport Map from 'ol/Map';\n\nexport class MapRenderedEvent extends GenericMessage {\n public static readonly ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';\n\n constructor(public map: Map) {\n super();\n }\n\n public get id(): string {\n return MapRenderedEvent.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\nexport class AddLayerCommand extends GenericMessage {\n public static readonly ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';\n\n constructor(public layer: Layer<VectorSource<any>>) {\n super();\n }\n\n public get id(): string {\n return AddLayerCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\n\nexport class PlaceLayerFeaturesCommand extends GenericMessage {\n public static readonly ID = '8caf86bc-869b-426f-b36d-4642f6b8aab0';\n\n constructor(public layer: string, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return PlaceLayerFeaturesCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport BaseLayer from 'ol/layer/Base';\n\nexport class RemoveLayerCommand extends GenericMessage {\n public static readonly ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';\n\n constructor(public layer: BaseLayer) {\n super();\n }\n\n public get id(): string {\n return RemoveLayerCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\n\nexport class AddTileCommand extends GenericMessage {\n public static readonly ID = '25b7df28-72ce-4453-9fe6-54285a2fdc57';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return AddTileCommand.ID;\n }\n}\n","import { GenericMessage } from '../generic-message';\nimport BaseLayer from 'ol/layer/Base';\nimport TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\n\nexport class RemoveTileCommand extends GenericMessage {\n public static readonly ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return RemoveTileCommand.ID;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { GenericMessage } from '../messages';\n\n@Injectable()\nexport class MapPostboyService {\n private applications: { [id: string]: Subject<any> } = {};\n\n public register<T>(id: string, sub: Subject<T>): void {\n this.applications[id] = sub;\n }\n\n public subscribe<T>(id: string): Observable<T> {\n if (!this.applications[id]) throw new Error(`There is no event with id ${id}`);\n return this.applications[id].asObservable();\n }\n\n fire<T extends GenericMessage>(message: T): void {\n if (!this.applications[message.id]) throw new Error(`There is no event with id ${message.id}`);\n this.applications[message.id].next(message);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MapPostboyService } from './map-postboy.service';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { MapRenderedEvent } from '../messages';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\n\n@Injectable()\nexport class MessageRegistratorService {\n constructor(service: MapPostboyService) {\n service.register(MapRenderedEvent.ID, new ReplaySubject<MapRenderedEvent>(1));\n service.register(AddLayerCommand.ID, new Subject<AddLayerCommand>());\n service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject<PlaceLayerFeaturesCommand>(1));\n service.register(RemoveLayerCommand.ID, new Subject<RemoveLayerCommand>());\n service.register(AddTileCommand.ID, new Subject<AddTileCommand>());\n service.register(RemoveTileCommand.ID, new Subject<RemoveTileCommand>());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapRenderedEvent } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\n\n@Injectable()\nexport class MapStateService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {\n postboy.subscribe<Map>(MapRenderedEvent.ID).subscribe((m) => (this.map = m));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { MapRenderedEvent } from '../messages';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\n\n@Injectable()\nexport class MapManagementService {\n private map?: Map;\n private layers: { [name: string]: Layer<VectorSource<any>> } = {};\n\n constructor(private postboy: MapPostboyService) {\n this.observeMapRender();\n this.observeAddLayer();\n this.observeRemoveLayer();\n this.observePlaceFeatures();\n this.observeAddTile();\n this.observeRemoveTile();\n }\n\n private observeRemoveTile() {\n this.postboy.subscribe<RemoveTileCommand>(RemoveTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeAddTile() {\n this.postboy.subscribe<AddTileCommand>(AddTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.addLayer(c.layer);\n });\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeAddLayer() {\n this.postboy.subscribe<AddLayerCommand>(AddLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers[c.layer.get('name')] = c.layer;\n this.map.addLayer(c.layer);\n });\n }\n\n private observePlaceFeatures() {\n this.postboy.subscribe<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID).subscribe((c) => {\n if (!this.layers[c.layer]) return;\n this.layers[c.layer]?.getSource()?.clear();\n this.layers[c.layer].getSource()?.addFeatures(c.features);\n });\n }\n\n private observeRemoveLayer() {\n this.postboy.subscribe<RemoveLayerCommand>(RemoveLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n delete this.layers[c.layer.get('name')];\n this.map.removeLayer(c.layer);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessageRegistratorService } from './message-registrator.service';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\n\n@Injectable()\nexport class ServiceCollector {\n constructor(registrator: MessageRegistratorService, management: MapManagementService, state: MapStateService) {}\n}\n","import { Injectable } from '@angular/core';\nimport Map from 'ol/Map';\nimport { MapSettings } from '../models';\nimport View from 'ol/View';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapPlateFactory {\n public build(settings: MapSettings): Map {\n return new Map({\n controls: [],\n view: new View({\n center: settings?.center || [0, 0],\n zoom: settings?.zoom || 4,\n minZoom: settings?.minZoom || 0,\n maxZoom: settings?.maxZoom || 19,\n }),\n layers: [],\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport OSM from 'ol/source/OSM';\nimport { Map } from 'ol';\n\n@Component({\n selector: 'lib-osm-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OsmTileLayerComponent extends DestructibleComponent implements OnInit {\n public layer?: TileLayer<TileSource>;\n\n constructor() {\n super();\n }\n\n private _url: string = '';\n\n @Input() set url(value: string | undefined) {\n if (!value || this._url === value) return;\n this._url = value;\n this.initLayer();\n }\n\n private _map?: Map;\n\n @Input() set map(value: Map | undefined) {\n if (!value || this._map === value) return;\n this._map = value;\n this.initLayer();\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n if (this.layer) {\n this._map?.removeLayer(this.layer);\n }\n // @ts-ignore\n this.layer?.setMap(null);\n }\n\n private initLayer(): void {\n if (!this._url || !this._map) return;\n if (this.layer) this._map.removeLayer(this.layer);\n this.layer = new TileLayer({\n source: new OSM({\n url: this._url,\n }),\n });\n this.layer.set('name', 'osm-tile-layer');\n this._map.addLayer(this.layer);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { MapLyrsLabel, MapSettings } from '../models';\nimport Map from 'ol/Map';\nimport { useGeographic } from 'ol/proj';\nimport { DestructibleComponent } from '../common/destructible.component';\nimport { MessageRegistratorService } from '../services/message-registrator.service';\nimport { MapPostboyService } from '../services/map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapStateService } from '../services/map-state.service';\nimport { MapManagementService } from '../services/map-management.service';\nimport { ServiceCollector } from '../services/service.collector';\nimport { MapPlateFactory } from './map-plate.factory.service';\n\n@Component({\n selector: 'lib-map-plate',\n templateUrl: './map-plate.component.html',\n styleUrls: ['./map-plate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector],\n})\nexport class MapPlateComponent extends DestructibleComponent implements OnInit {\n map!: Map;\n osmUrl = '';\n\n constructor(\n private elementRef: ElementRef,\n private postboy: MapPostboyService,\n private mapFactory: MapPlateFactory,\n registrator: ServiceCollector,\n private detector: ChangeDetectorRef,\n ) {\n super();\n }\n\n _settings: MapSettings = new MapSettings();\n\n @Input() set settings(value: MapSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setOsm();\n }\n\n ngOnInit(): void {\n useGeographic();\n this.map = this.mapFactory.build(this._settings);\n this.map.setTarget(this.elementRef.nativeElement);\n this.detector.detectChanges();\n this.map.once('postrender', () => {\n this.map.updateSize();\n this.postboy.fire(new MapRenderedEvent(this.map));\n });\n this.setOsm();\n }\n\n private setOsm(): void {\n if (!this.map) return;\n this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${\n this._settings.language\n }&x={x}&y={y}&z={z}`;\n this.detector.detectChanges();\n this.map.updateSize();\n }\n}\n","<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n","export class TileLayerSettings {\n maxZoom: number = 19;\n minZoom: number = 0;\n opacity: number = 0.6;\n url: string = '';\n projection: string = 'EPSG:3857';\n\n public static copy(model: TileLayerSettings): TileLayerSettings {\n const result = new TileLayerSettings();\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.projection = model.projection;\n result.opacity = model.opacity;\n result.url = model.url;\n return result;\n }\n\n setUrl(url: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, url });\n }\n\n setMaxZoom(maxZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, minZoom });\n }\n\n setOpacity(opacity: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, opacity });\n }\n\n setProjection(projection: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, projection });\n }\n\n public isSame(model: TileLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.url !== model.url) return false;\n if (this.projection !== model.projection) return false;\n if (this.opacity !== model.opacity) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XYZ } from 'ol/source';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { TileCoord } from 'ol/tilecoord';\nimport { get } from 'ol/proj';\nimport TileLayer from 'ol/layer/Tile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TileLayerFactory {\n public build(settings: TileLayerSettings): TileLayer<XYZ> {\n const source = new XYZ({\n tileSize: 256,\n maxZoom: settings.maxZoom || 14,\n minZoom: settings.minZoom || 1,\n projection: get(settings.projection)!,\n tileUrlFunction: this.getTileFunc(settings),\n crossOrigin: 'Anonymous',\n });\n return new TileLayer({ source, opacity: settings.opacity });\n }\n\n private getTileFunc(settings: TileLayerSettings): (tileCoord: TileCoord) => string {\n return (tileCoord) => {\n const zoom = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2];\n const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);\n const bound = 1 << zoom;\n return settings.url\n .replace('{x}', String(normalizedCoord?.x || x))\n .replace('{z}', String(zoom))\n .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));\n };\n }\n\n private getNormalizedCoord(coord: { x: number; y: number }, zoom: number) {\n const y = coord.y;\n let x = coord.x;\n const tileRange = 1 << zoom;\n if (y < 0 || y >= tileRange) return null;\n if (x < 0 || x >= tileRange) x = ((x % tileRange) + tileRange) % tileRange;\n return { x: x, y: y };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { XYZ } from 'ol/source';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { TileLayerFactory } from './tile-layer.factory';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { FeatureLayerSettings } from '../feature-layer/feature-layer.settings';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { AddTileCommand } from '../../../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';\n\n@Component({\n selector: 'lib-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileLayerComponent extends DestructibleComponent {\n public layer?: TileLayer<XYZ>;\n\n constructor(private postboy: MapPostboyService, private factory: TileLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: TileLayerSettings = new TileLayerSettings();\n\n @Input() set settings(value: TileLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddTileCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveTileCommand(this.layer));\n }\n}\n","import Style, { StyleFunction } from 'ol/style/Style';\nimport { IdGenerator } from '../../../common/id.generator';\n\nexport class FeatureLayerSettings {\n name: string = IdGenerator.get();\n zIndex: number = 1;\n maxZoom: number = 19;\n minZoom: number = 0;\n style?: Style | StyleFunction;\n\n public static copy(model: FeatureLayerSettings): FeatureLayerSettings {\n const result = new FeatureLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.style = model.style;\n return result;\n }\n\n setZIndex(zIndex: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, zIndex });\n }\n\n setName(name: string): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, name });\n }\n\n setMaxZoom(maxZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, minZoom });\n }\n\n setStyle(style: Style | StyleFunction): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, style });\n }\n\n public isSame(model: FeatureLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureLayerFactory {\n public build(settings: FeatureLayerSettings): Layer<VectorSource<any>> {\n const source = new Source({});\n const layer = new Layer({\n source: source,\n maxZoom: settings.maxZoom,\n minZoom: settings.minZoom,\n zIndex: settings.zIndex,\n });\n if (settings.style) layer.setStyle(settings.style);\n layer.set('name', settings.name);\n return layer;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Layer } from 'ol/layer';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { filter, first } from 'rxjs/operators';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { FeatureLayerFactory } from './feature-layer.factory';\n\n@Component({\n selector: 'lib-feature-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureLayerComponent extends DestructibleComponent implements OnInit {\n public layer: Layer<VectorSource<any>> | null = null;\n\n constructor(private postboy: MapPostboyService, private factory: FeatureLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: FeatureLayerSettings = new FeatureLayerSettings();\n\n @Input() set settings(value: FeatureLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddLayerCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveLayerCommand(this.layer));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MarkerModel } from '../../../models/marker-model';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\n\n@Component({\n selector: 'lib-markers',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkersComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _markers: MarkerModel[] = [];\n\n @Input() set markers(value: MarkerModel[]) {\n this._markers = value;\n this.putMarkers();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putMarkers());\n }\n\n private putMarkers(): void {\n if (!this._markers?.length) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._markers.map((m) => m.feature),\n ),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DestructibleComponent } from './common/destructible.component';\nimport { MapPlateComponent } from './map-plate/map-plate.component';\nimport { TileLayerComponent } from './map-plate/layers/tile-layer/tile-layer.component';\nimport { OsmTileLayerComponent } from './map-plate/layers/osm-tile-layer/osm-tile-layer.component';\nimport { FeatureLayerComponent } from './map-plate/layers/feature-layer/feature-layer.component';\nimport { MarkersComponent } from './map-plate/features/markers/markers.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DestructibleComponent,\n MapPlateComponent,\n TileLayerComponent,\n OsmTileLayerComponent,\n FeatureLayerComponent,\n MarkersComponent,\n ],\n exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent],\n})\nexport class MapModule {}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Icon, Stroke } from 'ol/style';\n\nexport class MarkerStyleHelper {\n public static fromSvg(svg: string, size: [number, number] = [30, 30], zIndex = 400): Style {\n let image = new Image();\n image.src = 'data:image/svg+xml,' + escape(svg);\n return new Style({\n image: new Icon({\n img: image,\n imgSize: size,\n }),\n zIndex,\n });\n }\n\n public static circle(radius: number, fill: string, strokeColor: string, strokeWidth = 1): Style {\n return new Style({\n image: new Circle({\n radius,\n fill: new Fill({ color: fill }),\n stroke: new Stroke({ color: strokeColor, width: strokeWidth }),\n }),\n });\n }\n}\n","/*\n * Public API Surface of maps\n */\n\nexport * from './map.module';\nexport * from './models/index';\nexport * from './map-plate/map-plate.component';\nexport * from './services/map-postboy.service';\nexport * from './messages/index';\nexport * from './map-plate/layers/index';\nexport * from './map-plate/features/index';\nexport * from './services/map-postboy.service';\nexport * from './services/message-registrator.service';\nexport * from './helpers/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MapPostboyService","i1.MessageRegistratorService","i2.MapManagementService","i3.MapStateService","i2.MapPlateFactory","i3.ServiceCollector","i5.OsmTileLayerComponent","i2.TileLayerFactory","Source","Layer","i2.FeatureLayerFactory"],"mappings":"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"}