{"version":3,"file":"hslayers-ng-services-panels.mjs","sources":["../../../projects/hslayers/services/panels/panel-container.service.ts","../../../projects/hslayers/services/panels/overlay/overlay-container.service.ts","../../../projects/hslayers/services/panels/toolbar/toolbar-panel-container.service.ts","../../../projects/hslayers/services/panels/hslayers-ng-services-panels.ts"],"sourcesContent":["import {Injectable, Type, signal} from '@angular/core';\nimport {ReplaySubject, Subject} from 'rxjs';\n\nimport {\n  HsPanelComponent,\n  HsPanelContainerServiceInterface,\n  HsPanelItem,\n} from 'hslayers-ng/common/panels';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HsPanelContainerService\n  implements HsPanelContainerServiceInterface {\n  panels = signal<HsPanelComponent[]>([]);\n  panelObserver: ReplaySubject<HsPanelItem> = new ReplaySubject();\n  panelDestroyObserver: Subject<any> = new Subject();\n\n  constructor() {}\n\n  /**\n   * Create new dynamic panels. They are replayed in the PanelContainerComponent\n   * in case of race conditions existing where panels are created before the\n   * container component is even added to the DOM.\n   * @param component - PanelComponent class\n   * @param data - Extra data to give the new panel\n   * @param panelObserver - ReplaySubject to which you need to add the panel components. This is used when panels in this service are used only sometimes (for particular layers)\n   */\n  create(\n    component: Type<any>,\n    data: any,\n    panelObserver?: ReplaySubject<HsPanelItem>,\n  ): void {\n    if (data === undefined) {\n      data = {};\n    }\n    (panelObserver ?? this.panelObserver).next(\n      new HsPanelItem(component, data),\n    );\n  }\n\n  destroy(component: HsPanelComponent): void {\n    if (component.cleanup) {\n      component.cleanup();\n    }\n    const panelCollection = this.panels();\n    const panelIx = panelCollection.findIndex((d) => d == component);\n    if (panelIx > -1) {\n      panelCollection.splice(panelIx, 1);\n    }\n    this.panelDestroyObserver.next(component);\n  }\n}\n","import {HsPanelContainerService} from '../panel-container.service';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HsOverlayContainerService extends HsPanelContainerService {\n  constructor() {\n    super();\n  }\n}\n","import {HsPanelContainerService} from '../panel-container.service';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HsToolbarPanelContainerService extends HsPanelContainerService {\n  constructor() {\n    super();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}