ngx-open-map-wrapper/fesm2022/svrnty-ngx-open-map-wrapper.mjs.map

1 line
13 KiB
Plaintext

{"version":3,"file":"svrnty-ngx-open-map-wrapper.mjs","sources":["../../../projects/ngx-open-map-wrapper/src/lib/adapters/map-adapter.interface.ts","../../../projects/ngx-open-map-wrapper/src/lib/adapters/libre-adapter.ts","../../../projects/ngx-open-map-wrapper/src/lib/adapters/leaflet-adapter.ts","../../../projects/ngx-open-map-wrapper/src/lib/adapters/map-facade.ts","../../../projects/ngx-open-map-wrapper/src/lib/directives/webgl-detection.directive.ts","../../../projects/ngx-open-map-wrapper/src/lib/components/open-map/open-map.component.ts","../../../projects/ngx-open-map-wrapper/src/lib/components/open-map/open-map.component.html","../../../projects/ngx-open-map-wrapper/src/public-api.ts","../../../projects/ngx-open-map-wrapper/src/svrnty-ngx-open-map-wrapper.ts"],"sourcesContent":["export interface MapOptions {\n center: LatLng;\n zoom: number;\n styleUrl: string;\n tileUrl: string;\n}\n\nexport type LatLng = [number, number];\n\nexport function getLngLat(latLng: LatLng): [number, number] {\n return [latLng[1], latLng[0]];\n}\n\nexport interface IMapAdapter {\n init(container: HTMLElement, options: MapOptions): void;\n setCenter(latLng: LatLng): void;\n setZoom(zoom: number): void;\n addMarker(latLng: LatLng, options?: { color?: string }): void;\n destroy(): void;\n}\n","import { Map, Marker, NavigationControl } from 'maplibre-gl';\nimport {getLngLat, IMapAdapter, LatLng, MapOptions} from './map-adapter.interface';\n\nexport class LibreAdapter implements IMapAdapter {\n private map!: Map;\n\n init(container: HTMLElement, options: MapOptions): void {\n this.map = new Map({\n container,\n style: options.styleUrl!,\n center: getLngLat(options.center),\n zoom: options.zoom,\n });\n\n this.map.addControl(new NavigationControl(), 'top-right');\n }\n\n setCenter(latLng: LatLng): void {\n this.map.setCenter(getLngLat(latLng));\n }\n\n setZoom(zoom: number): void {\n this.map.setZoom(zoom);\n }\n\n addMarker(latLng: LatLng, options?: { color?: string }): void {\n new Marker({ color: options?.color || 'red' })\n .setLngLat(getLngLat(latLng))\n .addTo(this.map);\n }\n\n destroy(): void {\n this.map.remove();\n }\n}\n","import {\n Map,\n TileLayer,\n Marker,\n} from 'leaflet';\n\nimport {\n IMapAdapter,\n LatLng,\n MapOptions,\n} from './map-adapter.interface';\n\nexport class LeafletAdapter implements IMapAdapter {\n private map!: Map;\n\n init(container: HTMLElement, options: MapOptions): void {\n this.map = new Map(container).setView(options.center, options.zoom);\n\n new TileLayer(options.tileUrl, {\n attribution: '&copy; OpenStreetMap contributors',\n }).addTo(this.map);\n }\n\n setCenter(latLng: LatLng): void {\n this.map.setView(latLng, this.map.getZoom());\n }\n\n setZoom(zoom: number): void {\n this.map.setZoom(zoom);\n }\n\n addMarker(latLng: LatLng, options?: { color?: string }): void {\n const marker = new Marker(latLng);\n marker.addTo(this.map);\n }\n\n destroy(): void {\n this.map.remove();\n }\n}\n","import { IMapAdapter, MapOptions, LatLng } from './map-adapter.interface';\nimport { LibreAdapter } from './libre-adapter';\nimport { LeafletAdapter } from './leaflet-adapter';\n\nexport class MapFacade implements IMapAdapter {\n private readonly adapter: IMapAdapter;\n private readonly leafletZoomOffset = 1;\n\n constructor(forceRaster: boolean, webglAvailable: boolean) {\n if (forceRaster || !webglAvailable) {\n this.adapter = new LeafletAdapter();\n } else {\n this.adapter = new LibreAdapter();\n }\n }\n\n init(container: HTMLElement, options: MapOptions): void {\n if (this.adapter instanceof LeafletAdapter)\n options.zoom += this.leafletZoomOffset;\n this.adapter.init(container, options);\n }\n\n setCenter(latLng: LatLng): void {\n this.adapter.setCenter(latLng);\n }\n\n setZoom(zoom: number): void {\n if (this.adapter instanceof LeafletAdapter)\n zoom += this.leafletZoomOffset;\n this.adapter.setZoom(zoom);\n }\n\n addMarker(latLng: LatLng, options?: { color?: string }): void {\n this.adapter.addMarker(latLng, options);\n }\n\n destroy(): void {\n this.adapter.destroy();\n }\n}\n","import {\n Directive,\n inject,\n OnInit, output,\n PLATFORM_ID\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Directive({\n selector: '[webglDetection]',\n standalone: true\n})\nexport class WebglDetectionDirective implements OnInit {\n private readonly platformId = inject(PLATFORM_ID);\n\n webglSupport = output<boolean>();\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platformId))\n return;\n\n const supported = this.checkWebGLSupport();\n this.webglSupport.emit(supported);\n }\n\n private checkWebGLSupport(): boolean {\n let canvas: HTMLCanvasElement | undefined = undefined;\n try {\n canvas = document.createElement('canvas');\n\n const gl = (\n canvas.getContext('webgl') ||\n canvas.getContext('experimental-webgl')\n ) as WebGLRenderingContext | null;\n\n const supported =\n !!window.WebGLRenderingContext &&\n !!(gl);\n\n return supported;\n } catch {\n return false;\n }\n finally {\n canvas?.remove();\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n effect,\n ElementRef,\n inject, Injector,\n input,\n output,\n PLATFORM_ID, runInInjectionContext,\n ViewChild\n} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\nimport {MapOptions} from '../../adapters/map-adapter.interface';\nimport {MapFacade} from '../../adapters/map-facade';\nimport {WebglDetectionDirective} from '../../directives/webgl-detection.directive';\n\nexport interface OpenMapOptions extends MapOptions {\n forceRaster: boolean;\n}\n\n@Component({\n selector: 'open-map',\n imports: [\n WebglDetectionDirective\n ],\n templateUrl: './open-map.component.html',\n styleUrl: './open-map.component.css',\n standalone: true,\n})\nexport class OpenMapComponent implements AfterViewInit {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly injector = inject(Injector);\n\n webglSupported?: boolean;\n map?: MapFacade;\n\n @ViewChild('mapContainer', { static: true }) mapContainer!: ElementRef<HTMLDivElement>;\n\n options = input<OpenMapOptions>({\n center: [50.426606229502525, 30.56308375468811],\n zoom: 6,\n styleUrl: 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json',\n tileUrl: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n forceRaster: false,\n });\n\n mapReady = output<MapFacade>();\n\n ngAfterViewInit(): void {\n if (false === isPlatformBrowser(this.platformId))\n return;\n\n runInInjectionContext(this.injector, () => {\n effect(() => {\n if (undefined === this.webglSupported)\n return;\n\n if (!this.map)\n this.initializeMap();\n });\n });\n }\n\n webglDetection(supported: boolean): void {\n this.webglSupported = supported;\n if (undefined === this.map)\n this.initializeMap();\n }\n\n private initializeMap(): void {\n const options = this.options();\n this.map = new MapFacade(options.forceRaster, this.webglSupported!);\n this.map.init(this.mapContainer.nativeElement, options);\n this.mapReady.emit(this.map);\n }\n}\n","<div #mapContainer class=\"map-container\" webglDetection (webglSupport)=\"webglDetection($event)\">\n\n</div>\n","/*\n * Public API Surface of ngx-open-open-map-wrapper\n */\n\n// Interfaces & types\nexport * from './lib/adapters/map-adapter.interface';\nexport * from './lib/adapters/map-facade';\n\n// Angular components & directives\nexport * from './lib/components/open-map/open-map.component';\nexport * from './lib/directives/webgl-detection.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Map","Marker"],"mappings":"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"}