{"version":3,"file":"ngx-ol-library-layer-heatmap.mjs","sources":["../../../src/layer/heatmap/heatmap-layer.component.ts","../../../src/layer/heatmap/heatmap-layer.module.ts","../../../src/layer/heatmap/ngx-ol-library-layer-heatmap.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DestroyRef,\n  EventEmitter,\n  InjectOptions,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { Feature } from 'ol';\nimport { ObjectEvent } from 'ol/Object';\nimport { Extent } from 'ol/extent';\nimport { Geometry } from 'ol/geom';\nimport BaseEvent from 'ol/events/Event';\nimport Heatmap, { Options } from 'ol/layer/Heatmap';\nimport RenderEvent from 'ol/render/Event';\nimport VectorSource from 'ol/source/Vector';\nimport { NolPrefixedOptions, NolSafeAny } from 'ngx-ol-library/core';\nimport { injectLayerHost } from 'ngx-ol-library/layer/core';\n\n/**\n * Layer component for rendering vector data as a heatmap. \n * @name nol-heatmap-layer\n * @order 1\n */\n@Component({\n  selector: 'nol-heatmap-layer',\n  exportAs: 'nolHeatmapLayer',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NolHeatmapLayerComponent implements NolPrefixedOptions<Options<Feature<Geometry>>>, OnInit, OnChanges, OnDestroy {\n\n  @Input() nolClassName?: string;\n  @Input() nolOpacity?: number;\n  @Input() nolVisible?: boolean;\n  @Input() nolExtent?: Extent;\n  @Input() nolZIndex?: number;\n  @Input() nolMinResolution?: number;\n  @Input() nolMaxResolution?: number;\n  @Input() nolMinZoom?: number;\n  @Input() nolMaxZoom?: number;\n  @Input() nolGradient?: string[];\n  @Input() nolRadius?: number;\n  @Input() nolBlur?: number;\n  @Input() nolWeight?: string | ((feature: Feature<Geometry>) => number);\n  @Input() nolSource?: VectorSource<Feature<Geometry>>;\n  @Input() nolProperties?: Record<string, NolSafeAny>;\n\n  @Output() nolChange = new EventEmitter<BaseEvent>();\n  @Output() nolBlurChange = new EventEmitter<number>();\n  @Output() nolExtentChange = new EventEmitter<Extent>();\n  @Output() nolGradientChange = new EventEmitter<string[]>();\n  @Output() nolMaxResolutionChange = new EventEmitter<number>();\n  @Output() nolMaxZoomChange = new EventEmitter<number>();\n  @Output() nolMinResolutionChange = new EventEmitter<number>();\n  @Output() nolMinZoomChange = new EventEmitter<number>();\n  @Output() nolOpacityChange = new EventEmitter<number>();\n  @Output() nolRadiusChange = new EventEmitter<number>();\n  @Output() nolSourceChange = new EventEmitter<VectorSource<Feature<Geometry>>>();\n  @Output() nolVisibleChange = new EventEmitter<boolean>();\n  @Output() nolZIndexChange = new EventEmitter<number>();\n  @Output() nolError = new EventEmitter<BaseEvent>();\n  @Output() nolPostcompose = new EventEmitter<RenderEvent>();\n  @Output() nolPostrender = new EventEmitter<RenderEvent>();\n  @Output() nolPrecompose = new EventEmitter<RenderEvent>();\n  @Output() nolPrerender = new EventEmitter<RenderEvent>();\n  @Output() nolPropertychange = new EventEmitter<ObjectEvent>();\n  @Output() nolRendercomplete = new EventEmitter<RenderEvent>();\n  @Output() nolSourceready = new EventEmitter<BaseEvent>();\n\n  private readonly cdr = inject(ChangeDetectorRef);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly host = injectLayerHost('nol-heatmap-layer');\n  private instance!: Heatmap<Feature<Geometry>>;\n\n  getInstance() {\n    return this.instance;\n  }\n\n  ngOnInit(): void {\n    this.instance = new Heatmap({\n      className: this.nolClassName,\n      opacity: this.nolOpacity,\n      visible: this.nolVisible,\n      extent: this.nolExtent,\n      zIndex: this.nolZIndex,\n      minResolution: this.nolMinResolution,\n      maxResolution: this.nolMaxResolution,\n      minZoom: this.nolMinZoom,\n      maxZoom: this.nolMaxZoom,\n      gradient: this.nolGradient,\n      radius: this.nolRadius,\n      blur: this.nolBlur,\n      weight: this.nolWeight,\n      source: this.nolSource,\n      properties: this.nolProperties,\n    });\n\n    fromEvent<BaseEvent>(this.instance, 'change')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolChange.emit(evt);\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:blur')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolBlur = this.instance.getBlur();\n        this.nolBlurChange.emit(this.nolBlur);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:extent')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolExtent = this.instance.getExtent();\n        this.nolExtentChange.emit(this.nolExtent);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:gradient')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolGradient = this.instance.getGradient();\n        this.nolGradientChange.emit(this.nolGradient);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:maxResolution')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolMaxResolution = this.instance.getMaxResolution();\n        this.nolMaxResolutionChange.emit(this.nolMaxResolution);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:maxZoom')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolMaxZoom = this.instance.getMaxZoom();\n        this.nolMaxZoomChange.emit(this.nolMaxZoom);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:minResolution')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolMinResolution = this.instance.getMinResolution();\n        this.nolMinResolutionChange.emit(this.nolMinResolution);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:minZoom')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolMinZoom = this.instance.getMinZoom();\n        this.nolMinZoomChange.emit(this.nolMinZoom);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:opacity')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolOpacity = this.instance.getOpacity();\n        this.nolOpacityChange.emit(this.nolOpacity);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:radius')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolRadius = this.instance.getRadius();\n        this.nolRadiusChange.emit(this.nolRadius);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:source')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolSource = this.instance.getSource() as VectorSource<Feature<Geometry>>;\n        this.nolSourceChange.emit(this.nolSource);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:visible')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolVisible = this.instance.getVisible();\n        this.nolVisibleChange.emit(this.nolVisible);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:zIndex')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolZIndex = this.instance.getZIndex();\n        this.nolZIndexChange.emit(this.nolZIndex);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<BaseEvent>(this.instance, 'error')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolError.emit(evt);\n      });\n\n    fromEvent<RenderEvent>(this.instance, 'postcompose')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolPostcompose.emit(evt);\n      });\n\n    fromEvent<RenderEvent>(this.instance, 'postrender')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolPostrender.emit(evt);\n      });\n\n    fromEvent<RenderEvent>(this.instance, 'precompose')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolPrecompose.emit(evt);\n      });\n\n    fromEvent<RenderEvent>(this.instance, 'prerender')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolPrerender.emit(evt);\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'propertychange')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolPropertychange.emit(evt);\n      });\n\n    fromEvent<RenderEvent>(this.instance, 'rendercomplete')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolRendercomplete.emit(evt);\n      });\n\n    fromEvent<BaseEvent>(this.instance, 'sourceready')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolSourceready.emit(evt);\n      });\n\n    this.host.addLayer(this.instance);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.instance) return;\n\n    const {\n      nolBlur,\n      nolExtent,\n      nolGradient,\n      nolMap,\n      nolMaxResolution,\n      nolMaxZoom,\n      nolMinResolution,\n      nolMinZoom,\n      nolOpacity,\n      nolProperties,\n      nolRadius,\n      nolSource,\n      nolStyle,\n      nolVisible,\n      nolZIndex,\n    } = changes;\n\n    if (nolBlur) {\n      this.instance.setBlur(nolBlur.currentValue);\n    }\n\n    if (nolExtent) {\n      this.instance.setExtent(nolExtent.currentValue);\n    }\n\n    if (nolGradient) {\n      this.instance.setGradient(nolGradient.currentValue);\n    }\n\n    if (nolMap) {\n      this.instance.setMap(nolMap.currentValue);\n    }\n\n    if (nolMaxResolution) {\n      this.instance.setMaxResolution(nolMaxResolution.currentValue);\n    }\n\n    if (nolMaxZoom) {\n      this.instance.setMaxZoom(nolMaxZoom.currentValue);\n    }\n\n    if (nolMinResolution) {\n      this.instance.setMinResolution(nolMinResolution.currentValue);\n    }\n\n    if (nolMinZoom) {\n      this.instance.setMinZoom(nolMinZoom.currentValue);\n    }\n\n    if (nolOpacity) {\n      this.instance.setOpacity(nolOpacity.currentValue);\n    }\n\n    if (nolProperties) {\n      this.instance.setProperties(nolProperties.currentValue);\n    }\n\n    if (nolRadius) {\n      this.instance.setRadius(nolRadius.currentValue);\n    }\n\n    if (nolSource) {\n      this.instance.setSource(nolSource.currentValue);\n    }\n\n    if (nolStyle) {\n      this.instance.setStyle(nolStyle.currentValue);\n    }\n\n    if (nolVisible) {\n      this.instance.setVisible(nolVisible.currentValue);\n    }\n\n    if (nolZIndex) {\n      this.instance.setZIndex(nolZIndex.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.host.removeLayer(this.instance);\n  }\n\n}\n\nexport function useHeatmapLayer(): NolHeatmapLayerComponent;\nexport function useHeatmapLayer(options: InjectOptions & {optional?: false}): NolHeatmapLayerComponent;\nexport function useHeatmapLayer(options: InjectOptions): NolHeatmapLayerComponent | null;\nexport function useHeatmapLayer(options?: InjectOptions): NolHeatmapLayerComponent | null  {\n  return inject(NolHeatmapLayerComponent, options || {}) || null;\n}","import { NgModule } from '@angular/core';\nimport { NolHeatmapLayerComponent } from './heatmap-layer.component';\n\n\n\n@NgModule({\n  imports: [NolHeatmapLayerComponent],\n  exports: [NolHeatmapLayerComponent]\n})\nexport class NolHeatmapLayerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}