{"version":3,"file":"ngx-mapbox-gl-angular-19.mjs","sources":["../../../../libs/ngx-mapbox-gl/src/lib/map/map.service.ts","../../../../libs/ngx-mapbox-gl/src/lib/control/control.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/control/attribution-control.directive.ts","../../../../libs/ngx-mapbox-gl/src/lib/control/fullscreen-control.directive.ts","../../../../libs/ngx-mapbox-gl/src/lib/control/geolocate-control.directive.ts","../../../../libs/ngx-mapbox-gl/src/lib/control/navigation-control.directive.ts","../../../../libs/ngx-mapbox-gl/src/lib/control/scale-control.directive.ts","../../../../libs/ngx-mapbox-gl/src/lib/utils.ts","../../../../libs/ngx-mapbox-gl/src/lib/layer/layer.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/geojson/geojson-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/geojson/feature.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/draggable/draggable.directive.ts","../../../../libs/ngx-mapbox-gl/src/lib/image/image.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/map/map.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/marker/marker.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/markers-for-clusters/markers-for-clusters.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/popup/popup.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/canvas-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/image-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/raster-dem-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/raster-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/vector-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/source/video-source.component.ts","../../../../libs/ngx-mapbox-gl/src/lib/ngx-mapbox-gl.module.ts","../../../../libs/ngx-mapbox-gl/src/index.ts","../../../../libs/ngx-mapbox-gl/src/ngx-mapbox-gl-angular-19.ts"],"sourcesContent":["import {\n  EventEmitter,\n  Inject,\n  Injectable,\n  InjectionToken,\n  NgZone,\n  Optional,\n} from '@angular/core';\nimport * as MapboxGl from 'mapbox-gl';\nimport { AsyncSubject, Observable, Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport {\n  NgxMapboxLayerEvents,\n  NgxMapEvent,\n  MapImageData,\n  MapImageOptions,\n} from './map.types';\nimport { LayerSpecification } from 'mapbox-gl';\n\nexport const MAPBOX_API_KEY = new InjectionToken('MapboxApiKey');\n\nexport interface SetupMap {\n  accessToken?: string;\n  customMapboxApiUrl?: string;\n  mapOptions: Omit<MapboxGl.MapOptions, 'bearing' | 'pitch' | 'zoom' | 'accessToken'> & {\n    bearing?: [number];\n    pitch?: [number];\n    zoom?: [number];\n    accessToken?: [string];\n  };\n  mapEvents: NgxMapEvent;\n}\n\nexport interface SetupLayer {\n  layerOptions: MapboxGl.Layer;\n  layerEvents: NgxMapboxLayerEvents;\n}\n\nexport interface SetupPopup {\n  popupOptions: MapboxGl.PopupOptions;\n  popupEvents: {\n    open: EventEmitter<void>;\n    close: EventEmitter<void>;\n    popupOpen: EventEmitter<void>;\n    popupClose: EventEmitter<void>;\n  };\n}\n\nexport interface SetupMarker {\n  markersOptions: {\n    pitchAlignment?: MapboxGl.MarkerOptions['pitchAlignment'];\n    rotationAlignment?: MapboxGl.MarkerOptions['rotationAlignment'];\n    offset?: MapboxGl.MarkerOptions['offset'];\n    anchor?: MapboxGl.MarkerOptions['anchor'];\n    draggable?: MapboxGl.MarkerOptions['draggable'];\n    element: HTMLElement;\n    feature?: GeoJSON.Feature<GeoJSON.Point>;\n    lngLat?: MapboxGl.LngLatLike;\n    clickTolerance?: MapboxGl.MarkerOptions['clickTolerance'];\n  };\n  markersEvents: {\n    markerDragStart: EventEmitter<MapboxGl.Marker>;\n    markerDrag: EventEmitter<MapboxGl.Marker>;\n    markerDragEnd: EventEmitter<MapboxGl.Marker>;\n    dragStart: EventEmitter<MapboxGl.Marker>;\n    drag: EventEmitter<MapboxGl.Marker>;\n    dragEnd: EventEmitter<MapboxGl.Marker>;\n  };\n}\n\nexport type MovingOptions = MapboxGl.EasingOptions\n\n@Injectable()\nexport class MapService {\n  mapInstance: MapboxGl.Map;\n  mapCreated$: Observable<void>;\n  mapLoaded$: Observable<void>;\n  mapEvents: NgxMapEvent;\n\n  private mapCreated = new AsyncSubject<void>();\n  private mapLoaded = new AsyncSubject<void>();\n  private markersToRemove: MapboxGl.Marker[] = [];\n  private popupsToRemove: MapboxGl.Popup[] = [];\n  private imageIdsToRemove: string[] = [];\n  private subscription = new Subscription();\n\n  constructor(\n    private zone: NgZone,\n    @Optional()\n    @Inject(MAPBOX_API_KEY)\n    private readonly MAPBOX_API_KEY: string | null\n  ) {\n    this.mapCreated$ = this.mapCreated.asObservable();\n    this.mapLoaded$ = this.mapLoaded.asObservable();\n  }\n\n  setup(options: SetupMap) {\n    // Need onStable to wait for a potential @angular/route transition to end\n    this.zone.onStable.pipe(first()).subscribe(() => {\n      // Workaround rollup issue\n      // this.assign(\n      //   MapboxGl,\n      //   'accessToken',\n      //   options.accessToken || this.MAPBOX_API_KEY\n      // );\n      if (options.customMapboxApiUrl) {\n        MapboxGl.default.baseApiUrl = options.customMapboxApiUrl;\n      }\n      this.createMap({\n        ...(options.mapOptions as MapboxGl.MapOptions),\n        accessToken: options.accessToken || this.MAPBOX_API_KEY || '',\n      });\n      this.hookEvents(options.mapEvents);\n      this.mapEvents = options.mapEvents;\n      this.mapCreated.next(undefined);\n      this.mapCreated.complete();\n      // Intentionally emit mapCreate after internal mapCreated event\n      if (options.mapEvents.mapCreate.observed) {\n        this.zone.run(() => {\n          options.mapEvents.mapCreate.emit(this.mapInstance);\n        });\n      }\n    });\n  }\n\n  destroyMap() {\n    if (this.mapInstance) {\n      this.subscription.unsubscribe();\n      this.mapInstance.remove();\n    }\n  }\n\n  updateProjection(projection: MapboxGl.MapboxOptions['projection']) {\n    return this.zone.runOutsideAngular(() => {\n      (this.mapInstance as any).setProjection(projection);\n    });\n  }\n\n  updateMinZoom(minZoom: number) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setMinZoom(minZoom);\n    });\n  }\n\n  updateMaxZoom(maxZoom: number) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setMaxZoom(maxZoom);\n    });\n  }\n\n  updateMinPitch(minPitch: number) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setMinPitch(minPitch);\n    });\n  }\n\n  updateMaxPitch(maxPitch: number) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setMaxPitch(maxPitch);\n    });\n  }\n\n  updateRenderWorldCopies(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setRenderWorldCopies(status);\n    });\n  }\n\n  updateScrollZoom(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.scrollZoom.enable()\n        : this.mapInstance.scrollZoom.disable();\n    });\n  }\n\n  updateDragRotate(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.dragRotate.enable()\n        : this.mapInstance.dragRotate.disable();\n    });\n  }\n\n  updateTouchPitch(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.touchPitch.enable()\n        : this.mapInstance.touchPitch.disable();\n    });\n  }\n\n  updateTouchZoomRotate(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.touchZoomRotate.enable()\n        : this.mapInstance.touchZoomRotate.disable();\n    });\n  }\n\n  updateDoubleClickZoom(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.doubleClickZoom.enable()\n        : this.mapInstance.doubleClickZoom.disable();\n    });\n  }\n\n  updateKeyboard(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.keyboard.enable()\n        : this.mapInstance.keyboard.disable();\n    });\n  }\n\n  updateDragPan(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.dragPan.enable()\n        : this.mapInstance.dragPan.disable();\n    });\n  }\n\n  updateBoxZoom(status: boolean) {\n    return this.zone.runOutsideAngular(() => {\n      status\n        ? this.mapInstance.boxZoom.enable()\n        : this.mapInstance.boxZoom.disable();\n    });\n  }\n\n  updateStyle(style: MapboxGl.StyleSpecification) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setStyle(style);\n    });\n  }\n\n  updateMaxBounds(maxBounds: MapboxGl.LngLatBoundsLike) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setMaxBounds(maxBounds);\n    });\n  }\n\n  changeCanvasCursor(cursor: string) {\n    const canvas = this.mapInstance.getCanvasContainer();\n    canvas.style.cursor = cursor;\n  }\n\n  queryRenderedFeatures(\n    pointOrBox: MapboxGl.PointLike | [MapboxGl.PointLike, MapboxGl.PointLike],\n    parameters?: { layers?: string[]; filter?: any[] }\n  ): GeoJSON.Feature<GeoJSON.GeometryObject>[] {\n    return this.mapInstance.queryRenderedFeatures(pointOrBox, parameters);\n  }\n\n  panTo(center: MapboxGl.LngLatLike, options?: MapboxGl.AnimationOptions) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.panTo(center, options);\n    });\n  }\n\n  move(\n    movingMethod: 'jumpTo' | 'easeTo' | 'flyTo',\n    movingOptions?: MovingOptions,\n    zoom?: number,\n    center?: MapboxGl.LngLatLike,\n    bearing?: number,\n    pitch?: number\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      (this.mapInstance[movingMethod] as any)({\n        ...movingOptions,\n        zoom: zoom != null ? zoom : this.mapInstance.getZoom(),\n        center: center != null ? center : this.mapInstance.getCenter(),\n        bearing: bearing != null ? bearing : this.mapInstance.getBearing(),\n        pitch: pitch != null ? pitch : this.mapInstance.getPitch(),\n      });\n    });\n  }\n\n  addLayer(layer: SetupLayer, bindEvents: boolean, before?: string) {\n    this.zone.runOutsideAngular(() => {\n      Object.keys(layer.layerOptions).forEach((key: string) => {\n        const tkey = key as keyof MapboxGl.LayerSpecification;\n        if (layer.layerOptions[tkey] === undefined) {\n          delete layer.layerOptions[tkey];\n        }\n      });\n      this.mapInstance.addLayer(\n        layer.layerOptions as MapboxGl.LayerSpecification,\n        before\n      );\n      if (bindEvents) {\n        if (\n          layer.layerEvents.layerClick.observed ||\n          layer.layerEvents.click.observed\n        ) {\n          this.mapInstance.on('click', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerClick.emit(evt);\n              layer.layerEvents.click.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerDblClick.observed ||\n          layer.layerEvents.dblClick.observed\n        ) {\n          this.mapInstance.on('dblclick', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerDblClick.emit(evt);\n              layer.layerEvents.dblClick.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseDown.observed ||\n          layer.layerEvents.mouseDown.observed\n        ) {\n          this.mapInstance.on('mousedown', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseDown.emit(evt);\n              layer.layerEvents.mouseDown.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseUp.observed ||\n          layer.layerEvents.mouseUp.observed\n        ) {\n          this.mapInstance.on('mouseup', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseUp.emit(evt);\n              layer.layerEvents.mouseUp.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseEnter.observed ||\n          layer.layerEvents.mouseEnter.observed\n        ) {\n          this.mapInstance.on('mouseenter', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseEnter.emit(evt);\n              layer.layerEvents.mouseEnter.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseLeave.observed ||\n          layer.layerEvents.mouseLeave.observed\n        ) {\n          this.mapInstance.on('mouseleave', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseLeave.emit(evt);\n              layer.layerEvents.mouseLeave.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseMove.observed ||\n          layer.layerEvents.mouseMove.observed\n        ) {\n          this.mapInstance.on('mousemove', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseMove.emit(evt);\n              layer.layerEvents.mouseMove.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseOver.observed ||\n          layer.layerEvents.mouseOver.observed\n        ) {\n          this.mapInstance.on('mouseover', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseOver.emit(evt);\n              layer.layerEvents.mouseOver.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerMouseOut.observed ||\n          layer.layerEvents.mouseOut.observed\n        ) {\n          this.mapInstance.on('mouseout', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerMouseOut.emit(evt);\n              layer.layerEvents.mouseOut.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerContextMenu.observed ||\n          layer.layerEvents.contextMenu.observed\n        ) {\n          this.mapInstance.on('contextmenu', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerContextMenu.emit(evt);\n              layer.layerEvents.contextMenu.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerTouchStart.observed ||\n          layer.layerEvents.touchStart.observed\n        ) {\n          this.mapInstance.on('touchstart', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerTouchStart.emit(evt);\n              layer.layerEvents.touchStart.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerTouchEnd.observed ||\n          layer.layerEvents.touchEnd.observed\n        ) {\n          this.mapInstance.on('touchend', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerTouchEnd.emit(evt);\n              layer.layerEvents.touchEnd.emit(evt);\n            });\n          });\n        }\n        if (\n          layer.layerEvents.layerTouchCancel.observed ||\n          layer.layerEvents.touchCancel.observed\n        ) {\n          this.mapInstance.on('touchcancel', layer.layerOptions.id, (evt) => {\n            this.zone.run(() => {\n              layer.layerEvents.layerTouchCancel.emit(evt);\n              layer.layerEvents.touchCancel.emit(evt);\n            });\n          });\n        }\n      }\n    });\n  }\n\n  removeLayer(layerId: string) {\n    this.zone.runOutsideAngular(() => {\n      if (this.mapInstance.getLayer(layerId) != null) {\n        this.mapInstance.removeLayer(layerId);\n      }\n    });\n  }\n\n  addMarker(marker: SetupMarker) {\n    const options: MapboxGl.MarkerOptions = {\n      offset: marker.markersOptions.offset,\n      anchor: marker.markersOptions.anchor,\n      draggable: !!marker.markersOptions.draggable,\n      rotationAlignment: marker.markersOptions.rotationAlignment,\n      pitchAlignment: marker.markersOptions.pitchAlignment,\n      clickTolerance: marker.markersOptions.clickTolerance,\n    };\n    if (marker.markersOptions.element.childNodes.length > 0) {\n      options.element = marker.markersOptions.element;\n    }\n    const markerInstance = new MapboxGl.Marker(options);\n    if (\n      marker.markersEvents.markerDragStart.observed ||\n      marker.markersEvents.dragStart.observed\n    ) {\n      markerInstance.on('dragstart', (event) => {\n        if (event) {\n          const { target } = event as { target: MapboxGl.Marker };\n          this.zone.run(() => {\n            marker.markersEvents.markerDragStart.emit(target);\n            marker.markersEvents.dragStart.emit(target);\n          });\n        }\n      });\n    }\n    /*\n\n     */\n    if (\n      marker.markersEvents.markerDrag.observed ||\n      marker.markersEvents.drag.observed\n    ) {\n      markerInstance.on('drag', (event) => {\n        if (event) {\n          const { target } = event as { target: MapboxGl.Marker };\n          this.zone.run(() => {\n            marker.markersEvents.markerDrag.emit(target);\n            marker.markersEvents.drag.emit(target);\n          });\n        }\n      });\n    }\n    if (\n      marker.markersEvents.markerDragEnd.observed ||\n      marker.markersEvents.dragEnd.observed\n    ) {\n      markerInstance.on('dragend', (event) => {\n        if (event) {\n          const { target } = event as { target: MapboxGl.Marker };\n          this.zone.run(() => {\n            marker.markersEvents.markerDragEnd.emit(target);\n            marker.markersEvents.dragEnd.emit(target);\n          });\n        }\n      });\n    }\n    const lngLat: MapboxGl.LngLatLike = marker.markersOptions.feature\n      ? (marker.markersOptions.feature.geometry!.coordinates as [\n          number,\n          number\n        ])\n      : marker.markersOptions.lngLat!;\n    markerInstance.setLngLat(lngLat);\n    return this.zone.runOutsideAngular(() => {\n      markerInstance.addTo(this.mapInstance);\n      return markerInstance;\n    });\n  }\n\n  removeMarker(marker: MapboxGl.Marker) {\n    this.markersToRemove.push(marker);\n  }\n\n  createPopup(popup: SetupPopup, element: Node) {\n    return this.zone.runOutsideAngular(() => {\n      Object.keys(popup.popupOptions).forEach(\n        (key) =>\n          (popup.popupOptions as any)[key] === undefined &&\n          delete (popup.popupOptions as any)[key]\n      );\n      const popupInstance = new MapboxGl.Popup(popup.popupOptions);\n      popupInstance.setDOMContent(element);\n      if (\n        popup.popupEvents.popupClose.observed ||\n        popup.popupEvents.close.observed\n      ) {\n        popupInstance.on('close', () => {\n          this.zone.run(() => {\n            popup.popupEvents.popupClose.emit();\n            popup.popupEvents.close.emit();\n          });\n        });\n      }\n      if (\n        popup.popupEvents.popupOpen.observed ||\n        popup.popupEvents.open.observed\n      ) {\n        popupInstance.on('open', () => {\n          this.zone.run(() => {\n            popup.popupEvents.popupOpen.emit();\n            popup.popupEvents.open.emit();\n          });\n        });\n      }\n      return popupInstance;\n    });\n  }\n\n  addPopupToMap(\n    popup: MapboxGl.Popup,\n    lngLat: MapboxGl.LngLatLike,\n    skipOpenEvent = false\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      if (skipOpenEvent && (popup as any)._listeners) {\n        delete (popup as any)._listeners['open'];\n      }\n      popup.setLngLat(lngLat);\n      popup.addTo(this.mapInstance);\n    });\n  }\n\n  addPopupToMarker(marker: MapboxGl.Marker, popup: MapboxGl.Popup) {\n    return this.zone.runOutsideAngular(() => {\n      marker.setPopup(popup);\n    });\n  }\n\n  removePopupFromMap(popup: MapboxGl.Popup, skipCloseEvent = false) {\n    if (skipCloseEvent && (popup as any)._listeners) {\n      delete (popup as any)._listeners['close'];\n    }\n    this.popupsToRemove.push(popup);\n  }\n\n  removePopupFromMarker(marker: MapboxGl.Marker) {\n    return this.zone.runOutsideAngular(() => {\n      marker.setPopup(undefined);\n    });\n  }\n\n  addControl(\n    control: MapboxGl.IControl,\n    position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.addControl(control as any, position);\n    });\n  }\n\n  removeControl(control: MapboxGl.IControl) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.removeControl(control as any);\n    });\n  }\n\n  async loadAndAddImage(\n    imageId: string,\n    url: string,\n    options?: MapImageOptions\n  ) {\n    return this.zone.runOutsideAngular(\n      () =>\n        new Promise<void>((resolve, reject) => {\n          this.mapInstance.loadImage(url, (error, image) => {\n            if (error) {\n              reject(error);\n              return;\n            }\n            this.addImage(imageId, image as ImageBitmap, options);\n            resolve();\n          });\n        })\n    );\n  }\n\n  addImage(imageId: string, data: MapImageData, options?: MapImageOptions) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.addImage(imageId, data as any, options);\n    });\n  }\n\n  removeImage(imageId: string) {\n    this.imageIdsToRemove.push(imageId);\n  }\n\n  addSource(sourceId: string, source: MapboxGl.SourceSpecification) {\n    return this.zone.runOutsideAngular(() => {\n      Object.keys(source).forEach(\n        (key) =>\n          (source as any)[key] === undefined && delete (source as any)[key]\n      );\n      this.mapInstance.addSource(sourceId, source);\n    });\n  }\n\n  getSource<T extends MapboxGl.Source>(sourceId: string) {\n    return this.mapInstance.getSource(sourceId) as T;\n  }\n\n  removeSource(sourceId: string) {\n    this.zone.runOutsideAngular(() => {\n      this.findLayersBySourceId(sourceId).forEach((layer) =>\n        this.mapInstance.removeLayer(layer.id)\n      );\n      this.mapInstance.removeSource(sourceId);\n    });\n  }\n\n  setAllLayerPaintProperty(\n    layerId: string,\n    paint: MapboxGl.PaintSpecification\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      Object.keys(paint).forEach((key) => {\n        // TODO Check for perf, setPaintProperty only on changed paint props maybe\n        this.mapInstance.setPaintProperty(layerId, key as keyof MapboxGl.PaintSpecification, (paint as any)[key]);\n      });\n    });\n  }\n\n  setAllLayerLayoutProperty(\n    layerId: string,\n    layout: MapboxGl.LayoutSpecification\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      Object.keys(layout).forEach((key) => {\n        // TODO Check for perf, setPaintProperty only on changed paint props maybe\n        this.mapInstance.setLayoutProperty(layerId, key as keyof MapboxGl.LayoutSpecification, (layout as any)[key]);\n      });\n    });\n  }\n\n  setLayerFilter(layerId: string, filter: any[]) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setFilter(layerId, filter);\n    });\n  }\n\n  setLayerBefore(layerId: string, beforeId: string) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.moveLayer(layerId, beforeId);\n    });\n  }\n\n  setLayerZoomRange(layerId: string, minZoom?: number, maxZoom?: number) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.setLayerZoomRange(\n        layerId,\n        minZoom ? minZoom : 0,\n        maxZoom ? maxZoom : 20\n      );\n    });\n  }\n\n  fitBounds(\n    bounds: MapboxGl.LngLatBoundsLike,\n    options?: MapboxGl.FitBoundsOptions\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.fitBounds(bounds, options);\n    });\n  }\n\n  fitScreenCoordinates(\n    points: [MapboxGl.PointLike, MapboxGl.PointLike],\n    bearing: number,\n    options?: MapboxGl.AnimationOptions & MapboxGl.CameraOptions\n  ) {\n    return this.zone.runOutsideAngular(() => {\n      this.mapInstance.fitScreenCoordinates(\n        points[0],\n        points[1],\n        bearing,\n        options\n      );\n    });\n  }\n\n  applyChanges() {\n    this.zone.runOutsideAngular(() => {\n      this.removeMarkers();\n      this.removePopups();\n      this.removeImages();\n    });\n  }\n\n  private createMap(optionsWithAccessToken: MapboxGl.MapOptions) {\n    NgZone.assertNotInAngularZone();\n    Object.keys(optionsWithAccessToken).forEach((key: string) => {\n      const tkey = key as keyof MapboxGl.MapOptions;\n      if (optionsWithAccessToken[tkey] === undefined) {\n        delete optionsWithAccessToken[tkey];\n      }\n    });\n    this.mapInstance = new MapboxGl.Map(optionsWithAccessToken);\n\n    const isIEorEdge =\n      window && /msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent);\n    if (isIEorEdge) {\n      this.mapInstance.setStyle(optionsWithAccessToken.style!);\n    }\n\n    this.subscription.add(\n      this.zone.onMicrotaskEmpty.subscribe(() => this.applyChanges())\n    );\n  }\n\n  private removeMarkers() {\n    for (const marker of this.markersToRemove) {\n      marker.remove();\n    }\n    this.markersToRemove = [];\n  }\n\n  private removePopups() {\n    for (const popup of this.popupsToRemove) {\n      popup.remove();\n    }\n    this.popupsToRemove = [];\n  }\n\n  private removeImages() {\n    for (const imageId of this.imageIdsToRemove) {\n      this.mapInstance.removeImage(imageId);\n    }\n    this.imageIdsToRemove = [];\n  }\n\n  private findLayersBySourceId(sourceId: string): MapboxGl.Layer[] {\n    const layers = this.mapInstance.getStyle()?.layers;\n    if (layers == null) {\n      return [];\n    }\n\n    return layers.filter((l) =>\n      'source' in l ? l.source === sourceId : false\n    );\n  }\n\n  private hookEvents(events: NgxMapEvent) {\n    this.mapInstance.on('load', (evt) => {\n      this.mapLoaded.next(undefined);\n      this.mapLoaded.complete();\n      this.zone.run(() => {\n        events.mapLoad.emit(evt);\n        events.load.emit(evt.target);\n      });\n    });\n    if (events.mapResize.observed || events.resize.observed) {\n      this.mapInstance.on('resize', (evt) =>\n        this.zone.run(() => {\n          events.mapResize.emit(evt);\n          events.resize.emit(evt);\n        })\n      );\n    }\n    if (events.mapRemove.observed || events.remove.observed) {\n      this.mapInstance.on('remove', (evt) =>\n        this.zone.run(() => {\n          events.mapRemove.emit(evt);\n          events.remove.emit(evt);\n        })\n      );\n    }\n    if (events.mapMouseDown.observed || events.mouseDown.observed) {\n      this.mapInstance.on('mousedown', (evt) =>\n        this.zone.run(() => {\n          events.mapMouseDown.emit(evt);\n          events.mouseDown.emit(evt);\n        })\n      );\n    }\n    if (events.mapMouseUp.observed || events.mouseUp.observed) {\n      this.mapInstance.on('mouseup', (evt) =>\n        this.zone.run(() => {\n          events.mapMouseUp.emit(evt);\n          events.mouseUp.emit(evt);\n        })\n      );\n    }\n    if (events.mapMouseMove.observed || events.mouseMove.observed) {\n      this.mapInstance.on('mousemove', (evt) =>\n        this.zone.run(() => {\n          events.mapMouseMove.emit(evt);\n          events.mouseMove.emit(evt);\n        })\n      );\n    }\n    if (events.mapClick.observed || events.click.observed) {\n      this.mapInstance.on('click', (evt) =>\n        this.zone.run(() => {\n          events.mapClick.emit(evt);\n          events.click.emit(evt);\n        })\n      );\n    }\n    if (events.mapDblClick.observed || events.dblClick.observed) {\n      this.mapInstance.on('dblclick', (evt) =>\n        this.zone.run(() => {\n          events.mapDblClick.emit(evt);\n          events.dblClick.emit(evt);\n        })\n      );\n    }\n    if (events.mapMouseOver.observed || events.mouseOver.observed) {\n      this.mapInstance.on('mouseover', (evt) =>\n        this.zone.run(() => {\n          events.mapMouseOver.emit(evt);\n          events.mouseOver.emit(evt);\n        })\n      );\n    }\n    if (events.mapMouseOut.observed || events.mouseOut.observed) {\n      this.mapInstance.on('mouseout', (evt) =>\n        this.zone.run(() => {\n          events.mapMouseOut.emit(evt);\n          events.mouseOut.emit(evt);\n        })\n      );\n    }\n    if (events.mapContextMenu.observed || events.contextMenu.observed) {\n      this.mapInstance.on('contextmenu', (evt) =>\n        this.zone.run(() => {\n          events.mapContextMenu.emit(evt);\n          events.contextMenu.emit(evt);\n        })\n      );\n    }\n    if (events.mapTouchStart.observed || events.touchStart.observed) {\n      this.mapInstance.on('touchstart', (evt) =>\n        this.zone.run(() => {\n          events.mapTouchStart.emit(evt);\n          events.touchStart.emit(evt);\n        })\n      );\n    }\n    if (events.mapTouchEnd.observed || events.touchEnd.observed) {\n      this.mapInstance.on('touchend', (evt) =>\n        this.zone.run(() => {\n          events.mapTouchEnd.emit(evt);\n          events.touchEnd.emit(evt);\n        })\n      );\n    }\n    if (events.mapTouchMove.observed || events.touchMove.observed) {\n      this.mapInstance.on('touchmove', (evt) =>\n        this.zone.run(() => {\n          events.mapTouchMove.emit(evt);\n          events.touchMove.emit(evt);\n        })\n      );\n    }\n    if (events.mapTouchCancel.observed || events.touchCancel.observed) {\n      this.mapInstance.on('touchcancel', (evt) =>\n        this.zone.run(() => {\n          events.mapTouchCancel.emit(evt);\n          events.touchCancel.emit(evt);\n        })\n      );\n    }\n    if (events.mapWheel.observed || events.wheel.observed) {\n      this.mapInstance.on('wheel', (evt) =>\n        this.zone.run(() => {\n          events.mapWheel.emit(evt);\n          events.wheel.emit(evt);\n        })\n      );\n    }\n    if (events.moveStart.observed) {\n      this.mapInstance.on('movestart', (evt) =>\n        this.zone.run(() => events.moveStart.emit(evt))\n      );\n    }\n    if (events.move.observed) {\n      this.mapInstance.on('move', (evt) =>\n        this.zone.run(() => events.move.emit(evt))\n      );\n    }\n    if (events.moveEnd.observed) {\n      this.mapInstance.on('moveend', (evt) =>\n        this.zone.run(() => events.moveEnd.emit(evt))\n      );\n    }\n    if (events.mapDragStart.observed || events.dragStart.observed) {\n      this.mapInstance.on('dragstart', (evt) =>\n        this.zone.run(() => {\n          events.mapDragStart.emit(evt);\n          events.dragStart.emit(evt);\n        })\n      );\n    }\n    if (events.mapDrag.observed || events.drag.observed) {\n      this.mapInstance.on('drag', (evt) =>\n        this.zone.run(() => {\n          events.mapDrag.emit(evt);\n          events.drag.emit(evt);\n        })\n      );\n    }\n    if (events.mapDragEnd.observed || events.dragEnd.observed) {\n      this.mapInstance.on('dragend', (evt) =>\n        this.zone.run(() => {\n          events.mapDragEnd.emit(evt);\n          events.dragEnd.emit(evt);\n        })\n      );\n    }\n    if (events.zoomStart.observed) {\n      this.mapInstance.on('zoomstart', (evt) =>\n        this.zone.run(() => events.zoomStart.emit(evt))\n      );\n    }\n    if (events.zoomEvt.observed) {\n      this.mapInstance.on('zoom', (evt) =>\n        this.zone.run(() => events.zoomEvt.emit(evt))\n      );\n    }\n    if (events.zoomEnd.observed) {\n      this.mapInstance.on('zoomend', (evt) =>\n        this.zone.run(() => events.zoomEnd.emit(evt))\n      );\n    }\n    if (events.rotateStart.observed) {\n      this.mapInstance.on('rotatestart', (evt) =>\n        this.zone.run(() => events.rotateStart.emit(evt))\n      );\n    }\n    if (events.rotate.observed) {\n      this.mapInstance.on('rotate', (evt) =>\n        this.zone.run(() => events.rotate.emit(evt))\n      );\n    }\n    if (events.rotateEnd.observed) {\n      this.mapInstance.on('rotateend', (evt) =>\n        this.zone.run(() => events.rotateEnd.emit(evt))\n      );\n    }\n    if (events.pitchStart.observed) {\n      this.mapInstance.on('pitchstart', (evt) =>\n        this.zone.run(() => events.pitchStart.emit(evt))\n      );\n    }\n    if (events.pitchEvt.observed) {\n      this.mapInstance.on('pitch', (evt) =>\n        this.zone.run(() => events.pitchEvt.emit(evt))\n      );\n    }\n    if (events.pitchEnd.observed) {\n      this.mapInstance.on('pitchend', (evt) =>\n        this.zone.run(() => events.pitchEnd.emit(evt))\n      );\n    }\n    if (events.boxZoomStart.observed) {\n      this.mapInstance.on('boxzoomstart', (evt) =>\n        this.zone.run(() => events.boxZoomStart.emit(evt))\n      );\n    }\n    if (events.boxZoomEnd.observed) {\n      this.mapInstance.on('boxzoomend', (evt) =>\n        this.zone.run(() => events.boxZoomEnd.emit(evt))\n      );\n    }\n    if (events.boxZoomCancel.observed) {\n      this.mapInstance.on('boxzoomcancel', (evt) =>\n        this.zone.run(() => events.boxZoomCancel.emit(evt))\n      );\n    }\n    if (events.webGlContextLost.observed) {\n      this.mapInstance.on('webglcontextlost', (evt) =>\n        this.zone.run(() => events.webGlContextLost.emit(evt))\n      );\n    }\n    if (events.webGlContextRestored.observed) {\n      this.mapInstance.on('webglcontextrestored', (evt) =>\n        this.zone.run(() => events.webGlContextRestored.emit(evt))\n      );\n    }\n    if (events.render.observed) {\n      this.mapInstance.on('render', (evt) =>\n        this.zone.run(() => events.render.emit(evt))\n      );\n    }\n    if (events.mapError.observed || events.error.observed) {\n      this.mapInstance.on('error', (evt) =>\n        this.zone.run(() => {\n          events.mapError.emit(evt);\n          events.error.emit(evt);\n        })\n      );\n    }\n    if (events.data.observed) {\n      this.mapInstance.on('data', (evt) =>\n        this.zone.run(() => events.data.emit(evt))\n      );\n    }\n    if (events.styleData.observed) {\n      this.mapInstance.on('styledata', (evt) =>\n        this.zone.run(() => events.styleData.emit(evt))\n      );\n    }\n    if (events.sourceData.observed) {\n      this.mapInstance.on('sourcedata', (evt) =>\n        this.zone.run(() => events.sourceData.emit(evt))\n      );\n    }\n    if (events.dataLoading.observed) {\n      this.mapInstance.on('dataloading', (evt) =>\n        this.zone.run(() => events.dataLoading.emit(evt))\n      );\n    }\n    if (events.styleDataLoading.observed) {\n      this.mapInstance.on('styledataloading', (evt) =>\n        this.zone.run(() => events.styleDataLoading.emit(evt))\n      );\n    }\n    if (events.sourceDataLoading.observed) {\n      this.mapInstance.on('sourcedataloading', (evt) =>\n        this.zone.run(() => events.sourceDataLoading.emit(evt))\n      );\n    }\n    if (events.styleImageMissing.observed) {\n      this.mapInstance.on('styleimagemissing', (evt) =>\n        this.zone.run(() => events.styleImageMissing.emit(evt))\n      );\n    }\n    if (events.idle.observed) {\n      this.mapInstance.on('idle', (evt) =>\n        this.zone.run(() => events.idle.emit(evt))\n      );\n    }\n  }\n\n  // TODO move this elsewhere\n  private assign(obj: any, prop: any, value: any) {\n    if (typeof prop === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      prop = prop.split('.');\n    }\n    if (prop.length > 1) {\n      const e = prop.shift();\n      this.assign(\n        (obj[e] =\n          Object.prototype.toString.call(obj[e]) === '[object Object]'\n            ? obj[e]\n            : {}),\n        prop,\n        value\n      );\n    } else {\n      obj[prop[0]] = value;\n    }\n  }\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Input,\n  OnDestroy,\n  ViewChild,\n} from '@angular/core';\nimport { IControl, ControlPosition } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\n\nexport class CustomControl implements IControl {\n  constructor(private container: HTMLElement) {}\n\n  onAdd() {\n    return this.container;\n  }\n\n  onRemove() {\n    return this.container.parentNode!.removeChild(this.container);\n  }\n\n  getDefaultPosition(): ControlPosition {\n    return 'top-right';\n  }\n}\n\n@Component({\n  selector: 'mgl-control',\n  template:\n    '<div class=\"mapboxgl-ctrl\" #content><ng-content></ng-content></div>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ControlComponent<T extends IControl>\n  implements OnDestroy, AfterContentInit\n{\n  /* Init inputs */\n  @Input() position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\n  @ViewChild('content', { static: true }) content: ElementRef;\n\n  control: T | CustomControl;\n\n  private controlAdded = false;\n\n  constructor(private mapService: MapService) {}\n\n  ngAfterContentInit() {\n    if (this.content.nativeElement.childNodes.length) {\n      this.control = new CustomControl(this.content.nativeElement);\n      this.mapService.mapCreated$.subscribe(() => {\n        this.mapService.addControl(this.control!, this.position);\n        this.controlAdded = true;\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.controlAdded) {\n      this.mapService.removeControl(this.control);\n    }\n  }\n}\n","import { AfterContentInit, Directive, Host, Input } from '@angular/core';\nimport { AttributionControl } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { ControlComponent } from './control.component';\n\n@Directive({\n  selector: '[mglAttribution]',\n})\nexport class AttributionControlDirective implements AfterContentInit {\n  /* Init inputs */\n  @Input() compact?: boolean;\n  @Input() customAttribution?: string | string[];\n\n  constructor(\n    private mapService: MapService,\n    @Host() private controlComponent: ControlComponent<AttributionControl>\n  ) {}\n\n  ngAfterContentInit() {\n    this.mapService.mapCreated$.subscribe(() => {\n      if (this.controlComponent.control) {\n        throw new Error('Another control is already set for this control');\n      }\n      const options: {\n        compact?: boolean;\n        customAttribution?: string | string[];\n      } = {};\n      if (this.compact !== undefined) {\n        options.compact = this.compact;\n      }\n      if (this.customAttribution !== undefined) {\n        options.customAttribution = this.customAttribution;\n      }\n      this.controlComponent.control = new AttributionControl(options);\n      this.mapService.addControl(\n        this.controlComponent.control,\n        this.controlComponent.position\n      );\n    });\n  }\n}\n","import {\n  AfterContentInit,\n  Directive,\n  Host,\n  HostListener,\n  Input,\n} from '@angular/core';\nimport { FullscreenControl } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { ControlComponent } from './control.component';\n\n@Directive({\n  selector: '[mglFullscreen]',\n})\nexport class FullscreenControlDirective implements AfterContentInit {\n  /* Init inputs */\n  @Input() container?: HTMLElement;\n\n  constructor(\n    private mapService: MapService,\n    @Host() private controlComponent: ControlComponent<FullscreenControl>\n  ) {}\n\n  @HostListener('window:webkitfullscreenchange', ['$event.target'])\n  onFullscreen() {\n    this.mapService.mapInstance.resize();\n  }\n\n  ngAfterContentInit() {\n    this.mapService.mapCreated$.subscribe(() => {\n      if (this.controlComponent.control) {\n        throw new Error('Another control is already set for this control');\n      }\n      this.controlComponent.control = new FullscreenControl({\n        container: this.container,\n      });\n      this.mapService.addControl(\n        this.controlComponent.control,\n        this.controlComponent.position\n      );\n    });\n  }\n}\n","import {\n  AfterContentInit,\n  Directive,\n  EventEmitter,\n  Host,\n  Input,\n  Output,\n} from '@angular/core';\nimport { MapOptions, GeolocateControl } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { Position } from '../map/map.types';\nimport { ControlComponent } from './control.component';\n\n@Directive({\n  selector: '[mglGeolocate]',\n})\nexport class GeolocateControlDirective implements AfterContentInit {\n  /* Init inputs */\n  @Input() positionOptions?: PositionOptions;\n  @Input() fitBoundsOptions?: MapOptions[\"fitBoundsOptions\"];\n  @Input() trackUserLocation?: boolean;\n  @Input() showUserLocation?: boolean;\n  @Input() showUserHeading?: boolean;\n\n  @Output()\n  geolocate: EventEmitter<Position> = new EventEmitter<Position>();\n\n  constructor(\n    private mapService: MapService,\n    @Host() private controlComponent: ControlComponent<GeolocateControl>\n  ) {}\n\n  ngAfterContentInit() {\n    this.mapService.mapCreated$.subscribe(() => {\n      if (this.controlComponent.control) {\n        throw new Error('Another control is already set for this control');\n      }\n      const options = {\n        positionOptions: this.positionOptions,\n        fitBoundsOptions: this.fitBoundsOptions,\n        trackUserLocation: this.trackUserLocation,\n        showUserLocation: this.showUserLocation,\n        showUserHeading: this.showUserHeading,\n      };\n\n      Object.keys(options).forEach((key: string) => {\n        const tkey = key as keyof typeof options;\n        if (options[tkey] === undefined) {\n          delete options[tkey];\n        }\n      });\n      this.controlComponent.control = new GeolocateControl(options);\n      this.controlComponent.control.on('geolocate', (data) => {\n        this.geolocate.emit(data as Position);\n      });\n      this.mapService.addControl(\n        this.controlComponent.control,\n        this.controlComponent.position\n      );\n    });\n  }\n}\n","import { AfterContentInit, Directive, Host, Input } from '@angular/core';\nimport { NavigationControl } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { ControlComponent } from './control.component';\n\n@Directive({\n  selector: '[mglNavigation]',\n})\nexport class NavigationControlDirective implements AfterContentInit {\n  /* Init inputs */\n  @Input() showCompass?: boolean;\n  @Input() showZoom?: boolean;\n\n  constructor(\n    private mapService: MapService,\n    @Host() private controlComponent: ControlComponent<NavigationControl>\n  ) {}\n\n  ngAfterContentInit() {\n    this.mapService.mapCreated$.subscribe(() => {\n      if (this.controlComponent.control) {\n        throw new Error('Another control is already set for this control');\n      }\n      const options: { showCompass?: boolean; showZoom?: boolean } = {};\n      if (this.showCompass !== undefined) {\n        options.showCompass = this.showCompass;\n      }\n      if (this.showZoom !== undefined) {\n        options.showZoom = this.showZoom;\n      }\n      this.controlComponent.control = new NavigationControl(options);\n      this.mapService.addControl(\n        this.controlComponent.control,\n        this.controlComponent.position\n      );\n    });\n  }\n}\n","import {\n  AfterContentInit,\n  Directive,\n  Host,\n  Input,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { ScaleControl, ScaleControlOptions } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { ControlComponent } from './control.component';\n\n@Directive({\n  selector: '[mglScale]',\n})\nexport class ScaleControlDirective implements AfterContentInit, OnChanges {\n  /* Init inputs */\n  @Input() maxWidth?: number;\n\n  /* Dynamic inputs */\n  @Input() unit?: 'imperial' | 'metric' | 'nautical';\n\n  constructor(\n    private mapService: MapService,\n    @Host() private controlComponent: ControlComponent<ScaleControl>\n  ) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['unit'] && !changes['unit'].isFirstChange()) {\n      (this.controlComponent.control as any).setUnit(\n        changes['unit'].currentValue\n      );\n    }\n  }\n\n  ngAfterContentInit() {\n    this.mapService.mapCreated$.subscribe(() => {\n      if (this.controlComponent.control) {\n        throw new Error('Another control is already set for this control');\n      }\n      const options: ScaleControlOptions = {};\n      if (this.maxWidth !== undefined) {\n        options.maxWidth = this.maxWidth;\n      }\n      if (this.unit !== undefined) {\n        options.unit = this.unit;\n      }\n      this.controlComponent.control = new ScaleControl(options);\n      this.mapService.addControl(\n        this.controlComponent.control,\n        this.controlComponent.position\n      );\n    });\n  }\n}\n","export const deprecationWarning = (\n  context: string,\n  oldApi: string,\n  newApi: string\n) => {\n  console.warn(\n    `[ngx-mapbox-gl]: ${context}: ${oldApi} is deprecated, please use ${newApi} instead.`\n  );\n};\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport { Layer, LayerSpecification, MapMouseEvent, MapTouchEvent } from 'mapbox-gl';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, mapTo, startWith, switchMap } from 'rxjs/operators';\nimport { MapService, SetupLayer } from '../map/map.service';\nimport { NgxMapboxLayerEvents, EventData } from '../map/map.types';\nimport { deprecationWarning } from '../utils';\n\n@Component({\n  selector: 'mgl-layer',\n  template: '',\n})\nexport class LayerComponent\n  implements OnInit, OnDestroy, OnChanges, Layer, NgxMapboxLayerEvents\n{\n  /* Init inputs */\n  @Input() id: LayerSpecification['id'];\n  @Input() source?: any | Layer['source'];\n  @Input() type: LayerSpecification['type'];\n  @Input() metadata?: Layer['metadata'];\n  @Input() sourceLayer?: Layer['source-layer'];\n\n  /* Dynamic inputs */\n  @Input() filter?: Layer['filter'];\n  @Input() layout?: Layer['layout'];\n  @Input() paint?: Layer['paint'];\n  @Input() before?: string;\n  @Input() minzoom?: Layer['minzoom'];\n  @Input() maxzoom?: Layer['maxzoom'];\n\n  @Output() layerClick = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerDblClick = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerMouseDown = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerMouseUp = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerMouseEnter = new EventEmitter<\n    MapMouseEvent\n  >();\n  @Output() layerMouseLeave = new EventEmitter<\n    MapMouseEvent\n  >();\n  @Output() layerMouseMove = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerMouseOver = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerMouseOut = new EventEmitter<MapMouseEvent & EventData>();\n  @Output() layerContextMenu = new EventEmitter<\n    MapMouseEvent\n  >();\n  @Output() layerTouchStart = new EventEmitter<\n    MapTouchEvent\n  >();\n  @Output() layerTouchEnd = new EventEmitter<MapTouchEvent & EventData>();\n  @Output() layerTouchCancel = new EventEmitter<MapTouchEvent & EventData>();\n  /**\n   * @deprecated Use layerClick instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() click = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerDblClick instead\n   */\n  @Output() dblClick = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseDown instead\n   */\n  @Output() mouseDown = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseUp instead\n   */\n  @Output() mouseUp = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseEnter instead\n   */\n  @Output() mouseEnter = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseLeave instead\n   */\n  @Output() mouseLeave = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseMove instead\n   */\n  @Output() mouseMove = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseOver instead\n   */\n  @Output() mouseOver = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerMouseOut instead\n   */\n  @Output() mouseOut = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerContextMenu instead\n   */\n  @Output() contextMenu = new EventEmitter<MapMouseEvent & EventData>();\n  /**\n   * @deprecated Use layerTouchStart instead\n   */\n  @Output() touchStart = new EventEmitter<MapTouchEvent & EventData>();\n  /**\n   * @deprecated Use layerTouchEnd instead\n   */\n  @Output() touchEnd = new EventEmitter<MapTouchEvent & EventData>();\n  /**\n   * @deprecated Use layerTouchCancel instead\n   */\n  @Output() touchCancel = new EventEmitter<MapTouchEvent & EventData>();\n\n  private layerAdded = false;\n  private sub: Subscription;\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    this.warnDeprecatedOutputs();\n    this.sub = this.mapService.mapLoaded$\n      .pipe(\n        switchMap(() =>\n          fromEvent(this.mapService.mapInstance, 'styledata').pipe(\n            mapTo(false),\n            filter(() => !this.mapService.mapInstance.getLayer(this.id)),\n            startWith(true)\n          )\n        )\n      )\n      .subscribe((bindEvents: boolean) => this.init(bindEvents));\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.layerAdded) {\n      return;\n    }\n    if (changes['paint'] && !changes['paint'].isFirstChange()) {\n      this.mapService.setAllLayerPaintProperty(\n        this.id,\n        changes['paint'].currentValue!\n      );\n    }\n    if (changes['layout'] && !changes['layout'].isFirstChange()) {\n      this.mapService.setAllLayerLayoutProperty(\n        this.id,\n        changes['layout'].currentValue!\n      );\n    }\n    if (changes['filter'] && !changes['filter'].isFirstChange()) {\n      this.mapService.setLayerFilter(this.id, changes['filter'].currentValue!);\n    }\n    if (changes['before'] && !changes['before'].isFirstChange()) {\n      this.mapService.setLayerBefore(this.id, changes['before'].currentValue!);\n    }\n    if (\n      (changes['minzoom'] && !changes['minzoom'].isFirstChange()) ||\n      (changes['maxzoom'] && !changes['maxzoom'].isFirstChange())\n    ) {\n      this.mapService.setLayerZoomRange(this.id, this.minzoom, this.maxzoom);\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.layerAdded) {\n      this.mapService.removeLayer(this.id);\n    }\n    if (this.sub) {\n      this.sub.unsubscribe();\n    }\n  }\n\n  private init(bindEvents: boolean) {\n    const layer: SetupLayer = {\n      layerOptions: {\n        id: this.id,\n        type: this.type as any,\n        source: this.source,\n        metadata: this.metadata,\n        'source-layer': this.sourceLayer,\n        minzoom: this.minzoom,\n        maxzoom: this.maxzoom,\n        filter: this.filter,\n        layout: this.layout,\n        paint: this.paint,\n      },\n      layerEvents: {\n        layerClick: this.layerClick,\n        layerDblClick: this.layerDblClick,\n        layerMouseDown: this.layerMouseDown,\n        layerMouseUp: this.layerMouseUp,\n        layerMouseEnter: this.layerMouseEnter,\n        layerMouseLeave: this.layerMouseLeave,\n        layerMouseMove: this.layerMouseMove,\n        layerMouseOver: this.layerMouseOver,\n        layerMouseOut: this.layerMouseOut,\n        layerContextMenu: this.layerContextMenu,\n        layerTouchStart: this.layerTouchStart,\n        layerTouchEnd: this.layerTouchEnd,\n        layerTouchCancel: this.layerTouchCancel,\n        click: this.click,\n        dblClick: this.dblClick,\n        mouseDown: this.mouseDown,\n        mouseUp: this.mouseUp,\n        mouseEnter: this.mouseEnter,\n        mouseLeave: this.mouseLeave,\n        mouseMove: this.mouseMove,\n        mouseOver: this.mouseOver,\n        mouseOut: this.mouseOut,\n        contextMenu: this.contextMenu,\n        touchStart: this.touchStart,\n        touchEnd: this.touchEnd,\n        touchCancel: this.touchCancel,\n      },\n    };\n    this.mapService.addLayer(layer, bindEvents, this.before);\n    this.layerAdded = true;\n  }\n\n  private warnDeprecatedOutputs() {\n    const dw = deprecationWarning.bind(undefined, LayerComponent.name);\n    if (this.click.observed) {\n      dw('click', 'layerClick');\n    }\n    if (this.dblClick.observed) {\n      dw('dblClick', 'layerDblClick');\n    }\n    if (this.mouseDown.observed) {\n      dw('mouseDown', 'layerMouseDown');\n    }\n    if (this.mouseUp.observed) {\n      dw('mouseUp', 'layerMouseUp');\n    }\n    if (this.mouseEnter.observed) {\n      dw('mouseEnter', 'layerMouseEnter');\n    }\n    if (this.mouseLeave.observed) {\n      dw('mouseLeave', 'layerMouseLeave');\n    }\n    if (this.mouseMove.observed) {\n      dw('mouseMove', 'layerMouseMove');\n    }\n    if (this.mouseOver.observed) {\n      dw('mouseOver', 'layerMouseOver');\n    }\n    if (this.mouseOut.observed) {\n      dw('mouseOut', 'layerMouseOut');\n    }\n    if (this.contextMenu.observed) {\n      dw('contextMenu', 'layerContextMenu');\n    }\n    if (this.touchStart.observed) {\n      dw('touchStart', 'layerTouchStart');\n    }\n    if (this.touchEnd.observed) {\n      dw('touchEnd', 'layerTouchEnd');\n    }\n    if (this.touchCancel.observed) {\n      dw('touchCancel', 'layerTouchCancel');\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  GeoJSONSource,\n  GeoJSONSourceSpecification,\n} from 'mapbox-gl';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { MapService } from '../../map/map.service';\n\n@Component({\n  selector: 'mgl-geojson-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GeoJSONSourceComponent\n  implements OnInit, OnDestroy, OnChanges, GeoJSONSourceSpecification\n{\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() data?: GeoJSONSourceSpecification['data'];\n  @Input() maxzoom?: GeoJSONSourceSpecification['maxzoom'];\n  @Input() attribution?: GeoJSONSourceSpecification['attribution'];\n  @Input() buffer?: GeoJSONSourceSpecification['buffer'];\n  @Input() tolerance?: GeoJSONSourceSpecification['tolerance'];\n  @Input() cluster?: GeoJSONSourceSpecification['cluster'];\n  @Input() clusterRadius?: GeoJSONSourceSpecification['clusterRadius'];\n  @Input() clusterMaxZoom?: GeoJSONSourceSpecification['clusterMaxZoom'];\n  @Input() clusterMinPoints?: GeoJSONSourceSpecification['clusterMinPoints'];\n  @Input() clusterProperties?: GeoJSONSourceSpecification['clusterProperties'];\n  @Input() lineMetrics?: GeoJSONSourceSpecification['lineMetrics'];\n  @Input() generateId?: GeoJSONSourceSpecification['generateId'];\n  @Input() promoteId?: GeoJSONSourceSpecification['promoteId'];\n  @Input() filter?: GeoJSONSourceSpecification['filter'];\n\n  type: GeoJSONSourceSpecification['type'] = 'geojson';\n  updateFeatureData = new Subject();\n\n  private sub = new Subscription();\n  private sourceAdded = false;\n  private featureIdCounter = 0;\n\n  constructor(private mapService: MapService, private zone: NgZone) {}\n\n  ngOnInit() {\n    if (!this.data) {\n      this.data = {\n        type: 'FeatureCollection',\n        features: [],\n      };\n    }\n    const sub1 = this.mapService.mapLoaded$.subscribe(() => {\n      this.init();\n      const sub = fromEvent(this.mapService.mapInstance, 'styledata')\n        .pipe(filter(() => !this.mapService.mapInstance.getSource(this.id)))\n        .subscribe(() => {\n          this.init();\n        });\n      this.sub.add(sub);\n    });\n    this.sub.add(sub1);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.sourceAdded) {\n      return;\n    }\n    if (\n      (changes['maxzoom'] && !changes['maxzoom'].isFirstChange()) ||\n      (changes['attribution'] && !changes['attribution'].isFirstChange()) ||\n      (changes['buffer'] && !changes['buffer'].isFirstChange()) ||\n      (changes['tolerance'] && !changes['tolerance'].isFirstChange()) ||\n      (changes['cluster'] && !changes['cluster'].isFirstChange()) ||\n      (changes['clusterRadius'] && !changes['clusterRadius'].isFirstChange()) ||\n      (changes['clusterMaxZoom'] &&\n        !changes['clusterMaxZoom'].isFirstChange()) ||\n      (changes['clusterMinPoints'] &&\n        !changes['clusterMinPoints'].isFirstChange()) ||\n      (changes['clusterProperties'] &&\n        !changes['clusterProperties'].isFirstChange()) ||\n      (changes['lineMetrics'] && !changes['lineMetrics'].isFirstChange()) ||\n      (changes['generateId'] && !changes['generateId'].isFirstChange()) ||\n      (changes['promoteId'] && !changes['promoteId'].isFirstChange()) ||\n      (changes['filter'] && !changes['filter'].isFirstChange())\n    ) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    }\n    if (changes['data'] && !changes['data'].isFirstChange()) {\n      const source = this.mapService.getSource<GeoJSONSource>(this.id);\n      if (source === undefined) {\n        return;\n      }\n      source.setData(this.data!);\n    }\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    if (this.sourceAdded) {\n      this.mapService.removeSource(this.id);\n      this.sourceAdded = false;\n    }\n  }\n\n  /**\n   * For clustered sources, fetches the zoom at which the given cluster expands.\n   *\n   * @param clusterId The value of the cluster's cluster_id property.\n   */\n  async getClusterExpansionZoom(clusterId: number) {\n    const source = this.mapService.getSource<GeoJSONSource>(this.id);\n    return this.zone.run(\n      async () =>\n        new Promise<number>((resolve, reject) => {\n          source.getClusterExpansionZoom(clusterId, (error, zoom) => {\n            if (error) {\n              reject(error);\n            } else {\n              resolve(zoom ? zoom : 0);\n            }\n          });\n        })\n    );\n  }\n\n  /**\n   * For clustered sources, fetches the children of the given cluster on the next zoom level (as an array of GeoJSON features).\n   *\n   * @param clusterId The value of the cluster's cluster_id property.\n   */\n  async getClusterChildren(clusterId: number) {\n    const source = this.mapService.getSource<GeoJSONSource>(this.id);\n    return this.zone.run(\n      async () =>\n        new Promise<GeoJSON.Feature<GeoJSON.Geometry>[]>((resolve, reject) => {\n          source.getClusterChildren(clusterId, (error, features) => {\n            if (error) {\n              reject(error);\n            } else {\n              resolve(features ? features : []);\n            }\n          });\n        })\n    );\n  }\n\n  /**\n   * For clustered sources, fetches the original points that belong to the cluster (as an array of GeoJSON features).\n   *\n   * @param clusterId The value of the cluster's cluster_id property.\n   * @param limit The maximum number of features to return.\n   * @param offset The number of features to skip (e.g. for pagination).\n   */\n  async getClusterLeaves(clusterId: number, limit: number, offset: number) {\n    const source = this.mapService.getSource<GeoJSONSource>(this.id);\n    return this.zone.run(\n      async () =>\n        new Promise<GeoJSON.Feature<GeoJSON.Geometry>[]>((resolve, reject) => {\n          source.getClusterLeaves(\n            clusterId,\n            limit,\n            offset,\n            (error, features) => {\n              if (error) {\n                reject(error);\n              } else {\n                resolve(features ? features : []);\n              }\n            }\n          );\n        })\n    );\n  }\n\n  _addFeature(feature: GeoJSON.Feature<GeoJSON.GeometryObject>) {\n    const collection = this\n      .data as GeoJSON.FeatureCollection<GeoJSON.GeometryObject>;\n    collection.features.push(feature);\n    this.updateFeatureData.next(null);\n  }\n\n  _removeFeature(feature: GeoJSON.Feature<GeoJSON.GeometryObject>) {\n    const collection = this\n      .data as GeoJSON.FeatureCollection<GeoJSON.GeometryObject>;\n    const index = collection.features.indexOf(feature);\n    if (index > -1) {\n      collection.features.splice(index, 1);\n    }\n    this.updateFeatureData.next(null);\n  }\n\n  _getNewFeatureId() {\n    return ++this.featureIdCounter;\n  }\n\n  private init() {\n    const source: GeoJSONSourceSpecification = {\n      type: 'geojson',\n      data: this.data,\n      maxzoom: this.maxzoom,\n      attribution: this.attribution,\n      buffer: this.buffer,\n      tolerance: this.tolerance,\n      cluster: this.cluster,\n      clusterRadius: this.clusterRadius,\n      clusterMaxZoom: this.clusterMaxZoom,\n      clusterMinPoints: this.clusterMinPoints,\n      clusterProperties: this.clusterProperties,\n      lineMetrics: this.lineMetrics,\n      generateId: this.generateId,\n      promoteId: this.promoteId,\n      filter: this.filter,\n    };\n    this.mapService.addSource(this.id, source);\n    const sub = this.updateFeatureData.pipe(debounceTime(0)).subscribe(() => {\n      const source = this.mapService.getSource<GeoJSONSource>(this.id);\n      if (source === undefined) {\n        return;\n      }\n      source.setData(this.data!);\n    });\n    this.sub.add(sub);\n    this.sourceAdded = true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  forwardRef,\n} from '@angular/core';\nimport { GeoJSONSourceComponent } from './geojson-source.component';\n\n@Component({\n  selector: 'mgl-feature',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureComponent\n  implements OnInit, OnDestroy, GeoJSON.Feature<GeoJSON.GeometryObject>\n{\n  /* Init inputs */\n  @Input() id?: number; // FIXME number only for now https://github.com/mapbox/mapbox-gl-js/issues/2716\n  @Input() geometry: GeoJSON.GeometryObject;\n  @Input() properties: any;\n  type = 'Feature' as const;\n\n  private feature: GeoJSON.Feature<GeoJSON.GeometryObject>;\n\n  constructor(\n    @Inject(forwardRef(() => GeoJSONSourceComponent))\n    private GeoJSONSourceComponent: GeoJSONSourceComponent\n  ) {}\n\n  ngOnInit() {\n    if (!this.id) {\n      this.id = this.GeoJSONSourceComponent._getNewFeatureId();\n    }\n    this.feature = {\n      type: this.type,\n      geometry: this.geometry,\n      properties: this.properties ? this.properties : {},\n    };\n    this.feature.id = this.id;\n    this.GeoJSONSourceComponent._addFeature(this.feature);\n  }\n\n  ngOnDestroy() {\n    this.GeoJSONSourceComponent._removeFeature(this.feature);\n  }\n\n  updateCoordinates(coordinates: number[]) {\n    (this.feature.geometry as GeoJSON.Point).coordinates = coordinates;\n    this.GeoJSONSourceComponent.updateFeatureData.next(null);\n  }\n}\n","import {\n  Directive,\n  EventEmitter,\n  Host,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\nimport { MapMouseEvent } from 'mapbox-gl';\nimport { fromEvent, Observable, Subscription } from 'rxjs';\nimport { filter, switchMap, take, takeUntil, tap } from 'rxjs/operators';\nimport { LayerComponent } from '../layer/layer.component';\nimport { MapService } from '../map/map.service';\nimport { FeatureComponent } from '../source/geojson/feature.component';\nimport { deprecationWarning } from '../utils';\n\n@Directive({\n  selector: '[mglDraggable]',\n})\nexport class DraggableDirective implements OnInit, OnDestroy {\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('mglDraggable') layer?: LayerComponent;\n\n  @Output() featureDragStart = new EventEmitter<MapMouseEvent>();\n  @Output() featureDragEnd = new EventEmitter<MapMouseEvent>();\n  @Output() featureDrag = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use featureDragStart instead\n   */\n  @Output() dragStart = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use featureDragEnd instead\n   */\n  @Output() dragEnd = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use featureDrag instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() drag = new EventEmitter<MapMouseEvent>();\n\n  private sub = new Subscription();\n\n  constructor(\n    private mapService: MapService,\n    private ngZone: NgZone,\n    @Optional() @Host() private featureComponent?: FeatureComponent\n  ) {}\n\n  ngOnInit() {\n    this.warnDeprecatedOutputs();\n    let enter$;\n    let leave$;\n    let updateCoords;\n    if (this.featureComponent && this.layer) {\n      enter$ = this.layer.layerMouseEnter;\n      leave$ = this.layer.layerMouseLeave;\n      updateCoords = this.featureComponent.updateCoordinates.bind(\n        this.featureComponent\n      );\n      if (this.featureComponent.geometry.type !== 'Point') {\n        throw new Error('mglDraggable only support point feature');\n      }\n    } else {\n      throw new Error(\n        'mglDraggable can only be used on Feature (with a layer as input) or Marker'\n      );\n    }\n\n    this.handleDraggable(enter$, leave$, updateCoords);\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n  }\n\n  private handleDraggable(\n    enter$: Observable<MapMouseEvent>,\n    leave$: Observable<MapMouseEvent>,\n    updateCoords: (coord: number[]) => void\n  ) {\n    let moving = false;\n    let inside = false;\n    this.mapService.mapCreated$.subscribe(() => {\n      const mouseUp$ = fromEvent<MapMouseEvent>(\n        this.mapService.mapInstance,\n        'mouseup'\n      );\n      const dragStart$ = enter$.pipe(\n        filter(() => !moving),\n        filter((evt) => this.filterFeature(evt)),\n        tap(() => {\n          inside = true;\n          this.mapService.changeCanvasCursor('move');\n          this.mapService.updateDragPan(false);\n        }),\n        switchMap(() =>\n          fromEvent<MapMouseEvent>(\n            this.mapService.mapInstance,\n            'mousedown'\n          ).pipe(takeUntil(leave$))\n        )\n      );\n      const dragging$ = dragStart$.pipe(\n        switchMap(() =>\n          fromEvent<MapMouseEvent>(\n            this.mapService.mapInstance,\n            'mousemove'\n          ).pipe(takeUntil(mouseUp$))\n        )\n      );\n      const dragEnd$ = dragStart$.pipe(switchMap(() => mouseUp$.pipe(take(1))));\n      this.sub.add(\n        dragStart$.subscribe((evt) => {\n          moving = true;\n          if (this.featureDragStart.observed || this.dragStart.observed) {\n            this.ngZone.run(() => {\n              this.featureDragStart.emit(evt);\n              this.dragStart.emit(evt);\n            });\n          }\n        })\n      );\n      this.sub.add(\n        dragging$.subscribe((evt) => {\n          updateCoords([evt.lngLat.lng, evt.lngLat.lat]);\n          if (this.featureDrag.observed || this.drag.observed) {\n            this.ngZone.run(() => {\n              this.featureDrag.emit(evt);\n              this.drag.emit(evt);\n            });\n          }\n        })\n      );\n      this.sub.add(\n        dragEnd$.subscribe((evt) => {\n          moving = false;\n          if (this.featureDragEnd.observed || this.dragEnd.observed) {\n            this.ngZone.run(() => {\n              this.featureDragEnd.emit(evt);\n              this.dragEnd.emit(evt);\n            });\n          }\n          if (!inside) {\n            // It's possible to dragEnd outside the target (small input lag)\n            this.mapService.changeCanvasCursor('');\n            this.mapService.updateDragPan(true);\n          }\n        })\n      );\n      this.sub.add(\n        leave$\n          .pipe(\n            tap(() => (inside = false)),\n            filter(() => !moving)\n          )\n          .subscribe(() => {\n            this.mapService.changeCanvasCursor('');\n            this.mapService.updateDragPan(true);\n          })\n      );\n    });\n  }\n\n  private filterFeature(evt: MapMouseEvent) {\n    if (this.featureComponent && this.layer) {\n      const feature: GeoJSON.Feature<any> =\n        this.mapService.queryRenderedFeatures(evt.point, {\n          layers: [this.layer.id],\n          filter: [\n            'all',\n            ['==', '$type', 'Point'],\n            ['==', '$id', this.featureComponent.id],\n          ],\n        })[0];\n      if (!feature) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  private warnDeprecatedOutputs() {\n    const dw = deprecationWarning.bind(undefined, DraggableDirective.name);\n    if (this.dragStart.observed) {\n      dw('dragStart', 'featureDragStart');\n    }\n    if (this.dragEnd.observed) {\n      dw('dragEnd', 'featureDragEnd');\n    }\n    if (this.drag.observed) {\n      dw('drag', 'featureDrag');\n    }\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, startWith, switchMap } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\nimport { MapImageData, MapImageOptions } from '../map/map.types';\nimport { deprecationWarning } from '../utils';\n\n@Component({\n  selector: 'mgl-image',\n  template: '',\n})\nexport class ImageComponent implements OnInit, OnDestroy, OnChanges {\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() data?: MapImageData;\n  @Input() options?: MapImageOptions;\n  @Input() url?: string;\n\n  @Output() imageError = new EventEmitter<{ status: number }>();\n  @Output() imageLoaded = new EventEmitter<void>();\n  /**\n   * @deprecated Use imageError instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() error = new EventEmitter<{ status: number }>();\n  /**\n   * @deprecated Use imageLoaded instead\n   */\n  @Output() loaded = new EventEmitter<void>();\n\n  private isAdded = false;\n  private isAdding = false;\n  private sub: Subscription;\n\n  constructor(private mapService: MapService, private zone: NgZone) {}\n\n  ngOnInit() {\n    this.warnDeprecatedOutputs();\n    this.sub = this.mapService.mapLoaded$\n      .pipe(\n        switchMap(() =>\n          fromEvent(this.mapService.mapInstance, 'styledata').pipe(\n            startWith(undefined),\n            filter(\n              () =>\n                !this.isAdding && !this.mapService.mapInstance.hasImage(this.id)\n            )\n          )\n        )\n      )\n      .subscribe(() => this.init());\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (\n      (changes['data'] && !changes['data'].isFirstChange()) ||\n      (changes['options'] && !changes['options'].isFirstChange()) ||\n      (changes['url'] && !changes['url'].isFirstChange())\n    ) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.isAdded) {\n      this.mapService.removeImage(this.id);\n    }\n    if (this.sub) {\n      this.sub.unsubscribe();\n    }\n  }\n\n  private async init() {\n    this.isAdding = true;\n    if (this.data) {\n      this.mapService.addImage(this.id, this.data, this.options);\n      this.isAdded = true;\n      this.isAdding = false;\n    } else if (this.url) {\n      try {\n        await this.mapService.loadAndAddImage(this.id, this.url, this.options);\n        this.isAdded = true;\n        this.isAdding = false;\n        this.zone.run(() => {\n          this.imageLoaded.emit();\n          this.loaded.emit();\n        });\n      } catch (error: any) {\n        this.zone.run(() => {\n          this.imageError.emit(error);\n          this.error.emit(error);\n        });\n      }\n    }\n  }\n\n  private warnDeprecatedOutputs() {\n    const dw = deprecationWarning.bind(undefined, ImageComponent.name);\n    if (this.error.observed) {\n      dw('error', 'imageError');\n    }\n    if (this.loaded.observed) {\n      dw('loaded', 'imageLoaded');\n    }\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport {\n  AnimationOptions,\n  ErrorEvent,\n  LngLatBoundsLike,\n  Map,\n  MapContextEvent,\n  MapDataEvent,\n  MapMouseEvent,\n  MapSourceDataEvent,\n  MapStyleDataEvent,\n  MapTouchEvent,\n  MapWheelEvent,\n  MapEvent,\n  MapEvents,\n  MapOptions,\n  PointLike\n} from 'mapbox-gl';\nimport { lastValueFrom } from 'rxjs';\nimport { deprecationWarning } from '../utils';\nimport { MapService, MovingOptions } from './map.service';\nimport { NgxMapEvent, EventData } from './map.types';\n\n@Component({\n  selector: 'mgl-map',\n  template: '<div #container></div>',\n  styles: [\n    `\n      :host {\n        display: block;\n      }\n      div {\n        height: 100%;\n        width: 100%;\n      }\n    `,\n  ],\n  providers: [MapService],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapComponent\n  implements\n    OnChanges,\n    OnDestroy,\n    AfterViewInit,\n    Omit<MapOptions, 'bearing' | 'container' | 'pitch' | 'zoom'>,\n    NgxMapEvent\n{\n  /* Init inputs */\n  @Input() accessToken?: MapOptions['accessToken'];\n  @Input() collectResourceTiming?: MapOptions['collectResourceTiming'];\n  @Input() crossSourceCollisions?: MapOptions['crossSourceCollisions'];\n  @Input() customMapboxApiUrl?: string;\n  @Input() fadeDuration?: MapOptions['fadeDuration'];\n  @Input() hash?: MapOptions['hash'];\n  @Input() refreshExpiredTiles?: MapOptions['refreshExpiredTiles'];\n  @Input()\n  failIfMajorPerformanceCaveat?: MapOptions['failIfMajorPerformanceCaveat'];\n  @Input() bearingSnap?: MapOptions['bearingSnap'];\n  @Input() interactive?: MapOptions['interactive'];\n  @Input() pitchWithRotate?: MapOptions['pitchWithRotate'];\n  @Input() clickTolerance?: MapOptions['clickTolerance'];\n  @Input() attributionControl?: MapOptions['attributionControl'];\n  @Input() logoPosition?: MapOptions['logoPosition'];\n  @Input() maxTileCacheSize?: MapOptions['maxTileCacheSize'];\n  @Input() localIdeographFontFamily?: MapOptions['localIdeographFontFamily'];\n  @Input() preserveDrawingBuffer?: MapOptions['preserveDrawingBuffer'];\n  @Input() trackResize?: MapOptions['trackResize'];\n  @Input() transformRequest?: MapOptions['transformRequest'];\n  @Input() bounds?: MapOptions['bounds']; // Use fitBounds for dynamic input\n  @Input() antialias?: MapOptions['antialias'];\n  @Input() locale?: MapOptions['locale'];\n  @Input() cooperativeGestures?: MapOptions['cooperativeGestures'];\n\n  /* Dynamic inputs */\n  @Input() minZoom?: MapOptions['minZoom'];\n  @Input() maxZoom?: MapOptions['maxZoom'];\n  @Input() minPitch?: MapOptions['minPitch'];\n  @Input() maxPitch?: MapOptions['maxPitch'];\n  @Input() scrollZoom?: MapOptions['scrollZoom'];\n  @Input() dragRotate?: MapOptions['dragRotate'];\n  @Input() touchPitch?: MapOptions['touchPitch'];\n  @Input() touchZoomRotate?: MapOptions['touchZoomRotate'];\n  @Input() doubleClickZoom?: MapOptions['doubleClickZoom'];\n  @Input() keyboard?: MapOptions['keyboard'];\n  @Input() dragPan?: MapOptions['dragPan'];\n  @Input() boxZoom?: MapOptions['boxZoom'];\n  @Input() style: MapOptions['style'];\n  @Input() center?: MapOptions['center'];\n  @Input() maxBounds?: MapOptions['maxBounds'];\n  @Input() zoom?: [number];\n  @Input() bearing?: [number];\n  @Input() pitch?: [number];\n  // First value goes to options.fitBoundsOptions. Subsequents changes are passed to fitBounds\n  @Input() fitBoundsOptions?: MapOptions['fitBoundsOptions'];\n  @Input() renderWorldCopies?: MapOptions['renderWorldCopies'];\n  @Input() projection?: MapOptions['projection'];\n\n  /* Added by ngx-mapbox-gl */\n  @Input() movingMethod: 'jumpTo' | 'easeTo' | 'flyTo' = 'flyTo';\n  @Input() movingOptions?: MovingOptions;\n  // => First value is a alias to bounds input (since mapbox 0.53.0). Subsequents changes are passed to fitBounds\n  @Input() fitBounds?: LngLatBoundsLike;\n  @Input() fitScreenCoordinates?: [PointLike, PointLike];\n  @Input() centerWithPanTo?: boolean;\n  @Input() panToOptions?: AnimationOptions;\n  @Input() cursorStyle?: string;\n\n  @Output() mapResize = new EventEmitter<MapEvent>();\n  @Output() mapRemove = new EventEmitter<MapEvent>();\n  @Output() mapMouseDown = new EventEmitter<MapMouseEvent>();\n  @Output() mapMouseUp = new EventEmitter<MapMouseEvent>();\n  @Output() mapMouseMove = new EventEmitter<MapMouseEvent>();\n  @Output() mapClick = new EventEmitter<MapMouseEvent>();\n  @Output() mapDblClick = new EventEmitter<MapMouseEvent>();\n  @Output() mapMouseOver = new EventEmitter<MapMouseEvent>();\n  @Output() mapMouseOut = new EventEmitter<MapMouseEvent>();\n  @Output() mapContextMenu = new EventEmitter<MapMouseEvent>();\n  @Output() mapTouchStart = new EventEmitter<MapTouchEvent>();\n  @Output() mapTouchEnd = new EventEmitter<MapTouchEvent>();\n  @Output() mapTouchMove = new EventEmitter<MapTouchEvent>();\n  @Output() mapTouchCancel = new EventEmitter<MapTouchEvent>();\n  @Output() mapWheel = new EventEmitter<MapWheelEvent>();\n  @Output() moveStart = new EventEmitter<MapEvents['movestart']>();\n  @Output() move = new EventEmitter<MapEvents['move']>();\n  @Output() moveEnd = new EventEmitter<(MapEvents['moveend'])>();\n  @Output() mapDragStart = new EventEmitter<MapEvents['dragstart']>();\n  @Output() mapDrag = new EventEmitter<MapEvents['drag']>();\n  @Output() mapDragEnd = new EventEmitter<MapEvents['dragend']>();\n  @Output() zoomStart = new EventEmitter<MapEvents['zoomstart'] & EventData>();\n  @Output() zoomEvt = new EventEmitter<MapEvents['zoom'] & EventData>();\n  @Output() zoomEnd = new EventEmitter<MapEvents['zoomend'] & EventData>();\n  @Output() rotateStart = new EventEmitter<MapEvents['rotatestart']>();\n  @Output() rotate = new EventEmitter<MapEvents['rotate']>();\n  @Output() rotateEnd = new EventEmitter<MapEvents['rotateend']>();\n  @Output() pitchStart = new EventEmitter<MapEvents['pitchstart'] & EventData>();\n  @Output() pitchEvt = new EventEmitter<MapEvents['pitch'] & EventData>();\n  @Output() pitchEnd = new EventEmitter<MapEvents['pitchend'] & EventData>();\n  @Output() boxZoomStart = new EventEmitter<MapEvents['boxzoomstart'] & EventData>();\n  @Output() boxZoomEnd = new EventEmitter<MapEvents['boxzoomend'] & EventData>();\n  @Output() boxZoomCancel = new EventEmitter<MapEvents['boxzoomcancel'] & EventData>();\n  @Output() webGlContextLost = new EventEmitter<MapContextEvent>();\n  @Output() webGlContextRestored = new EventEmitter<\n    MapContextEvent\n  >();\n  @Output() mapLoad = new EventEmitter<MapEvent>();\n  @Output() mapCreate = new EventEmitter<Map>();\n  @Output() idle = new EventEmitter<MapEvent>();\n  @Output() render = new EventEmitter<MapEvent>();\n  @Output() mapError = new EventEmitter<ErrorEvent>();\n  @Output() data = new EventEmitter<MapDataEvent>();\n  @Output() styleData = new EventEmitter<MapStyleDataEvent>();\n  @Output() sourceData = new EventEmitter<MapSourceDataEvent>();\n  @Output() dataLoading = new EventEmitter<MapDataEvent>();\n  @Output() styleDataLoading = new EventEmitter<\n    MapStyleDataEvent\n  >();\n  @Output() sourceDataLoading = new EventEmitter<\n    MapSourceDataEvent\n  >();\n  @Output() styleImageMissing = new EventEmitter<{ id: string }>();\n\n  /**\n   * @deprecated Use mapResize instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() resize = new EventEmitter<MapEvent>();\n  /**\n   * @deprecated Use mapRemove instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() remove = new EventEmitter<MapEvent>();\n  /**\n   * @deprecated Use mapMouseDown instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() mouseDown = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapMouseUp instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() mouseUp = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapMouseMove instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() mouseMove = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapClick instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() click = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapDblClick instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() dblClick = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapMouseOver instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() mouseOver = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapMouseOut instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() mouseOut = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapContextMenu instead\n   */\n  @Output() contextMenu = new EventEmitter<MapMouseEvent>();\n  /**\n   * @deprecated Use mapTouchStart instead\n   */\n  @Output() touchStart = new EventEmitter<MapTouchEvent>();\n  /**\n   * @deprecated Use mapTouchEnd instead\n   */\n  @Output() touchEnd = new EventEmitter<MapTouchEvent>();\n  /**\n   * @deprecated Use mapTouchMove instead\n   */\n  @Output() touchMove = new EventEmitter<MapTouchEvent>();\n  /**\n   * @deprecated Use mapTouchCancel instead\n   */\n  @Output() touchCancel = new EventEmitter<MapTouchEvent>();\n  /**\n   * @deprecated Use mapWheel instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() wheel = new EventEmitter<MapWheelEvent>();\n  /**\n   * @deprecated Use mapDragStart instead\n   */\n  @Output() dragStart = new EventEmitter<MapEvents['dragstart']>();\n  /**\n   * @deprecated Use mapDrag instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() drag = new EventEmitter<MapEvents['drag']>();\n  /**\n   * @deprecated Use mapDragEnd instead\n   */\n  @Output() dragEnd = new EventEmitter<MapEvents['dragend']>();\n  /**\n   * @deprecated Use mapLoad instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() load = new EventEmitter<Map>();\n  /**\n   * @deprecated Use mapError instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() error = new EventEmitter<ErrorEvent>();\n\n  get mapInstance(): Map {\n    return this.mapService.mapInstance;\n  }\n\n  @ViewChild('container', { static: true }) mapContainer: ElementRef;\n\n  constructor(private mapService: MapService) {}\n\n  ngAfterViewInit() {\n    this.warnDeprecatedOutputs();\n    this.mapService.setup({\n      accessToken: this.accessToken,\n      customMapboxApiUrl: this.customMapboxApiUrl,\n      mapOptions: {\n        collectResourceTiming: this.collectResourceTiming,\n        container: this.mapContainer.nativeElement,\n        crossSourceCollisions: this.crossSourceCollisions,\n        fadeDuration: this.fadeDuration,\n        minZoom: this.minZoom,\n        maxZoom: this.maxZoom,\n        minPitch: this.minPitch,\n        maxPitch: this.maxPitch,\n        style: this.style,\n        hash: this.hash,\n        interactive: this.interactive,\n        bearingSnap: this.bearingSnap,\n        pitchWithRotate: this.pitchWithRotate,\n        clickTolerance: this.clickTolerance,\n        attributionControl: this.attributionControl,\n        logoPosition: this.logoPosition,\n        failIfMajorPerformanceCaveat: this.failIfMajorPerformanceCaveat,\n        preserveDrawingBuffer: this.preserveDrawingBuffer,\n        refreshExpiredTiles: this.refreshExpiredTiles,\n        maxBounds: this.maxBounds,\n        scrollZoom: this.scrollZoom,\n        boxZoom: this.boxZoom,\n        dragRotate: this.dragRotate,\n        dragPan: this.dragPan,\n        keyboard: this.keyboard,\n        doubleClickZoom: this.doubleClickZoom,\n        touchPitch: this.touchPitch,\n        touchZoomRotate: this.touchZoomRotate,\n        trackResize: this.trackResize,\n        center: this.center,\n        zoom: this.zoom,\n        bearing: this.bearing,\n        pitch: this.pitch,\n        renderWorldCopies: this.renderWorldCopies,\n        maxTileCacheSize: this.maxTileCacheSize,\n        localIdeographFontFamily: this.localIdeographFontFamily,\n        transformRequest: this.transformRequest,\n        bounds: this.bounds ? this.bounds : this.fitBounds,\n        fitBoundsOptions: this.fitBoundsOptions,\n        antialias: this.antialias,\n        locale: this.locale,\n        cooperativeGestures: this.cooperativeGestures,\n        projection: this.projection,\n      },\n      mapEvents: this,\n    });\n    if (this.cursorStyle) {\n      this.mapService.changeCanvasCursor(this.cursorStyle);\n    }\n  }\n\n  ngOnDestroy() {\n    this.mapService.destroyMap();\n  }\n\n  async ngOnChanges(changes: SimpleChanges) {\n    await lastValueFrom(this.mapService.mapCreated$);\n    if (changes['cursorStyle'] && !changes['cursorStyle'].isFirstChange()) {\n      this.mapService.changeCanvasCursor(changes['cursorStyle'].currentValue);\n    }\n    if (changes['projection'] && !changes['projection'].isFirstChange()) {\n      this.mapService.updateProjection(changes['projection'].currentValue);\n    }\n    if (changes['minZoom'] && !changes['minZoom'].isFirstChange()) {\n      this.mapService.updateMinZoom(changes['minZoom'].currentValue);\n    }\n    if (changes['maxZoom'] && !changes['maxZoom'].isFirstChange()) {\n      this.mapService.updateMaxZoom(changes['maxZoom'].currentValue);\n    }\n    if (changes['minPitch'] && !changes['minPitch'].isFirstChange()) {\n      this.mapService.updateMinPitch(changes['minPitch'].currentValue);\n    }\n    if (changes['maxPitch'] && !changes['maxPitch'].isFirstChange()) {\n      this.mapService.updateMaxPitch(changes['maxPitch'].currentValue);\n    }\n    if (\n      changes['renderWorldCopies'] &&\n      !changes['renderWorldCopies'].isFirstChange()\n    ) {\n      this.mapService.updateRenderWorldCopies(\n        changes['renderWorldCopies'].currentValue\n      );\n    }\n    if (changes['scrollZoom'] && !changes['scrollZoom'].isFirstChange()) {\n      this.mapService.updateScrollZoom(changes['scrollZoom'].currentValue);\n    }\n    if (changes['dragRotate'] && !changes['dragRotate'].isFirstChange()) {\n      this.mapService.updateDragRotate(changes['dragRotate'].currentValue);\n    }\n    if (changes['touchPitch'] && !changes['touchPitch'].isFirstChange()) {\n      this.mapService.updateTouchPitch(changes['touchPitch'].currentValue);\n    }\n    if (\n      changes['touchZoomRotate'] &&\n      !changes['touchZoomRotate'].isFirstChange()\n    ) {\n      this.mapService.updateTouchZoomRotate(\n        changes['touchZoomRotate'].currentValue\n      );\n    }\n    if (\n      changes['doubleClickZoom'] &&\n      !changes['doubleClickZoom'].isFirstChange()\n    ) {\n      this.mapService.updateDoubleClickZoom(\n        changes['doubleClickZoom'].currentValue\n      );\n    }\n    if (changes['keyboard'] && !changes['keyboard'].isFirstChange()) {\n      this.mapService.updateKeyboard(changes['keyboard'].currentValue);\n    }\n    if (changes['dragPan'] && !changes['dragPan'].isFirstChange()) {\n      this.mapService.updateDragPan(changes['dragPan'].currentValue);\n    }\n    if (changes['boxZoom'] && !changes['boxZoom'].isFirstChange()) {\n      this.mapService.updateBoxZoom(changes['boxZoom'].currentValue);\n    }\n    if (changes['style'] && !changes['style'].isFirstChange()) {\n      this.mapService.updateStyle(changes['style'].currentValue);\n    }\n    if (changes['maxBounds'] && !changes['maxBounds'].isFirstChange()) {\n      this.mapService.updateMaxBounds(changes['maxBounds'].currentValue);\n    }\n    if (\n      changes['fitBounds'] &&\n      changes['fitBounds'].currentValue &&\n      !changes['fitBounds'].isFirstChange()\n    ) {\n      this.mapService.fitBounds(\n        changes['fitBounds'].currentValue,\n        this.fitBoundsOptions\n      );\n    }\n    if (\n      changes['fitScreenCoordinates'] &&\n      changes['fitScreenCoordinates'].currentValue\n    ) {\n      if (\n        (this.center || this.zoom || this.pitch || this.fitBounds) &&\n        changes['fitScreenCoordinates'].isFirstChange()\n      ) {\n        console.warn(\n          '[ngx-mapbox-gl] center / zoom / pitch / fitBounds inputs are being overridden by fitScreenCoordinates input'\n        );\n      }\n      this.mapService.fitScreenCoordinates(\n        changes['fitScreenCoordinates'].currentValue,\n        this.bearing ? this.bearing[0] : 0,\n        this.movingOptions\n      );\n    }\n    if (\n      this.centerWithPanTo &&\n      changes['center'] &&\n      !changes['center'].isFirstChange() &&\n      !changes['zoom'] &&\n      !changes['bearing'] &&\n      !changes['pitch']\n    ) {\n      this.mapService.panTo(this.center!, this.panToOptions);\n    } else if (\n      (changes['center'] && !changes['center'].isFirstChange()) ||\n      (changes['zoom'] && !changes['zoom'].isFirstChange()) ||\n      (changes['bearing'] &&\n        !changes['bearing'].isFirstChange() &&\n        !changes['fitScreenCoordinates']) ||\n      (changes['pitch'] && !changes['pitch'].isFirstChange())\n    ) {\n      this.mapService.move(\n        this.movingMethod,\n        this.movingOptions,\n        changes['zoom'] && this.zoom ? this.zoom[0] : undefined,\n        changes['center'] ? this.center : undefined,\n        changes['bearing'] && this.bearing ? this.bearing[0] : undefined,\n        changes['pitch'] && this.pitch ? this.pitch[0] : undefined\n      );\n    }\n  }\n\n  private warnDeprecatedOutputs() {\n    const dw = deprecationWarning.bind(undefined, MapComponent.name);\n    if (this.resize.observed) {\n      dw('resize', 'mapResize');\n    }\n    if (this.remove.observed) {\n      dw('remove', 'mapRemove');\n    }\n    if (this.mouseDown.observed) {\n      dw('mouseDown', 'mapMouseDown');\n    }\n    if (this.mouseUp.observed) {\n      dw('mouseUp', 'mapMouseUp');\n    }\n    if (this.mouseMove.observed) {\n      dw('mouseMove', 'mapMouseMove');\n    }\n    if (this.click.observed) {\n      dw('click', 'mapClick');\n    }\n    if (this.dblClick.observed) {\n      dw('dblClick', 'mapDblClick');\n    }\n    if (this.mouseOver.observed) {\n      dw('mouseOver', 'mapMouseOver');\n    }\n    if (this.mouseOut.observed) {\n      dw('mouseOut', 'mapMouseOut');\n    }\n    if (this.contextMenu.observed) {\n      dw('contextMenu', 'mapContextMenu');\n    }\n    if (this.touchStart.observed) {\n      dw('touchStart', 'mapTouchStart');\n    }\n    if (this.touchEnd.observed) {\n      dw('touchEnd', 'mapTouchEnd');\n    }\n    if (this.touchMove.observed) {\n      dw('touchMove', 'mapTouchMove');\n    }\n    if (this.touchCancel.observed) {\n      dw('touchCancel', 'mapTouchCancel');\n    }\n    if (this.wheel.observed) {\n      dw('wheel', 'mapWheel');\n    }\n    if (this.dragStart.observed) {\n      dw('dragStart', 'mapDragStart');\n    }\n    if (this.drag.observed) {\n      dw('drag', 'mapDrag');\n    }\n    if (this.dragEnd.observed) {\n      dw('dragEnd', 'mapDragEnd');\n    }\n    if (this.load.observed) {\n      dw('load', 'mapLoad');\n    }\n    if (this.error.observed) {\n      dw('error', 'mapError');\n    }\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { LngLatLike, Marker, MarkerOptions } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { deprecationWarning } from '../utils';\n\n@Component({\n  selector: 'mgl-marker',\n  template: '<div [class]=\"className\" #content><ng-content></ng-content></div>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkerComponent\n  implements OnChanges, OnDestroy, AfterViewInit, OnInit\n{\n  /* Init input */\n  @Input() offset?: MarkerOptions['offset'];\n  @Input() anchor?: MarkerOptions['anchor'];\n  @Input() clickTolerance?: MarkerOptions['clickTolerance'];\n\n  /* Dynamic input */\n  @Input() feature?: GeoJSON.Feature<GeoJSON.Point>;\n  @Input() lngLat?: LngLatLike;\n  @Input() draggable?: MarkerOptions['draggable'];\n  @Input() popupShown?: boolean;\n  @Input() className: string;\n  @Input() pitchAlignment?: MarkerOptions['pitchAlignment'];\n  @Input() rotationAlignment?: MarkerOptions['rotationAlignment'];\n\n  @Output() markerDragStart = new EventEmitter<Marker>();\n  @Output() markerDragEnd = new EventEmitter<Marker>();\n  @Output() markerDrag = new EventEmitter<Marker>();\n  /**\n   * @deprecated Use markerDragStart instead\n   */\n  @Output() dragStart = new EventEmitter<Marker>();\n  /**\n   * @deprecated Use markerDragEnd instead\n   */\n  @Output() dragEnd = new EventEmitter<Marker>();\n  /**\n   * @deprecated Use markerDrag instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() drag = new EventEmitter<Marker>();\n\n  @ViewChild('content', { static: true }) content: ElementRef;\n\n  markerInstance?: Marker;\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    this.warnDeprecatedOutputs();\n    if (this.feature && this.lngLat) {\n      throw new Error('feature and lngLat input are mutually exclusive');\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['lngLat'] && !changes['lngLat'].isFirstChange()) {\n      this.markerInstance!.setLngLat(this.lngLat!);\n    }\n    if (changes['feature'] && !changes['feature'].isFirstChange()) {\n      this.markerInstance!.setLngLat(\n        this.feature!.geometry!.coordinates as [number, number]\n      );\n    }\n    if (changes['draggable'] && !changes['draggable'].isFirstChange()) {\n      this.markerInstance!.setDraggable(!!this.draggable);\n    }\n    if (changes['popupShown'] && !changes['popupShown'].isFirstChange()) {\n      changes['popupShown'].currentValue\n        ? this.markerInstance!.getPopup()?.addTo(this.mapService.mapInstance)\n        : this.markerInstance!.getPopup()?.remove();\n    }\n    if (\n      changes['pitchAlignment'] &&\n      !changes['pitchAlignment'].isFirstChange()\n    ) {\n      this.markerInstance!.setPitchAlignment(\n        changes['pitchAlignment'].currentValue\n      );\n    }\n    if (\n      changes['rotationAlignment'] &&\n      !changes['rotationAlignment'].isFirstChange()\n    ) {\n      this.markerInstance!.setRotationAlignment(\n        changes['rotationAlignment'].currentValue\n      );\n    }\n  }\n\n  ngAfterViewInit() {\n    this.mapService.mapCreated$.subscribe(() => {\n      this.markerInstance = this.mapService.addMarker({\n        markersOptions: {\n          offset: this.offset,\n          anchor: this.anchor,\n          pitchAlignment: this.pitchAlignment,\n          rotationAlignment: this.rotationAlignment,\n          draggable: !!this.draggable,\n          element: this.content.nativeElement,\n          feature: this.feature,\n          lngLat: this.lngLat,\n          clickTolerance: this.clickTolerance,\n        },\n        markersEvents: {\n          markerDragStart: this.markerDragStart,\n          markerDrag: this.markerDrag,\n          markerDragEnd: this.markerDragEnd,\n          dragStart: this.markerDragStart,\n          drag: this.markerDrag,\n          dragEnd: this.markerDragEnd,\n        },\n      });\n    });\n  }\n\n  ngOnDestroy() {\n    this.mapService.removeMarker(this.markerInstance!);\n    this.markerInstance = undefined;\n  }\n\n  togglePopup() {\n    this.markerInstance!.togglePopup();\n  }\n\n  updateCoordinates(coordinates: number[]) {\n    this.markerInstance!.setLngLat(coordinates as [number, number]);\n  }\n\n  private warnDeprecatedOutputs() {\n    const dw = deprecationWarning.bind(undefined, MarkerComponent.name);\n    if (this.markerDragStart.observed) {\n      dw('dragStart', 'markerDragStart');\n    }\n    if (this.markerDragEnd.observed) {\n      dw('dragEnd', 'markerDragEnd');\n    }\n    if (this.markerDrag.observed) {\n      dw('drag', 'markerDrag');\n    }\n  }\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  Directive,\n  Input,\n  NgZone,\n  OnDestroy,\n  TemplateRef,\n} from '@angular/core';\nimport { MapboxGeoJSONFeature, MapSourceDataEvent } from 'mapbox-gl';\nimport { fromEvent, merge, Subscription } from 'rxjs';\nimport { filter, startWith, switchMap } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\n\n@Directive({ selector: 'ng-template[mglPoint]' })\nexport class PointDirective {}\n\n@Directive({ selector: 'ng-template[mglClusterPoint]' })\nexport class ClusterPointDirective {}\n\nlet uniqId = 0;\n\n@Component({\n  selector: 'mgl-markers-for-clusters',\n  template: `\n    <mgl-layer\n      [id]=\"layerId\"\n      [source]=\"source\"\n      type=\"circle\"\n      [paint]=\"{ 'circle-radius': 0 }\"\n    ></mgl-layer>\n    <ng-container\n      *ngFor=\"let feature of clusterPoints; trackBy: trackByClusterPoint\"\n    >\n      <ng-container *ngIf=\"feature.properties!['cluster']\">\n        <mgl-marker [feature]=\"$any(feature)\">\n          <ng-container\n            *ngTemplateOutlet=\"clusterPointTpl; context: { $implicit: feature }\"\n          ></ng-container>\n        </mgl-marker>\n      </ng-container>\n      <ng-container *ngIf=\"!feature.properties!['cluster']\">\n        <mgl-marker [feature]=\"$any(feature)\">\n          <ng-container\n            *ngTemplateOutlet=\"pointTpl!; context: { $implicit: feature }\"\n          ></ng-container>\n        </mgl-marker>\n      </ng-container>\n    </ng-container>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n})\nexport class MarkersForClustersComponent\n  implements OnDestroy, AfterContentInit\n{\n  /* Init input */\n  @Input() source: string;\n\n  @ContentChild(PointDirective, { read: TemplateRef, static: false })\n  pointTpl?: TemplateRef<unknown>;\n  @ContentChild(ClusterPointDirective, { read: TemplateRef, static: false })\n  clusterPointTpl: TemplateRef<unknown>;\n\n  clusterPoints!: MapboxGeoJSONFeature[]; // Incorrect typings\n  layerId = `mgl-markers-for-clusters-${uniqId++}`;\n\n  private sub = new Subscription();\n\n  constructor(\n    private mapService: MapService,\n    private ChangeDetectorRef: ChangeDetectorRef,\n    private zone: NgZone\n  ) {}\n\n  ngAfterContentInit() {\n    const clusterDataUpdate = () =>\n      fromEvent<MapSourceDataEvent>(this.mapService.mapInstance, 'data').pipe(\n        filter(\n          (e) =>\n            e.sourceId === this.source &&\n            e.sourceDataType !== 'metadata' &&\n            this.mapService.mapInstance.isSourceLoaded(this.source)\n        )\n      );\n    const sub = this.mapService.mapCreated$\n      .pipe(\n        switchMap(clusterDataUpdate),\n        switchMap(() =>\n          merge(\n            fromEvent(this.mapService.mapInstance, 'move'),\n            fromEvent(this.mapService.mapInstance, 'moveend')\n          ).pipe(startWith(undefined))\n        )\n      )\n      .subscribe(() => {\n        this.zone.run(() => {\n          this.updateCluster();\n        });\n      });\n    this.sub.add(sub);\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n  }\n\n  trackByClusterPoint(_index: number, clusterPoint: MapboxGeoJSONFeature) {\n    return clusterPoint.id;\n  }\n\n  private updateCluster() {\n    // Invalid queryRenderedFeatures typing\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const params: any = { layers: [this.layerId] };\n    if (!this.pointTpl) {\n      params.filter = ['==', 'cluster', true];\n    }\n    this.clusterPoints =\n      this.mapService.mapInstance.queryRenderedFeatures(params);\n    this.ChangeDetectorRef.markForCheck();\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport { LngLatLike, PointLike, Popup, PopupOptions } from 'mapbox-gl';\nimport { MapService } from '../map/map.service';\nimport { MarkerComponent } from '../marker/marker.component';\nimport { deprecationWarning } from '../utils';\n\n@Component({\n  selector: 'mgl-popup',\n  template: '<div #content><ng-content></ng-content></div>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopupComponent\n  implements OnChanges, OnDestroy, AfterViewInit, OnInit\n{\n  /* Init input */\n  @Input() closeButton?: PopupOptions['closeButton'];\n  @Input() closeOnClick?: PopupOptions['closeOnClick'];\n  @Input() closeOnMove?: PopupOptions['closeOnMove'];\n  @Input() focusAfterOpen?: PopupOptions['focusAfterOpen'];\n  @Input() anchor?: PopupOptions['anchor'];\n  @Input() className?: PopupOptions['className'];\n  @Input() maxWidth?: PopupOptions['maxWidth'];\n\n  /* Dynamic input */\n  @Input() feature?: GeoJSON.Feature<GeoJSON.Point>;\n  @Input() lngLat?: LngLatLike;\n  @Input() marker?: MarkerComponent;\n  @Input() offset?: number | PointLike | { [anchor: string]: [number, number] };\n\n  @Output() popupClose = new EventEmitter<void>();\n  @Output() popupOpen = new EventEmitter<void>();\n  /**\n   * @deprecated Use popupClose instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() close = new EventEmitter<void>();\n  /**\n   * @deprecated Use popupOpen instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() open = new EventEmitter<void>();\n\n  @ViewChild('content', { static: true }) content: ElementRef;\n\n  popupInstance?: Popup;\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    this.warnDeprecatedOutputs();\n    if (\n      (this.lngLat && this.marker) ||\n      (this.feature && this.lngLat) ||\n      (this.feature && this.marker)\n    ) {\n      throw new Error('marker, lngLat, feature input are mutually exclusive');\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (\n      (changes['lngLat'] && !changes['lngLat'].isFirstChange()) ||\n      (changes['feature'] && !changes['feature'].isFirstChange())\n    ) {\n      const newlngLat = changes['lngLat']\n        ? this.lngLat!\n        : (this.feature!.geometry!.coordinates! as [number, number]);\n      this.mapService.removePopupFromMap(this.popupInstance!, true);\n      const popupInstanceTmp = this.createPopup();\n      this.mapService.addPopupToMap(\n        popupInstanceTmp,\n        newlngLat,\n        this.popupInstance!.isOpen()\n      );\n      this.popupInstance = popupInstanceTmp;\n    }\n    if (changes['marker'] && !changes['marker'].isFirstChange()) {\n      const previousMarker: MarkerComponent = changes['marker'].previousValue;\n      if (previousMarker.markerInstance) {\n        this.mapService.removePopupFromMarker(previousMarker.markerInstance);\n      }\n      if (this.marker && this.marker.markerInstance && this.popupInstance) {\n        this.mapService.addPopupToMarker(\n          this.marker.markerInstance,\n          this.popupInstance\n        );\n      }\n    }\n    if (\n      changes['offset'] &&\n      !changes['offset'].isFirstChange() &&\n      this.popupInstance\n    ) {\n      this.popupInstance.setOffset(this.offset);\n    }\n  }\n\n  ngAfterViewInit() {\n    this.popupInstance = this.createPopup();\n    this.addPopup(this.popupInstance);\n  }\n\n  ngOnDestroy() {\n    if (this.popupInstance) {\n      if (this.lngLat || this.feature) {\n        this.mapService.removePopupFromMap(this.popupInstance);\n      } else if (this.marker && this.marker.markerInstance) {\n        this.mapService.removePopupFromMarker(this.marker.markerInstance);\n      }\n    }\n    this.popupInstance = undefined;\n  }\n\n  private createPopup() {\n    return this.mapService.createPopup(\n      {\n        popupOptions: {\n          closeButton: this.closeButton,\n          closeOnClick: this.closeOnClick,\n          closeOnMove: this.closeOnMove,\n          focusAfterOpen: this.focusAfterOpen,\n          anchor: this.anchor,\n          offset: this.offset,\n          className: this.className,\n          maxWidth: this.maxWidth,\n        },\n        popupEvents: {\n          open: this.open,\n          close: this.close,\n          popupOpen: this.popupOpen,\n          popupClose: this.popupClose,\n        },\n      },\n      this.content.nativeElement\n    );\n  }\n\n  private addPopup(popup: Popup) {\n    this.mapService.mapCreated$.subscribe(() => {\n      if (this.lngLat || this.feature) {\n        this.mapService.addPopupToMap(\n          popup,\n          this.lngLat\n            ? this.lngLat\n            : (this.feature!.geometry!.coordinates! as [number, number])\n        );\n      } else if (this.marker && this.marker.markerInstance) {\n        this.mapService.addPopupToMarker(this.marker.markerInstance, popup);\n      } else {\n        throw new Error(\n          'mgl-popup need either lngLat/marker/feature to be set'\n        );\n      }\n    });\n  }\n\n  private warnDeprecatedOutputs() {\n    const dw = deprecationWarning.bind(undefined, PopupComponent.name);\n    if (this.close.observed) {\n      dw('close', 'popupClose');\n    }\n    if (this.open.observed) {\n      dw('open', 'popupOpen');\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { CanvasSource } from 'mapbox-gl';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\n\n// TODO: Remove Add CanvasSourceSpecification from mapbox-gl after release 3.8\ntype CanvasSourceSpecification = {\n  [\"type\"]: \"canvas\";\n  [\"coordinates\"]: [\n    [\n      number,\n      number\n    ],\n    [\n      number,\n      number\n    ],\n    [\n      number,\n      number\n    ],\n    [\n      number,\n      number\n    ]\n  ];\n  [\"animate\"]?: boolean;\n  [\"canvas\"]: string | HTMLCanvasElement;\n}\n\n@Component({\n  selector: 'mgl-canvas-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CanvasSourceComponent\n  implements OnInit, OnDestroy, OnChanges, CanvasSourceSpecification\n{\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() coordinates: CanvasSourceSpecification['coordinates'];\n  @Input() canvas: CanvasSourceSpecification['canvas'];\n  @Input() animate?: CanvasSourceSpecification['animate'];\n\n  type: CanvasSourceSpecification['type'] = 'canvas';\n\n  private sourceAdded = false;\n  private sub = new Subscription();\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    const sub1 = this.mapService.mapLoaded$.subscribe(() => {\n      this.init();\n      const sub = fromEvent(this.mapService.mapInstance, 'styledata')\n        .pipe(filter(() => !this.mapService.mapInstance.getSource(this.id)))\n        .subscribe(() => {\n          this.init();\n        });\n      this.sub.add(sub);\n    });\n    this.sub.add(sub1);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.sourceAdded) {\n      return;\n    }\n    if (\n      (changes['canvas'] && !changes['canvas'].isFirstChange()) ||\n      (changes['animate'] && !changes['animate'].isFirstChange())\n    ) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    } else if (\n      changes['coordinates'] &&\n      !changes['coordinates'].isFirstChange()\n    ) {\n      const source = this.mapService.getSource<CanvasSource>(this.id);\n      if (source === undefined) {\n        return;\n      }\n      source.setCoordinates(this.coordinates);\n    }\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    if (this.sourceAdded) {\n      this.mapService.removeSource(this.id);\n      this.sourceAdded = false;\n    }\n  }\n\n  private init() {\n    const source: CanvasSourceSpecification = {\n      type: 'canvas',\n      coordinates: this.coordinates,\n      canvas: this.canvas,\n      animate: this.animate,\n    };\n    // @ts-ignore TODO: Remove after release 3.8\n    this.mapService.addSource(this.id, source);\n    this.sourceAdded = true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { ImageSource, ImageSourceSpecification } from 'mapbox-gl';\nimport { Subscription } from 'rxjs';\nimport { MapService } from '../map/map.service';\n\n@Component({\n  selector: 'mgl-image-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImageSourceComponent\n  implements OnInit, OnDestroy, OnChanges, ImageSourceSpecification\n{\n  type: \"image\";\n\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() url: ImageSourceSpecification['url'];\n  @Input() coordinates: ImageSourceSpecification['coordinates'];\n\n  private sub: Subscription;\n  private sourceId?: string;\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    this.sub = this.mapService.mapLoaded$.subscribe(() => this.init());\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (this.sourceId === undefined) {\n      return;\n    }\n\n    const source = this.mapService.getSource<ImageSource>(this.sourceId);\n    if (source === undefined) {\n      return;\n    }\n    source.updateImage({\n      // @ts-ignore\n      url: changes['url'] === undefined ? undefined : this.url,\n      coordinates:\n        changes['coordinates'] === undefined ? undefined : this.coordinates,\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.sub !== undefined) {\n      this.sub.unsubscribe();\n    }\n\n    if (this.sourceId !== undefined) {\n      this.mapService.removeSource(this.sourceId);\n      this.sourceId = undefined;\n    }\n  }\n\n  private init() {\n    const imageSource: ImageSourceSpecification = {\n      type: 'image',\n      url: this.url,\n      coordinates: this.coordinates,\n    };\n    this.mapService.addSource(this.id, imageSource);\n    this.sourceId = this.id;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { RasterDEMSourceSpecification } from 'mapbox-gl';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\n\n@Component({\n  selector: 'mgl-raster-dem-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RasterDemSourceComponent\n  implements OnInit, OnDestroy, OnChanges, RasterDEMSourceSpecification\n{\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() url?: RasterDEMSourceSpecification['url'];\n  @Input() tiles?: RasterDEMSourceSpecification['tiles'];\n  @Input() bounds?: RasterDEMSourceSpecification['bounds'];\n  @Input() minzoom?: RasterDEMSourceSpecification['minzoom'];\n  @Input() maxzoom?: RasterDEMSourceSpecification['maxzoom'];\n  @Input() tileSize?: RasterDEMSourceSpecification['tileSize'];\n  @Input() attribution?: RasterDEMSourceSpecification['attribution'];\n  @Input() encoding?: RasterDEMSourceSpecification['encoding'];\n\n  type: RasterDEMSourceSpecification['type'] = 'raster-dem';\n  [_: string]: unknown;\n\n  private sourceAdded = false;\n  private sub = new Subscription();\n\n  constructor(private mapService: MapService) {}\n\n\n  ngOnInit() {\n    const sub1 = this.mapService.mapLoaded$.subscribe(() => {\n      this.init();\n      const sub = fromEvent(this.mapService.mapInstance, 'styledata')\n        .pipe(filter(() => !this.mapService.mapInstance.getSource(this.id)))\n        .subscribe(() => {\n          this.init();\n        });\n      this.sub.add(sub);\n    });\n    this.sub.add(sub1);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.sourceAdded) {\n      return;\n    }\n    if (\n      (changes['url'] && !changes['url'].isFirstChange()) ||\n      (changes['tiles'] && !changes['tiles'].isFirstChange()) ||\n      (changes['bounds'] && !changes['bounds'].isFirstChange()) ||\n      (changes['minzoom'] && !changes['minzoom'].isFirstChange()) ||\n      (changes['maxzoom'] && !changes['maxzoom'].isFirstChange()) ||\n      (changes['tileSize'] && !changes['tileSize'].isFirstChange()) ||\n      (changes['attribution'] && !changes['attribution'].isFirstChange()) ||\n      (changes['encoding'] && !changes['encoding'].isFirstChange())\n    ) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    }\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    if (this.sourceAdded) {\n      this.mapService.removeSource(this.id);\n      this.sourceAdded = false;\n    }\n  }\n\n  private init() {\n    const source: RasterDEMSourceSpecification = {\n      type: this.type,\n      url: this.url,\n      tiles: this.tiles,\n      bounds: this.bounds,\n      minzoom: this.minzoom,\n      maxzoom: this.maxzoom,\n      tileSize: this.tileSize,\n      attribution: this.attribution,\n      encoding: this.encoding,\n    };\n    this.mapService.addSource(this.id, source);\n    this.sourceAdded = true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { RasterSourceSpecification } from 'mapbox-gl';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\n\n@Component({\n  selector: 'mgl-raster-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RasterSourceComponent\n  implements OnInit, OnDestroy, OnChanges, RasterSourceSpecification\n{\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() url?: RasterSourceSpecification['url'];\n  @Input() tiles?: RasterSourceSpecification['tiles'];\n  @Input() bounds?: RasterSourceSpecification['bounds'];\n  @Input() minzoom?: RasterSourceSpecification['minzoom'];\n  @Input() maxzoom?: RasterSourceSpecification['maxzoom'];\n  @Input() tileSize?: RasterSourceSpecification['tileSize'];\n  @Input() scheme?: RasterSourceSpecification['scheme'];\n  @Input() attribution?: RasterSourceSpecification['attribution'];\n\n  type: RasterSourceSpecification['type'] = 'raster';\n  [_: string]: unknown;\n\n  private sourceAdded = false;\n  private sub = new Subscription();\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    const sub1 = this.mapService.mapLoaded$.subscribe(() => {\n      this.init();\n      const sub = fromEvent(this.mapService.mapInstance, 'styledata')\n        .pipe(filter(() => !this.mapService.mapInstance.getSource(this.id)))\n        .subscribe(() => {\n          this.init();\n        });\n      this.sub.add(sub);\n    });\n    this.sub.add(sub1);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.sourceAdded) {\n      return;\n    }\n    if (\n      (changes['url'] && !changes['url'].isFirstChange()) ||\n      (changes['tiles'] && !changes['tiles'].isFirstChange()) ||\n      (changes['bounds'] && !changes['bounds'].isFirstChange()) ||\n      (changes['minzoom'] && !changes['minzoom'].isFirstChange()) ||\n      (changes['maxzoom'] && !changes['maxzoom'].isFirstChange()) ||\n      (changes['tileSize'] && !changes['tileSize'].isFirstChange()) ||\n      (changes['scheme'] && !changes['scheme'].isFirstChange()) ||\n      (changes['attribution'] && !changes['attribution'].isFirstChange())\n    ) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    }\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    if (this.sourceAdded) {\n      this.mapService.removeSource(this.id);\n      this.sourceAdded = false;\n    }\n  }\n\n  private init() {\n    const source: RasterSourceSpecification = {\n      type: this.type,\n      url: this.url,\n      tiles: this.tiles,\n      bounds: this.bounds,\n      minzoom: this.minzoom,\n      maxzoom: this.maxzoom,\n      tileSize: this.tileSize,\n      scheme: this.scheme,\n      attribution: this.attribution,\n    };\n    this.mapService.addSource(this.id, source);\n    this.sourceAdded = true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { VectorTileSource, VectorSourceSpecification } from 'mapbox-gl';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\n\n@Component({\n  selector: 'mgl-vector-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VectorSourceComponent\n  implements OnInit, OnDestroy, OnChanges, VectorSourceSpecification\n{\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() url?: VectorSourceSpecification['url'];\n  @Input() tiles?: VectorSourceSpecification['tiles'];\n  @Input() bounds?: VectorSourceSpecification['bounds'];\n  @Input() scheme?: VectorSourceSpecification['scheme'];\n  @Input() minzoom?: VectorSourceSpecification['minzoom'];\n  @Input() maxzoom?: VectorSourceSpecification['maxzoom'];\n  @Input() attribution?: VectorSourceSpecification['attribution'];\n  @Input() promoteId?: VectorSourceSpecification['promoteId'];\n\n  type: VectorSourceSpecification['type'] = 'vector';\n  [_: string]: unknown;\n\n  private sourceAdded = false;\n  private sub = new Subscription();\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    const sub1 = this.mapService.mapLoaded$.subscribe(() => {\n      this.init();\n      const sub = fromEvent(this.mapService.mapInstance, 'styledata')\n        .pipe(filter(() => !this.mapService.mapInstance.getSource(this.id)))\n        .subscribe(() => {\n          this.init();\n        });\n      this.sub.add(sub);\n    });\n    this.sub.add(sub1);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.sourceAdded) {\n      return;\n    }\n\n    if (\n      (changes['bounds'] && !changes['bounds'].isFirstChange()) ||\n      (changes['scheme'] && !changes['scheme'].isFirstChange()) ||\n      (changes['minzoom'] && !changes['minzoom'].isFirstChange()) ||\n      (changes['maxzoom'] && !changes['maxzoom'].isFirstChange()) ||\n      (changes['attribution'] && !changes['attribution'].isFirstChange()) ||\n      (changes['promoteId'] && !changes['promoteId'].isFirstChange())\n    ) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    } else if (\n      (changes['url'] && !changes['url'].isFirstChange()) ||\n      (changes['tiles'] && !changes['tiles'].isFirstChange())\n    ) {\n      const source = this.mapService.getSource<VectorTileSource>(this.id);\n      if (source === undefined) {\n        return;\n      }\n      if (changes['url'] && this.url) {\n        source.setUrl(this.url);\n      }\n\n      if (changes['tiles'] && this.tiles) {\n        source.setTiles(this.tiles);\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    if (this.sourceAdded) {\n      this.mapService.removeSource(this.id);\n      this.sourceAdded = false;\n    }\n  }\n\n  private init() {\n    const source: VectorSourceSpecification = {\n      type: this.type,\n      url: this.url,\n      tiles: this.tiles,\n      bounds: this.bounds,\n      scheme: this.scheme,\n      minzoom: this.minzoom,\n      maxzoom: this.maxzoom,\n      attribution: this.attribution,\n      promoteId: this.promoteId,\n    };\n    this.mapService.addSource(this.id, source);\n    this.sourceAdded = true;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { VideoSource, VideoSourceSpecification } from 'mapbox-gl';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MapService } from '../map/map.service';\n\n@Component({\n  selector: 'mgl-video-source',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VideoSourceComponent\n  implements OnInit, OnDestroy, OnChanges, VideoSourceSpecification\n{\n  type: \"video\";\n\n  /* Init inputs */\n  @Input() id: string;\n\n  /* Dynamic inputs */\n  @Input() urls: VideoSourceSpecification['urls'];\n  @Input() coordinates: VideoSourceSpecification['coordinates'];\n\n  private sourceAdded = false;\n  private sub = new Subscription();\n\n  constructor(private mapService: MapService) {}\n\n  ngOnInit() {\n    const sub1 = this.mapService.mapLoaded$.subscribe(() => {\n      this.init();\n      const sub = fromEvent(this.mapService.mapInstance, 'styledata')\n        .pipe(filter(() => !this.mapService.mapInstance.getSource(this.id)))\n        .subscribe(() => {\n          this.init();\n        });\n      this.sub.add(sub);\n    });\n    this.sub.add(sub1);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.sourceAdded) {\n      return;\n    }\n\n    if (changes['urls'] && !changes['urls'].isFirstChange()) {\n      this.ngOnDestroy();\n      this.ngOnInit();\n    } else if (\n      changes['coordinates'] &&\n      !changes['coordinates'].isFirstChange()\n    ) {\n      const source = this.mapService.getSource<VideoSource>(this.id);\n      if (source === undefined) {\n        return;\n      }\n      source.setCoordinates(this.coordinates!);\n    }\n  }\n\n  ngOnDestroy() {\n    this.sub.unsubscribe();\n    if (this.sourceAdded) {\n      this.mapService.removeSource(this.id);\n      this.sourceAdded = false;\n    }\n  }\n\n  private init() {\n    const source: VideoSourceSpecification = {\n      type: 'video',\n      urls: this.urls,\n      coordinates: this.coordinates,\n    };\n    this.mapService.addSource(this.id, source);\n    this.sourceAdded = true;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { AttributionControlDirective } from './control/attribution-control.directive';\nimport { ControlComponent } from './control/control.component';\nimport { FullscreenControlDirective } from './control/fullscreen-control.directive';\nimport { GeolocateControlDirective } from './control/geolocate-control.directive';\nimport { NavigationControlDirective } from './control/navigation-control.directive';\nimport { ScaleControlDirective } from './control/scale-control.directive';\nimport { DraggableDirective } from './draggable/draggable.directive';\nimport { ImageComponent } from './image/image.component';\nimport { LayerComponent } from './layer/layer.component';\nimport { MapComponent } from './map/map.component';\nimport { MAPBOX_API_KEY } from './map/map.service';\nimport { MarkerComponent } from './marker/marker.component';\nimport {\n  ClusterPointDirective,\n  MarkersForClustersComponent,\n  PointDirective,\n} from './markers-for-clusters/markers-for-clusters.component';\nimport { PopupComponent } from './popup/popup.component';\nimport { CanvasSourceComponent } from './source/canvas-source.component';\nimport { FeatureComponent } from './source/geojson/feature.component';\nimport { GeoJSONSourceComponent } from './source/geojson/geojson-source.component';\nimport { ImageSourceComponent } from './source/image-source.component';\nimport { RasterDemSourceComponent } from './source/raster-dem-source.component';\nimport { RasterSourceComponent } from './source/raster-source.component';\nimport { VectorSourceComponent } from './source/vector-source.component';\nimport { VideoSourceComponent } from './source/video-source.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [\n    MapComponent,\n    LayerComponent,\n    DraggableDirective,\n    ImageComponent,\n    VectorSourceComponent,\n    GeoJSONSourceComponent,\n    RasterDemSourceComponent,\n    RasterSourceComponent,\n    ImageSourceComponent,\n    VideoSourceComponent,\n    CanvasSourceComponent,\n    FeatureComponent,\n    MarkerComponent,\n    PopupComponent,\n    ControlComponent,\n    FullscreenControlDirective,\n    NavigationControlDirective,\n    GeolocateControlDirective,\n    AttributionControlDirective,\n    ScaleControlDirective,\n    PointDirective,\n    ClusterPointDirective,\n    MarkersForClustersComponent,\n  ],\n  exports: [\n    MapComponent,\n    LayerComponent,\n    DraggableDirective,\n    ImageComponent,\n    VectorSourceComponent,\n    GeoJSONSourceComponent,\n    RasterDemSourceComponent,\n    RasterSourceComponent,\n    ImageSourceComponent,\n    VideoSourceComponent,\n    CanvasSourceComponent,\n    FeatureComponent,\n    MarkerComponent,\n    PopupComponent,\n    ControlComponent,\n    FullscreenControlDirective,\n    NavigationControlDirective,\n    GeolocateControlDirective,\n    AttributionControlDirective,\n    ScaleControlDirective,\n    PointDirective,\n    ClusterPointDirective,\n    MarkersForClustersComponent,\n  ],\n})\nexport class NgxMapboxGLModule {\n  static withConfig(config: {\n    accessToken: string;\n  }): ModuleWithProviders<NgxMapboxGLModule> {\n    return {\n      ngModule: NgxMapboxGLModule,\n      providers: [\n        {\n          provide: MAPBOX_API_KEY,\n          useValue: config.accessToken,\n        },\n      ],\n    };\n  }\n}\n","/*\n * Public API Surface of ngx-mapbox-gl\n */\n\n// Expose NgxMapboxGlModule and GeocoderControlDirective provided injection tokens\nexport * from './lib/control/attribution-control.directive';\n// Expose control component to allow custom directives\nexport * from './lib/control/control.component';\nexport * from './lib/control/fullscreen-control.directive';\nexport * from './lib/control/geolocate-control.directive';\nexport * from './lib/control/navigation-control.directive';\nexport * from './lib/control/scale-control.directive';\nexport * from './lib/draggable/draggable.directive';\nexport * from './lib/image/image.component';\nexport * from './lib/layer/layer.component';\nexport * from './lib/map/map.component';\n// Expose MapService for ngx-mapbox-gl extensions\nexport * from './lib/map/map.service';\nexport * from './lib/map/map.types';\nexport * from './lib/marker/marker.component';\nexport * from './lib/markers-for-clusters/markers-for-clusters.component';\nexport * from './lib/ngx-mapbox-gl.module';\nexport * from './lib/popup/popup.component';\nexport * from './lib/source/canvas-source.component';\nexport * from './lib/source/geojson/feature.component';\n// Expose GeoJSONSourceComponent to access cluster functions\nexport * from './lib/source/geojson/geojson-source.component';\nexport * from './lib/source/image-source.component';\nexport * from './lib/source/raster-dem-source.component';\nexport * from './lib/source/raster-source.component';\nexport * from './lib/source/vector-source.component';\nexport * from './lib/source/video-source.component';\n// Expose deprecation warning\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MapService","i2.ControlComponent","i2.FeatureComponent","i3.LayerComponent","i4.MarkerComponent"],"mappings":"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"}