@artstesh/maps 5.0.2 → 5.0.4

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 (48) hide show
  1. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +1 -1
  2. package/dist/esm2022/map/map-plate/map-plate.component.mjs +13 -7
  3. package/dist/esm2022/map/messages/events/map-click.event.mjs +15 -0
  4. package/dist/esm2022/map/messages/index.mjs +2 -1
  5. package/dist/esm2022/map/models/marker-model.mjs +5 -8
  6. package/dist/esm2022/map/services/map-click.service.mjs +51 -0
  7. package/dist/esm2022/map/services/map-management.service.mjs +3 -1
  8. package/dist/esm2022/map/services/map-postboy.service.mjs +5 -17
  9. package/dist/esm2022/map/services/map-state.service.mjs +4 -2
  10. package/dist/esm2022/map/services/message-registrator.service.mjs +21 -12
  11. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +1 -1
  12. package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +13 -7
  13. package/dist/esm2022/src/map/messages/events/map-click.event.mjs +15 -0
  14. package/dist/esm2022/src/map/messages/index.mjs +2 -1
  15. package/dist/esm2022/src/map/models/marker-model.mjs +5 -8
  16. package/dist/esm2022/src/map/services/map-click.service.mjs +51 -0
  17. package/dist/esm2022/src/map/services/map-management.service.mjs +3 -1
  18. package/dist/esm2022/src/map/services/map-postboy.service.mjs +5 -17
  19. package/dist/esm2022/src/map/services/map-state.service.mjs +4 -2
  20. package/dist/esm2022/src/map/services/message-registrator.service.mjs +21 -12
  21. package/dist/fesm2022/maps-components-src-map.mjs +116 -65
  22. package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
  23. package/dist/fesm2022/maps-components.mjs +116 -65
  24. package/dist/fesm2022/maps-components.mjs.map +1 -1
  25. package/dist/map/map-plate/map-plate.component.d.ts +4 -2
  26. package/dist/map/messages/events/map-click.event.d.ts +12 -0
  27. package/dist/map/messages/index.d.ts +1 -0
  28. package/dist/map/models/marker-model.d.ts +2 -2
  29. package/dist/map/services/map-click.service.d.ts +16 -0
  30. package/dist/map/services/map-management.service.d.ts +3 -1
  31. package/dist/map/services/map-postboy.service.d.ts +4 -7
  32. package/dist/map/services/map-state.service.d.ts +3 -1
  33. package/dist/map/services/message-registrator.service.d.ts +7 -2
  34. package/dist/package.json +2 -1
  35. package/dist/src/map/map-plate/map-plate.component.d.ts +4 -2
  36. package/dist/src/map/messages/events/map-click.event.d.ts +12 -0
  37. package/dist/src/map/messages/index.d.ts +1 -0
  38. package/dist/src/map/models/marker-model.d.ts +2 -2
  39. package/dist/src/map/services/map-click.service.d.ts +16 -0
  40. package/dist/src/map/services/map-management.service.d.ts +3 -1
  41. package/dist/src/map/services/map-postboy.service.d.ts +4 -7
  42. package/dist/src/map/services/map-state.service.d.ts +3 -1
  43. package/dist/src/map/services/message-registrator.service.d.ts +7 -2
  44. package/package.json +3 -2
  45. package/dist/esm2022/map/services/service.collector.mjs +0 -14
  46. package/dist/esm2022/src/map/services/service.collector.mjs +0 -14
  47. package/dist/map/services/service.collector.d.ts +0 -9
  48. package/dist/src/map/services/service.collector.d.ts +0 -9
