{"version":3,"file":"ngx-ol-library-control-overview-map.mjs","sources":["../../../src/control/overview-map/overview-map-control.component.ts","../../../src/control/overview-map/overview-map-control.module.ts","../../../src/control/overview-map/ngx-ol-library-control-overview-map.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\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 { Collection, MapEvent, View } from 'ol';\nimport { ObjectEvent } from 'ol/Object';\nimport BaseEvent from 'ol/events/Event';\nimport BaseLayer from 'ol/layer/Base';\nimport OverviewMap, { Options } from 'ol/control/OverviewMap';\nimport { NolPrefixedOptions, NolSafeAny } from 'ngx-ol-library/core';\nimport { injectMap } from 'ngx-ol-library/map';\n\n/**\n * Create a new control with a map acting as an overview map for another defined map.\n * @name nol-overview-map-control\n * @order 1\n */\n@Component({\n  selector: 'nol-overview-map-control',\n  exportAs: 'nolOverviewMapControl',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NolOverviewMapControlComponent\n  implements NolPrefixedOptions<Options>, OnInit, OnChanges, OnDestroy {\n  \n  @Input() nolClassName?: string;\n  @Input() nolCollapsed?: boolean;\n  @Input() nolCollapseLabel?: string | HTMLElement;\n  @Input() nolCollapsible?: boolean;\n  @Input() nolLabel?: string | HTMLElement;\n  @Input() nolLayers?: BaseLayer[] | Collection<BaseLayer>;\n  @Input() nolRender?: ((evt: MapEvent) => void);\n  @Input() nolRotateWithView?: boolean;\n  @Input() nolTarget?: string | HTMLElement;\n  @Input() nolTipLabel?: string;\n  @Input() nolView?: View;\n  @Input() nolProperties?: Record<string, NolSafeAny>;\n\n  @Output() nolChange = new EventEmitter<BaseEvent>();\n  @Output() nolError = new EventEmitter<BaseEvent>();\n  @Output() nolPropertychange = new EventEmitter<ObjectEvent>();\n\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly host = injectMap({ host: true });\n  private instance!: OverviewMap;\n\n  getInstance(): OverviewMap {\n    return this.instance;\n  }\n\n  ngOnInit(): void {\n    this.instance = new OverviewMap({\n      className: this.nolClassName,\n      collapsed: this.nolCollapsed,\n      collapseLabel: this.nolCollapseLabel,\n      collapsible: this.nolCollapsible,\n      label: this.nolLabel,\n      layers: this.nolLayers,\n      render: this.nolRender,\n      rotateWithView: this.nolRotateWithView,\n      target: this.nolTarget,\n      tipLabel: this.nolTipLabel,\n      view: this.nolView,\n    });\n\n    if (this.nolProperties) {\n      this.instance.setProperties(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<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().addControl(this.instance);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.instance) return;\n\n    const {\n      nolCollapsed,\n      nolCollapsible,\n      nolProperties,\n      nolRotateWithView,\n      nolTarget,\n    } = changes;\n\n    if (nolCollapsed) {\n      this.instance.setCollapsed(nolCollapsed.currentValue);\n    }\n\n    if (nolCollapsible) {\n      this.instance.setCollapsible(nolCollapsible.currentValue);\n    }\n\n    if (nolProperties) {\n      this.instance.setProperties(nolProperties.currentValue);\n    }\n\n    if (nolRotateWithView) {\n      this.instance.setRotateWithView(nolRotateWithView.currentValue);\n    }\n\n    if (nolTarget) {\n      this.instance.setTarget(nolTarget.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.host.getInstance().removeControl(this.instance);\n  }\n\n}\n\nexport function useOverviewMapControl(): NolOverviewMapControlComponent;\nexport function useOverviewMapControl(options: InjectOptions & {optional?: false}): NolOverviewMapControlComponent;\nexport function useOverviewMapControl(options: InjectOptions): NolOverviewMapControlComponent | null;\nexport function useOverviewMapControl(options?: InjectOptions): NolOverviewMapControlComponent | null  {\n  return inject(NolOverviewMapControlComponent, options || {}) || null;\n}\n","import { NgModule } from '@angular/core';\nimport { NolOverviewMapControlComponent } from './overview-map-control.component';\n\n\n\n@NgModule({\n  imports: [NolOverviewMapControlComponent],\n  exports: [NolOverviewMapControlComponent]\n})\nexport class NolOverviewMapControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}