{"version":3,"file":"ngx-ol-library-view.mjs","sources":["../../../src/view/view.component.ts","../../../src/view/view.module.ts","../../../src/view/ngx-ol-library-view.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 { ObjectEvent } from 'ol/Object';\nimport { Coordinate } from 'ol/coordinate';\nimport { Extent } from 'ol/extent';\nimport { ProjectionLike } from 'ol/proj';\nimport View, { ViewOptions } from 'ol/View';\nimport BaseEvent from 'ol/events/Event';\nimport { NolPrefixedOptions, NolSafeAny } from 'ngx-ol-library/core';\nimport { injectMap } from 'ngx-ol-library/map';\n\n/**\n * A `nol-view` component represents a simple 2D view of the map.\n * @name nol-view\n * @order 1\n */\n@Component({\n  selector: 'nol-view',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NolViewComponent implements NolPrefixedOptions<ViewOptions>, OnInit, OnChanges, OnDestroy {\n  @Input() nolCenter?: Coordinate;\n  @Input() nolConstrainRotation?: number | boolean;\n  @Input() nolEnableRotation?: boolean;\n  @Input() nolExtent?: Extent;\n  @Input() nolConstrainOnlyCenter?: boolean;\n  @Input() nolSmoothExtentConstraint?: boolean;\n  @Input() nolMaxResolution?: number;\n  @Input() nolMinResolution?: number;\n  @Input() nolMaxZoom?: number;\n  @Input() nolMinZoom?: number;\n  @Input() nolMultiWorld?: boolean;\n  @Input() nolConstrainResolution?: boolean;\n  @Input() nolSmoothResolutionConstraint?: boolean;\n  @Input() nolShowFullExtent?: boolean;\n  @Input() nolProjection?: ProjectionLike;\n  @Input() nolResolution?: number;\n  @Input() nolResolutions?: number[];\n  @Input() nolRotation?: number;\n  @Input() nolZoom?: number;\n  @Input() nolZoomFactor?: number;\n  @Input() nolPadding?: number[];\n\n  @Output() nolChange = new EventEmitter<BaseEvent>();\n  @Output() nolCenterChange = new EventEmitter<Coordinate>();\n  @Output() nolResolutionChange = new EventEmitter<number>();\n  @Output() nolRotationChange = new EventEmitter<number>();\n  @Output() nolError = new EventEmitter<BaseEvent>();\n  @Output() nolPropertychange = new EventEmitter<ObjectEvent>();\n\n  private readonly cdr = inject(ChangeDetectorRef);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly host = injectMap({ host: true });\n  private instance!: View;\n\n  getInstance() {\n    return this.instance;\n  }\n\n  ngOnInit(): void {\n    this.instance = new View({\n      center: this.nolCenter,\n      constrainRotation: this.nolConstrainRotation,\n      enableRotation: this.nolEnableRotation,\n      extent: this.nolExtent,\n      constrainOnlyCenter: this.nolConstrainOnlyCenter,\n      smoothExtentConstraint: this.nolSmoothExtentConstraint,\n      maxResolution: this.nolMaxResolution,\n      minResolution: this.nolMinResolution,\n      maxZoom: this.nolMaxZoom,\n      minZoom: this.nolMinZoom,\n      multiWorld: this.nolMultiWorld,\n      constrainResolution: this.nolConstrainResolution,\n      smoothResolutionConstraint: this.nolSmoothResolutionConstraint,\n      showFullExtent: this.nolShowFullExtent,\n      projection: this.nolProjection,\n      resolution: this.nolResolution,\n      resolutions: this.nolResolutions,\n      rotation: this.nolRotation,\n      zoom: this.nolZoom,\n      zoomFactor: this.nolZoomFactor,\n      padding: this.nolPadding,\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:center')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolCenter = this.instance.getCenter();\n        this.nolCenterChange.emit(this.nolCenter);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:resolution')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolResolution = this.instance.getResolution();\n        this.nolResolutionChange.emit(this.nolResolution);\n        this.cdr.markForCheck();\n      });\n\n    fromEvent<ObjectEvent>(this.instance, 'change:rotation')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => {\n        this.nolRotation = this.instance.getRotation();\n        this.nolRotationChange.emit(this.nolRotation);\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<ObjectEvent>(this.instance, 'propertychange')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(evt => {\n        this.nolPropertychange.emit(evt);\n      });\n\n    this.host.getInstance().setView(this.instance);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.instance) return;\n    const {\n      nolCenter,\n      nolConstrainResolution,\n      nolMaxZoom,\n      nolMinZoom,\n      nolResolution,\n      nolRotation,\n      nolZoom,\n    } = changes;\n\n    if (nolCenter) {\n      this.instance.setCenter(nolCenter.currentValue);\n    }\n\n    if (nolConstrainResolution) {\n      this.instance.setConstrainResolution(nolConstrainResolution.currentValue);\n    }\n\n    if (nolMaxZoom) {\n      this.instance.setMaxZoom(nolMaxZoom.currentValue);\n    }\n\n    if (nolMinZoom) {\n      this.instance.setMinZoom(nolMinZoom.currentValue);\n    }\n\n    if (nolResolution) {\n      this.instance.setResolution(nolResolution.currentValue);\n    }\n\n    if (nolRotation) {\n      this.instance.setRotation(nolRotation.currentValue);\n    }\n\n    if (nolZoom) {\n      this.instance.setZoom(nolZoom.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.host.getInstance().setView(null as NolSafeAny);\n  }\n\n}\n\nexport function injectView(): NolViewComponent;\nexport function injectView(options: InjectOptions & {optional?: false}): NolViewComponent;\nexport function injectView(options: InjectOptions): NolViewComponent | null;\nexport function injectView(options?: InjectOptions): NolViewComponent | null  {\n  return inject(NolViewComponent, options || {}) || null;\n}","import { NgModule } from '@angular/core';\nimport { NolViewComponent } from './view.component';\n\n\n\n@NgModule({\n  imports: [NolViewComponent],\n  exports: [NolViewComponent],\n})\nexport class NolViewModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}