@@ -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/events/map-click.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/map-management.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-click.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.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 public readonly id: string | number;\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n this.id = id == null ? IdGenerator.get() : id;\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) feature.set('info', this.info);\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';\n\nexport class MapClickEvent extends GenericMessage {\n public static readonly ID = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';\n\n constructor(public coordinates: number[], public entities: { [layer: string]: (string | number)[] }) {\n super();\n }\n\n public get id(): string {\n return MapClickEvent.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 { PostboyService } from '@artstesh/postboy';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class MapPostboyService extends PostboyService {\n public observe = <T>(id: string): Observable<T> => this.subscribe<T>(id);\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';\nimport { IPostboyDependingService } from '@artstesh/postboy';\n\n@Injectable()\nexport class MapManagementService implements IPostboyDependingService {\n private map?: Map;\n private layers: { [name: string]: Layer<VectorSource<any>> } = {};\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\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 { Map } from 'ol';\nimport { MapRenderedEvent } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\nimport { IPostboyDependingService } from '@artstesh/postboy';\n\n@Injectable()\nexport class MapStateService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.postboy.subscribe<Map>(MapRenderedEvent.ID).subscribe((m) => (this.map = m));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Feature, Map, MapBrowserEvent } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { Geometry } from 'ol/geom';\n\n@Injectable()\nexport class MapClickService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n this.map?.on('singleclick', (e) => {\n this.postboy.fire(this.onClick(e));\n });\n });\n }\n\n onClick(ev: MapBrowserEvent<UIEvent>): MapClickEvent {\n const model: MapClickEvent = new MapClickEvent(ev.coordinate, {});\n this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {\n this.getFeatureCollectionWithInner([f as Feature<Geometry>])\n .filter((f) => !!f.getId())\n .forEach((fs: Feature<Geometry>) => {\n let layerName = l.get('name');\n if (!model.entities[layerName]) model.entities[layerName] = [];\n model.entities[layerName].push(f.getId()!);\n });\n });\n return model;\n }\n\n private getFeatureCollectionWithInner(features: Feature<Geometry>[]): Feature<Geometry>[] {\n const result: Feature<Geometry>[] = [];\n features?.forEach((f) => {\n const innerFeatures = f.get('features') as Feature<Geometry>[];\n innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);\n });\n return result;\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';\nimport { PostboyAbstractRegistrator } from '@artstesh/postboy';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\nimport { MapClickService } from './map-click.service';\nimport { MapClickEvent } from '../messages/events/map-click.event';\n\n@Injectable()\nexport class MessageRegistratorService extends PostboyAbstractRegistrator {\n constructor(\n service: MapPostboyService,\n management: MapManagementService,\n state: MapStateService,\n interaction: MapClickService,\n ) {\n super(service);\n this.registerServices([management, state, interaction]);\n }\n protected _up(): void {\n this.registerReplay<MapRenderedEvent>(MapRenderedEvent.ID);\n this.registerReplay<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID);\n this.registerSubject<AddLayerCommand>(AddLayerCommand.ID);\n this.registerSubject<RemoveLayerCommand>(RemoveLayerCommand.ID);\n this.registerSubject<AddTileCommand>(AddTileCommand.ID);\n this.registerSubject<RemoveTileCommand>(RemoveTileCommand.ID);\n this.registerSubject<MapClickEvent>(MapClickEvent.ID);\n }\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 { MapPlateFactory } from './map-plate.factory.service';\nimport { MapClickService } from '../services/map-click.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, MapClickService],\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 private registrator: MessageRegistratorService,\n private detector: ChangeDetectorRef,\n ) {\n super();\n registrator.up();\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 onDestroy = () => {\n this.registrator.down();\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 { 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","i2.MapManagementService","i3.MapStateService","i4.MapClickService","i2.MapPlateFactory","i3.MessageRegistratorService","i5.OsmTileLayerComponent","i2.TileLayerFactory","Source","Layer","i2.FeatureLayerFactory"],"mappings":"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"}
@@ -5,7 +5,8 @@ import { CommonModule } from '@angular/common';
5
5
  import { Feature } from 'ol';
6
6
  import { Point } from 'ol/geom';
7
7
  import { useGeographic, get } from 'ol/proj';
8
- import { Subject, ReplaySubject } from 'rxjs';
8
+ import { Subject } from 'rxjs';
9
+ import { PostboyService, PostboyAbstractRegistrator } from '@artstesh/postboy';
9
10
  import Map from 'ol/Map';
10
11
  import View from 'ol/View';
11
12
  import TileLayer from 'ol/layer/Tile';
@@ -118,15 +119,13 @@ class IdGenerator {
118
119
  class MarkerModel {
119
120
  lat;
120
121
  lng;
121
- id;
122
122
  info;
123
+ id;
123
124
  constructor(lat, lng, id, info) {
124
125
  this.lat = lat;
125
126
  this.lng = lng;
126
- this.id = id;
127
127
  this.info = info;
128
- if (id == null)
129
- this.id = IdGenerator.get();
128
+ this.id = id == null ? IdGenerator.get() : id;
130
129
  this._feature = this.getFeature();
131
130
  }
132
131
  _feature;
@@ -136,9 +135,8 @@ class MarkerModel {
136
135
  getFeature() {
137
136
  const feature = new Feature(new Point([this.lng, this.lat]));
138
137
  feature.setId(this.id);
139
- if (this.info) {
140
- Object.keys(this.info).forEach((k) => feature.set(k, this.info[k]));
141
- }
138
+ if (this.info)
139
+ feature.set('info', this.info);
142
140
  return feature;
143
141
  }
144
142
  }
@@ -166,6 +164,20 @@ class MapRenderedEvent extends GenericMessage {
166
164
  }
167
165
  }
168
166
 
167
+ class MapClickEvent extends GenericMessage {
168
+ coordinates;
169
+ entities;
170
+ static ID = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';
171
+ constructor(coordinates, entities) {
172
+ super();
173
+ this.coordinates = coordinates;
174
+ this.entities = entities;
175
+ }
176
+ get id() {
177
+ return MapClickEvent.ID;
178
+ }
179
+ }
180
+
169
181
  class AddLayerCommand extends GenericMessage {
170
182
  layer;
171
183
  static ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';
@@ -228,64 +240,23 @@ class RemoveTileCommand extends GenericMessage {
228
240
  }
229
241
  }
230
242
 
231
- class MapPostboyService {
232
- applications = {};
233
- register(id, sub) {
234
- this.applications[id] = sub;
235
- }
236
- subscribe(id) {
237
- if (!this.applications[id])
238
- throw new Error(`There is no event with id ${id}`);
239
- return this.applications[id].asObservable();
240
- }
241
- fire(message) {
242
- if (!this.applications[message.id])
243
- throw new Error(`There is no event with id ${message.id}`);
244
- this.applications[message.id].next(message);
245
- }
246
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
243
+ class MapPostboyService extends PostboyService {
244
+ observe = (id) => this.subscribe(id);
245
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
247
246
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService });
248
247
  }
249
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, decorators: [{
250
249
  type: Injectable
251
250
  }] });
