{"ast":null,"code":"import { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport let ClientService = /*#__PURE__*/(() => {\n  class ClientService {\n    constructor() {\n      // Armazena a lista de clientes como um BehaviorSubject para emissão de atualizações.\n      this.clientsSource = new BehaviorSubject([]);\n      // Observable para expor a lista de clientes e permitir que outros componentes se inscrevam.\n      this.clients$ = this.clientsSource.asObservable();\n      // Armazena o cliente selecionado como um BehaviorSubject para emissão de atualizações.\n      this.selectedClientSource = new BehaviorSubject('');\n      // Observable para expor o cliente selecionado e permitir que outros componentes se inscrevam.\n      this.selectedClient$ = this.selectedClientSource.asObservable();\n    }\n    /**\n     * Atualiza a lista de clientes armazenada.\n     * @param clients Lista de clientes a ser armazenada.\n     */\n    updateClients(clients) {\n      this.clientsSource.next(clients);\n    }\n    /**\n     * Atualiza o cliente selecionado armazenado.\n     * @param clientId ID do cliente a ser selecionado.\n     */\n    updateSelectedClient(clientId) {\n      this.selectedClientSource.next(clientId);\n    }\n    /**\n     * Define o cliente selecionado como um número.\n     * @param clientId ID numérico do cliente a ser definido como selecionado.\n     */\n    setSelectedClient(clientId) {\n      this.selectedClientSource.next(clientId.toString());\n    }\n    /**\n     * Obtém o cliente selecionado armazenado.\n     * @returns ID do cliente selecionado como um número.\n     */\n    getSelectedClient() {\n      return Number(this.selectedClientSource.getValue());\n    }\n    /**\n     * Retorna o nome do cliente atualmente selecionado.\n     * @returns Nome do cliente ou string vazia se não encontrado.\n     */\n    getSelectedClientName() {\n      const selectedId = this.getSelectedClient();\n      const clients = this.clientsSource.getValue();\n      const match = clients.find(c => c.id === selectedId);\n      return match?.name || '';\n    }\n    static #_ = this.ɵfac = function ClientService_Factory(t) {\n      return new (t || ClientService)();\n    };\n    static #_2 = this.ɵprov = /*@__PURE__*/i0.ɵɵdefineInjectable({\n      token: ClientService,\n      factory: ClientService.ɵfac,\n      providedIn: 'root'\n    });\n  }\n  return ClientService;\n})();","map":{"version":3,"names":["BehaviorSubject","ClientService","constructor","clientsSource","clients$","asObservable","selectedClientSource","selectedClient$","updateClients","clients","next","updateSelectedClient","clientId","setSelectedClient","toString","getSelectedClient","Number","getValue","getSelectedClientName","selectedId","match","find","c","id","name","_","_2","factory","ɵfac","providedIn"],"sources":["/root/rfcontavagas_hom/12.-Servidor-local-Docker/Front-Parking-Angular/src/app/services/client.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ClientService {\r\n  // Armazena a lista de clientes como um BehaviorSubject para emissão de atualizações.\r\n  private clientsSource = new BehaviorSubject<{ id: number, name: string }[]>([]);\r\n  // Observable para expor a lista de clientes e permitir que outros componentes se inscrevam.\r\n  clients$ = this.clientsSource.asObservable();\r\n\r\n  // Armazena o cliente selecionado como um BehaviorSubject para emissão de atualizações.\r\n  private selectedClientSource = new BehaviorSubject<string>('');\r\n  // Observable para expor o cliente selecionado e permitir que outros componentes se inscrevam.\r\n  selectedClient$ = this.selectedClientSource.asObservable();\r\n\r\n  /**\r\n   * Atualiza a lista de clientes armazenada.\r\n   * @param clients Lista de clientes a ser armazenada.\r\n   */\r\n  updateClients(clients: { id: number, name: string }[]): void {\r\n    this.clientsSource.next(clients);\r\n  }\r\n\r\n  /**\r\n   * Atualiza o cliente selecionado armazenado.\r\n   * @param clientId ID do cliente a ser selecionado.\r\n   */\r\n  updateSelectedClient(clientId: string): void {\r\n    this.selectedClientSource.next(clientId);\r\n  }\r\n\r\n  /**\r\n   * Define o cliente selecionado como um número.\r\n   * @param clientId ID numérico do cliente a ser definido como selecionado.\r\n   */\r\n  setSelectedClient(clientId: number): void {\r\n    this.selectedClientSource.next(clientId.toString());\r\n  }\r\n\r\n  /**\r\n   * Obtém o cliente selecionado armazenado.\r\n   * @returns ID do cliente selecionado como um número.\r\n   */\r\n  getSelectedClient(): number {\r\n    return Number(this.selectedClientSource.getValue());\r\n  }\r\n\r\n  /**\r\n   * Retorna o nome do cliente atualmente selecionado.\r\n   * @returns Nome do cliente ou string vazia se não encontrado.\r\n   */\r\n  getSelectedClientName(): string {\r\n    const selectedId = this.getSelectedClient();\r\n    const clients = this.clientsSource.getValue();\r\n    const match = clients.find(c => c.id === selectedId);\r\n    return match?.name || '';\r\n  }\r\n}\r\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,MAAM;;AAKtC,WAAaC,aAAa;EAApB,MAAOA,aAAa;IAH1BC,YAAA;MAIE;MACQ,KAAAC,aAAa,GAAG,IAAIH,eAAe,CAAiC,EAAE,CAAC;MAC/E;MACA,KAAAI,QAAQ,GAAG,IAAI,CAACD,aAAa,CAACE,YAAY,EAAE;MAE5C;MACQ,KAAAC,oBAAoB,GAAG,IAAIN,eAAe,CAAS,EAAE,CAAC;MAC9D;MACA,KAAAO,eAAe,GAAG,IAAI,CAACD,oBAAoB,CAACD,YAAY,EAAE;;IAE1D;;;;IAIAG,aAAaA,CAACC,OAAuC;MACnD,IAAI,CAACN,aAAa,CAACO,IAAI,CAACD,OAAO,CAAC;IAClC;IAEA;;;;IAIAE,oBAAoBA,CAACC,QAAgB;MACnC,IAAI,CAACN,oBAAoB,CAACI,IAAI,CAACE,QAAQ,CAAC;IAC1C;IAEA;;;;IAIAC,iBAAiBA,CAACD,QAAgB;MAChC,IAAI,CAACN,oBAAoB,CAACI,IAAI,CAACE,QAAQ,CAACE,QAAQ,EAAE,CAAC;IACrD;IAEA;;;;IAIAC,iBAAiBA,CAAA;MACf,OAAOC,MAAM,CAAC,IAAI,CAACV,oBAAoB,CAACW,QAAQ,EAAE,CAAC;IACrD;IAEA;;;;IAIAC,qBAAqBA,CAAA;MACnB,MAAMC,UAAU,GAAG,IAAI,CAACJ,iBAAiB,EAAE;MAC3C,MAAMN,OAAO,GAAG,IAAI,CAACN,aAAa,CAACc,QAAQ,EAAE;MAC7C,MAAMG,KAAK,GAAGX,OAAO,CAACY,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKJ,UAAU,CAAC;MACpD,OAAOC,KAAK,EAAEI,IAAI,IAAI,EAAE;IAC1B;IAAC,QAAAC,CAAA,G;uBApDUxB,aAAa;IAAA;IAAA,QAAAyB,EAAA,G;aAAbzB,aAAa;MAAA0B,OAAA,EAAb1B,aAAa,CAAA2B,IAAA;MAAAC,UAAA,EAFZ;IAAM;;SAEP5B,aAAa;AAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}