@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.
- package/dist/esm2020/map/common/destructible.component.mjs +4 -4
- package/dist/esm2020/map/map-plate/features/markers/markers.component.mjs +4 -4
- package/dist/esm2020/map/map-plate/layers/feature-layer/feature-layer.component.mjs +4 -4
- package/dist/esm2020/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
- package/dist/esm2020/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +4 -4
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.component.mjs +4 -4
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +4 -4
- package/dist/esm2020/map/map-plate/map-plate.component.mjs +4 -4
- package/dist/esm2020/map/map-plate/map-plate.factory.service.mjs +4 -4
- package/dist/esm2020/map/map.module.mjs +5 -5
- package/dist/esm2020/map/services/map-management.service.mjs +4 -4
- package/dist/esm2020/map/services/map-postboy.service.mjs +4 -4
- package/dist/esm2020/map/services/map-state.service.mjs +4 -4
- package/dist/esm2020/map/services/message-registrator.service.mjs +4 -4
- package/dist/esm2020/map/services/service.collector.mjs +4 -4
- package/dist/esm2020/src/map/common/destructible.component.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/features/markers/markers.component.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/map-plate.component.mjs +4 -4
- package/dist/esm2020/src/map/map-plate/map-plate.factory.service.mjs +4 -4
- package/dist/esm2020/src/map/map.module.mjs +5 -5
- package/dist/esm2020/src/map/services/map-management.service.mjs +4 -4
- package/dist/esm2020/src/map/services/map-postboy.service.mjs +4 -4
- package/dist/esm2020/src/map/services/map-state.service.mjs +4 -4
- package/dist/esm2020/src/map/services/message-registrator.service.mjs +4 -4
- package/dist/esm2020/src/map/services/service.collector.mjs +4 -4
- package/dist/fesm2015/maps-components-src-map.mjs +46 -46
- package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2015/maps-components.mjs +46 -46
- package/dist/fesm2015/maps-components.mjs.map +1 -1
- package/dist/fesm2020/maps-components-src-map.mjs +46 -46
- package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2020/maps-components.mjs +46 -46
- package/dist/fesm2020/maps-components.mjs.map +1 -1
- package/dist/map/common/destructible.component.d.ts +1 -1
- package/dist/map/map-plate/features/markers/markers.component.d.ts +1 -1
- package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
- package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
- package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
- package/dist/map/map-plate/map-plate.component.d.ts +1 -1
- package/dist/package.json +2 -2
- package/dist/src/map/common/destructible.component.d.ts +1 -1
- package/dist/src/map/map-plate/features/markers/markers.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
- package/dist/src/map/map-plate/map-plate.component.d.ts +1 -1
- 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: "
|
|
30
|
-
DestructibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
244
|
-
MapPostboyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
260
|
-
MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
272
|
-
MapStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
334
|
-
MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
335
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
343
|
-
ServiceCollector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
344
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
363
|
-
MapPlateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
412
|
-
OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
458
|
-
MapPlateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
459
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
550
|
-
TileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
551
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
589
|
-
TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
590
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
659
|
-
FeatureLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
660
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
699
|
-
FeatureLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
732
|
-
MarkersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
733
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
745
|
-
MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
752
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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.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/public-api.ts","../../projects/maps-components/src/maps-components.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 * Public API Surface of maps-components\n */\n\nexport * from './map/public-api';\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.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/public-api.ts","../../projects/maps-components/src/maps-components.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 * Public API Surface of maps-components\n */\n\nexport * from './map/public-api';\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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"}
|