252
251
 
253
- class MessageRegistratorService {
254
- constructor(service) {
255
- service.register(MapRenderedEvent.ID, new ReplaySubject(1));
256
- service.register(AddLayerCommand.ID, new Subject());
257
- service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject(1));
258
- service.register(RemoveLayerCommand.ID, new Subject());
259
- service.register(AddTileCommand.ID, new Subject());
260
- service.register(RemoveTileCommand.ID, new Subject());
261
- }
262
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
263
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService });
264
- }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, decorators: [{
266
- type: Injectable
267
- }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
268
-
269
- class MapStateService {
270
- postboy;
271
- map;
272
- constructor(postboy) {
273
- this.postboy = postboy;
274
- postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => (this.map = m));
275
- }
276
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
277
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService });
278
- }
279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, decorators: [{
280
- type: Injectable
281
- }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
282
-
283
252
  class MapManagementService {
284
253
  postboy;
285
254
  map;
286
255
  layers = {};
287
256
  constructor(postboy) {
288
257
  this.postboy = postboy;
258
+ }
259
+ up() {
289
260
  this.observeMapRender();
290
261
  this.observeAddLayer();
291
262
  this.observeRemoveLayer();
@@ -343,14 +314,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
343
314
  type: Injectable
344
315
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
345
316
 
346
- class ServiceCollector {
347
- constructor(registrator, management, state) { }
348
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector, deps: [{ token: MessageRegistratorService }, { token: MapManagementService }, { token: MapStateService }], target: i0.ɵɵFactoryTarget.Injectable });
349
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector });
317
+ class MapStateService {
318
+ postboy;
319
+ map;
320
+ constructor(postboy) {
321
+ this.postboy = postboy;
322
+ }
323
+ up() {
324
+ this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => (this.map = m));
325
+ }
326
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
327
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService });
350
328
  }
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector, decorators: [{
329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, decorators: [{
352
330
  type: Injectable
353
- }], ctorParameters: function () { return [{ type: MessageRegistratorService }, { type: MapManagementService }, { type: MapStateService }]; } });
331
+ }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
332
+
333
+ class MapClickService {
334
+ postboy;
335
+ map;
336
+ constructor(postboy) {
337
+ this.postboy = postboy;
338
+ }
339
+ up() {
340
+ this.observeMapRender();
341
+ }
342
+ observeMapRender() {
343
+ this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
344
+ this.map = m.map;
345
+ this.map?.on('singleclick', (e) => {
346
+ this.postboy.fire(this.onClick(e));
347
+ });
348
+ });
349
+ }
350
+ onClick(ev) {
351
+ const model = new MapClickEvent(ev.coordinate, {});
352
+ this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {
353
+ this.getFeatureCollectionWithInner([f])
354
+ .filter((f) => !!f.getId())
355
+ .forEach((fs) => {
356
+ let layerName = l.get('name');
357
+ if (!model.entities[layerName])
358
+ model.entities[layerName] = [];
359
+ model.entities[layerName].push(f.getId());
360
+ });
361
+ });
362
+ return model;
363
+ }
364
+ getFeatureCollectionWithInner(features) {
365
+ const result = [];
366
+ features?.forEach((f) => {
367
+ const innerFeatures = f.get('features');
368
+ innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);
369
+ });
370
+ return result;
371
+ }
372
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapClickService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
373
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapClickService });
374
+ }
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapClickService, decorators: [{
376
+ type: Injectable
377
+ }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
378
+
379
+ class MessageRegistratorService extends PostboyAbstractRegistrator {
380
+ constructor(service, management, state, interaction) {
381
+ super(service);
382
+ this.registerServices([management, state, interaction]);
383
+ }
384
+ _up() {
385
+ this.registerReplay(MapRenderedEvent.ID);
386
+ this.registerReplay(PlaceLayerFeaturesCommand.ID);
387
+ this.registerSubject(AddLayerCommand.ID);
388
+ this.registerSubject(RemoveLayerCommand.ID);
389
+ this.registerSubject(AddTileCommand.ID);
390
+ this.registerSubject(RemoveTileCommand.ID);
391
+ this.registerSubject(MapClickEvent.ID);
392
+ }
393
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapClickService }], target: i0.ɵɵFactoryTarget.Injectable });
394
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService });
395
+ }
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, decorators: [{
397
+ type: Injectable
398
+ }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapClickService }]; } });
354
399
 
