{"version":3,"file":"itbees-artboard-lib.mjs","sources":["../../../projects/itbees-artboard-lib/src/lib/itbees-artboard-lib.service.ts","../../../projects/itbees-artboard-lib/src/lib/interfaces/drag-option.type.ts","../../../projects/itbees-artboard-lib/src/lib/containers/scheme/constants/scheme.constants.ts","../../../projects/itbees-artboard-lib/src/lib/store/board.store.ts","../../../projects/itbees-artboard-lib/src/lib/services/artboard-lib-config.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/elements.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/artboard-element.service.ts","../../../projects/itbees-artboard-lib/src/lib/item/item.component.ts","../../../projects/itbees-artboard-lib/src/lib/item/item.component.html","../../../projects/itbees-artboard-lib/src/lib/services/artboard.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/artboards.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/artboard-elements.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/artboard-position.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/selected-element.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/media.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/my-account.service.ts","../../../projects/itbees-artboard-lib/src/lib/services/pass-component.service.ts","../../../projects/itbees-artboard-lib/src/lib/translations/translations.ts","../../../projects/itbees-artboard-lib/src/lib/translations/artboard-translations.service.ts","../../../projects/itbees-artboard-lib/src/lib/translations/custom-translate.pipe.ts","../../../projects/itbees-artboard-lib/src/lib/containers/scheme/scheme.component.ts","../../../projects/itbees-artboard-lib/src/lib/containers/scheme/scheme.component.html","../../../projects/itbees-artboard-lib/src/lib/services/artboard-toolboxes.service.ts","../../../projects/itbees-artboard-lib/src/lib/containers/toolbar/toolbar.component.ts","../../../projects/itbees-artboard-lib/src/lib/containers/toolbar/toolbar.component.html","../../../projects/itbees-artboard-lib/src/lib/itbees-artboard-lib.component.ts","../../../projects/itbees-artboard-lib/src/lib/itbees-artboard-lib.component.html","../../../projects/itbees-artboard-lib/src/public-api.ts","../../../projects/itbees-artboard-lib/src/itbees-artboard-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ItbeesArtboardLibService {\n\n  constructor() { }\n}\n","export type IDragOption = DRAG_OPTIONS_ENUM.DRAG_ITEM | DRAG_OPTIONS_ENUM.NAVIGATE;\n\nexport enum DRAG_OPTIONS_ENUM {\n  DRAG_ITEM = 'dragItem',\n  NAVIGATE = 'navigate',\n}\n","import { DRAG_OPTIONS_ENUM } from '../../../interfaces/drag-option.type';\n\nexport const DEFAULT_SCALE = 1;\nexport const MIN_ZOOM = 0.1;\nexport const MAX_ZOOM = 5;\nexport const SELECT_BUTTON_DRAG_OPTIONS = [\n  { label: 'Obiekty', value: DRAG_OPTIONS_ENUM.DRAG_ITEM },\n  { label: 'Mapa',value: DRAG_OPTIONS_ENUM.NAVIGATE },\n];\nexport const SELECT_BUTTON_VIS_OPTIONS = [\n  { icon: 'pi pi-map', value: 'map' },\n  { icon: 'pi pi-align-justify', value: 'table' },\n];\n","import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\nimport { DRAG_OPTIONS_ENUM, IDragOption } from '../interfaces/drag-option.type';\n\ntype BoardState = {\n  dragOption: IDragOption;\n}\n\nconst initialState: BoardState = {\n    dragOption: DRAG_OPTIONS_ENUM.DRAG_ITEM,\n};\n\nexport const BoardStore = signalStore(\n  { providedIn: 'root' },\n  withState(initialState),\n  withMethods((store) => ({\n    updateDragOption(dragOption: IDragOption): void {\n      patchState(store, (state) => ({ ...state, dragOption }));\n    },\n  }))\n);\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArtboardLibConfigService {\n  private config: { [key: string]: any } = {};\n\n  setConfig(key: string, value: any): void {\n    this.config[key] = value;\n  }\n\n  getConfig<T>(key: string): T | undefined {\n    return this.config[key];\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, ViewChild, ViewContainerRef } from '@angular/core';\nimport { map, of } from 'rxjs';\nimport { IArtboardElementUm } from '../models/artboard-element-um.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ElementsService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/ArtboardElement';\n  }  \n\n  changePosition(body:IArtboardElementUm) { \n    return this.http.put(this.baseUrl, body);\n  }\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardElementVm } from '../models/artboard-element-vm.model';\nimport { IArtboardElementIm } from '../models/artboard-element-im.model';\nimport { IArtboardElementUm } from '../models/artboard-element-um.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArtboardElementService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/ArtboardElement';\n  }  \n\n\n  get(guid: string): Observable<IArtboardElementVm> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (guid !== undefined && guid !== null) {\n      params = params.set('guid', guid.toString());\n    }\n    return this.http.get<IArtboardElementVm>(this.baseUrl, { headers, params });\n  }\n\n  post(artboardElementIm?: IArtboardElementIm): Observable<IArtboardElementVm> {\n    const headers = this.createHeaders();\n    return this.http.post<IArtboardElementVm>(this.baseUrl, artboardElementIm, { headers });\n  }\n\n  put(artboardElementUm?: IArtboardElementUm): Observable<IArtboardElementVm> {\n    const headers = this.createHeaders();\n    return this.http.put<IArtboardElementVm>(this.baseUrl, artboardElementUm, { headers });\n  }\n\n  del(guid: string): Observable<void> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (guid !== undefined && guid !== null) {\n      params = params.set('guid', guid.toString());\n    }\n    return this.http.delete<void>(this.baseUrl, { headers, params });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Inject,\n  inject,\n  input,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { CdkDragEnd, DragDropModule } from '@angular/cdk/drag-drop';\nimport { ElementsService } from '../services/elements.service';\nimport { DRAG_OPTIONS_ENUM, IDragOption } from '../interfaces/drag-option.type';\nimport { IArtboardElementUm } from '../models/artboard-element-um.model';\nimport { ArtboardElementService } from '../services/artboard-element.service';\nimport { CommonModule } from '@angular/common';\nimport { IArtboardElementVm } from '../models/artboard-element-vm.model';\nimport {  ProgressSpinnerModule, ProgressSpinner } from 'primeng/progressspinner';\nimport { ArtboardLibConfigService } from '../services/artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Component({\n  selector: '[art-item]',\n  standalone: true,\n  imports: [DragDropModule, CommonModule, ProgressSpinnerModule ],\n  templateUrl: './item.component.html',\n  styleUrl: './item.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ItemComponent {\n  @Output() elementDeleted = new EventEmitter<string>()\n\n  \n  x = input(0);\n  y = input(0);\n  w = input(0);\n  h = input(0);\n  guid = input('');\n  dragOption = input.required<IDragOption>();\n  ico = input<string | undefined>('https://itbees.pl/img/barierr.svg');\n  selected = input<boolean>(false);\n  \n  dragOptions = DRAG_OPTIONS_ENUM;\n  \n  elementsService = inject(ElementsService);\n  artboardElementService = inject(ArtboardElementService);\n  \n  deleteElementLoading:boolean=false\n  dragOnMove:boolean=false\n  mode!:string\n  \n  constructor(\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.mode = config.mode;\n  }\n\n  get iconUrl(): string {\n    return this.ico() || 'https://itbees.pl/img/barierr.svg';\n  }\n\n  onDragEnd(e: CdkDragEnd<any>) {\n    this.dragOnMove = true;\n    const droppedPosition = this.getDroppedSvgPosition(e);\n    const x = Number(droppedPosition.x);\n    const y = Number(droppedPosition.y);\n  \n    this.artboardElementService.get(this.guid()).subscribe({\n      next: (res) => {\n       \n        const dataToPut: IArtboardElementUm = {\n          guid: res.guid,\n          artboardGuid: res.artboardGuid,\n          artboardToolboxElementGuid: res.artboardToolboxElementGuid,\n          customSerializedObject: res.customSerializedObject,\n          locationX: x,\n          locationY: y,\n          locationZ: res.locationZ,\n          zIndex: res.zIndex,\n          width: res.width,\n          height: res.height,\n        };\n     \n        this.artboardElementService.put(dataToPut).subscribe({\n          next: (result) => {\n            this.dragOnMove=false\n          },\n          error: (err) => console.error('Błąd podczas aktualizacji pozycji:', err),\n        });\n      },\n      error: (err) => {\n        this.dragOnMove=false\n        console.error('Błąd podczas pobierania oryginalnego obiektu:', err);\n      },\n    });\n  }\n\n  private getDroppedSvgPosition(e: CdkDragEnd<any>): { x: number; y: number } {\n    const foreignObject = e.source.element\n      .nativeElement as unknown as SVGForeignObjectElement;\n    if (!foreignObject?.getBoundingClientRect) {\n      return { x: this.x(), y: this.y() };\n    }\n\n    const svg = foreignObject.ownerSVGElement;\n    if (!svg) {\n      return { x: this.x(), y: this.y() };\n    }\n    const svgRect = svg.getBoundingClientRect();\n    if (svgRect.width <= 0 || svgRect.height <= 0) {\n      return { x: this.x(), y: this.y() };\n    }\n\n    const vb = svg.viewBox?.baseVal;\n    if (!vb || vb.width <= 0 || vb.height <= 0) {\n      return { x: this.x(), y: this.y() };\n    }\n\n    const scaleX = vb.width / svgRect.width;\n    const scaleY = vb.height / svgRect.height;\n\n    return {\n      x: this.x() + e.distance.x * scaleX,\n      y: this.y() + e.distance.y * scaleY,\n    };\n  }\n\n  deleteElement() {\n    this.deleteElementLoading = true;\n    this.artboardElementService.del(this.guid()).subscribe({\n      next: (res) => {\n        this.deleteElementLoading = false;\n        this.elementDeleted.emit(this.guid());\n      },\n      error: (err) => {\n        this.deleteElementLoading = false;\n        console.error(err);\n      },\n    });\n  }\n}\n","<foreignObject\n  [attr.x]=\"x()\"\n  [attr.y]=\"y()\"\n  [attr.width]=\"w()\"\n  [attr.height]=\"h() + 20\"\n  cdkDrag\n  [cdkDragDisabled]=\"dragOption() !== dragOptions.DRAG_ITEM\"\n  (cdkDragEnded)=\"onDragEnd($event)\"\n  [class.art-cursor-grab]=\"dragOption() === dragOptions.DRAG_ITEM\"\n>\n  <div style=\"position: relative; width: 100%; height: 100%\">\n    <div\n      *ngIf=\"selected()\"\n      style=\"\n        position: absolute;\n        top: 0;\n        right: 0;\n        width: 12px;\n        height: 12px;\n        background: red;\n        color: white;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        z-index: 2;\n        padding: 2px;\n      \"\n      (click)=\"deleteElement()\"\n    >\n      @if(deleteElementLoading){\n        <i class=\"pi pi-spinner\"></i>\n      }@else{\n        <i class=\"pi pi-times\"></i>\n      }\n    </div>\n    <svg\n      style=\"\n        position: absolute;\n        width: 100%;\n        height: calc(100% - 20px);\n      \"\n    >\n      <g>\n        <image\n          x=\"0\"\n          y=\"0\"\n          [attr.width]=\"w()\"\n          [attr.height]=\"h()\"\n          [attr.href]=\"iconUrl\"\n        />\n        <rect\n          *ngIf=\"selected()\"\n          [attr.x]=\"-2\"\n          [attr.y]=\"-2\"\n          [attr.width]=\"w() + 4\"\n          [attr.height]=\"h() + 4\"\n          rx=\"10\"\n          ry=\"10\"\n          stroke=\"red\"\n          stroke-width=\"5\"\n          fill=\"none\"\n        ></rect>\n      </g>\n    </svg>\n  </div>\n</foreignObject>\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardVm } from '../models/artboard-vm.model';\nimport { IArtboardIm } from '../models/artboard-im.model';\nimport { IArtboardUm } from '../models/artboard-um.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArtboardService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/Artboard';\n  }  \n\n  get(guid: string): Observable<IArtboardVm> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (guid !== undefined && guid !== null) {\n      params = params.set('guid', guid.toString());\n    }\n    return this.http.get<IArtboardVm>(this.baseUrl, { headers, params });\n  }\n\n  post(artboardIm?: IArtboardIm): Observable<IArtboardVm> {\n    const headers = this.createHeaders();\n    return this.http.post<IArtboardVm>(this.baseUrl, artboardIm, { headers });\n  }\n\n  put(artboardUm?: IArtboardUm): Observable<IArtboardVm> {\n    const headers = this.createHeaders();\n    return this.http.put<IArtboardVm>(this.baseUrl, artboardUm, { headers });\n  }\n\n  del(guid: string): Observable<void> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (guid !== undefined && guid !== null) {\n      params = params.set('guid', guid.toString());\n    }\n    return this.http.delete<void>(this.baseUrl, { headers, params });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardVm } from '../models/artboard-vm.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArtboardsService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/Artboards';\n  }\n\n  get(ownerGuid?: string, take?: number, skip?: number): Observable<any> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (ownerGuid !== undefined && ownerGuid !== null) {\n      params = params.set('ownerGuid', ownerGuid.toString());\n    }\n    if (take !== undefined && take !== null) {\n      params = params.set('take', take.toString());\n    }\n    if (skip !== undefined && skip !== null) {\n      params = params.set('skip', skip.toString());\n    }\n    return this.http.get<any>(this.baseUrl, { headers, params });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardElementVm } from '../models/artboard-element-vm.model';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ArtboardElementsService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/ArtboardElements';\n  }\n\n  get(artboardGuid: string): Observable<IArtboardElementVm[]> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (artboardGuid !== undefined && artboardGuid !== null) {\n      params = params.set('artboardGuid', artboardGuid.toString());\n    }\n    return this.http.get<IArtboardElementVm[]>(this.baseUrl, {\n      headers,\n      params,\n    });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardPositionUm } from '../models/artboard-position-um.model';\nimport { IArtboardVm } from '../models/artboard-vm.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArtboardPositionService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/ArtboardPosition';\n  } \n\n  put(artboardPositionUm?: IArtboardPositionUm): Observable<IArtboardVm> {\n    const headers = this.createHeaders();\n    return this.http.put<IArtboardVm>(this.baseUrl, artboardPositionUm, { headers });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SelectedElementService {\n\n  private selectedElementSubject = new BehaviorSubject<any | null>(null);\n  private lastSelectedElement: any = 0\n\n  getSelectedElement(): Observable<any | null> {\n    return this.selectedElementSubject.asObservable();\n  }\n\n  setSelectedElement(value: any): void {\n    if(this.lastSelectedElement !== value){\n      this.selectedElementSubject.next(value);\n      this.lastSelectedElement = value\n    }\n    else{\n      this.selectedElementSubject.next(null);\n      this.lastSelectedElement = 0\n    }\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardElementVm } from '../models/artboard-element-vm.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MediaService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/Media';\n  }  \n\n  post(data: any): Observable<any> {\n    const headers = this.createHeaders();\n    return this.http.post<any>(this.baseUrl, data, { headers });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IMyAccountVm } from '../models/my-account-vm.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MyAccountService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/MyAccount';\n  }  \n\n  get(): Observable<IMyAccountVm> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    return this.http.get<IMyAccountVm>(this.baseUrl, { headers, params });\n  }\n\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import {\n  ComponentRef,\n  Injectable,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PassComponentService {\n  private componentRegistry = new BehaviorSubject<\n    { type: string; component: Type<any> }[]\n  >([]);\n  private activeComponentRefs: ComponentRef<any>[] = [];\n\n  registerComponent(type: string, component: Type<any>): void {\n    const currentRegistry = this.componentRegistry.value;\n    this.componentRegistry.next([...currentRegistry, { type, component }]);\n  }\n\n  getRegisteredComponents() {\n    return this.componentRegistry.asObservable();\n  }\n\n  insertAllComponentsIntoView(container: ViewContainerRef): void {\n    this.clearContainer(container);\n\n    const components = this.componentRegistry.value;\n    components.forEach(({ component }) => {\n      const componentRef = container.createComponent(component);\n      this.activeComponentRefs.push(componentRef);\n    });\n  }\n\n  getComponentByType(type: string): Type<any> | null {\n    const componentEntry = this.componentRegistry.value.find(\n      (c) => c.type === type\n    );\n    return componentEntry ? componentEntry.component : null;\n  }\n\n  insertSpecificComponentIntoView(\n    container: ViewContainerRef,\n    component: Type<any>,\n    data?: any\n  ): void {\n    this.clearContainer(container);\n    const componentRef = container.createComponent(component);\n    this.activeComponentRefs.push(componentRef);\n\n    if (data && componentRef.instance) {\n      (componentRef.instance as any).data = data;\n    }\n  }\n\n  clearContainer(container: ViewContainerRef): void {\n    container.clear();\n    this.activeComponentRefs = [];\n  }\n}\n","export const PL_TRANSLATIONS = {\n  general: {\n    allDevices: 'Wszystkie urządzenia',\n    moving: 'Przesuwanie',\n    view: 'Widok',\n  },\n  tableHeader: {\n    deviceName: 'Nazwa urządzenia',\n    area: 'Strefa',\n  },\n  deviceType: {\n    ['Słupek wjazdowy']: 'Słupek wjazdowy',\n    ['Słupek wyjazdowy']: 'Słupek wyjazdowy',\n    ['Słupek wjazdowo / wyjazdowy']: 'Słupek wjazdowo / wyjazdowy',\n    ['Słupek wjazdowo/wyjazdowy']: 'Słupek wjazdowo/wyjazdowy',\n    ['Szlaban']: 'Szlaban',\n    ['Kamera']: 'Kamera',\n    ['Kasa parkingowa']: 'Kasa parkingowa',\n    ['Kasa']: 'Kasa',\n    ['Domofon']: 'Domofon',\n    ['Terminal Płatniczy']: 'Terminal Płatniczy',\n    ['Miejsce parkingowe']: 'Miejsce parkingowe',\n  },\n};\n\nexport const EN_TRANSLATIONS = {\n  general: {\n    allDevices: 'All devices',\n    moving: 'Moving',\n    view: 'View',\n  },\n  tableHeader: {\n    deviceName: 'Device name',\n    area: 'Area',\n  },\n  deviceType: {\n    ['Słupek wjazdowy']: 'Entry terminal',\n    ['Słupek wyjazdowy']: 'Exit terminal',\n    ['Słupek wjazdowo / wyjazdowy']: 'Entry / exit terminal',\n    ['Słupek wjazdowo/wyjazdowy']: 'Entry/exit terminal',\n    ['Szlaban']: 'Barrier',\n    ['Kamera']: 'Camera',\n    ['Kasa parkingowa']: 'Payment machine',\n    ['Kasa']: 'Payment machine',\n    ['Domofon']: 'Intercom',\n    ['Terminal Płatniczy']: 'Payment terminal',\n    ['Miejsce parkingowe']: 'Parking spot',\n  },\n};\n\nexport const ALL_TRANSLATIONS: { [key: string]: any } = {\n  pl: PL_TRANSLATIONS,\n  en: EN_TRANSLATIONS,\n};\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ALL_TRANSLATIONS } from './translations';\nimport { Subject } from 'rxjs';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\nimport { ArtboardLibConfigService } from '../services/artboard-lib-config.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ArtboardTranslationsService {\n  private languageSubject = new Subject<string>();\n  public languageListener$ = this.languageSubject.asObservable();\n\n  private currentLang: string = 'pl';\n  public useTranslations: boolean = false;\n\n  constructor(\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.useTranslations = this.config.useTranslations ?? false;\n    this.setLanguage(this.currentLang);\n  }\n\n  public setLanguage(lang: string): void {\n    if (!this.useTranslations) {\n      this.currentLang = 'pl';\n      return;\n    }\n\n    if (lang && ALL_TRANSLATIONS[lang]) {\n      this.currentLang = lang;\n\n      this.languageSubject.next(lang);\n    }\n  }\n\n  public get(key: string): string {\n    const translations = ALL_TRANSLATIONS[this.currentLang];\n    if (!translations) {\n      return key;\n    }\n\n    return (\n      key.split('.').reduce((obj, k) => obj && obj[k], translations) || key\n    );\n  }\n\n  public getCurrentLanguage(): string {\n    return this.currentLang;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ArtboardTranslationsService } from './artboard-translations.service';\n\n@Pipe({\n  name: 'customTranslate',\n  pure: false,\n  standalone: true,\n})\nexport class CustomTranslatePipe implements PipeTransform {\n  constructor(private translationService: ArtboardTranslationsService) {}\n\n  transform(value: string): string {\n    return this.translationService.get(value);\n  }\n}\n","import {\n  AfterViewInit,\n  Component,\n  computed,\n  ElementRef,\n  HostListener,\n  Inject,\n  inject,\n  Input,\n  OnInit,\n  signal,\n  SimpleChanges,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n  debounceTime,\n  forkJoin,\n  of,\n  Subject,\n  Subscription,\n  takeUntil,\n} from 'rxjs';\nimport {\n  DEFAULT_SCALE,\n  MAX_ZOOM,\n  MIN_ZOOM,\n  SELECT_BUTTON_DRAG_OPTIONS,\n  SELECT_BUTTON_VIS_OPTIONS,\n} from './constants/scheme.constants';\nimport { BoardStore } from '../../store/board.store';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { SliderModule } from 'primeng/slider';\nimport { ButtonModule } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport {\n  DRAG_OPTIONS_ENUM,\n  IDragOption,\n} from '../../interfaces/drag-option.type';\nimport { ItemComponent } from '../../item/item.component';\nimport { IArtboardUm } from '../../models/artboard-um.model';\nimport { ArtboardService } from '../../services/artboard.service';\nimport { IArtboardToolboxElementVm } from '../../models/artboard-toolbox-element-vm.model';\nimport { IArtboardElementIm } from '../../models/artboard-element-im.model';\nimport { IArtboardElementUm } from '../../models/artboard-element-um.model';\nimport { ArtboardElementService } from '../../services/artboard-element.service';\nimport { IArtboardVm } from '../../models/artboard-vm.model';\nimport { IArtboardElementVm } from '../../models/artboard-element-vm.model';\nimport { ArtboardsService } from '../../services/artboards.service';\nimport { ArtboardElementsService } from '../../services/artboard-elements.service';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ArtboardPositionService } from '../../services/artboard-position.service';\nimport { IArtboardPositionUm } from '../../models/artboard-position-um.model';\nimport { SelectedElementService } from '../../services/selected-element.service';\nimport { MediaService } from '../../services/media.service';\nimport { MyAccountService } from '../../services/my-account.service';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { ArtboardLibConfigService } from '../../services/artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../../models/artboard-lib-config.model';\nimport { PassComponentService } from '../../services/pass-component.service';\nimport { FasServiceTableComponent } from 'fas-services';\nimport { ArtboardTranslationsService } from '../../translations/artboard-translations.service';\nimport { CustomTranslatePipe } from '../../translations/custom-translate.pipe';\n\ndeclare var Snap: any;\n\n@Component({\n  selector: 'art-scheme',\n  standalone: true,\n  templateUrl: './scheme.component.html',\n  styleUrl: './scheme.component.scss',\n  imports: [\n    FasServiceTableComponent,\n    ProgressSpinnerModule,\n    ProgressSpinnerModule,\n    SelectButtonModule,\n    FileUploadModule,\n    DropdownModule,\n    ItemComponent,\n    CommonModule,\n    ButtonModule,\n    SliderModule,\n    FormsModule,\n    CustomTranslatePipe,\n  ],\n})\nexport class SchemeComponent implements OnInit, AfterViewInit {\n  private readonly selectedArtboardStorageKey =\n    'itbees-artboard-lib:selected-artboard-guid';\n\n  @Input() selectedArtboard!: IArtboardVm;\n  @Input() defaultView: string = 'map';\n  @Input() hideHeader: boolean = false;\n\n  @ViewChild('artboardTable') artboardTable!: FasServiceTableComponent;\n  @ViewChild('svg') svgElement!: ElementRef;\n  @ViewChild('container', { read: ViewContainerRef, static: false })\n  public container!: ViewContainerRef;\n  @ViewChild('fileUploadCmp') private fileUploadCmp: any;\n\n  public selectButtonDragOptions = SELECT_BUTTON_DRAG_OPTIONS;\n  public selectButtonVisOption = SELECT_BUTTON_VIS_OPTIONS;\n  public dragOptions = DRAG_OPTIONS_ENUM;\n  public maxZoom = MAX_ZOOM;\n  public minZoom = MIN_ZOOM;\n\n  private artboardElementsService = inject(ArtboardElementsService);\n  private artboardPositionService = inject(ArtboardPositionService);\n  private artboardElementService = inject(ArtboardElementService);\n  private selectedElementService = inject(SelectedElementService);\n  private passComponentService = inject(PassComponentService);\n  private artboardsService = inject(ArtboardsService);\n  private myAccountService = inject(MyAccountService);\n  private artboardService = inject(ArtboardService);\n  private mediaService = inject(MediaService);\n  readonly boardStore = inject(BoardStore);\n  private translationsService = inject(ArtboardTranslationsService);\n\n  private positionChangeSubject = new Subject<void>();\n  private selectedElementPositionChangeSubject = new Subject<void>();\n  private registrySubscription!: Subscription;\n  private destroy$ = new Subject<void>();\n  private scale = signal(DEFAULT_SCALE);\n  private isPanning = signal(false);\n  private startPoint = { x: 0, y: 0 };\n  private endPoint = { x: 0, y: 0 };\n\n  public zoomValue = computed(() => Math.round(this.scale() * 100) / 100);\n  public lastSelectedElement: IArtboardElementVm | number = 0;\n  public selectedElement!: IArtboardElementVm | null;\n  public activeFilters: Set<string> = new Set();\n  public deleteElementLoading: boolean = false;\n  public selectedFile: File | null = null;\n  public isUploadLoading: boolean = false;\n  public elements!: IArtboardElementVm[];\n  public artboards: IArtboardVm[] = [];\n  public filteredElements: any[] = [];\n  public loading: boolean = false;\n  public extendedView!: boolean;\n  public externalArtboardData!: boolean;\n  public backgroundImageUrl = '';\n  public svgSize = { w: 0, h: 0 };\n  public visType: string = 'map';\n  public uniqueElements!: any[];\n  public mode!: string;\n\n  public viewBox: { x: number; y: number; width: number; height: number } = {\n    x: 0,\n    y: 0,\n    width: 1700,\n    height: 795,\n  };\n\n  public applicationAllColumns = [\n    {\n      field: 'displayName',\n      header: this.translationsService.get('tableHeader.deviceName'),\n      // header: 'Nazwa urządzenia',\n      contentClass: 'text-sm',\n      valueFunction: this.getDevice.bind(this),\n    },\n    {\n      field: 'messageEmail',\n      header: this.translationsService.get('tableHeader.area'),\n      // header: 'Strefa',\n      contentClass: 'text-sm',\n    },\n  ];\n\n  get viewBoxValue(): string {\n    return `${this.viewBox.x} ${this.viewBox.y} ${this.viewBox.width} ${this.viewBox.height}`;\n  }\n\n  constructor(\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.mode = config.mode;\n    this.extendedView = config.extendedView;\n    this.externalArtboardData = config.externalArtboardData;\n  }\n\n  ngOnInit(): void {\n    this.visType = this.defaultView;\n\n    // Jeśli rodzic przekazał wybrany artboard z tłem, ustaw je od razu.\n    // Dzięki temu po odświeżeniu nie \"gasimy\" obrazka, gdy lista artboardów\n    // zwraca `backgroundImageUrl` jako `undefined`.\n    if (this.selectedArtboard?.backgroundImageUrl !== undefined) {\n      this.backgroundImageUrl = this.selectedArtboard.backgroundImageUrl || '';\n    }\n\n    this.positionChangeSubject\n      .pipe(debounceTime(100), takeUntil(this.destroy$))\n      .subscribe(() => this.updateMapPosition());\n\n    this.selectedElementPositionChangeSubject\n      .pipe(debounceTime(100), takeUntil(this.destroy$))\n      .subscribe(() => this.updateSelectedElementPosition());\n\n    if (!this.externalArtboardData) {\n      // Zawsze pobieramy artboardy z backendu,\n      // żeby nie utrwalić niedostępnego `selectedArtboard.guid` po refreshu.\n      this.getArtboards();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['selectedArtboard'] && this.externalArtboardData) {\n      this.selectArtboard(this.selectedArtboard);\n    }\n  }\n\n  ngAfterViewInit(): void {\n    // if (this.visType === 'map' && this.mode !== 'admin') {\n    if (this.mode !== 'admin') {\n      this.selectedElementService\n        .getSelectedElement()\n        .subscribe((selectedElement) => {\n          if (selectedElement?.artboardToolboxElement?.elementType) {\n            const component = this.passComponentService.getComponentByType(\n              selectedElement.artboardToolboxElement.elementType\n            );\n            if (component) {\n              this.passComponentService.insertSpecificComponentIntoView(\n                this.container,\n                component,\n                { customData: selectedElement }\n              );\n            } else {\n              this.passComponentService.clearContainer(this.container);\n            }\n          } else {\n            this.passComponentService.clearContainer(this.container);\n          }\n        });\n\n      this.boardStore.updateDragOption(DRAG_OPTIONS_ENUM.NAVIGATE);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.registrySubscription) {\n      this.registrySubscription.unsubscribe();\n    }\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  getDevice(data: IArtboardElementVm) {\n    return data.artboardToolboxElement?.displayName;\n  }\n\n  getArtboards(): void {\n    this.artboardsService.get().subscribe({\n      next: (res) => {\n        const artboards = Array.isArray(res) ? res : res?.data;\n        this.artboards = Array.isArray(artboards) ? artboards : [];\n        if (this.artboards.length > 0) {\n          const inputGuid = this.selectedArtboard?.guid;\n          const lastSelectedGuid =\n            inputGuid ?? this.getLastSelectedArtboardGuid();\n          const selectedArtboard = this.artboards.find(\n            (artboard) => artboard.guid === lastSelectedGuid\n          );\n          this.selectArtboard(selectedArtboard ?? this.artboards[0]);\n        }\n      },\n      error: (err) => console.error('Error while getting artboards:', err),\n    });\n  }\n\n  onCustomUpload(event: any): void {\n    if (!this.selectedArtboard?.guid) {\n      return;\n    }\n    const guid = this.selectedArtboard.guid;\n    const file = event.files?.[0];\n    if (file) {\n      this.isUploadLoading = true;\n      this.myAccountService.get().subscribe({\n        next: (res) => {\n          const companyGuid = res.lastUsedCompanyGuid;\n\n          const formData = new FormData();\n          formData.append('companyGuid', companyGuid);\n          formData.append('file', file as Blob);\n          formData.append('publicVisible', 'true');\n\n          this.mediaService.post(formData).subscribe({\n            next: (response) => {\n              if (!response?.success || !response.fileUrl) {\n                this.isUploadLoading = false;\n                this.fileUploadCmp?.clear?.();\n                return;\n              }\n\n              // Optymistycznie pokazujemy podgląd od razu po uploadzie pliku,\n              // żeby użytkownik widział, czy nowy `fileUrl` jest poprawny.\n              this.backgroundImageUrl = response.fileUrl;\n              this.selectedArtboard = {\n                ...this.selectedArtboard,\n                backgroundImageUrl: response.fileUrl,\n              };\n\n              // Nie wywołujemy GET /Artboard przed PUT, bo endpoint bywa odrzucany (400 access/company).\n              // Payload do PUT budujemy z aktualnie wybranego artboardu + bieżącego viewBox.\n              const dataToPut: any = {\n                guid: this.selectedArtboard.guid,\n                artboardOwnerGuid: this.selectedArtboard.artboardOwnerGuid,\n                meshEnabled: !!this.selectedArtboard.meshEnabled,\n                dragEnabled: !!this.selectedArtboard.dragEnabled,\n                showToolbox: !!this.selectedArtboard.showToolbox,\n                controlButtonsVisible: !!this.selectedArtboard.controlButtonsVisible,\n\n                backgroundImageUrl: response.fileUrl,\n                backgroundImageZoom: Number(this.selectedArtboard.backgroundImageZoom),\n                backgroundImagePositionX: String(this.viewBox.x),\n                backgroundImagePositionY: String(this.viewBox.y),\n\n                zoom: Number((this.selectedArtboard as any).zoom),\n                isActive: !!(this.selectedArtboard as any).isActive,\n\n                artboardName: String((this.selectedArtboard as any).artboardName ?? ''),\n                artboardType: Number((this.selectedArtboard as any).artboardType),\n\n                viewBoxData: `${this.viewBox.x} ${this.viewBox.y} ${this.viewBox.width} ${this.viewBox.height}`,\n                viewBoxX: String(this.viewBox.x),\n                viewBoxY: String(this.viewBox.y),\n                viewBoxWidth: String(this.viewBox.width),\n                viewBoxHeight: String(this.viewBox.height),\n              };\n              this.artboardService.put(dataToPut).subscribe({\n                next: (updated) => {\n                  // Aktualizacja widoku od razu po sukcesie.\n                  this.backgroundImageUrl =\n                    updated?.backgroundImageUrl ?? response.fileUrl;\n                  this.selectedArtboard = {\n                    ...this.selectedArtboard,\n                    backgroundImageUrl: this.backgroundImageUrl,\n                  };\n                  this.getArtboards();\n                  this.isUploadLoading = false;\n                  this.fileUploadCmp?.clear?.();\n                },\n                error: (error) => {\n                  console.error(error);\n                  this.isUploadLoading = false;\n                  this.fileUploadCmp?.clear?.();\n                },\n              });\n            },\n            error: (error) => {\n              console.error('Error uploading file', error);\n              this.isUploadLoading = false;\n              this.fileUploadCmp?.clear?.();\n            },\n          });\n        },\n        error: (error) => {\n          console.error(error);\n          this.isUploadLoading = false;\n          this.fileUploadCmp?.clear?.();\n        },\n      });\n    }\n  }\n\n  selectArtboard(artboard: IArtboardVm): void {\n    if (artboard) {\n      this.selectedArtboard = artboard;\n      this.setLastSelectedArtboardGuid(artboard.guid);\n      // Uwaga: czasem backend zwraca brak pola `backgroundImageUrl` (undefined).\n      // Wtedy nie czyścimy poprzedniego tła, żeby nie było \"flickeru/zaniku\" po przełączeniu parkingu.\n      if (artboard.backgroundImageUrl !== undefined) {\n        this.backgroundImageUrl = artboard.backgroundImageUrl || '';\n      }\n      if (this.visType === 'map') {\n        this.viewBox = {\n          x: Number(artboard?.viewBoxX) || 0,\n          y: Number(artboard?.viewBoxY) || 0,\n          width: Number(artboard?.viewBoxWidth) || 1700,\n          height: Number(artboard?.viewBoxHeight) || 795,\n        };\n      }\n\n      forkJoin({\n        elements: this.artboardElementsService.get(artboard.guid),\n      }).subscribe({\n        next: ({ elements }) => {\n          this.elements = elements;\n          this.filteredElements = elements;\n          this.uniqueElements = [\n            ...new Set(\n              elements.map((el) => el.artboardToolboxElement?.elementType)\n            ),\n          ];\n          this.calculateSvgSize();\n        },\n        error: (err) => console.error('Error while loading data:', err),\n      });\n    }\n  }\n\n  private getLastSelectedArtboardGuid(): string | null {\n    try {\n      return localStorage.getItem(this.selectedArtboardStorageKey);\n    } catch {\n      return null;\n    }\n  }\n\n  private setLastSelectedArtboardGuid(guid: string): void {\n    try {\n      localStorage.setItem(this.selectedArtboardStorageKey, guid);\n    } catch {\n      // Ignore storage errors (e.g. private mode/quota restrictions).\n    }\n  }\n\n  private calculateSvgSize(): void {\n    if (this.svgElement && this.svgElement.nativeElement) {\n      const clientWidth = this.svgElement.nativeElement.clientWidth;\n      const clientHeight = this.svgElement.nativeElement.clientHeight;\n\n      this.svgSize = {\n        w: Number.isFinite(clientWidth) && clientWidth > 0 ? clientWidth : 1,\n        h: Number.isFinite(clientHeight) && clientHeight > 0 ? clientHeight : 1,\n      };\n    }\n  }\n\n  toggleFilter(type: string): void {\n    if (this.activeFilters.has(type)) {\n      this.activeFilters.delete(type);\n    } else {\n      this.activeFilters.add(type);\n\n      if (this.activeFilters.size === this.uniqueElements.length) {\n        this.resetFilters();\n        return;\n      }\n    }\n\n    this.updateFilteredElements();\n  }\n\n  resetFilters(): void {\n    this.activeFilters.clear();\n    this.updateFilteredElements();\n  }\n\n  private updateFilteredElements(): void {\n    if (this.activeFilters.size === 0) {\n      this.filteredElements = this.elements;\n    } else {\n      this.filteredElements = this.elements.filter(\n        (el) =>\n          el.artboardToolboxElement?.elementType &&\n          this.activeFilters.has(el.artboardToolboxElement.elementType)\n      );\n    }\n  }\n\n  selectElement(element: IArtboardElementVm, index?: number) {\n    if (this.lastSelectedElement !== element) {\n      if (index != null) {\n        if (this.visType === 'table') {\n          this.artboardTable.deselectAllRows();\n          this.artboardTable.selectRow(index);\n        }\n      }\n      this.selectedElementService.setSelectedElement(element);\n      this.selectedElement = element;\n      this.lastSelectedElement = element;\n    } else {\n      if (this.visType === 'table') {\n        this.artboardTable.deselectAllRows();\n      }\n      this.selectedElementService.setSelectedElement(null);\n      this.selectedElement = null;\n      this.lastSelectedElement = 0;\n    }\n  }\n\n  @HostListener('document:keydown', ['$event'])\n  onDocumentKeydown(event: KeyboardEvent): void {\n    if (this.visType !== 'map') return;\n    if (!this.selectedElement?.guid) return;\n\n    const target = event.target as HTMLElement | null;\n    if (target) {\n      const tag = target.tagName.toLowerCase();\n      const isTypingField =\n        tag === 'input' ||\n        tag === 'textarea' ||\n        tag === 'select' ||\n        target.isContentEditable;\n      if (isTypingField) return;\n    }\n\n    let dx = 0;\n    let dy = 0;\n    switch (event.key) {\n      case 'ArrowLeft':\n        dx = -1;\n        break;\n      case 'ArrowRight':\n        dx = 1;\n        break;\n      case 'ArrowUp':\n        dy = -1;\n        break;\n      case 'ArrowDown':\n        dy = 1;\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    this.moveSelectedElementBy(dx, dy);\n  }\n\n  private moveSelectedElementBy(dx: number, dy: number): void {\n    if (!this.selectedElement?.guid) return;\n\n    const guid = this.selectedElement.guid;\n    const nextX = Number(this.selectedElement.locationX) + dx;\n    const nextY = Number(this.selectedElement.locationY) + dy;\n\n    this.selectedElement = {\n      ...this.selectedElement,\n      locationX: nextX,\n      locationY: nextY,\n    };\n\n    this.filteredElements = this.filteredElements.map((el) =>\n      el.guid === guid ? { ...el, locationX: nextX, locationY: nextY } : el\n    );\n    this.elements = this.elements.map((el) =>\n      el.guid === guid ? { ...el, locationX: nextX, locationY: nextY } : el\n    );\n\n    this.selectedElementService.setSelectedElement(this.selectedElement);\n    this.selectedElementPositionChangeSubject.next();\n  }\n\n  private updateSelectedElementPosition(): void {\n    if (!this.selectedElement?.guid) return;\n\n    const dataToPut: IArtboardElementUm = {\n      guid: this.selectedElement.guid,\n      artboardGuid: this.selectedElement.artboardGuid,\n      artboardToolboxElementGuid: this.selectedElement.artboardToolboxElementGuid,\n      customSerializedObject: this.selectedElement.customSerializedObject,\n      locationX: Number(this.selectedElement.locationX),\n      locationY: Number(this.selectedElement.locationY),\n      locationZ: this.selectedElement.locationZ,\n      zIndex: this.selectedElement.zIndex,\n      width: this.selectedElement.width,\n      height: this.selectedElement.height,\n      elementPropertiesHash: this.selectedElement.elementPropertiesHash,\n    };\n\n    this.artboardElementService.put(dataToPut).subscribe({\n      next: () => {},\n      error: (err) => console.error('Error while saving element position:', err),\n    });\n  }\n\n  onMapBackgroundClick(event: MouseEvent): void {\n    const target = event.target as HTMLElement | null;\n    if (!target) {\n      return;\n    }\n\n    // Nie odznaczaj, jeśli kliknięcie było w element mapy (art-item) lub jego potomka.\n    if (target.closest('[art-item]')) {\n      return;\n    }\n\n    if (this.visType === 'table') {\n      this.artboardTable.deselectAllRows();\n    }\n    this.selectedElementService.setSelectedElement(null);\n    this.selectedElement = null;\n    this.lastSelectedElement = 0;\n  }\n\n  onMouseMove(event: MouseEvent): void {\n    if (!this.isPanning()) return;\n\n    const currentScale = this.scale();\n    if (!Number.isFinite(currentScale) || currentScale <= 0) return;\n\n    // Safety guard: avoid NaN/Infinity in viewBox calculations.\n    if (\n      !Number.isFinite(this.viewBox.x) ||\n      !Number.isFinite(this.viewBox.y) ||\n      !Number.isFinite(this.viewBox.width) ||\n      !Number.isFinite(this.viewBox.height) ||\n      this.viewBox.width <= 0 ||\n      this.viewBox.height <= 0\n    ) {\n      return;\n    }\n\n    this.endPoint = { x: event.x, y: event.y };\n    const dx = (this.startPoint.x - this.endPoint.x) / currentScale;\n    const dy = (this.startPoint.y - this.endPoint.y) / currentScale;\n    this.startPoint.x = this.endPoint.x;\n    this.startPoint.y = this.endPoint.y;\n    this.viewBox = {\n      x: this.viewBox.x + dx,\n      y: this.viewBox.y + dy,\n      width: this.viewBox.width,\n      height: this.viewBox.height,\n    };\n\n    this.positionChangeSubject.next();\n  }\n\n  onMouseDown(event: MouseEvent): void {\n    //Disabled for DnD\n    if (this.boardStore.dragOption() === DRAG_OPTIONS_ENUM.NAVIGATE) {\n      this.isPanning.set(true);\n      this.startPoint = { x: event.x, y: event.y };\n    }\n  }\n\n  onMouseUp(event: MouseEvent): void {\n    if (this.boardStore.dragOption() === DRAG_OPTIONS_ENUM.NAVIGATE) {\n      this.isPanning.set(false);\n    }\n  }\n\n  onMouseWheel(event: Event): void {\n    event.preventDefault();\n\n    if (\n      !Number.isFinite(this.svgSize.w) ||\n      !Number.isFinite(this.svgSize.h) ||\n      this.svgSize.w <= 0 ||\n      this.svgSize.h <= 0\n    ) {\n      return;\n    }\n    if (\n      !Number.isFinite(this.viewBox.width) ||\n      !Number.isFinite(this.viewBox.height) ||\n      this.viewBox.width <= 0 ||\n      this.viewBox.height <= 0\n    ) {\n      return;\n    }\n\n    const currentScale = this.scale();\n    if (!Number.isFinite(currentScale) || currentScale <= 0) return;\n\n    if (this.adjustScaleWithinZoomLimits(event as WheelEvent)) {\n      return;\n    }\n\n    const w = this.viewBox.width;\n    const h = this.viewBox.height;\n    const mx = (event as WheelEvent).offsetX;\n    const my = (event as WheelEvent).offsetY;\n    const dw = w * Math.sign((event as WheelEvent).deltaY) * -0.05;\n    const dh = h * Math.sign((event as WheelEvent).deltaY) * -0.05;\n    const dx = (dw * mx) / this.svgSize.w;\n    const dy = (dh * my) / this.svgSize.h;\n    this.viewBox = {\n      x: this.viewBox.x + dx,\n      y: this.viewBox.y + dy,\n      width: this.viewBox.width - dw,\n      height: this.viewBox.height - dh,\n    };\n    this.scale.set(this.svgSize.w / this.viewBox.width);\n\n    this.positionChangeSubject.next();\n  }\n\n  removeElementFromArtboard(guid: string) {\n    this.filteredElements = this.filteredElements.filter(\n      (element) => element.guid !== guid\n    );\n  }\n\n  reset(): void {\n    this.scale.set(DEFAULT_SCALE);\n    this.viewBox = {\n      x: 0,\n      y: 0,\n      width: 1700,\n      height: 795,\n    };\n\n    this.positionChangeSubject.next();\n  }\n\n  updateDragOption(dragOption: IDragOption): void {\n    this.boardStore.updateDragOption(dragOption);\n  }\n\n  private adjustScaleWithinZoomLimits(wheelEvent: WheelEvent): boolean {\n    const isScrollingUp = wheelEvent.deltaY < 0;\n    const isScrollingDown = wheelEvent.deltaY > 0;\n\n    if (this.zoomValue() >= MAX_ZOOM && isScrollingUp) {\n      this.scale.set(MAX_ZOOM);\n\n      return true;\n    }\n\n    if (this.zoomValue() <= MIN_ZOOM && isScrollingDown) {\n      this.scale.set(MIN_ZOOM);\n      return true;\n    }\n\n    return false;\n  }\n\n  updateMapPosition(): void {\n    if (!this.selectedArtboard?.guid) {\n      return;\n    }\n\n    if (\n      !Number.isFinite(this.viewBox.x) ||\n      !Number.isFinite(this.viewBox.y) ||\n      !Number.isFinite(this.viewBox.width) ||\n      !Number.isFinite(this.viewBox.height)\n    ) {\n      return;\n    }\n\n    if (this.viewBox.width <= 0 || this.viewBox.height <= 0) {\n      return;\n    }\n\n    const dataToUpdate: IArtboardPositionUm = {\n      artboardGuid: this.selectedArtboard.guid,\n      backgroundImageZoom: this.selectedArtboard.backgroundImageZoom,\n      backgroundImagePositionX: String(this.viewBox.x),\n      backgroundImagePositionY: String(this.viewBox.y),\n      viewBoxX: String(this.viewBox.x),\n      viewBoxY: String(this.viewBox.y),\n      viewBoxWidth: String(this.viewBox.width),\n      viewBoxHeight: String(this.viewBox.height),\n      viewBoxData: `${this.viewBox.x} ${this.viewBox.y} ${this.viewBox.width} ${this.viewBox.height}`,\n    };\n\n    this.artboardPositionService.put(dataToUpdate).subscribe({\n      next: () => {},\n      error: (err) => console.error('Error while saving map data:', err),\n    });\n  }\n\n  onExternalElementDragOver(event: DragEvent): void {\n    event.preventDefault();\n    if (event.dataTransfer) {\n      event.dataTransfer.dropEffect = 'copy';\n    }\n  }\n\n  onExternalElementDrop(event: DragEvent): void {\n    event.preventDefault();\n    if (!this.selectedArtboard?.guid) {\n      return;\n    }\n\n    const elementData =\n      event.dataTransfer?.getData('application/json') ||\n      event.dataTransfer?.getData('text/plain');\n    if (!elementData) return;\n\n    let element: IArtboardToolboxElementVm;\n    try {\n      element = JSON.parse(elementData);\n    } catch (error) {\n      console.error('Invalid dragged element payload:', error);\n      return;\n    }\n    const svgPoint = this.getSVGCoordinates(event);\n    const defaultWidth = 50;\n    const defaultHeight = 50;\n\n    const newElement: IArtboardElementIm = {\n      artboardToolboxElementGuid: element.guid,\n      artboardGuid: this.selectedArtboard.guid,\n      // Dla nowych elementów używamy tej samej kotwicy (top-left) co przy późniejszym drag&drop.\n      // To eliminuje drobne przesunięcie widoczne po odświeżeniu.\n      locationX: Number(svgPoint.x) - defaultWidth / 2,\n      locationY: Number(svgPoint.y) - defaultHeight / 2,\n      locationZ: 0,\n      zIndex: 0,\n      width: defaultWidth,\n      height: defaultHeight,\n      customSerializedObject: '',\n      elementPropertiesHash: '',\n    };\n\n    this.artboardElementService.post(newElement).subscribe({\n      next: (res) => {\n        this.filteredElements = [...this.filteredElements, res];\n      },\n      error: (err) => console.error(err),\n    });\n  }\n\n  getSVGCoordinates(event: DragEvent): { x: number; y: number } {\n    const svg = this.svgElement.nativeElement as SVGSVGElement;\n    const ctm = svg.getScreenCTM();\n    if (!ctm) {\n      return { x: 0, y: 0 };\n    }\n    const point = svg.createSVGPoint();\n    point.x = event.clientX;\n    point.y = event.clientY;\n    const transformedPoint = point.matrixTransform(ctm.inverse());\n    return { x: transformedPoint.x, y: transformedPoint.y };\n  }\n}\n","<div class=\"container\">\n  <div\n    *ngIf=\"!hideHeader\"\n    class=\"header-container p-2 flex justify-content-between align-items-center gap-3\"\n  >\n    <div *ngIf=\"!externalArtboardData\" class=\"w-12rem\">\n      <p-dropdown\n        appendTo=\"body\"\n        [options]=\"artboards\"\n        [(ngModel)]=\"selectedArtboard\"\n        optionLabel=\"artboardName\"\n        placeholder=\"Wybierz parking\"\n        styleClass=\"w-full default-input\"\n        (onChange)=\"selectArtboard($event.value)\"\n      >\n      </p-dropdown>\n    </div>\n    <div\n      *ngIf=\"extendedView\"\n      class=\"flex gap-2 align-items-center justify-content-center\"\n    >\n      <div>{{ \"general.view\" | customTranslate }}</div>\n      <p-selectButton\n        styleClass=\"select-wrap\"\n        [options]=\"selectButtonVisOption\"\n        optionValue=\"value\"\n        unselectable=\"true\"\n        [(ngModel)]=\"visType\"\n        class=\"ng-custom-selectButon\"\n      >\n        <ng-template let-item pTemplate\n          ><i [ngClass]=\"item.icon\"></i\n        ></ng-template>\n      </p-selectButton>\n    </div>\n    <div class=\"flex gap-2 align-items-center justify-content-center\">\n      <div>{{ \"general.moving\" | customTranslate }}</div>\n      <p-selectButton\n        [options]=\"selectButtonDragOptions\"\n        (onChange)=\"updateDragOption($event.value)\"\n        [ngModel]=\"boardStore.dragOption()\"\n        optionLabel=\"label\"\n        optionValue=\"value\"\n        unselectable=\"true\"\n      />\n    </div>\n  </div>\n  <div\n    class=\"header-container p-3 flex justify-content-start align-items-center gap-3 flex-wrap\"\n  >\n    <div\n      class=\"filter-btn\"\n      [ngClass]=\"{ 'bg-primary': activeFilters.size === 0 }\"\n      (click)=\"resetFilters()\"\n    >\n      {{ \"general.allDevices\" | customTranslate }}\n    </div>\n    <div\n      class=\"filter-btn\"\n      *ngFor=\"let type of uniqueElements\"\n      [ngClass]=\"{ 'bg-primary': activeFilters.has(type) }\"\n      (click)=\"toggleFilter(type)\"\n    >\n      {{ \"deviceType.\" + type | customTranslate }}\n    </div>\n  </div>\n  @if(visType==='map'){\n  <div\n    class=\"map-area flex-grow-1\"\n    (mousemove)=\"onMouseMove($event)\"\n    (mousedown)=\"onMouseDown($event)\"\n    (mouseup)=\"onMouseUp($event)\"\n    (mousewheel)=\"onMouseWheel($event)\"\n    (dragover)=\"onExternalElementDragOver($event)\"\n    (drop)=\"onExternalElementDrop($event)\"\n  >\n    <svg\n      *ngIf=\"viewBox\"\n      id=\"svg\"\n      [attr.viewBox]=\"viewBoxValue\"\n      #svg\n      (click)=\"onMapBackgroundClick($event)\"\n      [class.cursor-move]=\"boardStore.dragOption() === dragOptions.NAVIGATE\"\n    >\n      <!-- <circle r=\"4\" cx=\"0\" cy=\"0\" fill=\"red\" /> -->\n      <g id=\"mapSlot\">\n        <image [attr.href]=\"backgroundImageUrl\" />\n      </g>\n      @for(element of filteredElements; track $index) {\n      <g\n        art-item\n        [guid]=\"element.guid\"\n        [x]=\"element.locationX\"\n        [y]=\"element.locationY\"\n        [w]=\"element.width\"\n        [h]=\"element.height\"\n        [ico]=\"\n          element.artboardToolboxElement?.imageUrl ||\n          'https://itbees.pl/img/barierr.svg'\n        \"\n        [dragOption]=\"boardStore.dragOption()\"\n        [selected]=\"element.guid === selectedElement?.guid\"\n        (click)=\"selectElement(element)\"\n        (elementDeleted)=\"removeElementFromArtboard($event)\"\n      ></g>\n      }\n    </svg>\n  </div>\n  <div\n    class=\"footer-container p-3 flex justify-content-between align-items-center gap-3\"\n  >\n    <div class=\"flex gap-2 align-items-center\">\n      <p-fileUpload\n        #fileUploadCmp\n        name=\"file\"\n        mode=\"basic\"\n        customUpload=\"true\"\n        chooseLabel=\"Podmień obraz mapy\"\n        [auto]=\"true\"\n        (uploadHandler)=\"onCustomUpload($event)\"\n        [disabled]=\"isUploadLoading\"\n      >\n      </p-fileUpload>\n      <p-progressSpinner\n        styleClass=\"w-2rem h-2rem\"\n        strokeWidth=\"6\"\n        *ngIf=\"isUploadLoading\"\n        ariaLabel=\"loading\"\n      />\n    </div>\n  </div>\n  } @else {\n  <div class=\"table-area\">\n    <fas-services-table\n      #artboardTable\n      [value]=\"filteredElements\"\n      [columns]=\"applicationAllColumns\"\n      [scrollHeight]=\"'300px'\"\n      [paginator]=\"false\"\n      [rowClickFunction]=\"selectElement.bind(this)\"\n      [isOutlineHeadlight]=\"true\"\n      [customSelectHeadlight]=\"true\"\n      [showFooterPageReport]=\"false\"\n    ></fas-services-table>\n  </div>\n  }\n  <ng-container class=\"w-full\" #container></ng-container>\n</div>\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IArtboardToolboxElementVm } from '../models/artboard-toolbox-element-vm.model';\nimport { ArtboardLibConfigService } from './artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../models/artboard-lib-config.model';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArtboardToolboxesService {\n  private baseUrl: string;\n\n  constructor(\n    private http: HttpClient,\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.baseUrl = this.config.environment + '/ArtboardToolboxes';\n  }   \n\n  get(artboardGuid?: string): Observable<IArtboardToolboxElementVm[]> {\n    const headers = this.createHeaders();\n    let params = new HttpParams();\n    if (artboardGuid !== undefined && artboardGuid !== null) {\n      params = params.set('artboardGuid', artboardGuid.toString());\n    }\n    return this.http.get<IArtboardToolboxElementVm[]>(this.baseUrl, { headers, params });\n  }\n\n  private createHeaders(): HttpHeaders {\n    let headers = new HttpHeaders();\n    const token = localStorage.getItem('authToken') ?? localStorage.getItem('token');\n    if (token) {\n      headers = headers.set('Authorization', `Bearer ${token}`);\n    }\n    return headers;\n  }\n}\n","import { IArtboardToolboxElementVm } from '../../models/artboard-toolbox-element-vm.model';\nimport { ArtboardToolboxesService } from '../../services/artboard-toolboxes.service';\nimport { Component, Inject, inject, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { DividerModule } from 'primeng/divider';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { PassComponentService } from '../../services/pass-component.service';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { SelectedElementService } from '../../services/selected-element.service';\nimport { ArtboardLibConfigService } from '../../services/artboard-lib-config.service';\nimport { IArtboardLibConfig } from '../../models/artboard-lib-config.model';\n\n\n@Component({\n  selector: 'art-toolbar',\n  standalone: true,\n  imports: [DividerModule, CommonModule, ButtonModule, DialogModule],\n  templateUrl: './toolbar.component.html',\n  styleUrl: './toolbar.component.scss',\n})\nexport class ToolbarComponent implements OnInit {\n  public readonly defaultToolboxImageUrl = 'assets/images/default.png';\n\n  @ViewChild('container', { read: ViewContainerRef, static: true })\n\n  private container!: ViewContainerRef;\n  \n  private artboardToolboxesService = inject(ArtboardToolboxesService);\n  private selectedElementService = inject(SelectedElementService)\n  private passComponentService = inject(PassComponentService);\n  private registrySubscription!: Subscription;\n  public mode!: string;\n  \n  public artboardToolElements!: IArtboardToolboxElementVm[];\n  public visible: boolean = false;\n\n  constructor(\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.mode = config.mode;\n  }\n\n  ngOnInit(): void {\n    this.selectedElementService.getSelectedElement().subscribe(selectedElement => {\n      if (selectedElement?.artboardToolboxElement?.elementType) {\n        const component = this.passComponentService.getComponentByType(selectedElement.artboardToolboxElement.elementType);\n        if (component) {\n          this.passComponentService.insertSpecificComponentIntoView(this.container, component, { customData: selectedElement });\n        } else {\n          this.passComponentService.clearContainer(this.container);\n        }\n      } else {\n        this.passComponentService.clearContainer(this.container);\n      }\n    });\n  \n\n    this.artboardToolboxesService.get().subscribe({\n      next: (res) => {\n        const toolboxElements = Array.isArray(res) ? res : (res as any)?.data;\n        this.artboardToolElements = Array.isArray(toolboxElements)\n          ? toolboxElements\n          : [];\n      },\n      error: (err) => {\n        console.error('Błąd podczas pobierania:', err);\n      },\n    });\n  }\n  \n  ngOnDestroy(): void {\n    if (this.registrySubscription) {\n      this.registrySubscription.unsubscribe();\n    }\n  }\n  \n  onDragStart(event: DragEvent, element: IArtboardToolboxElementVm): void {\n    if (!event.dataTransfer) {\n      return;\n    }\n\n    const payload = JSON.stringify(element);\n    event.dataTransfer.setData('application/json', payload);\n    event.dataTransfer.setData('text/plain', payload);\n    event.dataTransfer.effectAllowed = 'copy';\n  }\n\n  onImageError(event: Event): void {\n    const target = event.target as HTMLImageElement | null;\n    if (target) {\n      target.src = this.defaultToolboxImageUrl;\n    }\n  }\n\n  showDialog() {\n    this.visible = true;\n  }\n\n  closeDialog() {\n    this.visible = false;\n  }\n\n}\n","\n<div class=\"toolbar w-full h-full p-3 pt-5\">\n    <p class=\"text-sm font-normal line-height-3 m-0\">\n      Wybierz elementy zagospodarowania parkingu i przeciągnij je na wgraną mapę\n    </p>\n    <p-divider class=\"my-3\" />\n    <div class=\"toolbox-items flex flex-wrap gap-3 align-content-start\">\n      <ng-container *ngFor=\"let element of artboardToolElements\">\n        <div\n          class=\"flex flex-column align-items-center justify-content-center p-2 bg-gray-200 border-round shadow-2 cursor-pointer hover:bg-gray-300 transition-duration-200\"\n          draggable=\"true\"\n          [attr.data-element-id]=\"element?.guid\"\n          (dragstart)=\"onDragStart($event, element)\"\n        >\n          <img\n            [src]=\"element?.imageUrl || defaultToolboxImageUrl\"\n            alt=\"{{ element?.tooltipText || 'Nazwa elementu' }}\"\n            class=\"w-3rem h-3rem mb-2\"\n            draggable=\"false\"\n            (error)=\"onImageError($event)\"\n          />\n        </div>\n      </ng-container>\n    </div>\n    <p-divider class=\"my-3\" />\n    <div class=\"mt-4\">\n      <div class=\"flex align-items-end justify-content-end\" *ngIf=\"mode === 'admin'\">\n        <p-button\n          icon=\"pi pi-plus\"\n          label=\"Dodaj nowy\"\n          (onClick)=\"showDialog()\"\n        ></p-button>\n      </div>\n    </div>\n  <ng-container #container></ng-container>\n</div>\n","import { Component, Inject, inject, Input, OnInit } from '@angular/core';\nimport { SchemeComponent } from './containers/scheme/scheme.component';\nimport { ToolbarComponent } from './containers/toolbar/toolbar.component';\nimport { ArtboardLibConfigService } from './services/artboard-lib-config.service';\nimport { IArtboardLibConfig } from './models/artboard-lib-config.model';\nimport { CommonModule } from '@angular/common';\nimport { IArtboardVm } from './models/artboard-vm.model';\n\n@Component({\n  selector: 'itbees-artboard-lib',\n  standalone: true,\n  imports: [CommonModule, SchemeComponent, ToolbarComponent],\n  templateUrl: './itbees-artboard-lib.component.html',\n  styles: ``,\n})\nexport class ItbeesArtboardLibComponent {\n  @Input() selectedArtboard!: IArtboardVm;\n  @Input() defaultView: string = 'map';\n  @Input() hideHeader: boolean = false;\n\n  public mode!: string;\n\n  constructor(\n    @Inject(ArtboardLibConfigService) private config: IArtboardLibConfig\n  ) {\n    this.mode = config.mode;\n  }\n}\n","<div class=\"flex w-full h-full gap-2\">\n  <art-scheme\n    [hideHeader]=\"hideHeader\"\n    [selectedArtboard]=\"selectedArtboard\"\n    [defaultView]=\"defaultView\"\n    class=\"w-full\"\n  ></art-scheme>\n  <art-toolbar class=\"w-full\"></art-toolbar>\n</div>\n","/*\n * Public API Surface of itbees-artboard-lib\n */\n\nexport * from './lib/itbees-artboard-lib.service';\nexport * from './lib/itbees-artboard-lib.component';\n\nexport * from './lib/services/pass-component.service';\nexport * from './lib/services/artboard-lib-config.service';\nexport * from './lib/translations/artboard-translations.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ArtboardTranslationsService","i2","i3"],"mappings":"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"}