355
400
  class MapPlateFactory {
356
401
  build(settings) {
@@ -431,6 +476,7 @@ class MapPlateComponent extends DestructibleComponent {
431
476
  elementRef;
432
477
  postboy;
433
478
  mapFactory;
479
+ registrator;
434
480
  detector;
435
481
  map;
436
482
  osmUrl = '';
@@ -439,7 +485,9 @@ class MapPlateComponent extends DestructibleComponent {
439
485
  this.elementRef = elementRef;
440
486
  this.postboy = postboy;
441
487
  this.mapFactory = mapFactory;
488
+ this.registrator = registrator;
442
489
  this.detector = detector;
490
+ registrator.up();
443
491
  }
444
492
  _settings = new MapSettings();
445
493
  set settings(value) {
@@ -466,13 +514,16 @@ class MapPlateComponent extends DestructibleComponent {
466
514
  this.detector.detectChanges();
467
515
  this.map.updateSize();
468
516
  }
469
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: ServiceCollector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
470
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 });
517
+ onDestroy = () => {
518
+ this.registrator.down();
519
+ };
520
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: MessageRegistratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
521
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, MapClickService], 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 });
471
522
  }
472
523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, decorators: [{
473
524
  type: Component,
474
- 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"] }]
475
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: ServiceCollector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
525
+ args: [{ selector: 'lib-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageRegistratorService, MapStateService, MapManagementService, MapClickService], 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"] }]
526
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: MessageRegistratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
476
527
  type: Input
477
528
  }] } });
478
529
 
@@ -815,5 +866,5 @@ class MarkerStyleHelper {
815
866
  * Generated bundle index. Do not edit.
816
867
  */
817
868
 
818
- export { CallbackMessage, FeatureLayerComponent, FeatureLayerSettings, GenericMessage, MapLyrs, MapLyrsLabel, MapModule, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, OsmTileLayerComponent, TileLayerComponent, TileLayerSettings };
869
+ export { CallbackMessage, FeatureLayerComponent, FeatureLayerSettings, GenericMessage, MapClickEvent, MapLyrs, MapLyrsLabel, MapModule, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, OsmTileLayerComponent, TileLayerComponent, TileLayerSettings };
819
870
  //# sourceMappingURL=maps-components.mjs.map