oxpi-nglib 2.0.68 → 2.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oxpi-nglib.mjs","sources":["../../../projects/oxpi-nglib/src/lib/models/infra/validations.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/funcionario.ts","../../../projects/oxpi-nglib/src/lib/providers/focus.service.ts","../../../projects/oxpi-nglib/src/lib/providers/common-web-service.ts","../../../projects/oxpi-nglib/src/lib/providers/notification.service.ts","../../../projects/oxpi-nglib/src/lib/providers/screen-helper.service.ts","../../../projects/oxpi-nglib/src/lib/controls/busy-indicator/busy-indicator.component.ts","../../../projects/oxpi-nglib/src/lib/controls/busy-indicator/busy-indicator.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.html","../../../projects/oxpi-nglib/src/lib/animations/animations.ts","../../../projects/oxpi-nglib/src/lib/models/infra/lazy-trigger.ts","../../../projects/oxpi-nglib/src/lib/controls/alert-dialog/alert-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/controls/alert-dialog/alert-dialog.component.html","../../../projects/oxpi-nglib/src/lib/models/infra/selecao-utils.ts","../../../projects/oxpi-nglib/src/lib/models/infra/convert-setting-to-string.ts","../../../projects/oxpi-nglib/src/lib/models/settings/search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/ownership.ts","../../../projects/oxpi-nglib/src/lib/providers/auth-data.service.ts","../../../projects/oxpi-nglib/src/lib/controls/item-card/item-card.component.ts","../../../projects/oxpi-nglib/src/lib/controls/item-card/item-card.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionarios/funcionarios.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionarios/funcionarios.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes-form.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes-form.component.html","../../../projects/oxpi-nglib/src/lib/models/entidades/pessoa.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes.component.html","../../../projects/oxpi-nglib/src/lib/models/infra/utils-methods.ts","../../../projects/oxpi-nglib/src/lib/controls/selecao-list-item/selecao-list-item.component.ts","../../../projects/oxpi-nglib/src/lib/controls/selecao-list-item/selecao-list-item.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.html","../../../projects/oxpi-nglib/src/lib/controls/check-button/check-button.component.ts","../../../projects/oxpi-nglib/src/lib/controls/check-button/check-button.component.html","../../../projects/oxpi-nglib/src/lib/controls/image-viewer/image-viewer.component.ts","../../../projects/oxpi-nglib/src/lib/controls/image-viewer/image-viewer.component.html","../../../projects/oxpi-nglib/src/lib/controls/month-year-picker/month-year-picker.component.ts","../../../projects/oxpi-nglib/src/lib/controls/month-year-picker/month-year-picker.component.html","../../../projects/oxpi-nglib/src/lib/controls/numeric-picker/numeric-picker.component.ts","../../../projects/oxpi-nglib/src/lib/controls/numeric-picker/numeric-picker.component.html","../../../projects/oxpi-nglib/src/lib/controls/paginator/paginator.component.ts","../../../projects/oxpi-nglib/src/lib/controls/paginator/paginator.component.html","../../../projects/oxpi-nglib/src/lib/controls/radio-button-group/radio-button-group.component.ts","../../../projects/oxpi-nglib/src/lib/controls/radio-button-group/radio-button-group.component.html","../../../projects/oxpi-nglib/src/lib/providers/safe-html.pipe.ts","../../../projects/oxpi-nglib/src/lib/oxpi-nglib.module.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/setor-estoque.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/operador.ts","../../../projects/oxpi-nglib/src/lib/models/infra/busy-state.ts","../../../projects/oxpi-nglib/src/lib/models/infra/number-parser.ts","../../../projects/oxpi-nglib/src/lib/models/infra/ordem.ts","../../../projects/oxpi-nglib/src/lib/models/settings/PagamentoRecebimentoSearchSetting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/ocupacao-filter-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/ocupacao-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/consumo-produto-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/duplicata-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/produto-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/suites-intervencoes-setting.ts","../../../projects/oxpi-nglib/src/lib/providers/export.file.service.ts","../../../projects/oxpi-nglib/src/lib/providers/preference.service.ts","../../../projects/oxpi-nglib/src/public-api.ts","../../../projects/oxpi-nglib/src/oxpi-nglib.ts"],"sourcesContent":["export function valTextEmpty(v: string | null | undefined): boolean {\r\n return v === null ||\r\n v === undefined ||\r\n v.trim() === '';\r\n}\r\nexport function valNumberEmpty(v: number | null | undefined): boolean {\r\n return v === null ||\r\n v === undefined ||\r\n v === 0;\r\n}\r\nexport function valTextMax(v: string, max: number) {\r\n return v.length > max;\r\n}\r\n\r\nexport function valNumberMin(v: number | null | undefined, min: number) {\r\n if (v === null || v === undefined)\r\n return true;\r\n return v <= min;\r\n}\r\nexport function isNullOrUndefined(v : Object) : boolean\r\n{\r\n return v === null || v === undefined;\r\n}\r\nexport function isNotNullOrUndefined(v : Object) : boolean\r\n{\r\n return !isNullOrUndefined(v);\r\n}\r\n","import { FocusService } from \"../../providers/focus.service\";\r\nimport { valNumberEmpty, valTextEmpty } from \"../infra/validations\";\r\n\r\n\r\nexport interface Funcionario{\r\n id : number;\r\n nome : string;\r\n cargoId : number;\r\n login : string;\r\n senha : string;\r\n enviadoPC : boolean;\r\n isAtivo: boolean; \r\n atribuicaoConferenciaCheckout: boolean;\r\n atribuicaoLimpeza: boolean;\r\n atribuicaoLiberacaoLimpeza: boolean;\r\n atribuicaoFinalizaPedido: boolean;\r\n atribuicaoRevisao: boolean;\r\n}\r\n\r\nexport interface FuncionarioCargo\r\n{\r\n id : number;\r\n nome : string;\r\n}\r\n\r\nexport function validaFuncionario(item: Funcionario, focus: FocusService): string | null {\r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n if (valNumberEmpty(item.cargoId)) {\r\n return 'Escolha um cargo.';\r\n }\r\n return null;\r\n}","\nexport class FocusService {\n //_items: HTMLElement[] | undefined;\n _element: HTMLElement | undefined | null;\n\n constructor() {\n }\n\n hasInit(): boolean {\n return this._element !== undefined;\n }\n\n registerElementById(name: string) {\n this.registerElement(document.getElementById(name));\n }\n registerElement(element: HTMLElement | null | undefined) {\n if (element === null || element === undefined) return;\n this._element = element;\n //this._items = this.getItems();\n console.info(element);\n element.addEventListener('keydown', (ev) => this.handleKeyboardEvent(ev));\n }\n\n registerWindow() {\n this._element = null;\n //this._items = this.getItems();\n window.addEventListener('keydown', (ev) => this.handleKeyboardEvent(ev));\n }\n\n unregisterElementById(name: string) {\n this.unregisterElement(document.getElementById(name));\n }\n\n unregisterElement(element: HTMLElement | null | undefined) {\n if (element === null || element === undefined) return;\n element.removeEventListener('keydown', (ev) => this.handleKeyboardEvent(ev));\n }\n\n private handleKeyboardEvent(event: any) {\n if (event.keyCode !== 13) return;\n if (event.target.nodeName === \"BUTTON\") return;\n\n const items: HTMLElement[] = this.getItems();\n const index = Array.prototype.indexOf.call(items, event.target);\n const nextIndex = index + 1;\n if (nextIndex > items.length - 1)\n return;\n const i = items[index + 1] as HTMLElement;\n\n if (i.tabIndex > -1)\n i.focus();\n event.preventDefault();\n }\n\n setFirst() {\n const el = this.getItems()[0];//[0];\n if (el !== undefined) el.focus();\n }\n\n private getItems(): HTMLElement[] {\n const query =\n this._element !== null && this._element !== undefined ?\n this._element.querySelectorAll('input,button, [tabindex]:not([tabindex=\"-1\"])') :\n document.querySelectorAll('input,button, [tabindex]:not([tabindex=\"-1\"])');\n\n const items: HTMLElement[] = [];\n for (let index = 0; index < query.length; index++) {\n const el = query[index] as HTMLElement;\n if (el.tabIndex > 0)\n items.push(el);\n }\n return items;\n }\n\n set(id: string): void {\n const el = document.getElementById(id);\n if (el === null) return;\n el.focus();\n }\n setInsideContainer(parentId: string, elementId: string): void {\n const parent = document.getElementById(parentId);\n if (parent === null) return;\n const elms = parent.getElementsByTagName(\"*\");\n let el: HTMLElement | null = null;\n for (var i = 0; i < elms.length; i++) {\n if (elms[i].id === elementId) {\n el = elms[i] as HTMLElement;\n break;\n }\n }\n el?.focus();\n }\n\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, Observable } from 'rxjs';\r\nimport { Funcionario, FuncionarioCargo } from '../models/entidades/funcionario';\r\nimport { Operador } from '../models/entidades/operador';\r\nimport { Cliente, Fornecedor } from '../models/entidades/pessoa';\r\nimport { SetorEstoque } from '../models/entidades/setor-estoque';\r\nimport { SuiteBase } from '../models/entidades/suite-base';\r\nimport { PagingResult } from '../models/infra/paging-result';\r\nimport { SearchSetting } from '../models/settings/search-setting';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonWebService {\r\n ROOT_URL: string = '';\r\n GERENCIAL_URL = '';\r\n FINANCAS_URL = '';\r\n\r\n FUNCIONARIO_BASE_URL: string = '';\r\n FUNCIONARIO_CARGO_BASE_URL: string = '';\r\n token: string = '';\r\n PRODUTO_BASE_URL = '';\r\n PRODUTO_INFORMACOES_ADICIONAIS_BASE_URL = '';\r\n PRODUTO_GRUPO_BASE_URL = '';\r\n PRODUTO_SUBGRUPO_BASE_URL = '';\r\n PRODUTO_CATEGORIA_CARDAPIO_BASE_URL = '';\r\n PRODUTO_VERIFICACAO_GRUPO_BASE_URL = '';\r\n ESTOQUE_URL = '';\r\n \r\n UPLOAD_CONTENT_BASE_URL = '';\r\n MEDIA_BASE_URL = '';\r\n MEDIA_PRODUTO_IMAGEM_URL = '';\r\n PRODUTO_COMPOSICAO_BASE_URL: string = '';\r\n\r\n FORNECEDOR_BASE_URL : string = '';\r\n CLIENTE_BASE_URL : string = '';\r\n OPERADOR_BASE_URL = '';\r\n SUITE_BASE_URL = '';\r\n\r\n static URL_PART_BUSCA = \"Busca/\";\r\n static URL_PART_NEXT_ID = \"GetNextId/\";\r\n static URL_PART_BUSCA_PAGINADA = \"BuscaPaginada/\";\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n setToken(token: string) {\r\n this.token = token;\r\n }\r\n start(rootUrl: string, uploadContentUrl: string) {\r\n this.ROOT_URL = rootUrl;\r\n this.PRODUTO_COMPOSICAO_BASE_URL = rootUrl + \"ProdutoComposicao/\";\r\n this.FUNCIONARIO_BASE_URL = rootUrl + \"Funcionario/\";\r\n this.FUNCIONARIO_CARGO_BASE_URL = rootUrl + \"FuncionarioCargo/\";\r\n this.PRODUTO_BASE_URL = rootUrl + \"ProdutoFiscal/\";\r\n this.PRODUTO_INFORMACOES_ADICIONAIS_BASE_URL = rootUrl + \"ProdutoInformacoesAdicionais/\";\r\n this.PRODUTO_GRUPO_BASE_URL = rootUrl + \"ProdutoGrupo/\";\r\n this.PRODUTO_SUBGRUPO_BASE_URL = rootUrl + \"ProdutoSubgrupo/\";\r\n this.PRODUTO_CATEGORIA_CARDAPIO_BASE_URL = rootUrl + \"ProdutoCategoriaCardapio/\";\r\n this.PRODUTO_VERIFICACAO_GRUPO_BASE_URL = rootUrl + \"ProdutoVerificaoGrupo/\";\r\n this.ESTOQUE_URL = rootUrl + 'Estoque/';\r\n this.GERENCIAL_URL = rootUrl + 'Gerencial/'\r\n this.FINANCAS_URL = rootUrl + 'Financas/'\r\n\r\n \r\n this.MEDIA_BASE_URL = this.GERENCIAL_URL + \"Media/\";\r\n this.MEDIA_PRODUTO_IMAGEM_URL = this.MEDIA_BASE_URL + 'GetProdutoImagem/';\r\n this.FORNECEDOR_BASE_URL = this.FINANCAS_URL + 'Fornecedor/'; \r\n this.CLIENTE_BASE_URL = this.FINANCAS_URL + 'Cliente/';\r\n this.OPERADOR_BASE_URL = this.ROOT_URL + \"Operador/\"\r\n this.SUITE_BASE_URL = this.ROOT_URL + \"SuiteBase/\";\r\n this.UPLOAD_CONTENT_BASE_URL = uploadContentUrl;\r\n }\r\n\r\n getFuncionarios(exibeInativo : boolean = false): Observable<Funcionario[]> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n const params = new HttpParams()\r\n .set(\"exibeInativo\", '' + exibeInativo);\r\n return this.http.get<Funcionario[]>(url, this.getHttpOptions(params)).pipe(map(data => data));\r\n }\r\n getFuncionariosCargos(): Observable<FuncionarioCargo[]> {\r\n const url = this.FUNCIONARIO_CARGO_BASE_URL;\r\n return this.http.get<FuncionarioCargo[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n buscaFuncionario(setting: SearchSetting): Observable<Funcionario[]> {\r\n const url = this.FUNCIONARIO_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Funcionario[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getNextIdFuncionario(): Observable<number> {\r\n const url = this.FUNCIONARIO_BASE_URL + CommonWebService.URL_PART_NEXT_ID;\r\n return this.http.get<number>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getAllFuncionario(): Observable<Funcionario[]> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n return this.http.get<Funcionario[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveFuncionario(s: Funcionario): Observable<any> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addFuncionario(p: Funcionario): Observable<any> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteFuncionario(id: number): Observable<any> {\r\n const url = this.FUNCIONARIO_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n \r\n getAllSetores(): Observable<SetorEstoque[]> {\r\n const url = this.ESTOQUE_URL + 'Setor/';\r\n return this.http.get<SetorEstoque[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n\r\n buscaCliente(setting : SearchSetting): Observable<Cliente[]> {\r\n const url = this.CLIENTE_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Cliente[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getAllCliente(): Observable<Cliente[]> {\r\n const url = this.CLIENTE_BASE_URL;\r\n return this.http.get<Cliente[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveCliente(s: Cliente): Observable<any> {\r\n const url = this.CLIENTE_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addCliente(p : Cliente): Observable<any> {\r\n const url = this.CLIENTE_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteCliente(id : number): Observable<any> {\r\n const url = this.CLIENTE_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n buscaFornecedor(setting : SearchSetting): Observable<Fornecedor[]> {\r\n const url = this.FORNECEDOR_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Fornecedor[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getAllFornecedor(): Observable<Fornecedor[]> {\r\n const url = this.FORNECEDOR_BASE_URL;\r\n return this.http.get<Fornecedor[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveFornecedor(s: Fornecedor): Observable<any> {\r\n const url = this.FORNECEDOR_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addFornecedor(p : Fornecedor): Observable<any> {\r\n const url = this.FORNECEDOR_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteFornecedor(id : number): Observable<any> {\r\n const url = this.FORNECEDOR_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n\r\n getOperadores(): Observable<Operador[]> {\r\n const url = this.OPERADOR_BASE_URL;\r\n return this.http.get<Operador[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n buscaOperador(setting : SearchSetting): Observable<Operador[]> {\r\n const url = this.OPERADOR_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Operador[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getNextIdOperador(): Observable<number> {\r\n const url = this.OPERADOR_BASE_URL + CommonWebService.URL_PART_NEXT_ID;\r\n return this.http.get<number>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveOperador(s: Operador): Observable<any> {\r\n const url = this.OPERADOR_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addOperador(p : Operador): Observable<any> {\r\n const url = this.OPERADOR_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteOperador(id : number): Observable<any> {\r\n const url = this.OPERADOR_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n getSuites(): Observable<SuiteBase[]> {\r\n const url = this.SUITE_BASE_URL;\r\n return this.http.get<SuiteBase[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n getHttpOptions(parameters?: HttpParams) {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n \"Authorization\": 'token ' + this.token,\r\n }),\r\n params: parameters\r\n }\r\n }\r\n\r\n getExcelOptions(parameters?: HttpParams) {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n \"Authorization\": 'token ' + this.token,\r\n }),\r\n params: parameters,\r\n responseType: 'arraybuffer' as 'json',\r\n };\r\n }\r\n\r\n getHtmlOptions(parameters?: HttpParams) {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n \"Authorization\": 'token ' + this.token,\r\n }),\r\n params: parameters,\r\n responseType: 'text' as 'json',\r\n };\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n constructor(public snackBar: MatSnackBar) {\r\n }\r\n\r\n showHttpError(res: HttpErrorResponse) {\r\n console.info(\"ERRO:\");\r\n console.info(res);\r\n if (res.status == 500 && res?.error?.Message != undefined)\r\n {\r\n this.showMsgError(res.error.Message);\r\n return;\r\n }\r\n if (res.error != null && res.error != undefined && typeof res.error == 'string')\r\n {\r\n this.showMsgError(res.error);\r\n return;\r\n }\r\n this.showMsgError(`Ocorreu um erro de conexão. Erro ${res.status}: ${res.statusText}`);\r\n }\r\n showMsg(msg: string, duration: number = 3000) {\r\n this.snackBar.open(msg, undefined, { duration: duration });\r\n }\r\n showMsgError(msg: string) {\r\n this.snackBar.open(msg, undefined, {\r\n duration: 10000,\r\n panelClass: ['red-snackbar']\r\n });\r\n }\r\n}","import { Injectable, EventEmitter } from '@angular/core';\n\n\nconst SM_WIDTH = 576;\nconst MD_WIDTH = 768;\nconst LG_WIDTH = 992;\nconst XL_WIDTH = 1200;\nconst XXL_WIDTH = 1400;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScreenHelperService {\n changedMobileScreen = new EventEmitter<boolean>();\n changedMediumScreen = new EventEmitter<boolean>();\n changedLargeScreen = new EventEmitter<boolean>();\n changedXLargeScreen = new EventEmitter<boolean>();\n changedXXLargeScreen = new EventEmitter<boolean>();\n \n changedMinSmallScreen = new EventEmitter<boolean>();\n changedMinMediumScreen = new EventEmitter<boolean>();\n changedMinLargeScreen = new EventEmitter<boolean>();\n changedMinXLargeScreen = new EventEmitter<boolean>();\n changedMinXXLargeScreen = new EventEmitter<boolean>();\n \n mobileScreen: boolean = false;\n isMedium: boolean= false;\n isLarge: boolean= false;\n isXLarge : boolean= false;\n isXXLarge : boolean= false;\n \n minSmall : boolean = false;\n minMedium : boolean = false;\n minLarge : boolean = false;\n minXLarge : boolean = false;\n minXXLarge : boolean = false;\n\n constructor() {\n this.determinaMobileScreen();\n window.addEventListener('resize', (event) => {\n this.determinaMobileScreen();\n });\n }\n\n determinaMobileScreen() {\n const width = window.innerWidth;\n\n const isSmall = width <= SM_WIDTH;\n const isMedium = width <= MD_WIDTH;\n const isLarge = width <= LG_WIDTH;\n const isXLarge = width <= XL_WIDTH;\n const isXXLarge = width <= XXL_WIDTH;\n \n const minSmall = width >= SM_WIDTH;\n const minMedium = width >= MD_WIDTH;\n const minLarge = width >= LG_WIDTH;\n const minXLarge = width >= XL_WIDTH;\n const minXXLarge = width >= XXL_WIDTH;\n\n if (isSmall !== this.mobileScreen) {\n this.changedMobileScreen.emit(isSmall);\n this.mobileScreen = isSmall;\n }\n if (isMedium !== this.isMedium) {\n this.changedMediumScreen.emit(isMedium);\n this.isMedium = isMedium;\n }\n if (isLarge !== this.isLarge) {\n this.changedLargeScreen.emit(isLarge);\n this.isLarge = isLarge;\n }\n if (isXLarge !== this.isXLarge) {\n this.changedXLargeScreen.emit(isXLarge);\n this.isXLarge = isXLarge;\n }\n if (isXXLarge !== this.isXXLarge) {\n this.changedXXLargeScreen.emit(isXXLarge);\n this.isXXLarge = isXXLarge;\n }\n\n \n if (minSmall !== this.minSmall) {\n this.changedMinSmallScreen.emit(isSmall);\n this.minMedium = isSmall;\n }\n if (minMedium !== this.minMedium) {\n this.changedMinMediumScreen.emit(isMedium);\n this.minMedium = isMedium;\n }\n if (minLarge !== this.minLarge) {\n this.changedMinLargeScreen.emit(minLarge);\n this.minLarge = minLarge;\n }\n if (minXLarge !== this.minXLarge) {\n this.changedMinXLargeScreen.emit(minXLarge);\n this.minXLarge = minXLarge;\n }\n if (minXXLarge !== this.minXXLarge) {\n this.changedMinXXLargeScreen.emit(minXXLarge);\n this.minXXLarge = minXXLarge;\n }\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'ox-busy-indicator',\n templateUrl: './busy-indicator.component.html',\n styleUrls: ['./busy-indicator.component.scss']\n})\nexport class BusyIndicatorComponent implements OnInit {\n @Input() isBusy: boolean = false;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<div class=\"busy-indicator-container\" *ngIf=\"isBusy\">\n <div class=\"busy-indicator\"></div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Funcionario, FuncionarioCargo } from '../../../models/entidades/funcionario';\nimport { CommonWebService } from '../../../providers/common-web-service';\n\n@Component({\n selector: 'ox-funcionario-form',\n templateUrl: './funcionario-form.component.html',\n styleUrls: ['./funcionario-form.component.scss']\n})\nexport class FuncionarioFormComponent implements OnInit {\n\n private _model?: Funcionario | undefined;\n public get model(): Funcionario | undefined {\n return this._model;\n }\n\n @Input()\n public set model(value: Funcionario | undefined) {\n this._model = value;\n this.exibeAtribuicoes = value?.cargoId === 2;\n }\n isBusy: boolean = false;\n cargos: FuncionarioCargo[] = [];\n exibeAtribuicoes: boolean = false;\n constructor(private ws: CommonWebService) { }\n\n ngOnInit(): void {\n this.getCargos();\n }\n\n getCargos() {\n this.isBusy = true;\n this.ws.getFuncionariosCargos()\n .subscribe(r => {\n this.cargos = r;\n console.info(r);\n this.isBusy = false;\n }, err => {\n this.isBusy = false;\n });\n }\n\n cargoChanged(ev: any) {\n this.exibeAtribuicoes = ev.value === 2;\n }\n\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"form-group\" *ngIf=\"model\">\n <label for=\"nome\">Nome</label>\n <input id=\"nome\" [(ngModel)]=\"model.nome\" required class=\"form-control input-300\" tabindex=\"2\">\n</div>\n<div class=\"form-group\" *ngIf=\"model\">\n <label for=\"cargo\">Cargo</label>\n <mat-select id=\"cargo\" (selectionChange)=\"cargoChanged($event)\" [(value)]=\"model.cargoId\" tabindex=\"2\"\n class=\"form-control input-300\" color=\"primary\">\n <mat-option *ngFor=\"let m of cargos\" [value]=\"m.id\">\n {{m.nome}}\n </mat-option>\n </mat-select>\n</div>\n<div class=\"form-group\" *ngIf=\"model\">\n <label for=\"nome\">Nome</label>\n <input id=\"nome\" [(ngModel)]=\"model.nome\" required class=\"form-control input-300\" tabindex=\"2\">\n</div>\n<div class=\"vbox margin-top-16\" *ngIf=\"model && exibeAtribuicoes\">\n <label>Atribuições</label>\n <div class=\"vbox gap-4 margin-top-8\">\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoConferenciaCheckout\" tabindex=-1>Conferência Checkout\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoLimpeza\" tabindex=-1>Limpeza</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoLiberacaoLimpeza\" tabindex=-1>Liberação de Limpeza</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoRevisao\" tabindex=-1>Revisão</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoFinalizaPedido\" tabindex=-1>Finaliza Pedido</mat-slide-toggle>\n </div>\n\n <div class=\"form-group margin-top-16\">\n <label for=\"senha\">Senha (opcional)</label>\n <input id=\"senha\" [(ngModel)]=\"model.senha\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n</div>","import { Component, ElementRef, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Funcionario, validaFuncionario } from '../../../models/entidades/funcionario';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n\n@Component({\n selector: 'ox-funcionario-add-dialog',\n templateUrl: './funcionario-add-dialog.component.html',\n styleUrls: ['./funcionario-add-dialog.component.scss']\n})\nexport class FuncionarioAddDialogComponent implements OnInit {\n model: Funcionario;\n mobile: boolean;\n isBusy: boolean = false;\n focus : FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Funcionario,\n public dialog: MatDialog, \n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FuncionarioAddDialogComponent>,\n private screenHelper: ScreenHelperService) {\n this.model = { \n id: 0,\n nome: '',\n login: '',\n senha: '',\n enviadoPC: false,\n isAtivo: true,\n cargoId: 1,\n atribuicaoConferenciaCheckout: true,\n atribuicaoLimpeza: true,\n atribuicaoLiberacaoLimpeza: true,\n atribuicaoFinalizaPedido: true,\n atribuicaoRevisao: true\n };\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaFuncionario(this.model, this.focus);\n if (valMsg)\n {\n this.notification.showMsgError(valMsg);\n return;\n }\n\n this.isBusy = true;\n this.ws.addFuncionario(this.model)\n .subscribe(r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n }, err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Novo Funcionário</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-funcionario-form [model]=\"model\" *ngIf=\"model\"></ox-funcionario-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Funcionario, validaFuncionario } from '../../../models/entidades/funcionario';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'ox-funcionario-edit-dialog',\n templateUrl: './funcionario-edit-dialog.component.html',\n styleUrls: ['./funcionario-edit-dialog.component.scss']\n})\nexport class FuncionarioEditDialogComponent implements OnInit {\n model?: Funcionario;\n mobile: boolean;\n isBusy: boolean = false;\n focus : FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Funcionario,\n public dialog: MatDialog, \n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FuncionarioEditDialogComponent>,\n private screenHelper: ScreenHelperService) {\n if (dataDialog) {\n this.model = dataDialog;\n }\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaFuncionario(this.model, this.focus);\n if (valMsg)\n {\n this.notification.showMsgError(valMsg);\n return;\n }\n\n this.isBusy = true;\n this.ws.saveFuncionario(this.model)\n .subscribe(r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n }, err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Funcionário</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-funcionario-form [model]=\"model\" *ngIf=\"model\"></ox-funcionario-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { animate, style, transition, trigger } from \"@angular/animations\";\r\n\r\nexport const fadeAnimation = trigger(\r\n 'fade',\r\n [\r\n transition(\r\n ':enter', [\r\n style({ transform: 'translateY(100%)', opacity: 0 }),\r\n animate('250ms', style({ transform: 'translateY(0)', 'opacity': 1 }))\r\n ]\r\n ),\r\n transition(\r\n ':leave', [\r\n style({ transform: 'translateY(0)', 'opacity': 1 }),\r\n animate('250ms', style({ transform: 'translateY(100%)', 'opacity': 0 })),\r\n ])]\r\n )\r\n\r\n\r\n export const menuLateralAnimation = trigger(\r\n 'menuLateral',\r\n [\r\n transition(\r\n ':enter', [\r\n style({ transform: 'translateX(-100%)', opacity: 1 }),\r\n animate('200ms', style({ transform: 'translateX(0)', 'opacity': 1 }))\r\n ]\r\n ),\r\n transition(\r\n ':leave', [\r\n style({ 'opacity': 1 }),\r\n animate('200ms', style({ 'opacity': 0 })),\r\n ])]\r\n )\r\n","export class LazyTrigger {\r\n lazyTimeoutId?: number;\r\n constructor(private doFunc : ()=> void, private timeout : number = 800)\r\n {\r\n }\r\n fire() {\r\n console.debug(\"lazyTimeoutId\");\r\n if (this.lazyTimeoutId != undefined)\r\n clearTimeout(this.lazyTimeoutId);\r\n this.lazyTimeoutId = window.setTimeout(() => { this.doFunc(); }, this.timeout);\r\n }\r\n}","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef<AlertDialogComponent>,\n @Inject(MAT_DIALOG_DATA)\n public args: AlertDialogArgs) { }\n\n ngOnInit(): void {\n }\n\n}\n\nexport interface AlertDialogArgs\n{\n titulo : string;\n msg : string;\n}","<h1 mat-dialog-title>{{args.titulo}}</h1>\n<div mat-dialog-content>\n <p>{{args.msg}}</p>\n</div>\n<mat-dialog-actions align=\"end\">\n <button mat-button [mat-dialog-close]=\"false\">Cancelar</button>\n <button mat-button [mat-dialog-close]=\"true\" cdkFocusInitial>Continuar</button>\n</mat-dialog-actions>","import { MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { AlertDialogArgs, AlertDialogComponent } from \"../../controls/alert-dialog/alert-dialog.component\";\r\n\r\nexport interface SelecaoDialog<TItem, TDialog> {\r\n selectedItem: TItem | null | undefined;\r\n dialogRef: MatDialogRef<TDialog>;\r\n items: TItem[];\r\n}\r\nexport class NavegacaoSelecaoDialogUtil<TItem, TDialog>\r\n{\r\n constructor(private view: SelecaoDialog<TItem, TDialog>) {\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n console.info(event.keyCode);\r\n let key = event.keyCode;\r\n const selected = this.view.selectedItem;\r\n const enterKey = 13, keyDown = 40, keyUp = 38;\r\n if (key === enterKey) {\r\n event.cancelBubble = true;\r\n if (selected !== null && selected !== undefined) {\r\n this.view.dialogRef.close(selected);\r\n return;\r\n }\r\n key = keyDown;\r\n }\r\n if (key !== keyDown && key !== keyUp) return;\r\n let index = -1;\r\n if (selected)\r\n index = this.view.items.indexOf(selected, 0);\r\n if (key === keyDown) index++;\r\n if (key === keyUp && index > 0) index--;\r\n\r\n if (index > (this.view.items.length - 1)) return;\r\n this.view.selectedItem = this.view.items[index];\r\n }\r\n}\r\n\r\nexport function confirmaExclusao(\r\n dialog: MatDialog,\r\n msg: string,\r\n continueFunc: () => void) {\r\n const args: AlertDialogArgs =\r\n {\r\n titulo: \"Atenção\",\r\n msg: msg\r\n }\r\n const dialogRef = dialog.open(AlertDialogComponent, {\r\n data: args\r\n });\r\n dialogRef.afterClosed().subscribe(dialogResult => {\r\n if (dialogResult !== true) return;\r\n continueFunc();\r\n });\r\n}","import * as moment from \"moment\";\r\nimport { Moment } from \"moment\";\r\nimport { SearchMode, SearchSetting } from \"../settings/search-setting\";\r\n\r\nexport function geraNomeArquivo(fileName : string, s: SearchSetting)\r\n{\r\n return `${fileName}_${convertToStringArquivo(s)}`\r\n}\r\nexport function convertToStringArquivo(s: SearchSetting) {\r\n const ini: Date | Moment = s.inicial;\r\n const fim: Date | Moment = s.final;\r\n const modo = s.modo;\r\n const ano = s.ano;\r\n const mes = s.mes;\r\n if (modo === SearchMode.Mensal)\r\n return ano + \"_\" + mes;\r\n if (modo === SearchMode.Anual)\r\n return \"\" + ano;\r\n if (modo === SearchMode.Diario)\r\n return formatDayMonthYear(ini);\r\n return `${formatDayMonthYear(ini)}_ate_${formatDayMonthYear(fim)}`;\r\n}\r\n\r\nexport function formatDayMonthYear(d: Date | Moment) {\r\n if (d instanceof Date) {\r\n return `${d.getDate()}_${d.getMonth() + 1}_${d.getFullYear()}`;\r\n }\r\n else if (moment.isMoment(d)) {\r\n return `${d.date()}_${d.month() + 1}_${d.year()}`;\r\n }\r\n return \"\";\r\n}","import { convertToStringArquivo } from \"../infra/convert-setting-to-string\";\r\n\r\nexport class SearchSetting {\r\n frase?: string;\r\n exibeInativo?: boolean;\r\n inicial: Date;\r\n final: Date;\r\n modo: SearchMode;\r\n mes: number;\r\n ano: number;\r\n ordem?: string;\r\n ordemDecrescente?: boolean;\r\n dateField?: string;\r\n\r\n constructor(private propChanged?: () => void) {\r\n const now = new Date();\r\n const hj = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);\r\n console.info(hj);\r\n this.modo = SearchMode.Mensal;\r\n this.mes = hj.getMonth() + 1;\r\n this.ano = hj.getFullYear();\r\n\r\n this.inicial = hj.addDays(-30);\r\n this.final = hj;\r\n }\r\n\r\n set(prop: string, value: any) { \r\n const me = this as any; \r\n me[prop] = value;\r\n if (this.propChanged !== undefined)\r\n this.propChanged();\r\n }\r\n\r\n toStringArquivo() {\r\n return convertToStringArquivo(this);\r\n }\r\n\r\n _meses = [\"JANEIRO\", \"FEVEREIRO\", \"MARÇO\", \"ABRIL\", \"MAIO\", \"JUNHO\", \"JULHO\", \"AGOSTO\", \"SETEMBRO\", \"OUTUBRO\", \"NOVEMBRO\", \"DEZEMBRO\"];\r\n _mesesShort = [\"JAN\", \"FEV\", \"MAR\", \"ABR\", \"MAI\", \"JUN\", \"JUL\", \"AGO\", \"SET\", \"OUT\", \"NOV\", \"DEZ\"];\r\n getDatasTexto(short : boolean = false) {\r\n const ini = this.inicial;\r\n const fim = this.final;\r\n if (this.modo === SearchMode.Mensal && short)\r\n return this._mesesShort[this.mes - 1] + \" DE \" + this.ano;\r\n if (this.modo === SearchMode.Mensal)\r\n return this._meses[this.mes - 1] + \" DE \" + this.ano;\r\n if (this.modo === SearchMode.Anual)\r\n return \"\" + this.ano;\r\n if (this.modo === SearchMode.Diario)\r\n return `${ini.getDate()}/${ini.getMonth() + 1}/${ini.getFullYear()}`;\r\n return `${ini.getDate()}/${ini.getMonth() + 1}/${ini.getFullYear()} ATÉ ${fim.getDate()}/${fim.getMonth() + 1}/${fim.getFullYear()}`;\r\n }\r\n\r\n goNextMonth() {\r\n this.mes++;\r\n if (this.mes > 12) {\r\n this.mes = 1;\r\n this.ano += 1;\r\n }\r\n }\r\n\r\n goBackMonth() {\r\n this.mes--;\r\n if (this.mes < 1) {\r\n this.mes = 12;\r\n this.ano -= 1;\r\n }\r\n }\r\n}\r\nexport enum SearchMode {\r\n Mensal, Anual, Periodo, Diario\r\n}\r\n\r\n","import { IdLoginModel } from \"./usuario\"\r\n\r\nexport interface IOwnership {\r\n startTime?: Date\r\n usuarioId?: number\r\n usuarioLogin?: string\r\n modulo?: number\r\n endTime?: Date\r\n alteracoes? : string\r\n startEndElapsed? : string\r\n}\r\n\r\nexport class Ownership implements IOwnership {\r\n startTime?: Date\r\n usuarioId?: number\r\n usuarioLogin?: string\r\n modulo?: number\r\n endTime?: Date\r\n alteracoes? : string\r\n startEndElapsed? : string\r\n}\r\n\r\nexport function setOwnershipLogin(ownership: IOwnership, usuarios: IdLoginModel[]) {\r\n if (ownership.usuarioId === undefined || ownership.usuarioId === null)\r\n return;\r\n if (ownership.usuarioId === 0)\r\n {\r\n ownership.usuarioLogin = \"sistema\";\r\n return;\r\n }\r\n var u = usuarios.filter(x => x.id === ownership.usuarioId).firstOrNull()\r\n if (u === null) return;\r\n ownership.usuarioLogin = u.login;\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { LoginResult } from '../models/entidades/login-result';\r\nimport { IOwnership, setOwnershipLogin } from '../models/entidades/ownership';\r\nimport { Permissoes } from '../models/entidades/permissoes';\r\nimport { SensoresDef } from '../models/entidades/sensores-def';\r\nimport { IdLoginModel } from '../models/entidades/usuario';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthDataService {\r\n isLoggedIn = false;\r\n token: string = '';\r\n sensoresDef: SensoresDef = { energizacao: false, garagem: false, portaCliente: false, portaServico: false };\r\n permissoes: Permissoes = {\r\n gerencialCaixasAgrupadoMensal: false,\r\n gerencialAtividadesUsuarios: false,\r\n gerencialAuditorias : false,\r\n gerencialOcorrenciasManutencao: false,\r\n gerencialOcorrenciasManutencaoEditar: false,\r\n gerencialDuplicataOcupacao: false,\r\n financasLogin: false,\r\n financasLoginApenasWeb: false,\r\n financasDespesaAdd: false,\r\n financasDespesaUltimosCadastros: false,\r\n financasDespesaPesquisar: false,\r\n financasDespesaDelete: false,\r\n financasDespesaEditar: false,\r\n financasReceitaAdd: false,\r\n financasReceitaUltimosCadastros: false,\r\n financasReceitaPesquisar: false,\r\n financasReceitaDelete: false,\r\n financasReceitaEditar: false,\r\n financasClientePesquisa: false,\r\n financasClienteAdd: false,\r\n financasClienteDelete: false,\r\n financasFornecedorPesquisa: false,\r\n financasFornecedorAdd: false,\r\n financasFornecedorDelete: false,\r\n financasMarcadorPesquisa: false,\r\n financasMarcadorAdd: false,\r\n financasMarcadorDelete: false,\r\n financasDespesaGrupoPesquisa: false,\r\n financasDespesaGrupoAdd: false,\r\n financasDespesaGrupoDelete: false,\r\n financasReceitaGrupoPesquisa: false,\r\n financasReceitaGrupoAdd: false,\r\n financasReceitaGrupoDelete: false,\r\n financasContaPesquisa: false,\r\n financasContaAdd: false,\r\n financasContaDelete: false,\r\n financasExtrato: false,\r\n financasContaAjuste: false,\r\n financasGradeAnualDespesa: false,\r\n financasGradeAnualReceita: false,\r\n financasMensal: false,\r\n financasResumoDiario: false,\r\n financasConfiguracoes: false,\r\n recepcaoEnergizar: false,\r\n recepcaoConfiguracoes: false,\r\n recepcaoTrocaOperador: false,\r\n recepcaoCancelarOcupacao: false,\r\n recepcaoAcrescimo: false,\r\n recepcaoDesconto: false,\r\n recepcaoLimpeza: false,\r\n recepcaoAtrasarHora: false,\r\n gerencialLogin: false,\r\n gerencialPrincipal: false,\r\n gerencialPrincipalCaixa: false,\r\n gerencialPrincipalInfo: false,\r\n gerencialPrincipalQuantidadeOcupacoesDia: false,\r\n gerencialDiario: false,\r\n gerencialMensal: false,\r\n gerencialResumoMensal: false,\r\n gerencialPorFormaPagamento: false,\r\n gerencialMediaTempoOcupacao: false,\r\n gerencialPorOcupacao: false,\r\n gerencialOcupacoesCanceladas: false,\r\n gerencialAgrupado: false,\r\n gerencialPorTurno: false,\r\n gerencialConsumoFuncionarios: false,\r\n gerencialConsumoProdutos: false,\r\n gerencialImagensrecepcao: false,\r\n gerencialCaixas: false,\r\n gerencialVerificacaoCaixa: false,\r\n gerencialComandasPorCaixa: false,\r\n gerencialRegistrorecepcao: false,\r\n gerencialConferenciaCheckout: false,\r\n gerencialAgrupadoDia: false,\r\n gerencialLogUsuarios: false,\r\n gerencialPesquisaOcupacoes: false,\r\n gerencialDescontos: false,\r\n gerencialGraficoMensal: false,\r\n gerencialGraficoDiaSemana: false,\r\n gerencialGraficoAnual: false,\r\n gerencialGraficoSituacaoSuite: false,\r\n gerencialOcupacoesHoraClasse: false,\r\n gerencialLimpezasStatus: false,\r\n gerencialVendasPorRecepcionistas: false,\r\n gerencialPedidos: false,\r\n estoqueLogin: false,\r\n estoqueListaCompras: false,\r\n estoqueListaProdutoGrupo: false,\r\n estoqueMovimento: false,\r\n estoqueSaldoProdutos: false,\r\n estoqueNotaEntradaAdd: false,\r\n estoqueNotaEntradaDelete: false,\r\n estoqueNotaSaidaAdd: false,\r\n estoqueNotaSaidaDelete: false,\r\n estoqueAjusteAdd: false,\r\n estoqueAjusteDelete: false,\r\n estoqueTrocaSetorAdd: false,\r\n estoqueTrocaSetorDelete: false,\r\n estoqueFornecedorPesquisa: false,\r\n estoqueFornecedorAdd: false,\r\n estoqueFornecedorDelete: false,\r\n estoqueClientePesquisa: false,\r\n estoqueClienteAdd: false,\r\n estoqueClienteDelete: false,\r\n estoqueSetorPesquisa: false,\r\n estoqueSetorAdd: false,\r\n estoqueSetorDelete: false,\r\n estoqueProdutoPesquisa: false,\r\n estoqueProdutoAdd: false,\r\n estoqueProdutoDelete: false,\r\n estoqueProdutoGrupoPesquisa: false,\r\n estoqueProdutoGrupoAdd: false,\r\n estoqueProdutoGrupoDelete: false,\r\n estoqueConfiguracao: false,\r\n adminLogin: false,\r\n adminProdutoPesquisa: false,\r\n adminProdutoAdd: false,\r\n adminProdutoDelete: false,\r\n adminProdutoGrupoPesquisa: false,\r\n adminProdutoGrupoAdd: false,\r\n adminProdutoGrupoDelete: false,\r\n adminSuitePesquisa: false,\r\n adminSuiteAdd: false,\r\n adminSuiteDelete: false,\r\n adminSuiteClassePesquisa: false,\r\n adminSuiteClasseAdd: false,\r\n adminSuiteClasseDelete: false,\r\n adminOperadorPesquisa: false,\r\n adminOperadorAdd: false,\r\n adminOperadorDelete: false,\r\n adminFuncionarioPesquisa: false,\r\n adminFuncionarioAdd: false,\r\n adminFuncionarioDelete: false,\r\n adminUsuariosPesquisa: false,\r\n adminUsuariosAdd: false,\r\n adminUsuariosDelete: false,\r\n adminPrecos: false,\r\n adminPatrimonios: false,\r\n adminDefinicoesGerais: false,\r\n adminEditarComanda: false,\r\n adminCortesiaVale: false,\r\n adminClienteFidelidade: false,\r\n adminConfiguracoes: false,\r\n adminPesquisaSatisfacao: false,\r\n adminReservaEdit: false,\r\n adminReservaVisualiza: false,\r\n onGerencialLogin: false,\r\n onGerencialPrincipal: false,\r\n onGerencialDiario: false,\r\n onGerencialMensal: false,\r\n onGerencialPorFormaPagamento: false,\r\n onGerencialMediaTempoOcupacao: false,\r\n onGerencialPorOcupacao: false,\r\n onGerencialOcupacoesCanceladas: false,\r\n onGerencialAgrupadoDia: false,\r\n onGerencialPorTurno: false,\r\n onGerencialConsumoFuncionarios: false,\r\n onGerencialConsumoProdutos: false,\r\n onGerencialImagensRecepcao: false,\r\n onGerencialCaixas: false,\r\n onGerencialComandasPorCaixa: false,\r\n onGerencialRegistroRecepcao: false,\r\n onGerencialGraficoMensal: false,\r\n onGerencialGraficoDiaSemana: false,\r\n onGerencialGraficoAnual: false,\r\n onGerencialGraficoSituacaoSuite: false,\r\n onGerencialOcupacoesHoraClasse: false,\r\n onadminLogin: false,\r\n onadminProdutoPesquisa: false,\r\n onadminProdutoAdd: false,\r\n onadminProdutoDelete: false,\r\n onadminProdutoGrupoPesquisa: false,\r\n onadminProdutoGrupoAdd: false,\r\n onadminProdutoGrupoDelete: false,\r\n onadminSuitePesquisa: false,\r\n onadminSuiteAdd: false,\r\n onadminSuiteDelete: false,\r\n onadminSuiteClassePesquisa: false,\r\n onadminSuiteClasseAdd: false,\r\n onadminSuiteClasseDelete: false,\r\n onadminUsuariosPesquisa: false,\r\n onadminUsuariosAdd: false,\r\n onadminUsuariosDelete: false,\r\n onadminOperadorPesquisa: false,\r\n onadminOperadorAdd: false,\r\n onadminOperadorDelete: false,\r\n onadminFuncionarioPesquisa: false,\r\n onadminFuncionarioAdd: false,\r\n onadminFuncionarioDelete: false,\r\n onadminPrecos: false,\r\n onadminDefinicoesGerais: false,\r\n onadminCortesiaVale: false,\r\n };\r\n empresaNome: string = '';\r\n empresaId: number = 0;\r\n loginNome: string = '';\r\n userId: number = 0;\r\n email: string = '';\r\n nome: string = '';\r\n usaEstoqueOnline: boolean = false;\r\n usaFinancasOnline: boolean = false;\r\n usuarios: IdLoginModel[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n login(result: LoginResult) {\r\n this.isLoggedIn = true;\r\n this.token = result.token;\r\n this.sensoresDef = result.sensoresDef;\r\n this.permissoes = result.permissoes;\r\n this.empresaNome = result.empresaNome;\r\n this.empresaId = result.empresaId;\r\n this.loginNome = result.login;\r\n this.userId = result.userId;\r\n this.nome = result.nome;\r\n this.email = result.email;\r\n this.usaEstoqueOnline = result.usaEstoqueOnline;\r\n this.usuarios = result.usuarios;\r\n this.usaFinancasOnline = result.usaFinancasOnline;\r\n }\r\n setOwnership(ownership :IOwnership)\r\n {\r\n setOwnershipLogin(ownership, this.usuarios);\r\n }\r\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { IOwnership } from '../../models/entidades/ownership';\nimport { AuthDataService } from '../../providers/auth-data.service';\n\n@Component({\n selector: 'ox-item-card',\n templateUrl: './item-card.component.html',\n styleUrls: ['./item-card.component.scss']\n})\nexport class ItemCardComponent implements OnInit {\n\n @Input() nome?: string;\n @Input() codigo?: string | number;\n @Input() star?: boolean;\n @Input() cloud?: boolean;\n @Input() desativado?: boolean;\n private _ownership?: IOwnership | undefined;\n public get ownership(): IOwnership | undefined {\n return this._ownership;\n }\n @Input()\n public set ownership(value: IOwnership | undefined) {\n this._ownership = value;\n if (value != undefined)\n this.auth.setOwnership(value);\n }\n constructor(private auth: AuthDataService) { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"nome-codigo-row\"><span class=\"codigo\" *ngIf=\"codigo\">{{codigo}}</span>{{nome}}</div>\n\n<div class=\"icons-row\">\n <div class=\"ownership\" *ngIf=\"ownership\">\n <span class=\"usuario\" *ngIf=\"ownership.usuarioLogin\">{{ownership.usuarioLogin}}</span>\n <span class=\"startEndTime\" *ngIf=\"ownership.startTime\">\n <span class=\"startTime\">{{ownership.startTime | date:\"dd/MM/yy\"}}</span>\n </span>\n </div>\n <span class=\"material-icons star\" *ngIf=\"star\">\n grade\n </span>\n <span class=\"material-icons desativado\" *ngIf=\"desativado === true\">\n dangerous\n </span>\n <span class=\"material-icons sync-pendente\" *ngIf=\"cloud === false\">\n cloud_queue\n </span>\n <span class=\"material-icons sync-concluido\" *ngIf=\"cloud === true\">\n cloud_done\n </span>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { fadeAnimation } from '../../../animations/animations';\nimport { Funcionario, validaFuncionario } from '../../../models/entidades/funcionario';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { confirmaExclusao } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { FuncionarioAddDialogComponent } from '../funcionario-add-dialog/funcionario-add-dialog.component';\nimport { FuncionarioEditDialogComponent } from '../funcionario-edit-dialog/funcionario-edit-dialog.component';\n\n@Component({\n selector: 'ox-funcionarios',\n templateUrl: './funcionarios.component.html',\n styleUrls: ['./funcionarios.component.scss'],\n animations: [ fadeAnimation ]\n})\nexport class FuncionariosComponent implements OnInit {\n\n mobile: boolean;\n isBusy: boolean = false;\n items: Funcionario[] = [];\n selectedItem : Funcionario | null = null;\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n allowAdd: boolean;\n allowExcluir: boolean;\n setting = new SearchSetting();\n private focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.allowAdd = auth.permissoes.adminFuncionarioAdd;\n this.allowExcluir = auth.permissoes.adminFuncionarioDelete;\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n\n\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n onSelectItem(): void {\n\n if (!this.focus.hasInit()) {\n setTimeout(() => {\n this.focus.registerElementById(\"form-column\");\n this.focus.setFirst();\n }, 500);\n //this._focus.registerElementById(\"form-column\");\n }\n else {\n this.focus.setFirst();\n }\n }\n\n ngOnDestroy(): void {\n this.focus.unregisterElementById(\"form-column\");\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaFuncionario(this.setting)\n .subscribe(r => {\n this.items = r;\n this.selectedItem = null;\n console.info(r);\n this.isBusy = false;\n }, err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n });\n }\n\n\n excluir() { \n const item = this.selectedItem;\n if (!item) return;\n confirmaExclusao(this.dialog, \n `Deseja prosseguir com a exclusão do funcionário ${item.nome}?`,\n () =>\n {\n this.isBusy = true;\n this.ws.deleteFuncionario(item.id)\n .subscribe(r => {\n this.notification.showMsg(\"O funcionário foi excluído com sucesso.\");\n this.items.remove(item);\n this.selectedItem = null;\n this.isBusy = false;\n },\n err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n });\n }\n\n novo() {\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FuncionarioAddDialogComponent, {\n width: width,\n //height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n abreCadastro(item: Funcionario) {\n let height = undefined;\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n height = (window.innerHeight * 0.99) + 'px';\n }\n const dialog = this.dialog.open(FuncionarioEditDialogComponent, {\n data: item,\n width: width,\n //height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result !== true) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n salvar() { \n const item = this.selectedItem;\n if (!item) return;\n const valMsg = validaFuncionario(item, this.focus);\n if (valMsg)\n {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveFuncionario(item)\n .subscribe(r => {\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.isBusy = false;\n },\n err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n }\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Funcionários</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca não retornou resultados</h4>\n\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um funcionário no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-funcionario-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-funcionario-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Cliente } from '../../../models/entidades/pessoa';\n\n@Component({\n selector: 'app-clientes-form',\n templateUrl: './clientes-form.component.html',\n styleUrls: ['./clientes-form.component.scss']\n})\nexport class ClientesFormComponent implements OnInit {\n @Input() model?: Cliente;\n sexos = ['M', 'F'];\n estados = ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO'];\n constructor() { }\n\n ngOnInit(): void {\n }\n\n changeDataInicio(d : Date){ {\n if (this.model)\n this.model.dataNascimento = d;\n }\n}\n}\n","<ng-container *ngIf=\"model\">\n <div class=\"form-section vbox\">\n <h4>Dados Principais</h4>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>{{model.juridica ? 'CNPJ' : 'CPF' }}</label>\n <input [(ngModel)]=\"model.cnpjCpf\" class=\"form-control input-180\" mask=\"000.000.000-00||00.000.000/0000-00\"\n tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>{{model.juridica ? 'IE' : 'RG' }}</label>\n <input [(ngModel)]=\"model.ieRg\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\" *ngIf=\"!model.juridica\">\n <label>Orgão Expeditor</label>\n <input [(ngModel)]=\"model.orgaoExpedidor\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>{{model.juridica ? 'Nome' : 'Razão Social' }}</label>\n <input id=\"nome\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\"\n tabindex=\"1\">\n </div>\n </div>\n \n <div class=\"form-block\" *ngIf=\"model.juridica\">\n <label>Nome Fantasia</label>\n <input id=\"nome\" [(ngModel)]=\"model.fantasia\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n <mat-checkbox [(ngModel)]=\"model.juridica\" tabindex=\"4\">Pessoa Jurídica</mat-checkbox>\n </div>\n <div class=\"form-section vbox\">\n <h4>Contato</h4>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" mask=\"(00)00000-0000\" class=\"form-control input-180\" tabindex=\"3\">\n <mat-checkbox [(ngModel)]=\"model.recebeWhatsApp\" tabindex=\"4\"\n style=\"margin-top: 8px; max-width: 180px;\">Deseja receber WhatsApp</mat-checkbox>\n </div>\n <div class=\"form-block\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" type=\"email\" class=\"form-control input-260\" tabindex=\"3\">\n <mat-checkbox [(ngModel)]=\"model.recebeEmail\" tabindex=\"4\" style=\"margin-top: 8px; max-width: 260px;\">Deseja\n receber E-mail</mat-checkbox>\n </div>\n </div>\n </div>\n \n <div class=\"form-section vbox\">\n <h4>Endereço</h4>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Endereço</label>\n <input [(ngModel)]=\"model.endereco\" class=\"form-control input-260\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Número</label>\n <input [(ngModel)]=\"model.numero\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" mask=\"00000-000\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" class=\"form-control input-260\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Cidade</label>\n <input [(ngModel)]=\"model.cidade\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Estado</label>\n <mat-select [(ngModel)]=\"model.uf\" tabindex=\"3\" style=\"width: 80px;\" class=\"form-control\" color=\"primary\">\n <mat-option *ngFor=\"let e of estados\" [value]=\"e\">\n {{e}}\n </mat-option>\n </mat-select>\n </div>\n </div>\n </div>\n <div class=\"form-section vbox\">\n <h4>Complemento</h4>\n \n <div class=\"hbox gap-16\" *ngIf=\"!model.juridica\">\n <div class=\"form-block\">\n <label>Data Nascimento</label>\n <div class=\"hbox\">\n <input id=\"vencimento\" [(ngModel)]=\"model.dataNascimento\" class=\"form-control input-small\"\n [matDatepicker]=\"pickerdataNascimento\" tabindex=\"8\">\n <mat-datepicker-toggle [for]=\"pickerdataNascimento\"></mat-datepicker-toggle>\n <mat-datepicker [touchUi]=\"false\" #pickerdataNascimento></mat-datepicker>\n </div>\n </div>\n <div class=\"form-block\">\n <label>Sexo</label>\n <mat-select id=\"sexo\" [(ngModel)]=\"model.sexo\" tabindex=\"8\" style=\"width: 80px;\" class=\"form-control\"\n color=\"primary\">\n <mat-option *ngFor=\"let m of sexos\" [value]=\"m\">\n {{m}}\n </mat-option>\n </mat-select>\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Observações</label>\n <input [(ngModel)]=\"model.obs\" class=\"form-control input-300\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Profissão</label>\n <input [(ngModel)]=\"model.profissao\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Último Destino</label>\n <input [(ngModel)]=\"model.ultimoDestino\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Próximo Destino</label>\n <input [(ngModel)]=\"model.proximoDestino\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n \n </div>\n \n</ng-container>","import { FocusService } from \"../../providers/focus.service\";\r\nimport { valTextEmpty } from \"../infra/validations\";\r\n\r\nexport interface Pessoa {\r\n id: number;\r\n nome: string;\r\n telefone?: string;\r\n obs?: string;\r\n fantasia?: string;\r\n endereco?: string;\r\n numero?: string;\r\n complemento?: string;\r\n bairro?: string;\r\n uf?: string;\r\n cidade?: string;\r\n cep?: string;\r\n cnpjCpf?: string;\r\n cnpjCpfFormatado?: string | null;\r\n ieRg?: string;\r\n contato?: string;\r\n email?: string;\r\n fax?: string;\r\n juridica?: boolean;\r\n isAtivo: boolean;\r\n enviadoPC? : boolean;\r\n}\r\n\r\nexport interface Fornecedor extends Pessoa {\r\n}\r\nexport interface Cliente extends Pessoa {\r\n dataNascimento?: Date;\r\n profissao?: string;\r\n nacionalidade?: string;\r\n sexo?: string;\r\n orgaoExpedidor?: string;\r\n ultimoDestino?: string;\r\n proximoDestino?: string;\r\n motivoViagem?: string;\r\n meioTransporte?: string;\r\n codigoMunicipio?: number;\r\n recebeWhatsApp?: boolean;\r\n recebeEmail?: boolean;\r\n}\r\n\r\nexport function validaPessoa(item: Pessoa, focus: FocusService): string | null {\r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n return null;\r\n}","import { Component, ElementRef, Inject, OnInit, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Cliente, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-clientes-add-dialog',\n templateUrl: './clientes-add-dialog.component.html',\n styleUrls: ['./clientes-add-dialog.component.scss']\n})\nexport class ClientesAddDialogComponent implements OnInit {\n model: Cliente;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Optional() @Inject(MAT_DIALOG_DATA)\n public dataDialog: Cliente,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<ClientesAddDialogComponent>,\n private screenHelper: ScreenHelperService) {\n this.model = dataDialog ?? {\n id: 0,\n nome: '',\n isAtivo: true\n };\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.addCliente(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.model.id = r;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.dialogRef.close(this.model);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Novo Cliente</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-clientes-form [model]=\"model\" *ngIf=\"model\"></app-clientes-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" [disabled]=\"isBusy\" (click)=\"salvar()\" tabindex=\"100\">SALVAR</button>\n <button mat-button [mat-dialog-close] >VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Cliente, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-clientes-edit-dialog',\n templateUrl: './clientes-edit-dialog.component.html',\n styleUrls: ['./clientes-edit-dialog.component.scss']\n})\nexport class ClientesEditDialogComponent implements OnInit {\n model?: Cliente;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Cliente,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<ClientesEditDialogComponent>,\n private screenHelper: ScreenHelperService) {\n if (dataDialog) {\n this.model = dataDialog;\n }\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveCliente(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Cliente</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-clientes-form [model]=\"model\" *ngIf=\"model\"></app-clientes-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { fadeAnimation } from '../../../animations/animations';\nimport { Cliente, validaPessoa } from '../../../models/entidades/pessoa';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { confirmaExclusao } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { ClientesAddDialogComponent } from '../clientes-add-dialog/clientes-add-dialog.component';\nimport { ClientesEditDialogComponent } from '../clientes-edit-dialog/clientes-edit-dialog.component';\n\n@Component({\n selector: 'app-clientes',\n templateUrl: './clientes.component.html',\n styleUrls: ['./clientes.component.scss'],\n animations: [fadeAnimation]\n})\nexport class ClientesComponent implements OnInit {\n mobile: boolean;\n isBusy: boolean = false;\n items: Cliente[] = [];\n selectedItem: Cliente | null = null;\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n allowAdd: boolean;\n allowExcluir: boolean;\n setting = new SearchSetting();\n private focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.allowAdd = auth.permissoes.financasClienteAdd;\n this.allowExcluir = auth.permissoes.financasClienteDelete;\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n\n\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n onSelectItem(): void {\n\n if (!this.focus.hasInit()) {\n setTimeout(() => {\n this.focus.registerElementById(\"form-column\");\n this.focus.setFirst();\n }, 500);\n //this._focus.registerElementById(\"form-column\");\n }\n else {\n this.focus.setFirst();\n }\n }\n\n ngOnDestroy(): void {\n this.focus.unregisterElementById(\"form-column\");\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaCliente(this.setting)\n .subscribe({\n next: r => {\n this.items = r;\n this.selectedItem = null;\n console.info(r);\n this.isBusy = false;\n }, error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n\n excluir() {\n const item = this.selectedItem;\n if (!item) return;\n confirmaExclusao(this.dialog,\n `Deseja prosseguir com a exclusão do cliente ${item.nome}?`,\n () => {\n this.isBusy = true;\n this.ws.deleteCliente(item.id)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"O cliente foi excluído com sucesso.\");\n this.items.remove(item);\n this.selectedItem = null;\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n });\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(ClientesAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n abreCadastro(item: Cliente) {\n\n let height = undefined;\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n height = (window.innerHeight * 0.99) + 'px';\n }\n const dialog = this.dialog.open(ClientesEditDialogComponent, {\n data: item,\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result !== true) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n salvar() {\n const item = this.selectedItem;\n if (!item) return;\n const valMsg = validaPessoa(item, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveCliente(item)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Clientes</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca não retornou resultados</h4>\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i; onSelectItem();\"></ox-item-card >\n </div>\n </div>\n <div id=\"form-column\" class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\" class=\"selecione-um-item-msg\">Selecione um cliente no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <app-clientes-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\"></app-clientes-form>\n </div>\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>","export function printTxt(txt: string) {\r\n const r = \"<!doctype html><head><meta charset=\\\"utf-8\\\"></head><body><div style='font-family: \\\"Courier New\\\", Courier, monospace; white-space: pre-wrap;color: black;font-weight: bold;word-wrap: break-word;word-break: break-all;overflow-wrap: break-word;'>\" + txt + '</div></body>';\r\n printHtml(r);\r\n}\r\n\r\nexport function printHtml(r: any) {\r\n const blob = new Blob([r], { type: 'text/html' });\r\n const url = window.URL.createObjectURL(blob);\r\n const w = window.open(url, '_blank');\r\n if (w != null)\r\n w.print();\r\n}\r\n\r\nexport function selectText(ev : any): void\r\n{\r\n ev.target.select()\r\n}\r\n\r\nexport function formatCpfCnpj(cpfCnpj: string | null | undefined): string | null {\r\n if (!cpfCnpj) {\r\n return null;\r\n }\r\n if (cpfCnpj.length === 11) {\r\n return cpfCnpj.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/, '$1.$2.$3-$4');\r\n }\r\n if (cpfCnpj.length === 14) {\r\n return cpfCnpj.replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})/, '$1.$2.$3/$4-$5');\r\n }\r\n return cpfCnpj;\r\n}\r\n\r\nexport function validCpf(cpf : string) : boolean {\r\n if ( !cpf || cpf.length != 11\r\n || cpf == \"00000000000\"\r\n || cpf == \"11111111111\"\r\n || cpf == \"22222222222\" \r\n || cpf == \"33333333333\" \r\n || cpf == \"44444444444\" \r\n || cpf == \"55555555555\" \r\n || cpf == \"66666666666\"\r\n || cpf == \"77777777777\"\r\n || cpf == \"88888888888\" \r\n || cpf == \"99999999999\" )\r\n return false;\r\nvar soma = 0\r\n var resto\r\nfor (var i = 1; i <= 9; i++) \r\n soma = soma + parseInt(cpf.substring(i-1, i)) * (11 - i)\r\nresto = (soma * 10) % 11\r\n if ((resto == 10) || (resto == 11)) resto = 0\r\n if (resto != parseInt(cpf.substring(9, 10)) ) return false;\r\nsoma = 0\r\n for (var i = 1; i <= 10; i++) \r\n soma = soma + parseInt(cpf.substring(i-1, i)) * (12 - i)\r\n resto = (soma * 10) % 11\r\n if ((resto == 10) || (resto == 11)) resto = 0\r\n if (resto != parseInt(cpf.substring(10, 11) ) ) return false;\r\n return true;\r\n}\r\n\r\nexport function validaCnpj(cnpj : string) : boolean {\r\n if ( !cnpj || cnpj.length != 14\r\n || cnpj == \"00000000000000\" \r\n || cnpj == \"11111111111111\" \r\n || cnpj == \"22222222222222\" \r\n || cnpj == \"33333333333333\" \r\n || cnpj == \"44444444444444\" \r\n || cnpj == \"55555555555555\" \r\n || cnpj == \"66666666666666\" \r\n || cnpj == \"77777777777777\" \r\n || cnpj == \"88888888888888\" \r\n || cnpj == \"99999999999999\")\r\n return false;\r\n var tamanho = cnpj.length - 2;\r\n var numeros = cnpj.substring(0,tamanho);\r\n var digitos = cnpj.substring(tamanho);\r\n var soma = 0;\r\n var pos = tamanho - 7;\r\n for (var i = tamanho; i >= 1; i--) {\r\n soma += parseInt(numeros.charAt(tamanho - i)) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n if (resultado != parseInt(digitos.charAt(0))) return false;\r\n tamanho = tamanho + 1;\r\n numeros = cnpj.substring(0,tamanho);\r\n soma = 0;\r\n pos = tamanho - 7;\r\n for (var i = tamanho; i >= 1; i--) {\r\n soma += parseInt(numeros.charAt(tamanho - i)) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n if (resultado != parseInt(digitos.charAt(1))) return false;\r\n return true;\r\n}","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ox-selecao-list-item',\n templateUrl: './selecao-list-item.component.html',\n styleUrls: ['./selecao-list-item.component.scss']\n})\nexport class SelecaoListItemComponent {\n @Input() text: String | null | undefined = '';\n \n}\n","<span *ngIf=\"text\">{{text}}</span>\n<ng-content *ngIf=\"!text\"></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Cliente } from '../../../models/entidades/pessoa';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { NavegacaoSelecaoDialogUtil } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { ClientesAddDialogComponent } from '../clientes-add-dialog/clientes-add-dialog.component';\nimport { ClientesEditDialogComponent } from '../clientes-edit-dialog/clientes-edit-dialog.component';\nimport { formatCpfCnpj } from '../../../models/infra/utils-methods';\n\n\n@Component({\n selector: 'app-selecao-cliente-dialog',\n templateUrl: './selecao-cliente-dialog.component.html',\n styleUrls: ['./selecao-cliente-dialog.component.scss']\n})\nexport class SelecaoClienteDialogComponent implements OnInit {\n items: Cliente[] = [];\n selectedItem: Cliente | null = null;\n isBusy: boolean = false;\n mobile: boolean;\n allowAdd: boolean;\n allowEdit: boolean;\n setting = new SearchSetting();\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n nav = new NavegacaoSelecaoDialogUtil<Cliente, SelecaoClienteDialogComponent>(this);\n\n constructor(public dialogRef: MatDialogRef<SelecaoClienteDialogComponent>,\n private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.mobile = this.screenHelper.isMedium;\n this.allowAdd = auth.permissoes.financasClienteAdd;\n this.allowEdit = auth.permissoes.financasClientePesquisa;\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaCliente(this.setting)\n .subscribe({\n next: r => {\n this.isBusy = false;\n for (let i of r) {\n i.cnpjCpfFormatado = formatCpfCnpj(i.cnpjCpf);\n }\n this.items = r;\n console.info(r);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n selectItem(i : Cliente) {\n if (this.selectedItem === i) {\n this.dialogRef.close(i);\n }\n this.selectedItem = i;\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(ClientesAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n editar() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(ClientesEditDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n data: this.selectedItem\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n}\n","<div class=\"dialog-header\">\n <h2>Seleção de Clientes</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button color=\"primary\" mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\"> \n <ox-selecao-list-item (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\">\n <div class=\"hbox gap-16\">\n <span class=\"grow-1\">{{i.nome}}</span> <span class=\"cnpj-badge\" *ngIf=\"i.cnpjCpf\" >{{i.cnpjCpfFormatado}}</span>\n </div>\n </ox-selecao-list-item>\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { Fornecedor } from '../../../models/entidades/pessoa';\nimport { validaCnpj, validCpf } from '../../../models/infra/utils-methods';\n\n@Component({\n selector: 'app-fornecedores-form',\n templateUrl: './fornecedores-form.component.html',\n styleUrls: ['./fornecedores-form.component.scss']\n})\nexport class FornecedoresFormComponent implements OnInit {\n _model?: Fornecedor;\n\n @Input()\n get model(): Fornecedor | undefined {\n return this._model;\n }\n\n set model(val: Fornecedor | undefined) {\n this._model = val;\n this.validarCpfCnpj();\n }\n boolCpfCnpjValidado: boolean = false;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n validarCpfCnpj()\n {\n if (this.model?.cnpjCpf == null || this.model?.cnpjCpf == undefined)\n {\n this.boolCpfCnpjValidado = false;\n return;\n }\n if (this.model.cnpjCpf.length == 11)\n {\n this.boolCpfCnpjValidado = validCpf(this.model.cnpjCpf);\n }\n else if (this.model.cnpjCpf.length == 14)\n {\n this.boolCpfCnpjValidado = validaCnpj(this.model.cnpjCpf);\n }\n else\n {\n this.boolCpfCnpjValidado = false;\n }\n }\n\n}\n","<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" maxlength=\"60\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n \n <h4 class=\"margin-top-16\">Dados Complementares</h4>\n \n <div class=\"form-group\">\n <label>Nome Fantasia</label>\n <input [(ngModel)]=\"model.fantasia\" maxlength=\"60\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <div class=\"hbox gap-4\">\n <input [(ngModel)]=\"model.cnpjCpf\" (change)=\"validarCpfCnpj()\" mask=\"000.000.000-00||00.000.000/0000-00\"\n class=\"form-control input-180\" tabindex=\"3\">\n <i class=\"material-icons\" style=\"align-self: center; color: #03a928;\" *ngIf=\"boolCpfCnpjValidado === true\">\n check_circle\n </i>\n <i class=\"material-icons\" style=\"align-self: center; color: #a98203;\" *ngIf=\"boolCpfCnpjValidado === false\">\n cancel\n </i>\n \n </div>\n </div>\n <div class=\"form-group\">\n <label>Observações</label>\n <input [(ngModel)]=\"model.obs\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" maxlength=\"30\" class=\"form-control input-180\">\n </div>\n <div class=\"form-group\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" maxlength=\"30\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" maxlength=\"60\" class=\"form-control input-200\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Endereço</label>\n <input [(ngModel)]=\"model.endereco\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n \n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Número</label>\n <input [(ngModel)]=\"model.numero\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" maxlength=\"9\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" maxlength=\"60\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" maxlength=\"30\" class=\"form-control input-200\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" maxlength=\"20\" class=\"form-control input-120\">\n </div>\n </div>\n</ng-container>","import { Component, ElementRef, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Fornecedor, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-fornecedores-add-dialog',\n templateUrl: './fornecedores-add-dialog.component.html',\n styleUrls: ['./fornecedores-add-dialog.component.scss']\n})\nexport class FornecedoresAddDialogComponent implements OnInit, OnDestroy {\n model: Fornecedor;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Optional() @Inject(MAT_DIALOG_DATA)\n public dataDialog: Fornecedor,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FornecedoresAddDialogComponent>,\n private screenHelper: ScreenHelperService) {\n this.model = dataDialog ?? {\n id: 0,\n nome: '',\n isAtivo: true\n };\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.addFornecedor(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.model.id = r;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.dialogRef.close(this.model);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Novo Fornecedor</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-fornecedores-form [model]=\"model\" *ngIf=\"model\"></app-fornecedores-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" [disabled]=\"isBusy\" (click)=\"salvar()\" tabindex=\"100\">SALVAR</button>\n <button mat-button [mat-dialog-close] >VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Fornecedor, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-fornecedores-edit-dialog',\n templateUrl: './fornecedores-edit-dialog.component.html',\n styleUrls: ['./fornecedores-edit-dialog.component.scss']\n})\nexport class FornecedoresEditDialogComponent implements OnInit, OnDestroy {\n model?: Fornecedor;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Fornecedor,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FornecedoresEditDialogComponent>,\n private screenHelper: ScreenHelperService) {\n if (dataDialog) {\n this.model = dataDialog;\n }\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveFornecedor(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Fornecedor</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-fornecedores-form [model]=\"model\" *ngIf=\"model\"></app-fornecedores-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { fadeAnimation } from '../../../animations/animations';\nimport { Fornecedor, validaPessoa } from '../../../models/entidades/pessoa';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { confirmaExclusao } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { FornecedoresAddDialogComponent } from '../fornecedores-add-dialog/fornecedores-add-dialog.component';\nimport { FornecedoresEditDialogComponent } from '../fornecedores-edit-dialog/fornecedores-edit-dialog.component';\n\n@Component({\n selector: 'app-fornecedores',\n templateUrl: './fornecedores.component.html',\n styleUrls: ['./fornecedores.component.scss'],\n animations: [fadeAnimation]\n})\nexport class FornecedoresComponent implements OnInit, OnDestroy {\n mobile: boolean;\n isBusy: boolean = false;\n items: Fornecedor[] = [];\n selectedItem: Fornecedor | null = null;\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n allowAdd: boolean;\n allowExcluir: boolean;\n setting = new SearchSetting();\n private focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.allowAdd = auth.permissoes.financasFornecedorAdd || auth.permissoes.estoqueFornecedorAdd;\n this.allowExcluir = auth.permissoes.financasFornecedorDelete || auth.permissoes.estoqueFornecedorDelete;\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n\n\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n onSelectItem(): void {\n\n if (!this.focus.hasInit()) {\n setTimeout(() => {\n this.focus.registerElementById(\"form-column\");\n this.focus.setFirst();\n }, 500);\n //this._focus.registerElementById(\"form-column\");\n }\n else {\n this.focus.setFirst();\n }\n }\n\n ngOnDestroy(): void {\n this.focus.unregisterElementById(\"form-column\");\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaFornecedor(this.setting)\n .subscribe({\n next: r => {\n this.items = r;\n this.selectedItem = null;\n console.info(r);\n this.isBusy = false;\n }, error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n\n excluir() {\n const item = this.selectedItem;\n if (!item) return;\n confirmaExclusao(this.dialog,\n `Deseja prosseguir com a exclusão do fornecedor ${item.nome}?`,\n () => {\n this.isBusy = true;\n this.ws.deleteFornecedor(item.id)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"O fornecedor foi excluído com sucesso.\");\n this.items.remove(item);\n this.selectedItem = null;\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n });\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n abreCadastro(item: Fornecedor) {\n\n let height = undefined;\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n height = (window.innerHeight * 0.99) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresEditDialogComponent, {\n data: item,\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result !== true) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n salvar() {\n const item = this.selectedItem;\n if (!item) return;\n const valMsg = validaPessoa(item, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveFornecedor(item)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Fornecedores</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca não retornou resultados</h4>\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i; onSelectItem();\"></ox-item-card >\n </div>\n </div>\n <div id=\"form-column\" class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\" class=\"selecione-um-item-msg\">Selecione um fornecedor no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <app-fornecedores-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\"></app-fornecedores-form>\n </div>\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Fornecedor } from '../../../models/entidades/pessoa';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { NavegacaoSelecaoDialogUtil } from '../../../models/infra/selecao-utils';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { FornecedoresAddDialogComponent } from '../fornecedores-add-dialog/fornecedores-add-dialog.component';\nimport { FornecedoresEditDialogComponent } from '../fornecedores-edit-dialog/fornecedores-edit-dialog.component';\n\n@Component({\n selector: 'app-selecao-fornecedor-dialog',\n templateUrl: './selecao-fornecedor-dialog.component.html',\n styleUrls: ['./selecao-fornecedor-dialog.component.scss']\n})\nexport class SelecaoFornecedorDialogComponent implements OnInit {\n items: Fornecedor[] = [];\n selectedItem: Fornecedor | null = null;\n isBusy: boolean = false;\n mobile: boolean;\n allowAdd: boolean;\n allowEdit: boolean;\n setting = new SearchSetting();\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n nav = new NavegacaoSelecaoDialogUtil<Fornecedor, SelecaoFornecedorDialogComponent>(this);\n\n constructor(public dialogRef: MatDialogRef<SelecaoFornecedorDialogComponent>,\n private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.mobile = this.screenHelper.isMedium;\n this.allowAdd = auth.permissoes.financasClienteAdd || auth.permissoes.estoqueFornecedorAdd;\n this.allowEdit = auth.permissoes.financasClientePesquisa || auth.permissoes.estoqueFornecedorPesquisa;\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaFornecedor(this.setting)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.items = r;\n console.info(r);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n selectItem(i : Fornecedor) {\n if (this.selectedItem === i) {\n this.dialogRef.close(i);\n }\n this.selectedItem = i;\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n editar() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresEditDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n data: this.selectedItem\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n}\n","<div class=\"dialog-header\">\n <h2>Seleção de Fornecedores</h2>\n</div>\n<div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button color=\"primary\" mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"dialog-content\">\n <div (click)=\"selectItem(i)\" [ngClass]=\"{selected: selectedItem === i}\" class=\"list-item\" *ngFor=\"let i of items\">\n <span>{{i.nome}}</span>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n","import { Component, OnInit, Input, HostListener, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ox-check-button',\n templateUrl: './check-button.component.html',\n styleUrls: ['./check-button.component.scss'],\n host: {\n '[class.checked]': \"checked\",\n }\n})\nexport class CheckButtonComponent implements OnInit {\n @Input() checked: boolean = false;\n @Input() radioBehavior: boolean = false;\n @Output() changed = new EventEmitter<boolean>();\n constructor() {\n this.checked = true;\n }\n\n ngOnInit() {\n }\n\n @HostListener('click', ['$event'])\n onClick(e : any) {\n if (!this.radioBehavior)\n this.checked = !this.checked;\n this.changed.emit(this.checked);\n }\n}\n","<ng-content></ng-content>","import { Component, OnInit, Input, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Component({\n selector: 'ox-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss']\n})\nexport class ImageViewerComponent implements OnInit {\n @Input() info?: ImageViewerInfo;\n @Input() infos: ImageViewerInfo[] = [];\n private _isOpen: boolean = false;\n paginaAtual: number = 0;\n disableBack : boolean= false;\n disableNext : boolean = false;\n @Output() isOpenChange = new EventEmitter();\n\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n set isOpen(val: boolean) {\n this._isOpen = val;\n this.isOpenChange.emit(val);\n }\n\n @HostListener('click', ['$event'])\n onClick(e : any) {\n //this.isOpen = !this.isOpen;\n }\n\n constructor() { }\n\n ngOnInit() {\n }\n\n open(info: ImageViewerInfo, infos: ImageViewerInfo[]) {\n if (infos !== undefined) {\n for (let i = 0; i < infos.length; i++) {\n if (infos[i] === info) {\n this.paginaAtual = i + 1;\n break;\n }\n }\n }\n\n this.info = info;\n this.infos = infos;\n this.isOpen = true;\n this.updateUI();\n }\n\n goNext()\n {\n this.paginaAtual += 1;\n this.info = this.infos[this.paginaAtual - 1];\n this.updateUI();\n }\n\n goBack()\n {\n this.paginaAtual -= 1;\n this.info = this.infos[this.paginaAtual - 1];\n this.updateUI();\n }\n\n updateUI()\n {\n this.disableBack = this.paginaAtual == 1;\n this.disableNext = this.paginaAtual == this.infos.length;\n }\n}\n\nexport interface ImageViewerInfo {\n url: string;\n titulo: string;\n id : any;\n}\n","<div class=\"image-fullsize\" *ngIf=\"isOpen\">\n <div class=\"titulo\">\n {{info?.titulo}}\n </div>\n <div class=\"img-container\" (click)=\"isOpen = !isOpen\">\n <img class=\"image\" *ngIf=\"info\" [src]=\"info?.url\" />\n </div>\n <div class=\"action-bar\" *ngIf=\"infos\">\n <button (click)=\"goBack()\" [disabled]=\"disableBack\" mat-icon-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n <span class=\"picker-text\">\n {{paginaAtual}}/{{infos?.length}}\n </span>\n <button (click)=\"goNext()\" [disabled]=\"disableNext\" mat-icon-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'ox-month-year-picker',\n templateUrl: './month-year-picker.component.html',\n styleUrls: ['./month-year-picker.component.scss']\n})\nexport class MonthYearPickerComponent implements OnInit {\n @Output() anoChange = new EventEmitter<number>();\n @Output() mesChange = new EventEmitter<number>();\n @Output() changed = new EventEmitter<MonthYear>();\n\n _init : boolean = false;\n _ano: number;\n _mes: number;\n _modoAnual : boolean = false;\n _meses = [\"JANEIRO\", \"FEVEREIRO\", \"MARÇO\", \"ABRIL\", \"MAIO\", \"JUNHO\", \"JULHO\", \"AGOSTO\", \"SETEMBRO\", \"OUTUBRO\", \"NOVEMBRO\", \"DEZEMBRO\"];\n text: string = '';\n disableNext: boolean = false;\n @Input()\n blockFuture: boolean = false;\n\n @Input()\n get modoAnual(): boolean {\n return this._modoAnual;\n }\n set modoAnual(val: boolean) {\n this._modoAnual = val;\n if (!this._init) return;\n this.updateText();\n this.raiseOnSelectionChanged();\n }\n\n @Input()\n get ano(): number {\n return this._ano;\n }\n set ano(val: number) {\n this._ano = val;\n if (!this._init) return;\n this.anoChange.emit(val);\n this.updateText();\n }\n\n @Input()\n get mes(): number {\n return this._mes;\n }\n set mes(val: number) {\n this._mes = val;\n if (!this._init) return;\n this.mesChange.emit(val);\n this.updateText();\n }\n\n constructor() {\n let d = new Date();\n this._ano = d.getFullYear();\n this._mes = d.getMonth() + 1;\n }\n\n ngOnInit() {\n this.updateText();\n this._init = true;\n }\n\n goBack() {\n if (this.modoAnual) {\n this.ano -= 1;\n }\n else {\n this.mes--;\n if (this.mes < 1) {\n this.ano -= 1;\n this.mes = 12;\n }\n }\n this.updateText();\n this.raiseOnSelectionChanged();\n };\n\n goNext() {\n if (this.modoAnual) {\n this.ano += 1;\n }\n else {\n this.mes++;\n if (this.mes > 12) {\n this.ano += 1;\n this.mes = 1;\n }\n }\n this.updateText();\n this.raiseOnSelectionChanged();\n };\n\n updateText() {\n if (this.modoAnual)\n this.text = '' + this._ano;\n else\n this.text = this._meses[this._mes - 1] + \" DE \" + this._ano;\n\n if (!this.blockFuture)\n return;\n\n let d = new Date();\n let ano = d.getFullYear();\n let mes = d.getMonth() + 1;\n\n if (!this.modoAnual)\n this.disableNext = ano == this.ano && this.mes >= mes;\n else\n this.disableNext = ano == this.ano;\n };\n\n raiseOnSelectionChanged() {\n let d = { ano: this._ano, mes: this._mes };\n this.changed.emit(d);\n }\n}\nexport interface MonthYear {\n mes: number;\n ano: number;\n}\n","<div class=\"picker-container\">\n <div>\n <button mat-icon-button (click)=\"goBack()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n </div>\n <span class=\"picker-text\">\n {{text}}\n </span>\n <div>\n <button mat-icon-button (click)=\"goNext()\" [disabled]=\"disableNext\" >\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ox-numeric-picker',\n templateUrl: './numeric-picker.component.html',\n styleUrls: ['./numeric-picker.component.scss']\n})\nexport class NumericPickerComponent implements OnInit {\n @Output() valueChange = new EventEmitter<number>();\n @Output() change = new EventEmitter<number>();\n _value: number = 0;\n _max: number = 0;\n _min: number = 0;\n text: string = '';\n disableNext = false;\n disableBack = false;\n\n @Input()\n get value(): number {\n return this._value;\n }\n set value(val: number) {\n this._value = val;\n this.valueChange.emit(val);\n this.refreshUI();\n }\n\n @Input()\n get max(): number {\n return this._max;\n }\n set max(val: number) {\n this._max = val;\n this.refreshUI();\n }\n\n @Input()\n get min(): number {\n return this._min;\n }\n set min(val: number) {\n this._min = Number(val);\n this.refreshUI();\n }\n\n constructor() { }\n\n ngOnInit() {\n }\n\n onTextEdit(ev : any) {\n console.info(ev);\n const i = Number(ev.target.value);\n if (!this.valida(i))\n this.text = '' + this.value;\n else {\n this.value = i;\n this.raiseChange();\n this.refreshUI();\n }\n }\n\n goBack() {\n const newVal = this.value - 1;\n if (!this.valida(newVal))\n return;\n this.value = newVal;\n this.raiseChange();\n };\n\n goNext() {\n const newVal = this.value + 1;\n if (!this.valida(newVal))\n return;\n this.value = newVal;\n this.raiseChange();\n };\n\n refreshUI() {\n this.text = this.value === undefined ? '--' : '' + this.value;\n this.disableNext = this.max !== undefined && this.value === this.max;\n this.disableBack = this.min !== undefined && this.value === this.min;\n }\n\n valida(val : any): boolean {\n if (isNaN(val))\n return false;\n if (this.max !== undefined && val > this.max)\n return false;\n if (this.min !== undefined && val < this.min)\n return false;\n return true;\n }\n\n raiseChange() {\n this.change.emit(this.value);\n }\n}\n","<div>\n <button mat-icon-button (click)=\"goBack()\" [disabled]=\"disableBack\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n</div>\n<input [(ngModel)]=\"text\" (change)=\"onTextEdit($event)\" class=\"date\">\n<div>\n <button mat-icon-button (click)=\"goNext()\" [disabled]=\"disableNext\" >\n <mat-icon>chevron_right</mat-icon>\n </button>\n</div>","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'ox-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent implements OnInit {\n @Output() paginaAtualChange = new EventEmitter<number>();\n @Output() totalPaginasChange = new EventEmitter<number>();\n @Output() change = new EventEmitter<number>();\n _paginaAtual: number = 1;\n _totalPaginas: number = 1;\n inicio: boolean = true;\n fim: boolean = true;\n @Input() pageSize: number = 0;\n\n @Input()\n get paginaAtual(): number {\n return this._paginaAtual;\n }\n\n set paginaAtual(val: number) {\n this._paginaAtual = val;\n this.paginaAtualChange.emit(val);\n this.refreshUI();\n }\n\n @Input()\n get totalPaginas(): number {\n return this._totalPaginas;\n }\n\n set totalPaginas(val: number) {\n this._totalPaginas = val;\n this.totalPaginasChange.emit(val);\n this.refreshUI();\n }\n\n constructor() { }\n\n ngOnInit() {\n }\n\n trocaPagina(pagina: number) {\n if (pagina > this.totalPaginas || pagina < 1)\n return;\n this.paginaAtual = pagina;\n this.refreshUI();\n this.change.emit(this.paginaAtual); \n }\n\n refreshUI()\n {\n this.inicio = this.paginaAtual == 1;\n this.fim = this.paginaAtual == this.totalPaginas; \n }\n\n goBack() {\n this.trocaPagina(this.paginaAtual - 1);\n }\n\n goNext() {\n this.trocaPagina(this.paginaAtual + 1);\n }\n\n}\n","<button [disabled]=\"inicio\" mat-icon-button (click)=\"goBack()\">\n <mat-icon>chevron_left</mat-icon>\n</button>\n<span class=\"picker-text\">\n {{paginaAtual}}/{{totalPaginas}}\n</span>\n<button [disabled]=\"fim\" mat-icon-button (click)=\"goNext()\">\n <mat-icon>chevron_right</mat-icon>\n</button>\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ox-radio-button-group',\n templateUrl: './radio-button-group.component.html',\n styleUrls: ['./radio-button-group.component.scss']\n})\nexport class RadioButtonGroupComponent implements OnInit {\n @Output() change = new EventEmitter<RadioButtonGroupData>();\n _items: RadioButtonGroupData[] = [];\n //_init : boolean = false;\n @Input() selectedItem: RadioButtonGroupData | null = null;\n @Input()\n get items(): RadioButtonGroupData[] {\n return this._items;\n }\n set items(val: RadioButtonGroupData[]) {\n this._items = val;\n this.selectedItem = this.items.filter(x => x.default === true).firstOrNull();\n if (this.selectedItem === null)\n this.selectedItem = this.items.firstOrNull();\n }\n\n constructor() { }\n\n ngOnInit() {\n\n }\n\n raiseChange(item : RadioButtonGroupData) {\n this.selectedItem = item;\n this.change.emit(this.selectedItem);\n }\n}\n\nexport interface RadioButtonGroupData {\n name: string;\n value: any;\n default?: boolean;\n}\n","<ox-check-button [radioBehavior]=\"true\" (changed)=\"raiseChange(item)\" [checked]=\"item == selectedItem\" *ngFor=\"let item of items\">\n {{item.name}}\n</ox-check-button>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml'\n})\nexport class SafeHtmlPipe implements PipeTransform \n{\n constructor(private sanitizer:DomSanitizer){}\n\n transform(html : string) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { BusyIndicatorComponent } from './controls/busy-indicator/busy-indicator.component';\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { MonthYearPickerComponent } from './controls/month-year-picker/month-year-picker.component';\nimport { ImageViewerComponent } from './controls/image-viewer/image-viewer.component';\nimport { NumericPickerComponent } from './controls/numeric-picker/numeric-picker.component';\nimport { PaginatorComponent } from './controls/paginator/paginator.component';\nimport { CheckButtonComponent } from './controls/check-button/check-button.component';\nimport { RadioButtonGroupComponent } from './controls/radio-button-group/radio-button-group.component';\nimport { ItemCardComponent } from './controls/item-card/item-card.component';\nimport { SafeHtmlPipe } from './providers/safe-html.pipe';\nimport { AlertDialogComponent } from './controls/alert-dialog/alert-dialog.component';\nimport { FuncionariosComponent } from './cadastros/funcionarios/funcionarios/funcionarios.component';\nimport { FuncionarioFormComponent } from './cadastros/funcionarios/funcionario-form/funcionario-form.component';\nimport { FuncionarioEditDialogComponent } from './cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component';\nimport { FuncionarioAddDialogComponent } from './cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component';\nimport { ClientesFormComponent } from './cadastros/clientes/clientes/clientes-form.component';\nimport { ClientesComponent } from './cadastros/clientes/clientes/clientes.component';\nimport { ClientesAddDialogComponent } from './cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component';\nimport { ClientesEditDialogComponent } from './cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component';\nimport { SelecaoClienteDialogComponent } from './cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component';\nimport { FornecedoresFormComponent } from './cadastros/fornecedores/fornecedores/fornecedores-form.component';\nimport { FornecedoresComponent } from './cadastros/fornecedores/fornecedores/fornecedores.component';\nimport { FornecedoresAddDialogComponent } from './cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component';\nimport { FornecedoresEditDialogComponent } from './cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component';\nimport { SelecaoFornecedorDialogComponent } from './cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component';\nimport { NgxMaskDirective, NgxMaskPipe, provideEnvironmentNgxMask } from 'ngx-mask';\nimport { SelecaoListItemComponent } from './controls/selecao-list-item/selecao-list-item.component';\n\n\ndeclare global {\n interface String {\n isEmpty(): boolean;\n }\n interface Array<T> {\n firstOrNull(): T | null;\n remove(item: T): boolean;\n }\n interface Date {\n addDays(days: number): Date;\n }\n}\nArray.prototype.remove = function (item): boolean {\n const index = this.indexOf(item);\n if (index === -1) return false;\n this.splice(index, 1);\n return true;\n}\nArray.prototype.firstOrNull = function () {\n if (this.length > 0)\n return this[0];\n return null;\n}\n\nDate.prototype.addDays = function (days: number) {\n var result = new Date(this);\n result.setDate(result.getDate() + days);\n return result;\n}\n\n@NgModule({\n declarations: [\n BusyIndicatorComponent,\n MonthYearPickerComponent,\n ImageViewerComponent,\n NumericPickerComponent,\n PaginatorComponent,\n CheckButtonComponent,\n RadioButtonGroupComponent,\n ItemCardComponent,\n SafeHtmlPipe,\n AlertDialogComponent,\n FuncionariosComponent,\n FuncionarioFormComponent,\n FuncionarioEditDialogComponent,\n FuncionarioAddDialogComponent,\n\n ClientesFormComponent,\n ClientesComponent,\n ClientesAddDialogComponent,\n ClientesEditDialogComponent,\n SelecaoClienteDialogComponent,\n\n FornecedoresFormComponent,\n FornecedoresComponent,\n FornecedoresAddDialogComponent,\n FornecedoresEditDialogComponent,\n SelecaoFornecedorDialogComponent,\n SelecaoListItemComponent,\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatButtonModule,\n MatIconModule,\n MatDialogModule,\n MatSelectModule,\n MatDatepickerModule,\n MatCheckboxModule,\n MatAutocompleteModule,\n MatSlideToggleModule,\n NgxMaskDirective,\n NgxMaskPipe,\n ],\n exports: [\n BusyIndicatorComponent,\n MonthYearPickerComponent,\n ImageViewerComponent,\n NumericPickerComponent,\n PaginatorComponent,\n CheckButtonComponent,\n RadioButtonGroupComponent,\n ItemCardComponent,\n SelecaoListItemComponent,\n SafeHtmlPipe\n ],\n providers: [provideEnvironmentNgxMask()]\n})\nexport class OxpiNglibModule { }\n","import { FocusService } from \"../../providers/focus.service\"\r\nimport { valTextEmpty } from \"../infra/validations\"\r\n\r\nexport interface SetorEstoque\r\n{\r\n id: number\r\n nome: string\r\n isAtivo: boolean\r\n enviadoPC: boolean\r\n marcadoExclusao: boolean \r\n}\r\n\r\nexport function validaSetorEstoque(item: SetorEstoque, focus: FocusService): string | null {\r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n return null;\r\n}","import { FocusService } from \"../../providers/focus.service\";\r\nimport { valTextEmpty } from \"../infra/validations\";\r\n\r\nexport interface Operador {\r\n id: number;\r\n login: string;\r\n senha: string;\r\n nome: string;\r\n pronuncia: string;\r\n isAtivo: boolean;\r\n}\r\n\r\nexport function validaOperador(item: Operador, focus: FocusService): string | null {\r\n if (valTextEmpty(item.login)) {\r\n focus.set('login');\r\n return 'Digite um login válido.';\r\n } \r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n if (valTextEmpty(item.senha)) {\r\n focus.set('senha');\r\n return 'Digite uma senha válido.';\r\n }\r\n return null;\r\n}","export class BusyState {\r\n isBusy: boolean = false;\r\n private counter: number = 0;\r\n\r\n show() {\r\n this.counter++;\r\n this.isBusy = true;\r\n }\r\n\r\n hide() {\r\n this.counter--;\r\n if (this.counter < 0)\r\n this.counter = 0;\r\n if (this.counter == 0)\r\n this.isBusy = false;\r\n }\r\n}","import { LazyTrigger } from './lazy-trigger';\r\n\r\nexport class NumberParser {\r\n private _parseTrigger: LazyTrigger;\r\n valor: string | undefined;\r\n parsed : boolean = false;\r\n\r\n constructor(\r\n private setPropFunc: (newValue: number | null) => void,\r\n private getPropFunc: () => number | null,\r\n private min?: number,\r\n private max?: number,\r\n triggerMilliseconds : number = 3000) {\r\n this._parseTrigger = new LazyTrigger(() => this.parseValor(), triggerMilliseconds);\r\n }\r\n\r\n parse(vlr: string) {\r\n this.valor = vlr;\r\n this.parsed = false;\r\n this._parseTrigger.fire();\r\n }\r\n store(vlr : string) {\r\n this.valor = vlr;\r\n this.parsed = false;\r\n }\r\n\r\n\r\n checkout()\r\n {\r\n if (this.parsed || !this.valor) return;\r\n this.parseValor();\r\n }\r\n\r\n private parseValor() {\r\n if (this.valor === undefined) return;\r\n this.parsed = true;\r\n const vlrTxt = this.valor.split(\",\").join(\".\");;\r\n const spTxt: string[] = vlrTxt.split(\".\");\r\n let toParseTxt = \"\";\r\n if (spTxt.length > 2) {\r\n const chars = vlrTxt.split(\"\");\r\n const lastIndex = vlrTxt.lastIndexOf(\".\");\r\n for (let i = 0; i < chars.length; i++) {\r\n const c = chars[i];\r\n if (c === \".\" && i != lastIndex) continue;\r\n toParseTxt = toParseTxt.concat(c);\r\n }\r\n }\r\n else {\r\n toParseTxt = vlrTxt;\r\n }\r\n\r\n const vlr = parseFloat(toParseTxt);\r\n if (isNaN(vlr) || !this.validaMinMax(vlr)) {\r\n const original = this.getPropFunc();\r\n this.setPropFunc(0);\r\n setTimeout(() => this.setPropFunc(original));\r\n }\r\n else {\r\n this.setPropFunc(vlr);\r\n }\r\n }\r\n\r\n private validaMinMax(value: number): boolean {\r\n if ((this.min === undefined) && this.max === undefined) return true;\r\n if (!(this.min === undefined) && value < this.min) return false;\r\n if (!(this.max === undefined) && value > this.max) return false;\r\n return true;\r\n }\r\n}\r\n","export class Ordem {\r\n isCrescente: boolean;\r\n colName: string;\r\n onToggle?: () => void;\r\n constructor(ordens: OrdemInfo[], isCrescente: boolean, onToggle?: () => void) {\r\n const d = ordens.filter(x => x.default === true).firstOrNull();\r\n this.colName = d === null ? ordens[0].value : d.value;\r\n this.isCrescente = isCrescente;\r\n this.onToggle = onToggle;\r\n }\r\n\r\n toggle() {\r\n this.isCrescente = !this.isCrescente;\r\n if (this.onToggle !== undefined)\r\n this.onToggle();\r\n }\r\n\r\n toString(): string {\r\n return this.colName + (!this.isCrescente ? \" desc\" : \"\")\r\n }\r\n}\r\n\r\nexport interface OrdemInfo {\r\n name: string;\r\n value: string;\r\n default?: boolean;\r\n}\r\n","import { SearchSetting } from \"./search-setting\";\r\n\r\n\r\nexport class PagamentoRecebimentoSearchSetting extends SearchSetting {\r\n exibirPagamentos: boolean;\r\n exibirRecebimentos: boolean;\r\n gruposDespesasIds: number[] = [];\r\n gruposReceitasIds: number[] = [];\r\n marcadoresIds: number[] = [];\r\n contasIds: number[] = [];\r\n\r\n constructor() {\r\n super();\r\n this.exibirPagamentos = true;\r\n this.exibirRecebimentos = true;\r\n }\r\n}\r\n","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class OcupacaoFilterSetting extends SearchSetting {\r\n dom: boolean;\r\n seg: boolean;\r\n ter: boolean;\r\n qua: boolean;\r\n qui: boolean;\r\n sex: boolean;\r\n sab: boolean;\r\n\r\n exibirPernoite?: boolean;\r\n exibirNormal?: boolean;\r\n\r\n constructor() {\r\n super();\r\n this.dom = false;\r\n this.seg = false;\r\n this.ter = false;\r\n this.qua = false;\r\n this.qui = false;\r\n this.sex = false;\r\n this.sab = false;\r\n }\r\n}\r\n","import { OcupacaoFilterSetting } from \"./ocupacao-filter-setting\";\r\n\r\nexport class OcupacaoSearchSetting extends OcupacaoFilterSetting {\r\n clienteFidelidadeId?: number;\r\n incluiOcupacaoAberta?: boolean;\r\n dateFieldEnum: OcupacaoSearchDateField;\r\n tipoEntrada?: OcupacaoSearchTipoEntrada;\r\n conducao?: OcupacaoConducao;\r\n mostrouContaMult?: boolean;\r\n mostrouContaMaiorMenor?: boolean;\r\n mostrouContaSemCarro?: boolean;\r\n teveExclusaoProduto?: boolean;\r\n teveTransferencia?: boolean;\r\n teveEdicaoFormaPgto?: boolean;\r\n teveDesconto?: boolean;\r\n teveCortesia?: boolean;\r\n teveConsumo?: boolean;\r\n teveExcesso?: boolean;\r\n tevePernoite?: boolean;\r\n teveNormal?: boolean;\r\n tevePessoaExtra?: boolean;\r\n suites?: number[];\r\n marcador?: number;\r\n caixas?: number[];\r\n placas?: string[];\r\n classes?: number[];\r\n operadores?: number[];\r\n teveClienteFidelidade?: boolean;\r\n teveNegociacao?: boolean;\r\n teveMudancaModalidade?: boolean;\r\n formaPagamento?: number;\r\n produtosGrupos?: number[];\r\n imprimeEntradasVeiculos? : boolean;\r\n cuponsPromocionais? : string[];\r\n naoFoiHospedagem?: boolean;\r\n constructor() {\r\n super();\r\n this.dateFieldEnum = OcupacaoSearchDateField.DataBaseCaixa;\r\n }\r\n}\r\n\r\nexport enum PorOcupacaoTipo {\r\n PorSuite, PorClasse, PorPermanencia\r\n}\r\n\r\nexport enum OcupacaoSearchDateField {\r\n DataBaseCaixa = 0,\r\n Entrada = 1,\r\n Saida = 2,\r\n EntradaSaida = 3,\r\n Fechamento = 4,\r\n LancamentoConsumo = 5\r\n}\r\n\r\nexport enum OcupacaoSearchTipoEntrada {\r\n Todas,\r\n Auto,\r\n Manual\r\n}\r\n\r\nexport enum OcupacaoConducao {\r\n Carro,\r\n Moto,\r\n APe,\r\n Carros,\r\n Taxi\r\n}","import { OcupacaoSearchDateField } from \"./ocupacao-search-setting\";\r\nimport { SearchSetting } from \"./search-setting\";\r\n\r\n\r\nexport class ConsumoProdutoSearchSetting extends SearchSetting {\r\n porPeriodoHora?: boolean;\r\n horaInicial?: number;\r\n horaFinal?: number;\r\n minutoInicial?: number;\r\n minutoFinal?: number;\r\n porFaixaHorarioHoraInicial? : number;\r\n porFaixaHorarioHoraFinal? : number;\r\n porFaixaHorario : boolean;\r\n exibeVendas: boolean;\r\n exibeDiretaFunc: boolean;\r\n exibeConsumoInterno: boolean;\r\n operadorId?: number;\r\n grupoId?:number;\r\n porSubgrupo : boolean;\r\n dateFieldEnum: OcupacaoSearchDateField;\r\n\r\n exibirPernoite?: boolean;\r\n exibirNormal?: boolean;\r\n\r\n exibirPedido?: boolean;\r\n exibirCamareiraCheckout?: boolean;\r\n exibirPedidoCliente?: boolean;\r\n exibirLancamentoComanda? : boolean;\r\n \r\n constructor() {\r\n super();\r\n this.dateFieldEnum = OcupacaoSearchDateField.DataBaseCaixa;\r\n this.exibeVendas = true;\r\n this.exibeConsumoInterno = true;\r\n this.exibeDiretaFunc = true;\r\n this.porSubgrupo = false;\r\n this.porFaixaHorario = false;\r\n this.horaInicial = 0;\r\n this.minutoInicial = 0;\r\n this.horaFinal = 23;\r\n this.minutoFinal = 59;\r\n }\r\n}\r\n","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class DuplicataSearchSetting extends SearchSetting {\r\n \r\n exibeQuitado: boolean;\r\n exibeParcial: boolean;\r\n exibeEmAberto: boolean;\r\n pessoaId?: number;\r\n grupoId?: number;\r\n gruposIds?: number[];\r\n marcadoresIds?: number[];\r\n marcadorId?: number;\r\n apenasNaoOperacional?: boolean;\r\n apenasOperacional?: boolean;\r\n apenasNaoOperacionais?: boolean;\r\n ultimosCadastrados : boolean = false;\r\n contasIds?: number[];\r\n\r\n constructor(public isDespesa: boolean, propChanged?: () => void) {\r\n super(propChanged);\r\n this.exibeQuitado = false;\r\n this.exibeParcial = false;\r\n this.exibeEmAberto = false;\r\n this.ordem = \"Vencimento\";\r\n }\r\n}","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class ProdutoSearchSetting extends SearchSetting {\r\n\r\n exibeControladoEstoque: boolean;\r\n exibeMostraRecepcao: boolean;\r\n exibeImprimeCozinha: boolean;\r\n exibeImprimeCorredor: boolean;\r\n grupos?: number[] | undefined | null;\r\n subgrupos?: number[] | undefined | null;\r\n exibeEmiteFiscal: boolean;\r\n exibeNaoEmiteFiscal: boolean;\r\n setorSubEstoqueId: number | undefined | null;\r\n cst: string | undefined | null;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.exibeControladoEstoque = false;\r\n this.exibeMostraRecepcao = false;\r\n this.exibeImprimeCorredor = false;\r\n this.exibeImprimeCozinha = false;\r\n this.exibeEmiteFiscal = false;\r\n this.exibeNaoEmiteFiscal = false;\r\n }\r\n}","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class SuitesIntervencoesSetting extends SearchSetting {\r\n suites?: number[];\r\n operadores?: number[];\r\n camareiras?: number[];\r\n status?: number[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportFileService {\r\n\r\n empresaNomeFile?: string;\r\n constructor() { }\r\n\r\n start(empresaNomeFile: string) {\r\n this.empresaNomeFile = empresaNomeFile.replace(' ', \"_\").toLowerCase();;\r\n }\r\n\r\n exportarExcel(r: any, fileName: string) {\r\n const blob = new Blob([r], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n FileSaver.saveAs(blob, `${fileName}.${this.empresaNomeFile}.xlsx`);\r\n }\r\n printHtml(r: any) {\r\n const s = r + '<script>window.onload = function() { window.print(); }</script>';\r\n const blob = new Blob([s], { type: 'text/html' });\r\n const url = window.URL.createObjectURL(blob);\r\n const w = window.open(url, '_blank', 'noreferrer');\r\n }\r\n}\r\n","import { Injectable, } from '@angular/core';\r\nimport { RadioButtonGroupData } from '../../public-api';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Preferences {\r\n constructor() {\r\n }\r\n\r\n loadGroup(key: string, list: RadioButtonGroupData[], defaultValue : any): any {\r\n const t = localStorage.getItem(key);\r\n if (t === null) return defaultValue;\r\n let defValue: any;\r\n for (let i = 0; i < list.length; i++) {\r\n const item = list[i];\r\n const isDefault = (item.value + '') === t;\r\n item.default = isDefault;\r\n if (isDefault)\r\n defValue = item.value;\r\n }\r\n return defValue;\r\n }\r\n\r\n load<T>(key: string, defaultValue : T) : T\r\n {\r\n const json = localStorage.getItem(key);\r\n if (json === null) return defaultValue;\r\n return JSON.parse(json);\r\n }\r\n\r\n saveGroup(key: string, data : RadioButtonGroupData) {\r\n localStorage.setItem(key, data.value);\r\n }\r\n\r\n save<T>(key: string, obj : T)\r\n {\r\n const json = JSON.stringify(obj);\r\n localStorage.setItem(key, json);\r\n }\r\n}\r\n","/*\n * Public API Surface of oxpi-nglib\n */\n\n//export * from './lib/oxpi-nglib.service';\nexport * from './lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component';\nexport * from './lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component';\nexport * from './lib/cadastros/funcionarios/funcionario-form/funcionario-form.component';\nexport * from './lib/cadastros/funcionarios/funcionarios/funcionarios.component';\n\nexport * from './lib/cadastros/clientes/clientes/clientes-form.component';\nexport * from './lib/cadastros/clientes/clientes/clientes.component';\nexport * from './lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component';\nexport * from './lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component';\nexport * from './lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component';\n\nexport * from './lib/cadastros/fornecedores/fornecedores/fornecedores-form.component';\nexport * from './lib/cadastros/fornecedores/fornecedores/fornecedores.component';\nexport * from './lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component';\nexport * from './lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component';\nexport * from './lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component';\n\nexport * from './lib/controls/busy-indicator/busy-indicator.component';\nexport * from './lib/controls/check-button/check-button.component';\nexport * from './lib/controls/image-viewer/image-viewer.component';\nexport * from './lib/controls/month-year-picker/month-year-picker.component';\nexport * from './lib/controls/numeric-picker/numeric-picker.component';\nexport * from './lib/controls/paginator/paginator.component';\nexport * from './lib/controls/radio-button-group/radio-button-group.component';\nexport * from './lib/controls/item-card/item-card.component';\nexport * from './lib/controls/selecao-list-item/selecao-list-item.component';\nexport * from './lib/controls/alert-dialog/alert-dialog.component';\n\nexport * from './lib/oxpi-nglib.module';\n\nexport * from './lib/models/entidades/id-nome-model';\nexport * from './lib/models/entidades/login-item';\nexport * from './lib/models/entidades/login-result';\nexport * from './lib/models/entidades/permissoes';\nexport * from './lib/models/entidades/sensores-def';\nexport * from './lib/models/entidades/usuario';\nexport * from './lib/models/entidades/setor-estoque';\nexport * from './lib/models/entidades/pessoa';\nexport * from './lib/models/entidades/operador';\nexport * from './lib/models/entidades/suite-base';\nexport * from './lib/models/entidades/ownership';\nexport * from './lib/models/entidades/funcionario';\n\n\n\nexport * from './lib/models/tuple';\n\nexport * from './lib/models/infra/busy-state';\nexport * from './lib/models/infra/lazy-trigger';\nexport * from './lib/models/infra/number-parser';\nexport * from './lib/models/infra/ordem';\nexport * from './lib/models/infra/paging-result';\nexport * from './lib/models/infra/utils-methods';\nexport * from './lib/models/infra/validations';\nexport * from './lib/models/infra/selecao-utils';\nexport * from './lib/models/infra/convert-setting-to-string';\n\nexport * from './lib/animations/animations';\n\nexport * from './lib/models/settings/PagamentoRecebimentoSearchSetting';\nexport * from './lib/models/settings/consumo-produto-search-setting';\nexport * from './lib/models/settings/duplicata-search-setting';\nexport * from './lib/models/settings/ocupacao-filter-setting';\nexport * from './lib/models/settings/ocupacao-search-setting';\nexport * from './lib/models/settings/search-setting';\nexport * from './lib/models/settings/produto-search-setting';\nexport * from './lib/models/settings/suites-intervencoes-setting';\n\nexport * from './lib/providers/export.file.service';\nexport * from './lib/providers/auth-data.service';\nexport * from './lib/providers/common-web-service';\nexport * from './lib/providers/notification.service';\nexport * from './lib/providers/focus.service';\nexport * from './lib/providers/preference.service';\nexport * from './lib/providers/safe-html.pipe';\nexport * from './lib/providers/screen-helper.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CommonWebService","i2","i3","i6","i7.BusyIndicatorComponent","i4.ScreenHelperService","i5","i7","i8.BusyIndicatorComponent","i9.FuncionarioFormComponent","i1.AuthDataService","i2.NotificationService","i4.AuthDataService","i5.ScreenHelperService","i8","i9","i10.BusyIndicatorComponent","i11.ItemCardComponent","i12.FuncionarioFormComponent","i4","i9.ClientesFormComponent","i12.ClientesFormComponent","i2.CommonWebService","i3.NotificationService","i11.SelecaoListItemComponent","i9.FornecedoresFormComponent","i12.FornecedoresFormComponent","i2.CheckButtonComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAM,SAAU,YAAY,CAAC,CAA4B,EAAA;IACrD,OAAO,CAAC,KAAK,IAAI;AACb,QAAA,CAAC,KAAK,SAAS;AACf,QAAA,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AACK,SAAU,cAAc,CAAC,CAA4B,EAAA;IACvD,OAAO,CAAC,KAAK,IAAI;AACb,QAAA,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC;AACe,SAAA,UAAU,CAAC,CAAS,EAAE,GAAW,EAAA;AAC7C,IAAA,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;AAC1B,CAAC;AAEe,SAAA,YAAY,CAAC,CAA4B,EAAE,GAAW,EAAA;AAClE,IAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;AAC7B,QAAA,OAAO,IAAI,CAAC;IAChB,OAAO,CAAC,IAAI,GAAG,CAAC;AACpB,CAAC;AACK,SAAU,iBAAiB,CAAC,CAAU,EAAA;AAE1C,IAAA,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC;AACvC,CAAC;AACK,SAAU,oBAAoB,CAAC,CAAU,EAAA;AAE7C,IAAA,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC/B;;ACDgB,SAAA,iBAAiB,CAAC,IAAiB,EAAE,KAAmB,EAAA;AACpE,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClB,QAAA,OAAO,wBAAwB,CAAC;AACnC,KAAA;AACD,IAAA,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC9B,QAAA,OAAO,mBAAmB,CAAC;AAC9B,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;MCjCa,YAAY,CAAA;AAIvB,IAAA,WAAA,GAAA;KACC;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;KACpC;AAED,IAAA,mBAAmB,CAAC,IAAY,EAAA;QAC9B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;AACD,IAAA,eAAe,CAAC,OAAuC,EAAA;AACrD,QAAA,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;;AAExB,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,QAAA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3E;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;AAErB,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1E;AAED,IAAA,qBAAqB,CAAC,IAAY,EAAA;QAChC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;KACvD;AAED,IAAA,iBAAiB,CAAC,OAAuC,EAAA;AACvD,QAAA,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;AACtD,QAAA,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9E;AAEO,IAAA,mBAAmB,CAAC,KAAU,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;YAAE,OAAO;AACjC,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO;AAE/C,QAAA,MAAM,KAAK,GAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC7C,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAChE,QAAA,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAC5B,QAAA,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YAC9B,OAAO;QACT,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAgB,CAAC;AAE1C,QAAA,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YACjB,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;IAED,QAAQ,GAAA;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,CAAC,KAAK,EAAE,CAAC;KAClC;IAEO,QAAQ,GAAA;AACd,QAAA,MAAM,KAAK,GACT,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YACnD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,+CAA+C,CAAC;AAC/E,YAAA,QAAQ,CAAC,gBAAgB,CAAC,+CAA+C,CAAC,CAAC;QAE/E,MAAM,KAAK,GAAkB,EAAE,CAAC;AAChC,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACjD,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAgB,CAAC;AACvC,YAAA,IAAI,EAAE,CAAC,QAAQ,GAAG,CAAC;AACjB,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,GAAG,CAAC,EAAU,EAAA;QACZ,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO;QACxB,EAAE,CAAC,KAAK,EAAE,CAAC;KACZ;IACD,kBAAkB,CAAC,QAAgB,EAAE,SAAiB,EAAA;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,EAAE,GAAuB,IAAI,CAAC;AAClC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE;AAC5B,gBAAA,EAAE,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC;gBAC5B,MAAM;AACP,aAAA;AACF,SAAA;QACD,EAAE,EAAE,KAAK,EAAE,CAAC;KACb;AAEF;;MC/EY,gBAAgB,CAAA;aA0BpB,IAAc,CAAA,cAAA,GAAG,QAAQ,CAAC,EAAA;aAC1B,IAAgB,CAAA,gBAAA,GAAG,YAAY,CAAC,EAAA;aAChC,IAAuB,CAAA,uBAAA,GAAG,gBAAgB,CAAC,EAAA;AAElD,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QA7BpC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAElB,IAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;QAClC,IAA0B,CAAA,0BAAA,GAAW,EAAE,CAAC;QACxC,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAuC,CAAA,uCAAA,GAAG,EAAE,CAAC;QAC7C,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;QAC5B,IAAyB,CAAA,yBAAA,GAAG,EAAE,CAAC;QAC/B,IAAmC,CAAA,mCAAA,GAAG,EAAE,CAAC;QACzC,IAAkC,CAAA,kCAAA,GAAG,EAAE,CAAC;QACxC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAEjB,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QACpB,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;QAC9B,IAA2B,CAAA,2BAAA,GAAW,EAAE,CAAC;QAEzC,IAAmB,CAAA,mBAAA,GAAY,EAAE,CAAC;QAClC,IAAgB,CAAA,gBAAA,GAAY,EAAE,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QACvB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;KAMqB;AAEzC,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IACD,KAAK,CAAC,OAAe,EAAE,gBAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,IAAI,CAAC,2BAA2B,GAAG,OAAO,GAAG,oBAAoB,CAAC;AAClE,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,GAAG,cAAc,CAAC;AACrD,QAAA,IAAI,CAAC,0BAA0B,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAChE,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,CAAC;AACnD,QAAA,IAAI,CAAC,uCAAuC,GAAG,OAAO,GAAG,+BAA+B,CAAC;AACzF,QAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO,GAAG,eAAe,CAAC;AACxD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO,GAAG,kBAAkB,CAAC;AAC9D,QAAA,IAAI,CAAC,mCAAmC,GAAG,OAAO,GAAG,2BAA2B,CAAC;AACjF,QAAA,IAAI,CAAC,kCAAkC,GAAG,OAAO,GAAG,wBAAwB,CAAC;AAC7E,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,GAAG,YAAY,CAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,WAAW,CAAA;QAGzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QACpD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC;QAC1E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAA;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;AACnD,QAAA,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAC;KACjD;IAED,eAAe,CAAC,eAAyB,KAAK,EAAA;AAC5C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACtC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC9B,aAAA,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAC/F;IACD,qBAAqB,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAC9F;AAED,IAAA,gBAAgB,CAAC,OAAsB,EAAA;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AACxE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACnH;IACD,oBAAoB,GAAA;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClF;IACD,iBAAiB,GAAA;AACf,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACzF;AACD,IAAA,eAAe,CAAC,CAAc,EAAA;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACnG;AACD,IAAA,cAAc,CAAC,CAAc,EAAA;AAC3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClG;AACD,IAAA,iBAAiB,CAAC,EAAU,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClF;IAED,aAAa,GAAA;AACX,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAC1F;AAGD,IAAA,YAAY,CAAC,OAAuB,EAAA;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AACpE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAY,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAC/G;IACD,aAAa,GAAA;AACX,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACrF;AACD,IAAA,WAAW,CAAC,CAAU,EAAA;AACpB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACnG;AACD,IAAA,UAAU,CAAC,CAAW,EAAA;AACpB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClG;AACD,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClF;AAED,IAAA,eAAe,CAAC,OAAuB,EAAA;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAe,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClH;IACD,gBAAgB,GAAA;AACd,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACxF;AACD,IAAA,cAAc,CAAC,CAAa,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACnG;AACD,IAAA,aAAa,CAAC,CAAc,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClG;AACD,IAAA,gBAAgB,CAAC,EAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClF;IAGD,aAAa,GAAA;AACX,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACtF;AACD,IAAA,aAAa,CAAC,OAAuB,EAAA;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAa,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAChH;IACD,iBAAiB,GAAA;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClF;AACD,IAAA,YAAY,CAAC,CAAW,EAAA;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACnG;AACD,IAAA,WAAW,CAAC,CAAY,EAAA;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClG;AACD,IAAA,cAAc,CAAC,EAAW,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAM,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClF;IAED,SAAS,GAAA;AACP,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAc,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,cAAc,CAAC,UAAuB,EAAA;QACpC,OAAO;YACL,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK;aACvC,CAAC;AACF,YAAA,MAAM,EAAE,UAAU;SACnB,CAAA;KACF;AAED,IAAA,eAAe,CAAC,UAAuB,EAAA;QACrC,OAAO;YACL,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK;aACvC,CAAC;AACF,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,YAAY,EAAE,aAAuB;SACtC,CAAC;KACH;AAED,IAAA,cAAc,CAAC,UAAuB,EAAA;QACpC,OAAO;YACL,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK;aACvC,CAAC;AACF,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,YAAY,EAAE,MAAgB;SAC/B,CAAC;KACH;+GAhNU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCNY,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CAAmB,QAAqB,EAAA;QAArB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;KACvC;AAED,IAAA,aAAa,CAAC,GAAsB,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,IAAI,SAAS,EACzD;YACG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO;AACT,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,IAAI,OAAO,GAAG,CAAC,KAAK,IAAI,QAAQ,EAC/E;AACE,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,CAAA,iCAAA,EAAoC,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,GAAG,CAAC,UAAU,CAAA,CAAE,CAAC,CAAC;KACxF;AACD,IAAA,OAAO,CAAC,GAAW,EAAE,QAAA,GAAmB,IAAI,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC5D;AACD,IAAA,YAAY,CAAC,GAAW,EAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;AACjC,YAAA,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,CAAC,cAAc,CAAC;AAC7B,SAAA,CAAC,CAAC;KACJ;+GA5BU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACHD,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,SAAS,GAAG,IAAI,CAAC;MAKV,mBAAmB,CAAA;AAyB9B,IAAA,WAAA,GAAA;AAxBA,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;AAClD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;AAClD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;AACjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;AAClD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAW,CAAC;AAEnD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAW,CAAC;AACpD,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAW,CAAC;AACrD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAW,CAAC;AACpD,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAW,CAAC;AACrD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,YAAY,EAAW,CAAC;QAEtD,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAQ,CAAA,QAAA,GAAW,KAAK,CAAC;QACzB,IAAO,CAAA,OAAA,GAAW,KAAK,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAE3B,IAAQ,CAAA,QAAA,GAAa,KAAK,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAa,KAAK,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAa,KAAK,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAa,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAa,KAAK,CAAC;QAG3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;YAC1C,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;IAED,qBAAqB,GAAA;AACnB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC,QAAA,MAAM,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC;AAClC,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC;AACnC,QAAA,MAAM,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC;AAClC,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC;AACnC,QAAA,MAAM,SAAS,GAAG,KAAK,IAAI,SAAS,CAAC;AAErC,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC;AACnC,QAAA,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,CAAC;AACpC,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC;AACnC,QAAA,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,CAAC;AACpC,QAAA,MAAM,UAAU,GAAG,KAAK,IAAI,SAAS,CAAC;AAEtC,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC7B,SAAA;AACD,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,SAAA;AAGD,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC9B,SAAA;KACF;+GAzFU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCJY,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA;QADS,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;KAChB;IAEjB,QAAQ,GAAA;KACP;+GALU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,uFCPnC,2GAEM,EAAA,MAAA,EAAA,CAAA,meAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,2GAAA,EAAA,MAAA,EAAA,CAAA,meAAA,CAAA,EAAA,CAAA;0EAKpB,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MECK,wBAAwB,CAAA;AAGnC,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IACW,KAAK,CAAC,KAA8B,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;KAC9C;AAID,IAAA,WAAA,CAAoB,EAAoB,EAAA;QAApB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAHxC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAM,CAAA,MAAA,GAAuB,EAAE,CAAC;QAChC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;KACW;IAE7C,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE;aAC5B,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB,EAAE,GAAG,IAAG;AACP,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,YAAY,CAAC,EAAO,EAAA;QAClB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;KACxC;+GAnCU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,uFCTrC,gxDAiCM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,gxDAAA,EAAA,CAAA;oGAYpB,KAAK,EAAA,CAAA;sBADf,KAAK;;;MEFK,6BAA6B,CAAA;AAMxC,IAAA,WAAA,CAAoB,EAAoB,EAC9B,YAAiC,EAElC,UAAuB,EACvB,MAAiB,EAChB,KAAiB,EACjB,SAAsD,EACtD,YAAiC,EAAA;QAPvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAElC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA6C;QACtD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAV3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,YAAY,EAAE,CAAC;QAUtC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,6BAA6B,EAAE,IAAI;AACnC,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,0BAA0B,EAAE,IAAI;AAChC,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,iBAAiB,EAAE,IAAI;SACxB,CAAC;QACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAEzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvE;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACtD;IACD,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AACxB,QAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,IAAI,MAAM,EACV;AACE,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;aAC/B,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,SAAS;AAChB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9B,EAAE,GAAG,IAAG;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACR;AA7DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,+EAQ9B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AARd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,iECd1C,ojBAayD,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDC5C,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,ojBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;0BAYlC,MAAM;2BAAC,eAAe,CAAA;;;METd,8BAA8B,CAAA;AAMzC,IAAA,WAAA,CAAoB,EAAoB,EAC9B,YAAiC,EAElC,UAAuB,EACvB,MAAiB,EAChB,KAAiB,EACjB,SAAuD,EACvD,YAAiC,EAAA;QAPvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAElC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA8C;QACvD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAV3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,YAAY,EAAE,CAAC;AAUxC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAEzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvE;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACtD;IACD,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AACxB,QAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,IAAI,MAAM,EACV;AACE,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;aAChC,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,SAAS;AAChB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9B,EAAE,GAAG,IAAG;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACR;AAlDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,+EAQ/B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AARd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,kECb3C,wjBAayD,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDA5C,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,wjBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;0BAYnC,MAAM;2BAAC,eAAe,CAAA;;;AEnBd,MAAA,aAAa,GAAG,OAAO,CAChC,MAAM,EACN;IACE,UAAU,CACR,QAAQ,EAAE;QACV,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpD,QAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;KACtE,CACA;IACD,UAAU,CACR,QAAQ,EAAE;QACV,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACnD,QAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;KACzE,CAAC;AAAC,CAAA,EACN;AAGY,MAAA,oBAAoB,GAAG,OAAO,CACzC,aAAa,EACb;IACE,UAAU,CACR,QAAQ,EAAE;QACV,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACrD,QAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;KACtE,CACA;IACD,UAAU,CACR,QAAQ,EAAE;AACV,QAAA,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;KAC1C,CAAC;AAAC,CAAA;;MChCI,WAAW,CAAA;IAEpB,WAAoB,CAAA,MAAkB,EAAU,OAAA,GAAmB,GAAG,EAAA;QAAlD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAe;KAErE;IACD,IAAI,GAAA;AACA,QAAA,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS;AAC/B,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAQ,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAClF;AACJ;;MCHY,oBAAoB,CAAA;IAE/B,WACS,CAAA,SAA6C,EAE7C,IAAqB,EAAA;QAFrB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoC;QAE7C,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAAK;IAEnC,QAAQ,GAAA;KACP;AARU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,8CAIrB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAJd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wDCRjC,6TAOqB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDCR,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,6TAAA,EAAA,CAAA;;0BAQzB,MAAM;2BAAC,eAAe,CAAA;;;MEJd,0BAA0B,CAAA;AAErC,IAAA,WAAA,CAAoB,IAAmC,EAAA;QAAnC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAA+B;KACtD;AAED,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC5B,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QACxC,MAAM,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;QAC9C,IAAI,GAAG,KAAK,QAAQ,EAAE;AACpB,YAAA,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpC,OAAO;AACR,aAAA;YACD,GAAG,GAAG,OAAO,CAAC;AACf,SAAA;AACD,QAAA,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO;AAC7C,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACf,QAAA,IAAI,QAAQ;AACV,YAAA,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,OAAO;AAAE,YAAA,KAAK,EAAE,CAAC;AAC7B,QAAA,IAAI,GAAG,KAAK,KAAK,IAAI,KAAK,GAAG,CAAC;AAAE,YAAA,KAAK,EAAE,CAAC;AAExC,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAAE,OAAO;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACjD;AACF,CAAA;SAEe,gBAAgB,CAC9B,MAAiB,EACjB,GAAW,EACX,YAAwB,EAAA;AACxB,IAAA,MAAM,IAAI,GACV;AACE,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,GAAG,EAAE,GAAG;KACT,CAAA;AACD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAClD,QAAA,IAAI,EAAE,IAAI;AACX,KAAA,CAAC,CAAC;IACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,YAAY,IAAG;QAC/C,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO;AAClC,QAAA,YAAY,EAAE,CAAC;AACjB,KAAC,CAAC,CAAC;AACL;;AClDgB,SAAA,eAAe,CAAC,QAAiB,EAAE,CAAgB,EAAA;IAE/D,OAAO,CAAA,EAAG,QAAQ,CAAI,CAAA,EAAA,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAA;AACrD,CAAC;AACK,SAAU,sBAAsB,CAAC,CAAgB,EAAA;AACnD,IAAA,MAAM,GAAG,GAAkB,CAAC,CAAC,OAAO,CAAC;AACrC,IAAA,MAAM,GAAG,GAAkB,CAAC,CAAC,KAAK,CAAC;AACnC,IAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACpB,IAAA,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AAClB,IAAA,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AAClB,IAAA,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM;AAC1B,QAAA,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3B,IAAA,IAAI,IAAI,KAAK,UAAU,CAAC,KAAK;QACzB,OAAO,EAAE,GAAG,GAAG,CAAC;AACpB,IAAA,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM;AAC1B,QAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,CAAA,EAAG,kBAAkB,CAAC,GAAG,CAAC,CAAQ,KAAA,EAAA,kBAAkB,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACvE,CAAC;AAEK,SAAU,kBAAkB,CAAC,CAAgB,EAAA;IAC/C,IAAI,CAAC,YAAY,IAAI,EAAE;AACnB,QAAA,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA,CAAA,EAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAClE,KAAA;AACI,SAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACzB,QAAA,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACrD,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACd;;MC7Ba,aAAa,CAAA;AAYtB,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAuB5C,IAAM,CAAA,MAAA,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACvI,IAAW,CAAA,WAAA,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAvB/F,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClF,QAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAE5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACnB;IAED,GAAG,CAAC,IAAY,EAAE,KAAU,EAAA;QACxB,MAAM,EAAE,GAAG,IAAW,CAAC;AACvB,QAAA,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;AACX,QAAA,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;KACvC;IAID,aAAa,CAAC,QAAkB,KAAK,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,KAAK;AACxC,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;AAC9D,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM;AAC/B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;AAC9B,YAAA,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM;AAC/B,YAAA,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA,CAAA,EAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AACzE,QAAA,OAAO,CAAG,EAAA,GAAG,CAAC,OAAO,EAAE,CAAI,CAAA,EAAA,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,GAAG,CAAC,WAAW,EAAE,CAAQ,KAAA,EAAA,GAAG,CAAC,OAAO,EAAE,CAAI,CAAA,EAAA,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;KACxI;IAED,WAAW,GAAA;QACP,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE;AACf,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACb,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACjB,SAAA;KACJ;IAED,WAAW,GAAA;QACP,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AACd,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACjB,SAAA;KACJ;AACJ,CAAA;IACW,WAEX;AAFD,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AAAE,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AAAE,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AAAE,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AAClC,CAAC,EAFW,UAAU,KAAV,UAAU,GAErB,EAAA,CAAA,CAAA;;MC3DY,SAAS,CAAA;AAQrB,CAAA;AAEe,SAAA,iBAAiB,CAAC,SAAqB,EAAE,QAAwB,EAAA;IAC7E,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI;QACjE,OAAO;AACX,IAAA,IAAI,SAAS,CAAC,SAAS,KAAK,CAAC,EAC7B;AACI,QAAA,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC;QACnC,OAAO;AACV,KAAA;IACD,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;IACxE,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO;AACvB,IAAA,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;AACrC;;MCvBa,eAAe,CAAA;AAgN1B,IAAA,WAAA,GAAA;QA/MA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AACnB,QAAA,IAAA,CAAA,WAAW,GAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC5G,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,6BAA6B,EAAE,KAAK;AACpC,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,mBAAmB,EAAG,KAAK;AAC3B,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,oCAAoC,EAAE,KAAK;AAC3C,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,+BAA+B,EAAE,KAAK;AACtC,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,+BAA+B,EAAE,KAAK;AACtC,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,wCAAwC,EAAE,KAAK;AAC/C,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,6BAA6B,EAAE,KAAK;AACpC,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,gCAAgC,EAAE,KAAK;AACvC,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,6BAA6B,EAAE,KAAK;AACpC,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,+BAA+B,EAAE,KAAK;AACtC,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,uBAAuB,EAAE,KAAK;AAC9B,YAAA,mBAAmB,EAAE,KAAK;SAC3B,CAAC;QACF,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QACnB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAQ,CAAA,QAAA,GAAmB,EAAE,CAAC;KAG7B;AAED,IAAA,KAAK,CAAC,MAAmB,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;KACnD;AACD,IAAA,YAAY,CAAC,SAAqB,EAAA;AAEhC,QAAA,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7C;+GArOU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCAY,iBAAiB,CAAA;AAQ5B,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IACW,SAAS,CAAC,KAA6B,EAAA;AAChD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,IAAI,SAAS;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACjC;AACD,IAAA,WAAA,CAAoB,IAAqB,EAAA;QAArB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAAK;IAE9C,QAAQ,GAAA;KACP;+GApBU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAW,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,gLCT9B,i4BAqBM,EAAA,MAAA,EAAA,CAAA,06CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDZO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,i4BAAA,EAAA,MAAA,EAAA,CAAA,06CAAA,CAAA,EAAA,CAAA;mGAMf,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAMK,SAAS,EAAA,CAAA;sBADnB,KAAK;;;MECK,qBAAqB,CAAA;IAYhC,WAAoB,CAAA,EAAoB,EAC9B,YAAiC,EAClC,MAAiB,EACxB,IAAqB,EACb,YAAiC,EAAA;QAJvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAEhB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAb3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAK,CAAA,KAAA,GAAkB,EAAE,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAwB,IAAI,CAAC;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,WAAW,CAAC,MAAK,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAG1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;QAO/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAGvE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,YAAY,GAAA;AAEV,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;YACzB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aACvB,EAAE,GAAG,CAAC,CAAC;;AAET,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvB,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;KACjD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;aACnC,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB,EAAE,GAAG,IAAG;AACP,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAGD,OAAO,GAAA;AACL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;AAClB,QAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAC1B,CAAA,gDAAA,EAAmD,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,EACjE,MAAK;AAED,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC/B,SAAS,CAAC,CAAC,IAAG;AACb,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;AACrE,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB,EACD,GAAG,IAAG;AACF,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzC,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;QACF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;AAC7D,YAAA,KAAK,EAAE,KAAK;;AAEZ,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,IAAiB,EAAA;QAC5B,IAAI,MAAM,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;YAC1C,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAC7C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;AAC9D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,KAAK;;AAEZ,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,QAAA,IAAI,MAAM,EACV;AACE,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;aAC1B,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB,EACC,GAAG,IAAG;AACJ,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACR;+GAjJU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,ECrBlC,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,21GA2EM,EDxDQ,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAE,aAAa,CAAE,EAAA,CAAA,CAAA,EAAA;;4FAElB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EAGf,CAAE,aAAa,CAAE,EAAA,QAAA,EAAA,21GAAA,EAAA,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,CAAA;;;MEXlB,qBAAqB,CAAA;AAIhC,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,IAAO,CAAA,OAAA,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAC5J;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,gBAAgB,CAAC,CAAQ,EAAA;AAAG,QAAA;YAC1B,IAAI,IAAI,CAAC,KAAK;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;AAC/B,SAAA;KACF;+GAbY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qFCRlC,8sNA6Ie,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrIF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,8sNAAA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,CAAA;0EAKpB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEmCQ,SAAA,YAAY,CAAC,IAAY,EAAE,KAAmB,EAAA;AAC1D,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClB,QAAA,OAAO,wBAAwB,CAAC;AACnC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;MCrCa,0BAA0B,CAAA;AAKrC,IAAA,WAAA,CAAoB,EAAoB,EAC9B,YAAiC,EAElC,UAAmB,EACnB,MAAiB,EAChB,KAAiB,EACjB,SAAmD,EACnD,YAAiC,EAAA;QAPvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAElC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAS;QACnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA0C;QACnD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAT3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;AASvC,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI;AACzB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,OAAO,EAAE,IAAI;SACd,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvE;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACtD;IACD,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAChD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;AAlDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,+EAOf,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAP1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,+DCbvC,ikBAayD,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDA5C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,ikBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;0BAWhC,QAAQ;;0BAAI,MAAM;2BAAC,eAAe,CAAA;;;MEP1B,2BAA2B,CAAA;AAMtC,IAAA,WAAA,CAAoB,EAAoB,EAC9B,YAAiC,EAElC,UAAmB,EACnB,MAAiB,EAChB,KAAiB,EACjB,SAAoD,EACpD,YAAiC,EAAA;QAPvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAElC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAS;QACnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;QACpD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAV3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;AAUvC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAEzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvE;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACtD;IACD,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AACxB,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,SAAS;AAChB,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC9B;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;AAnDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,+EAQ5B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AARd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,gECbxC,2iBAayD,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDA5C,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,2iBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;0BAYjC,MAAM;2BAAC,eAAe,CAAA;;;MEAd,iBAAiB,CAAA;IAW5B,WAAoB,CAAA,EAAoB,EAC9B,YAAiC,EAClC,MAAiB,EACxB,IAAqB,EACb,YAAiC,EAAA;QAJvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAEhB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAb3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAK,CAAA,KAAA,GAAc,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAmB,IAAI,CAAC;AACpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,WAAW,CAAC,MAAK,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAG1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;QAO/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAGvE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,YAAY,GAAA;AAEV,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;YACzB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aACvB,EAAE,GAAG,CAAC,CAAC;;AAET,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvB,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;KACjD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,aAAC,EAAE,KAAK,EAAE,GAAG,IAAG;AACd,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;IAGD,OAAO,GAAA;AACL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;AAClB,QAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAC1B,CAAA,4CAAA,EAA+C,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,EAC3D,MAAK;AACH,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,CAAC,IAAG;AACR,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACjE,oBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBACrB;gBACD,KAAK,EAAE,GAAG,IAAG;AACX,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACtC;AACF,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;QAEF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1D,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,IAAa,EAAA;QAExB,IAAI,MAAM,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;YAC1C,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAC7C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AAC3D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;AACtB,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;+GAtJU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,ECrB9B,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,y4HAyEM,EDtDQ,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,aAAa,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAEhB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,cAAc,EAAA,UAAA,EAGZ,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,y4HAAA,EAAA,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,CAAA;;;AEnBvB,SAAU,QAAQ,CAAC,GAAW,EAAA;AAChC,IAAA,MAAM,CAAC,GAAG,uPAAuP,GAAG,GAAG,GAAG,eAAe,CAAC;IAC1R,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAEK,SAAU,SAAS,CAAC,CAAM,EAAA;AAC5B,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI;QACT,CAAC,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAEK,SAAU,UAAU,CAAC,EAAQ,EAAA;AAEjC,IAAA,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;AACpB,CAAC;AAEK,SAAU,aAAa,CAAC,OAAkC,EAAA;IAC9D,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;QACzB,OAAO,OAAO,CAAC,OAAO,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;AACvE,KAAA;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;QACzB,OAAO,OAAO,CAAC,OAAO,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,CAAC;AACjF,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAEK,SAAU,QAAQ,CAAC,GAAY,EAAA;AACnC,IAAA,IAAK,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE;AACxB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACpB,WAAA,GAAG,IAAI,aAAa;AACzB,QAAA,OAAO,KAAK,CAAC;IACf,IAAI,IAAI,GAAG,CAAC,CAAA;AACV,IAAA,IAAI,KAAK,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACzB,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1D,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAA;IACtB,IAAI,CAAC,KAAK,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;QAAG,KAAK,GAAG,CAAC,CAAA;AAC9C,IAAA,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAAG,QAAA,OAAO,KAAK,CAAC;IAC7D,IAAI,GAAG,CAAC,CAAA;IACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAC1B,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1D,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAA;IACxB,IAAI,CAAC,KAAK,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;QAAG,KAAK,GAAG,CAAC,CAAA;AAC9C,IAAA,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE;AAAG,QAAA,OAAO,KAAK,CAAC;AAC7D,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,UAAU,CAAC,IAAa,EAAA;AACtC,IAAA,IAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AACxB,WAAA,IAAI,IAAI,gBAAgB;AAC3B,QAAA,OAAO,KAAK,CAAC;AACjB,IAAA,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,OAAO,CAAC,CAAC;IACxC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,IAAA,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjC,QAAA,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;QACtD,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,GAAG,CAAC,CAAC;AACtB,KAAA;AACD,IAAA,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;IACnD,IAAI,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;AAC3D,IAAA,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;IACtB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,OAAO,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,CAAC;AACT,IAAA,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjC,QAAA,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;QACtD,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,GAAG,CAAC,CAAC;AACtB,KAAA;AACD,IAAA,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/C,IAAI,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;AAC3D,IAAA,OAAO,IAAI,CAAC;AACd;;MCxFa,wBAAwB,CAAA;AALrC,IAAA,WAAA,GAAA;QAMW,IAAI,CAAA,IAAA,GAA8B,EAAE,CAAC;AAE/C,KAAA;+GAHY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,sFCPrC,mFAEA,EAAA,MAAA,EAAA,CAAA,4iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,mFAAA,EAAA,MAAA,EAAA,CAAA,4iBAAA,CAAA,EAAA,CAAA;8BAKvB,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEYK,6BAA6B,CAAA;IAWxC,WAAmB,CAAA,SAAsD,EAC/D,EAAoB,EACpB,YAAiC,EAClC,MAAiB,EACxB,IAAqB,EACb,YAAiC,EAAA;QALxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA6C;QAC/D,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QACpB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAEhB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAf3C,IAAK,CAAA,KAAA,GAAc,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAmB,IAAI,CAAC;QACpC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAIxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,WAAW,CAAC,MAAK,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,0BAA0B,CAAyC,IAAI,CAAC,CAAC;QAQjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;KAC1D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;oBACf,CAAC,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/C,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,UAAU,CAAC,CAAW,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACvB;IAED,IAAI,GAAA;QAEF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1D,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;QAEJ,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AAC3D,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,IAAI,CAAC,YAAY;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;+GA9FU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAxB,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,kECpB1C,guDAqCE,EAAA,MAAA,EAAA,CAAA,yMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjBW,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,guDAAA,EAAA,MAAA,EAAA,CAAA,yMAAA,CAAA,EAAA,CAAA;;;MEP3B,yBAAyB,CAAA;AAGpC,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,KAAK,CAAC,GAA2B,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAGD,IAAA,WAAA,GAAA;QAFA,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;KAGpC;IAED,QAAQ,GAAA;KACP;IAED,cAAc,GAAA;AAEZ,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,SAAS,EACnE;AACE,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,OAAO;AACR,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EACnC;YACE,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzD,SAAA;aACI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EACxC;YACE,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D,SAAA;AAED,aAAA;AACE,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,SAAA;KACF;+GAvCU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,yFCTtC,42GA+Ee,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtEF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,42GAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,CAAA;0EAQ7B,KAAK,EAAA,CAAA;sBADR,KAAK;;;MECK,8BAA8B,CAAA;AAKzC,IAAA,WAAA,CAAoB,EAAoB,EAC9B,YAAiC,EAElC,UAAsB,EACtB,MAAiB,EAChB,KAAiB,EACjB,SAAuD,EACvD,YAAiC,EAAA;QAPvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAElC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA8C;QACvD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAT3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;AASvC,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI;AACzB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,OAAO,EAAE,IAAI;SACd,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvE;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACtD;IACD,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAChD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;AAlDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,+EAOnB,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAP1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,mECb3C,4kBAayD,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDA5C,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,4kBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;0BAWpC,QAAQ;;0BAAI,MAAM;2BAAC,eAAe,CAAA;;;MEP1B,+BAA+B,CAAA;AAM1C,IAAA,WAAA,CAAoB,EAAoB,EAC9B,YAAiC,EAElC,UAAsB,EACtB,MAAiB,EAChB,KAAiB,EACjB,SAAwD,EACxD,YAAiC,EAAA;QAPvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAElC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAA+C;QACxD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAV3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;AAUvC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAEzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACvE;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACtD;IACD,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxD;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AACxB,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,SAAS;AAChB,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC9B;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;AAnDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,+EAQhC,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAApB,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AARd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,oECb5C,sjBAayD,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDA5C,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,sjBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;0BAYrC,MAAM;2BAAC,eAAe,CAAA;;;MEAd,qBAAqB,CAAA;IAWhC,WAAoB,CAAA,EAAoB,EAC9B,YAAiC,EAClC,MAAiB,EACxB,IAAqB,EACb,YAAiC,EAAA;QAJvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAEhB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAb3C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;QACzB,IAAY,CAAA,YAAA,GAAsB,IAAI,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,WAAW,CAAC,MAAK,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAG1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;AAO/C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC9F,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACxG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAGvE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,YAAY,GAAA;AAEV,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;YACzB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aACvB,EAAE,GAAG,CAAC,CAAC;;AAET,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvB,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;KACjD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,aAAC,EAAE,KAAK,EAAE,GAAG,IAAG;AACd,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;IAGD,OAAO,GAAA;AACL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;AAClB,QAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAC1B,CAAA,+CAAA,EAAkD,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,EAC9D,MAAK;AACH,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,CAAC,IAAG;AACR,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;AACpE,oBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBACrB;gBACD,KAAK,EAAE,GAAG,IAAG;AACX,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACtC;AACF,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;QAEF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;AAC9D,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,IAAgB,EAAA;QAE3B,IAAI,MAAM,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;YAC1C,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAC7C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;AAC/D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;AACzB,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;+GAtJU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,ECrBlC,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w5HAyEM,EDtDQ,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,aAAa,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAEhB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAGhB,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,w5HAAA,EAAA,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,CAAA;;;MEAhB,gCAAgC,CAAA;IAW3C,WAAmB,CAAA,SAAyD,EAClE,EAAoB,EACpB,YAAiC,EAClC,MAAiB,EACxB,IAAqB,EACb,YAAiC,EAAA;QALxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAgD;QAClE,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;QACpB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAEhB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QAf3C,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;QACzB,IAAY,CAAA,YAAA,GAAsB,IAAI,CAAC;QACvC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAIxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,WAAW,CAAC,MAAK,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,0BAA0B,CAA+C,IAAI,CAAC,CAAC;QAQvF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC3F,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,IAAI,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;KACvG;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,IAAG;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YACD,KAAK,EAAE,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,UAAU,CAAC,CAAc,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACvB;IAED,IAAI,GAAA;QAEF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;AAC9D,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;QAEJ,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC;;AAE3C,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;AAC/D,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,IAAI,CAAC,YAAY;AACxB,SAAA,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;+GA3FU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3B,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAxB,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,qECnB7C,8/CAmCA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhBa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,8/CAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;;MEL9B,oBAAoB,CAAA;AAI/B,IAAA,WAAA,GAAA;QAHS,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAW,CAAC;AAE9C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IAED,QAAQ,GAAA;KACP;AAGD,IAAA,OAAO,CAAC,CAAO,EAAA;QACb,IAAI,CAAC,IAAI,CAAC,aAAa;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACjC;+GAhBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,yPCVjC,2BAAyB,EAAA,MAAA,EAAA,CAAA,oRAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDUZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGrB,IAAA,EAAA;AACJ,wBAAA,iBAAiB,EAAE,SAAS;AAC7B,qBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,oRAAA,CAAA,EAAA,CAAA;0EAGQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBASP,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEdtB,oBAAoB,CAAA;AAS/B,IAAA,IACI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAI,MAAM,CAAC,GAAY,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;AAGD,IAAA,OAAO,CAAC,CAAO,EAAA;;KAEd;AAED,IAAA,WAAA,GAAA;QArBS,IAAK,CAAA,KAAA,GAAsB,EAAE,CAAC;QAC/B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACjC,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAa,KAAK,CAAC;AACpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KAgB3B;IAEjB,QAAQ,GAAA;KACP;IAED,IAAI,CAAC,IAAqB,EAAE,KAAwB,EAAA;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,gBAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACrB,oBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzB,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,MAAM,GAAA;AAEJ,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,MAAM,GAAA;AAEJ,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;QAEN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1D;+GA9DU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mNCPjC,0pBAmBA,EAAA,MAAA,EAAA,CAAA,2bAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,0pBAAA,EAAA,MAAA,EAAA,CAAA,2bAAA,CAAA,EAAA,CAAA;0EAKlB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAGH,MAAM,EAAA,CAAA;sBADT,KAAK;gBAUN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MElBtB,wBAAwB,CAAA;AAenC,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IAAI,SAAS,CAAC,GAAY,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,IACI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IACD,IAAI,GAAG,CAAC,GAAW,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAED,IAAA,IACI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IACD,IAAI,GAAG,CAAC,GAAW,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAED,IAAA,WAAA,GAAA;AA/CU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AACvC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAa,CAAC;QAElD,IAAK,CAAA,KAAA,GAAa,KAAK,CAAC;QAGxB,IAAU,CAAA,UAAA,GAAa,KAAK,CAAC;QAC7B,IAAM,CAAA,MAAA,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACvI,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAE7B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAoC3B,QAAA,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;IAED,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACf,SAAA;AACI,aAAA;YACH,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACd,gBAAA,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AACf,aAAA;AACF,SAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;;IAED,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACf,SAAA;AACI,aAAA;YACH,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACd,gBAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACd,aAAA;AACF,SAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,SAAS;YAChB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;;AAE3B,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,OAAO;AAET,QAAA,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACnB,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1B,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,SAAS;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;;YAEtD,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;KACtC;;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACtB;+GA/GU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,qOCPrC,waAcM,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,waAAA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA,CAAA;0EAKtB,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAUP,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAYF,GAAG,EAAA,CAAA;sBADN,KAAK;gBAYF,GAAG,EAAA,CAAA;sBADN,KAAK;;;MErCK,sBAAsB,CAAA;AAUjC,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,IACI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IACD,IAAI,GAAG,CAAC,GAAW,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,IACI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IACD,IAAI,GAAG,CAAC,GAAW,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,WAAA,GAAA;AArCU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;QAC9C,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QACnB,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QACjB,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QACjB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KA8BH;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,UAAU,CAAC,EAAQ,EAAA;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACtB,OAAO;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACtB,OAAO;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;IAED,SAAS,GAAA;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC;AACrE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC;KACtE;AAED,IAAA,MAAM,CAAC,GAAS,EAAA;QACd,IAAI,KAAK,CAAC,GAAG,CAAC;AACZ,YAAA,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG;AAC1C,YAAA,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG;AAC1C,YAAA,OAAO,KAAK,CAAC;AACf,QAAA,OAAO,IAAI,CAAC;KACb;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;+GAzFU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,wKCPnC,iXAUM,EAAA,MAAA,EAAA,CAAA,0HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDHO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,iXAAA,EAAA,MAAA,EAAA,CAAA,0HAAA,CAAA,EAAA,CAAA;0EAKnB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBASH,KAAK,EAAA,CAAA;sBADR,KAAK;gBAWF,GAAG,EAAA,CAAA;sBADN,KAAK;gBAUF,GAAG,EAAA,CAAA;sBADN,KAAK;;;ME7BK,kBAAkB,CAAA;AAU7B,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,IAAI,WAAW,CAAC,GAAW,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,IACI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IAED,IAAI,YAAY,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,WAAA,GAAA;AA/BU,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAU,CAAC;AAC/C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;AAChD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;QAC9C,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;QACzB,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;QACvB,IAAG,CAAA,GAAA,GAAY,IAAI,CAAC;QACX,IAAQ,CAAA,QAAA,GAAW,CAAC,CAAC;KAwBb;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,WAAW,CAAC,MAAc,EAAA;QACxB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,GAAG,CAAC;YAC1C,OAAO;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACtC;IAED,SAAS,GAAA;QAEP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;KAClD;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACxC;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACxC;+GAzDU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,iQCP/B,sTASA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDFa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,sTAAA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,CAAA;0EAKd,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAKE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAYF,YAAY,EAAA,CAAA;sBADf,KAAK;;;MErBK,yBAAyB,CAAA;AAKpC,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,GAA2B,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7E,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;KAChD;AAED,IAAA,WAAA,GAAA;AAfU,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAwB,CAAC;QAC5D,IAAM,CAAA,MAAA,GAA2B,EAAE,CAAC;;QAE3B,IAAY,CAAA,YAAA,GAAgC,IAAI,CAAC;KAYzC;IAEjB,QAAQ,GAAA;KAEP;AAED,IAAA,WAAW,CAAC,IAA2B,EAAA;AACrC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrC;+GAzBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,sJCPtC,iLAEkB,EAAA,MAAA,EAAA,CAAA,6FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKL,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,iLAAA,EAAA,MAAA,EAAA,CAAA,6FAAA,CAAA,EAAA,CAAA;0EAKvB,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAGE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEF,KAAK,EAAA,CAAA;sBADR,KAAK;;;MENK,YAAY,CAAA;AAEvB,IAAA,WAAA,CAAoB,SAAsB,EAAA;QAAtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAa;KAAG;AAE7C,IAAA,SAAS,CAAC,IAAa,EAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACrD;+GANU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA5B,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;ACiDD,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAI,EAAA;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;AAC/B,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtB,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AACD,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,YAAA;AAC5B,IAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AACjB,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,IAAY,EAAA;AAC7C,IAAA,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACxC,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA;MA6DY,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAzDxB,sBAAsB;YACtB,wBAAwB;YACxB,oBAAoB;YACpB,sBAAsB;YACtB,kBAAkB;YAClB,oBAAoB;YACpB,yBAAyB;YACzB,iBAAiB;YACjB,YAAY;YACZ,oBAAoB;YACpB,qBAAqB;YACrB,wBAAwB;YACxB,8BAA8B;YAC9B,6BAA6B;YAE7B,qBAAqB;YACrB,iBAAiB;YACjB,0BAA0B;YAC1B,2BAA2B;YAC3B,6BAA6B;YAE7B,yBAAyB;YACzB,qBAAqB;YACrB,8BAA8B;YAC9B,+BAA+B;YAC/B,gCAAgC;AAChC,YAAA,wBAAwB,aAGxB,aAAa;YACb,uBAAuB;YACvB,WAAW;YACX,eAAe;YACf,aAAa;YACb,eAAe;YACf,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,qBAAqB;YACrB,oBAAoB;YACpB,gBAAgB;AAChB,YAAA,WAAW,aAGX,sBAAsB;YACtB,wBAAwB;YACxB,oBAAoB;YACpB,sBAAsB;YACtB,kBAAkB;YAClB,oBAAoB;YACpB,yBAAyB;YACzB,iBAAiB;YACjB,wBAAwB;YACxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;AAIH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,aAFf,CAAC,yBAAyB,EAAE,CAAC,YA1BtC,aAAa;YACb,uBAAuB;YACvB,WAAW;YACX,eAAe;YACf,aAAa;YACb,eAAe;YACf,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,qBAAqB;YACrB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAkBX,eAAe,EAAA,UAAA,EAAA,CAAA;kBA3D3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,wBAAwB;wBACxB,oBAAoB;wBACpB,sBAAsB;wBACtB,kBAAkB;wBAClB,oBAAoB;wBACpB,yBAAyB;wBACzB,iBAAiB;wBACjB,YAAY;wBACZ,oBAAoB;wBACpB,qBAAqB;wBACrB,wBAAwB;wBACxB,8BAA8B;wBAC9B,6BAA6B;wBAE7B,qBAAqB;wBACrB,iBAAiB;wBACjB,0BAA0B;wBAC1B,2BAA2B;wBAC3B,6BAA6B;wBAE7B,yBAAyB;wBACzB,qBAAqB;wBACrB,8BAA8B;wBAC9B,+BAA+B;wBAC/B,gCAAgC;wBAChC,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;wBACb,uBAAuB;wBACvB,WAAW;wBACX,eAAe;wBACf,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,mBAAmB;wBACnB,iBAAiB;wBACjB,qBAAqB;wBACrB,oBAAoB;wBACpB,gBAAgB;wBAChB,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;wBACtB,wBAAwB;wBACxB,oBAAoB;wBACpB,sBAAsB;wBACtB,kBAAkB;wBAClB,oBAAoB;wBACpB,yBAAyB;wBACzB,iBAAiB;wBACjB,wBAAwB;wBACxB,YAAY;AACb,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,yBAAyB,EAAE,CAAC;AACzC,iBAAA,CAAA;;;ACtHe,SAAA,kBAAkB,CAAC,IAAkB,EAAE,KAAmB,EAAA;AACtE,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClB,QAAA,OAAO,wBAAwB,CAAC;AACnC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;ACNgB,SAAA,cAAc,CAAC,IAAc,EAAE,KAAmB,EAAA;AAC9D,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1B,QAAA,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnB,QAAA,OAAO,yBAAyB,CAAC;AACpC,KAAA;AACD,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClB,QAAA,OAAO,wBAAwB,CAAC;AACnC,KAAA;AACD,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1B,QAAA,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnB,QAAA,OAAO,0BAA0B,CAAC;AACrC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;MC1Ba,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;QACI,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QAChB,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;KAc/B;IAZG,IAAI,GAAA;QACA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACtB;IAED,IAAI,GAAA;QACA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KAC3B;AACJ;;MCdY,YAAY,CAAA;IAKrB,WACY,CAAA,WAA8C,EAC9C,WAAgC,EAChC,GAAY,EACZ,GAAY,EACpB,mBAAA,GAA+B,IAAI,EAAA;QAJ3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmC;QAC9C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;QAChC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAS;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG,CAAS;QANxB,IAAM,CAAA,MAAA,GAAa,KAAK,CAAC;AAQrB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,mBAAmB,CAAC,CAAC;KACtF;AAED,IAAA,KAAK,CAAC,GAAW,EAAA;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC7B;AACD,IAAA,KAAK,CAAC,GAAY,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;IAGD,QAAQ,GAAA;AAEJ,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAA,CAAC;QAChD,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,gBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,SAAS;oBAAE,SAAS;AAC1C,gBAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,aAAA;AACJ,SAAA;AACI,aAAA;YACD,UAAU,GAAG,MAAM,CAAC;AACvB,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;AACvC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpB,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,SAAA;AACI,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,KAAK,IAAI,CAAC,GAAG,KAAK,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;AACpE,QAAA,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK,CAAC;AAChE,QAAA,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK,CAAC;AAChE,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;MCrEY,KAAK,CAAA;AAId,IAAA,WAAA,CAAY,MAAmB,EAAE,WAAoB,EAAE,QAAqB,EAAA;AACxE,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACvB;IAED,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,EAAE,CAAC,CAAA;KAC3D;AACJ;;ACjBK,MAAO,iCAAkC,SAAQ,aAAa,CAAA;AAQhE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QANZ,IAAiB,CAAA,iBAAA,GAAa,EAAE,CAAC;QACjC,IAAiB,CAAA,iBAAA,GAAa,EAAE,CAAC;QACjC,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;AAIrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAClC;AACJ;;ACdK,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAYpD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;KACpB;AACJ;;ACtBK,MAAO,qBAAsB,SAAQ,qBAAqB,CAAA;AAiC5D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC,aAAa,CAAC;KAC9D;AACJ,CAAA;IAEW,gBAEX;AAFD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AAAE,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AAAE,IAAA,eAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;AACvC,CAAC,EAFW,eAAe,KAAf,eAAe,GAE1B,EAAA,CAAA,CAAA,CAAA;IAEW,wBAOX;AAPD,CAAA,UAAY,uBAAuB,EAAA;AAC/B,IAAA,uBAAA,CAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,uBAAA,CAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,uBAAA,CAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;AAChB,IAAA,uBAAA,CAAA,uBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,uBAAA,CAAA,uBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;AACzB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,GAOlC,EAAA,CAAA,CAAA,CAAA;IAEW,0BAIX;AAJD,CAAA,UAAY,yBAAyB,EAAA;AACjC,IAAA,yBAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,yBAAA,CAAA,yBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,yBAAA,CAAA,yBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACV,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,GAIpC,EAAA,CAAA,CAAA,CAAA;IAEW,iBAMX;AAND,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,gBAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACR,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,GAM3B,EAAA,CAAA,CAAA;;AC9DK,MAAO,2BAA4B,SAAQ,aAAa,CAAA;AAyB1D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC,aAAa,CAAC;AAC3D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;AACJ;;ACxCK,MAAO,sBAAuB,SAAQ,aAAa,CAAA;IAgBrD,WAAmB,CAAA,SAAkB,EAAE,WAAwB,EAAA;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QADJ,IAAS,CAAA,SAAA,GAAT,SAAS,CAAS;QAHrC,IAAkB,CAAA,kBAAA,GAAa,KAAK,CAAC;AAKjC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;KAC7B;AACJ;;ACvBK,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AAanD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAER,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KACpC;AACJ;;ACvBK,MAAO,yBAA0B,SAAQ,aAAa,CAAA;AAK3D;;MCDY,iBAAiB,CAAA;AAG5B,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,KAAK,CAAC,eAAuB,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAAA,CAAC;KACzE;IAED,aAAa,CAAC,CAAM,EAAE,QAAgB,EAAA;AACpC,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC,CAAC;AAC1G,QAAA,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,eAAe,CAAA,KAAA,CAAO,CAAC,CAAC;KACpE;AACD,IAAA,SAAS,CAAC,CAAM,EAAA;AACd,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,iEAAiE,CAAC;AAChF,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KACpD;+GAlBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,WAAW,CAAA;AACpB,IAAA,WAAA,GAAA;KACC;AAED,IAAA,SAAS,CAAC,GAAW,EAAE,IAA4B,EAAE,YAAkB,EAAA;QACnE,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI;AAAE,YAAA,OAAO,YAAY,CAAC;AACpC,QAAA,IAAI,QAAa,CAAC;AAClB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AACzB,YAAA,IAAI,SAAS;AACT,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;KACnB;IAED,IAAI,CAAI,GAAW,EAAE,YAAgB,EAAA;QAEjC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,YAAY,CAAC;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,SAAS,CAAC,GAAW,EAAE,IAA2B,EAAA;QAC9C,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;IAED,IAAI,CAAI,GAAW,EAAE,GAAO,EAAA;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACjC,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACnC;+GAjCQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFR,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACND;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"oxpi-nglib.mjs","sources":["../../../projects/oxpi-nglib/src/lib/models/infra/validations.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/funcionario.ts","../../../projects/oxpi-nglib/src/lib/providers/focus.service.ts","../../../projects/oxpi-nglib/src/lib/providers/common-web-service.ts","../../../projects/oxpi-nglib/src/lib/providers/notification.service.ts","../../../projects/oxpi-nglib/src/lib/providers/screen-helper.service.ts","../../../projects/oxpi-nglib/src/lib/controls/busy-indicator/busy-indicator.component.ts","../../../projects/oxpi-nglib/src/lib/controls/busy-indicator/busy-indicator.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.html","../../../projects/oxpi-nglib/src/lib/animations/animations.ts","../../../projects/oxpi-nglib/src/lib/models/infra/lazy-trigger.ts","../../../projects/oxpi-nglib/src/lib/controls/alert-dialog/alert-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/controls/alert-dialog/alert-dialog.component.html","../../../projects/oxpi-nglib/src/lib/models/infra/selecao-utils.ts","../../../projects/oxpi-nglib/src/lib/models/infra/convert-setting-to-string.ts","../../../projects/oxpi-nglib/src/lib/models/settings/search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/ownership.ts","../../../projects/oxpi-nglib/src/lib/providers/auth-data.service.ts","../../../projects/oxpi-nglib/src/lib/controls/item-card/item-card.component.ts","../../../projects/oxpi-nglib/src/lib/controls/item-card/item-card.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionarios/funcionarios.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/funcionarios/funcionarios/funcionarios.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes-form.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes-form.component.html","../../../projects/oxpi-nglib/src/lib/models/entidades/pessoa.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/clientes/clientes.component.html","../../../projects/oxpi-nglib/src/lib/models/infra/utils-methods.ts","../../../projects/oxpi-nglib/src/lib/controls/selecao-list-item/selecao-list-item.component.ts","../../../projects/oxpi-nglib/src/lib/controls/selecao-list-item/selecao-list-item.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/fornecedores/fornecedores.component.html","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.ts","../../../projects/oxpi-nglib/src/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.html","../../../projects/oxpi-nglib/src/lib/controls/check-button/check-button.component.ts","../../../projects/oxpi-nglib/src/lib/controls/check-button/check-button.component.html","../../../projects/oxpi-nglib/src/lib/controls/image-viewer/image-viewer.component.ts","../../../projects/oxpi-nglib/src/lib/controls/image-viewer/image-viewer.component.html","../../../projects/oxpi-nglib/src/lib/controls/month-year-picker/month-year-picker.component.ts","../../../projects/oxpi-nglib/src/lib/controls/month-year-picker/month-year-picker.component.html","../../../projects/oxpi-nglib/src/lib/controls/numeric-picker/numeric-picker.component.ts","../../../projects/oxpi-nglib/src/lib/controls/numeric-picker/numeric-picker.component.html","../../../projects/oxpi-nglib/src/lib/controls/paginator/paginator.component.ts","../../../projects/oxpi-nglib/src/lib/controls/paginator/paginator.component.html","../../../projects/oxpi-nglib/src/lib/controls/radio-button-group/radio-button-group.component.ts","../../../projects/oxpi-nglib/src/lib/controls/radio-button-group/radio-button-group.component.html","../../../projects/oxpi-nglib/src/lib/providers/safe-html.pipe.ts","../../../projects/oxpi-nglib/src/lib/oxpi-nglib.module.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/setor-estoque.ts","../../../projects/oxpi-nglib/src/lib/models/entidades/operador.ts","../../../projects/oxpi-nglib/src/lib/models/infra/busy-state.ts","../../../projects/oxpi-nglib/src/lib/models/infra/number-parser.ts","../../../projects/oxpi-nglib/src/lib/models/infra/ordem.ts","../../../projects/oxpi-nglib/src/lib/models/settings/PagamentoRecebimentoSearchSetting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/ocupacao-filter-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/ocupacao-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/consumo-produto-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/duplicata-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/produto-search-setting.ts","../../../projects/oxpi-nglib/src/lib/models/settings/suites-intervencoes-setting.ts","../../../projects/oxpi-nglib/src/lib/providers/export.file.service.ts","../../../projects/oxpi-nglib/src/lib/providers/preference.service.ts","../../../projects/oxpi-nglib/src/public-api.ts","../../../projects/oxpi-nglib/src/oxpi-nglib.ts"],"sourcesContent":["export function valTextEmpty(v: string | null | undefined): boolean {\r\n return v === null ||\r\n v === undefined ||\r\n v.trim() === '';\r\n}\r\nexport function valNumberEmpty(v: number | null | undefined): boolean {\r\n return v === null ||\r\n v === undefined ||\r\n v === 0;\r\n}\r\nexport function valTextMax(v: string, max: number) {\r\n return v.length > max;\r\n}\r\n\r\nexport function valNumberMin(v: number | null | undefined, min: number) {\r\n if (v === null || v === undefined)\r\n return true;\r\n return v <= min;\r\n}\r\nexport function isNullOrUndefined(v : Object) : boolean\r\n{\r\n return v === null || v === undefined;\r\n}\r\nexport function isNotNullOrUndefined(v : Object) : boolean\r\n{\r\n return !isNullOrUndefined(v);\r\n}\r\n","import { FocusService } from \"../../providers/focus.service\";\r\nimport { valNumberEmpty, valTextEmpty } from \"../infra/validations\";\r\n\r\n\r\nexport interface Funcionario{\r\n id : number;\r\n nome : string;\r\n cargoId : number;\r\n login : string;\r\n senha : string;\r\n enviadoPC : boolean;\r\n isAtivo: boolean; \r\n atribuicaoConferenciaCheckout: boolean;\r\n atribuicaoLimpeza: boolean;\r\n atribuicaoLiberacaoLimpeza: boolean;\r\n atribuicaoFinalizaPedido: boolean;\r\n atribuicaoRevisao: boolean;\r\n}\r\n\r\nexport interface FuncionarioCargo\r\n{\r\n id : number;\r\n nome : string;\r\n}\r\n\r\nexport function validaFuncionario(item: Funcionario, focus: FocusService): string | null {\r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n if (valNumberEmpty(item.cargoId)) {\r\n return 'Escolha um cargo.';\r\n }\r\n return null;\r\n}","\nexport class FocusService {\n //_items: HTMLElement[] | undefined;\n _element: HTMLElement | undefined | null;\n\n constructor() {\n }\n\n hasInit(): boolean {\n return this._element !== undefined;\n }\n\n registerElementById(name: string) {\n this.registerElement(document.getElementById(name));\n }\n registerElement(element: HTMLElement | null | undefined) {\n if (element === null || element === undefined) return;\n this._element = element;\n //this._items = this.getItems();\n console.info(element);\n element.addEventListener('keydown', (ev) => this.handleKeyboardEvent(ev));\n }\n\n registerWindow() {\n this._element = null;\n //this._items = this.getItems();\n window.addEventListener('keydown', (ev) => this.handleKeyboardEvent(ev));\n }\n\n unregisterElementById(name: string) {\n this.unregisterElement(document.getElementById(name));\n }\n\n unregisterElement(element: HTMLElement | null | undefined) {\n if (element === null || element === undefined) return;\n element.removeEventListener('keydown', (ev) => this.handleKeyboardEvent(ev));\n }\n\n private handleKeyboardEvent(event: any) {\n if (event.keyCode !== 13) return;\n if (event.target.nodeName === \"BUTTON\") return;\n\n const items: HTMLElement[] = this.getItems();\n const index = Array.prototype.indexOf.call(items, event.target);\n const nextIndex = index + 1;\n if (nextIndex > items.length - 1)\n return;\n const i = items[index + 1] as HTMLElement;\n\n if (i.tabIndex > -1)\n i.focus();\n event.preventDefault();\n }\n\n setFirst() {\n const el = this.getItems()[0];//[0];\n if (el !== undefined) el.focus();\n }\n\n private getItems(): HTMLElement[] {\n const query =\n this._element !== null && this._element !== undefined ?\n this._element.querySelectorAll('input,button, [tabindex]:not([tabindex=\"-1\"])') :\n document.querySelectorAll('input,button, [tabindex]:not([tabindex=\"-1\"])');\n\n const items: HTMLElement[] = [];\n for (let index = 0; index < query.length; index++) {\n const el = query[index] as HTMLElement;\n if (el.tabIndex > 0)\n items.push(el);\n }\n return items;\n }\n\n set(id: string): void {\n const el = document.getElementById(id);\n if (el === null) return;\n el.focus();\n }\n setInsideContainer(parentId: string, elementId: string): void {\n const parent = document.getElementById(parentId);\n if (parent === null) return;\n const elms = parent.getElementsByTagName(\"*\");\n let el: HTMLElement | null = null;\n for (var i = 0; i < elms.length; i++) {\n if (elms[i].id === elementId) {\n el = elms[i] as HTMLElement;\n break;\n }\n }\n el?.focus();\n }\n\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, Observable } from 'rxjs';\r\nimport { Funcionario, FuncionarioCargo } from '../models/entidades/funcionario';\r\nimport { Operador } from '../models/entidades/operador';\r\nimport { Cliente, Fornecedor } from '../models/entidades/pessoa';\r\nimport { SetorEstoque } from '../models/entidades/setor-estoque';\r\nimport { SuiteBase } from '../models/entidades/suite-base';\r\nimport { PagingResult } from '../models/infra/paging-result';\r\nimport { SearchSetting } from '../models/settings/search-setting';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonWebService {\r\n ROOT_URL: string = '';\r\n GERENCIAL_URL = '';\r\n FINANCAS_URL = '';\r\n\r\n FUNCIONARIO_BASE_URL: string = '';\r\n FUNCIONARIO_CARGO_BASE_URL: string = '';\r\n token: string = '';\r\n PRODUTO_BASE_URL = '';\r\n PRODUTO_INFORMACOES_ADICIONAIS_BASE_URL = '';\r\n PRODUTO_GRUPO_BASE_URL = '';\r\n PRODUTO_SUBGRUPO_BASE_URL = '';\r\n PRODUTO_CATEGORIA_CARDAPIO_BASE_URL = '';\r\n PRODUTO_VERIFICACAO_GRUPO_BASE_URL = '';\r\n ESTOQUE_URL = '';\r\n \r\n UPLOAD_CONTENT_BASE_URL = '';\r\n MEDIA_BASE_URL = '';\r\n MEDIA_PRODUTO_IMAGEM_URL = '';\r\n PRODUTO_COMPOSICAO_BASE_URL: string = '';\r\n\r\n FORNECEDOR_BASE_URL : string = '';\r\n CLIENTE_BASE_URL : string = '';\r\n OPERADOR_BASE_URL = '';\r\n SUITE_BASE_URL = '';\r\n\r\n static URL_PART_BUSCA = \"Busca/\";\r\n static URL_PART_NEXT_ID = \"GetNextId/\";\r\n static URL_PART_BUSCA_PAGINADA = \"BuscaPaginada/\";\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n setToken(token: string) {\r\n this.token = token;\r\n }\r\n start(rootUrl: string, uploadContentUrl: string) {\r\n this.ROOT_URL = rootUrl;\r\n this.PRODUTO_COMPOSICAO_BASE_URL = rootUrl + \"ProdutoComposicao/\";\r\n this.FUNCIONARIO_BASE_URL = rootUrl + \"Funcionario/\";\r\n this.FUNCIONARIO_CARGO_BASE_URL = rootUrl + \"FuncionarioCargo/\";\r\n this.PRODUTO_BASE_URL = rootUrl + \"ProdutoFiscal/\";\r\n this.PRODUTO_INFORMACOES_ADICIONAIS_BASE_URL = rootUrl + \"ProdutoInformacoesAdicionais/\";\r\n this.PRODUTO_GRUPO_BASE_URL = rootUrl + \"ProdutoGrupo/\";\r\n this.PRODUTO_SUBGRUPO_BASE_URL = rootUrl + \"ProdutoSubgrupo/\";\r\n this.PRODUTO_CATEGORIA_CARDAPIO_BASE_URL = rootUrl + \"ProdutoCategoriaCardapio/\";\r\n this.PRODUTO_VERIFICACAO_GRUPO_BASE_URL = rootUrl + \"ProdutoVerificaoGrupo/\";\r\n this.ESTOQUE_URL = rootUrl + 'Estoque/';\r\n this.GERENCIAL_URL = rootUrl + 'Gerencial/'\r\n this.FINANCAS_URL = rootUrl + 'Financas/'\r\n\r\n \r\n this.MEDIA_BASE_URL = this.GERENCIAL_URL + \"Media/\";\r\n this.MEDIA_PRODUTO_IMAGEM_URL = this.MEDIA_BASE_URL + 'GetProdutoImagem/';\r\n this.FORNECEDOR_BASE_URL = this.FINANCAS_URL + 'Fornecedor/'; \r\n this.CLIENTE_BASE_URL = this.FINANCAS_URL + 'Cliente/';\r\n this.OPERADOR_BASE_URL = this.ROOT_URL + \"Operador/\"\r\n this.SUITE_BASE_URL = this.ROOT_URL + \"SuiteBase/\";\r\n this.UPLOAD_CONTENT_BASE_URL = uploadContentUrl;\r\n }\r\n\r\n getFuncionarios(exibeInativo : boolean = false): Observable<Funcionario[]> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n const params = new HttpParams()\r\n .set(\"exibeInativo\", '' + exibeInativo);\r\n return this.http.get<Funcionario[]>(url, this.getHttpOptions(params)).pipe(map(data => data));\r\n }\r\n getFuncionariosCargos(): Observable<FuncionarioCargo[]> {\r\n const url = this.FUNCIONARIO_CARGO_BASE_URL;\r\n return this.http.get<FuncionarioCargo[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n buscaFuncionario(setting: SearchSetting): Observable<Funcionario[]> {\r\n const url = this.FUNCIONARIO_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Funcionario[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getNextIdFuncionario(): Observable<number> {\r\n const url = this.FUNCIONARIO_BASE_URL + CommonWebService.URL_PART_NEXT_ID;\r\n return this.http.get<number>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getAllFuncionario(): Observable<Funcionario[]> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n return this.http.get<Funcionario[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveFuncionario(s: Funcionario): Observable<any> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addFuncionario(p: Funcionario): Observable<any> {\r\n const url = this.FUNCIONARIO_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteFuncionario(id: number): Observable<any> {\r\n const url = this.FUNCIONARIO_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n \r\n getAllSetores(): Observable<SetorEstoque[]> {\r\n const url = this.ESTOQUE_URL + 'Setor/';\r\n return this.http.get<SetorEstoque[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n\r\n buscaCliente(setting : SearchSetting): Observable<Cliente[]> {\r\n const url = this.CLIENTE_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Cliente[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getAllCliente(): Observable<Cliente[]> {\r\n const url = this.CLIENTE_BASE_URL;\r\n return this.http.get<Cliente[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveCliente(s: Cliente): Observable<any> {\r\n const url = this.CLIENTE_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addCliente(p : Cliente): Observable<any> {\r\n const url = this.CLIENTE_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteCliente(id : number): Observable<any> {\r\n const url = this.CLIENTE_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n buscaFornecedor(setting : SearchSetting): Observable<Fornecedor[]> {\r\n const url = this.FORNECEDOR_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Fornecedor[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getAllFornecedor(): Observable<Fornecedor[]> {\r\n const url = this.FORNECEDOR_BASE_URL;\r\n return this.http.get<Fornecedor[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveFornecedor(s: Fornecedor): Observable<any> {\r\n const url = this.FORNECEDOR_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addFornecedor(p : Fornecedor): Observable<any> {\r\n const url = this.FORNECEDOR_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteFornecedor(id : number): Observable<any> {\r\n const url = this.FORNECEDOR_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n\r\n getOperadores(): Observable<Operador[]> {\r\n const url = this.OPERADOR_BASE_URL;\r\n return this.http.get<Operador[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n buscaOperador(setting : SearchSetting): Observable<Operador[]> {\r\n const url = this.OPERADOR_BASE_URL + CommonWebService.URL_PART_BUSCA;\r\n return this.http.post<Operador[]>(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n getNextIdOperador(): Observable<number> {\r\n const url = this.OPERADOR_BASE_URL + CommonWebService.URL_PART_NEXT_ID;\r\n return this.http.get<number>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n saveOperador(s: Operador): Observable<any> {\r\n const url = this.OPERADOR_BASE_URL;\r\n return this.http.post<any>(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n addOperador(p : Operador): Observable<any> {\r\n const url = this.OPERADOR_BASE_URL;\r\n return this.http.put<any>(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n deleteOperador(id : number): Observable<any> {\r\n const url = this.OPERADOR_BASE_URL + id;\r\n return this.http.delete<any>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n getSuites(): Observable<SuiteBase[]> {\r\n const url = this.SUITE_BASE_URL;\r\n return this.http.get<SuiteBase[]>(url, this.getHttpOptions()).pipe(map(data => data));\r\n }\r\n\r\n getHttpOptions(parameters?: HttpParams) {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n \"Authorization\": 'token ' + this.token,\r\n }),\r\n params: parameters\r\n }\r\n }\r\n\r\n getExcelOptions(parameters?: HttpParams) {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n \"Authorization\": 'token ' + this.token,\r\n }),\r\n params: parameters,\r\n responseType: 'arraybuffer' as 'json',\r\n };\r\n }\r\n\r\n getHtmlOptions(parameters?: HttpParams) {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n \"Authorization\": 'token ' + this.token,\r\n }),\r\n params: parameters,\r\n responseType: 'text' as 'json',\r\n };\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n constructor(public snackBar: MatSnackBar) {\r\n }\r\n\r\n showHttpError(res: HttpErrorResponse) {\r\n console.info(\"ERRO:\");\r\n console.info(res);\r\n if (res.status == 500 && res?.error?.Message != undefined)\r\n {\r\n this.showMsgError(res.error.Message);\r\n return;\r\n }\r\n if (res.error != null && res.error != undefined && typeof res.error == 'string')\r\n {\r\n this.showMsgError(res.error);\r\n return;\r\n }\r\n this.showMsgError(`Ocorreu um erro de conexão. Erro ${res.status}: ${res.statusText}`);\r\n }\r\n showMsg(msg: string, duration: number = 3000) {\r\n this.snackBar.open(msg, undefined, { duration: duration });\r\n }\r\n showMsgError(msg: string) {\r\n this.snackBar.open(msg, undefined, {\r\n duration: 10000,\r\n panelClass: ['red-snackbar']\r\n });\r\n }\r\n}","import { Injectable, EventEmitter } from '@angular/core';\n\n\nconst SM_WIDTH = 576;\nconst MD_WIDTH = 768;\nconst LG_WIDTH = 992;\nconst XL_WIDTH = 1200;\nconst XXL_WIDTH = 1400;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScreenHelperService {\n changedMobileScreen = new EventEmitter<boolean>();\n changedMediumScreen = new EventEmitter<boolean>();\n changedLargeScreen = new EventEmitter<boolean>();\n changedXLargeScreen = new EventEmitter<boolean>();\n changedXXLargeScreen = new EventEmitter<boolean>();\n \n changedMinSmallScreen = new EventEmitter<boolean>();\n changedMinMediumScreen = new EventEmitter<boolean>();\n changedMinLargeScreen = new EventEmitter<boolean>();\n changedMinXLargeScreen = new EventEmitter<boolean>();\n changedMinXXLargeScreen = new EventEmitter<boolean>();\n \n mobileScreen: boolean = false;\n isMedium: boolean= false;\n isLarge: boolean= false;\n isXLarge : boolean= false;\n isXXLarge : boolean= false;\n \n minSmall : boolean = false;\n minMedium : boolean = false;\n minLarge : boolean = false;\n minXLarge : boolean = false;\n minXXLarge : boolean = false;\n\n constructor() {\n this.determinaMobileScreen();\n window.addEventListener('resize', (event) => {\n this.determinaMobileScreen();\n });\n }\n\n determinaMobileScreen() {\n const width = window.innerWidth;\n\n const isSmall = width <= SM_WIDTH;\n const isMedium = width <= MD_WIDTH;\n const isLarge = width <= LG_WIDTH;\n const isXLarge = width <= XL_WIDTH;\n const isXXLarge = width <= XXL_WIDTH;\n \n const minSmall = width >= SM_WIDTH;\n const minMedium = width >= MD_WIDTH;\n const minLarge = width >= LG_WIDTH;\n const minXLarge = width >= XL_WIDTH;\n const minXXLarge = width >= XXL_WIDTH;\n\n if (isSmall !== this.mobileScreen) {\n this.changedMobileScreen.emit(isSmall);\n this.mobileScreen = isSmall;\n }\n if (isMedium !== this.isMedium) {\n this.changedMediumScreen.emit(isMedium);\n this.isMedium = isMedium;\n }\n if (isLarge !== this.isLarge) {\n this.changedLargeScreen.emit(isLarge);\n this.isLarge = isLarge;\n }\n if (isXLarge !== this.isXLarge) {\n this.changedXLargeScreen.emit(isXLarge);\n this.isXLarge = isXLarge;\n }\n if (isXXLarge !== this.isXXLarge) {\n this.changedXXLargeScreen.emit(isXXLarge);\n this.isXXLarge = isXXLarge;\n }\n\n \n if (minSmall !== this.minSmall) {\n this.changedMinSmallScreen.emit(isSmall);\n this.minMedium = isSmall;\n }\n if (minMedium !== this.minMedium) {\n this.changedMinMediumScreen.emit(isMedium);\n this.minMedium = isMedium;\n }\n if (minLarge !== this.minLarge) {\n this.changedMinLargeScreen.emit(minLarge);\n this.minLarge = minLarge;\n }\n if (minXLarge !== this.minXLarge) {\n this.changedMinXLargeScreen.emit(minXLarge);\n this.minXLarge = minXLarge;\n }\n if (minXXLarge !== this.minXXLarge) {\n this.changedMinXXLargeScreen.emit(minXXLarge);\n this.minXXLarge = minXXLarge;\n }\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'ox-busy-indicator',\n templateUrl: './busy-indicator.component.html',\n styleUrls: ['./busy-indicator.component.scss']\n})\nexport class BusyIndicatorComponent implements OnInit {\n @Input() isBusy: boolean = false;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","<div class=\"busy-indicator-container\" *ngIf=\"isBusy\">\n <div class=\"busy-indicator\"></div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Funcionario, FuncionarioCargo } from '../../../models/entidades/funcionario';\nimport { CommonWebService } from '../../../providers/common-web-service';\n\n@Component({\n selector: 'ox-funcionario-form',\n templateUrl: './funcionario-form.component.html',\n styleUrls: ['./funcionario-form.component.scss']\n})\nexport class FuncionarioFormComponent implements OnInit {\n\n private _model?: Funcionario | undefined;\n public get model(): Funcionario | undefined {\n return this._model;\n }\n\n @Input()\n public set model(value: Funcionario | undefined) {\n this._model = value;\n this.exibeAtribuicoes = value?.cargoId === 2;\n }\n isBusy: boolean = false;\n cargos: FuncionarioCargo[] = [];\n exibeAtribuicoes: boolean = false;\n constructor(private ws: CommonWebService) { }\n\n ngOnInit(): void {\n this.getCargos();\n }\n\n getCargos() {\n this.isBusy = true;\n this.ws.getFuncionariosCargos()\n .subscribe(r => {\n this.cargos = r;\n console.info(r);\n this.isBusy = false;\n }, err => {\n this.isBusy = false;\n });\n }\n\n cargoChanged(ev: any) {\n this.exibeAtribuicoes = ev.value === 2;\n }\n\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"form-group\" *ngIf=\"model\">\n <label for=\"nome\">Nome</label>\n <input id=\"nome\" [(ngModel)]=\"model.nome\" required class=\"form-control input-300\" tabindex=\"2\">\n</div>\n<div class=\"form-group\" *ngIf=\"model\">\n <label for=\"cargo\">Cargo</label>\n <mat-select id=\"cargo\" (selectionChange)=\"cargoChanged($event)\" [(value)]=\"model.cargoId\" tabindex=\"2\"\n class=\"form-control input-300\" color=\"primary\">\n <mat-option *ngFor=\"let m of cargos\" [value]=\"m.id\">\n {{m.nome}}\n </mat-option>\n </mat-select>\n</div>\n<div class=\"form-group\" *ngIf=\"model\">\n <label for=\"nome\">Nome</label>\n <input id=\"nome\" [(ngModel)]=\"model.nome\" required class=\"form-control input-300\" tabindex=\"2\">\n</div>\n<div class=\"vbox margin-top-16\" *ngIf=\"model && exibeAtribuicoes\">\n <label>Atribuições</label>\n <div class=\"vbox gap-4 margin-top-8\">\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoConferenciaCheckout\" tabindex=-1>Conferência Checkout\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoLimpeza\" tabindex=-1>Limpeza</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoLiberacaoLimpeza\" tabindex=-1>Liberação de Limpeza</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoRevisao\" tabindex=-1>Revisão</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"model.atribuicaoFinalizaPedido\" tabindex=-1>Finaliza Pedido</mat-slide-toggle>\n </div>\n\n <div class=\"form-group margin-top-16\">\n <label for=\"senha\">Senha (opcional)</label>\n <input id=\"senha\" [(ngModel)]=\"model.senha\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n</div>","import { Component, ElementRef, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Funcionario, validaFuncionario } from '../../../models/entidades/funcionario';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n\n@Component({\n selector: 'ox-funcionario-add-dialog',\n templateUrl: './funcionario-add-dialog.component.html',\n styleUrls: ['./funcionario-add-dialog.component.scss']\n})\nexport class FuncionarioAddDialogComponent implements OnInit {\n model: Funcionario;\n mobile: boolean;\n isBusy: boolean = false;\n focus : FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Funcionario,\n public dialog: MatDialog, \n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FuncionarioAddDialogComponent>,\n private screenHelper: ScreenHelperService) {\n this.model = { \n id: 0,\n nome: '',\n login: '',\n senha: '',\n enviadoPC: false,\n isAtivo: true,\n cargoId: 1,\n atribuicaoConferenciaCheckout: true,\n atribuicaoLimpeza: true,\n atribuicaoLiberacaoLimpeza: true,\n atribuicaoFinalizaPedido: true,\n atribuicaoRevisao: true\n };\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaFuncionario(this.model, this.focus);\n if (valMsg)\n {\n this.notification.showMsgError(valMsg);\n return;\n }\n\n this.isBusy = true;\n this.ws.addFuncionario(this.model)\n .subscribe(r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n }, err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Novo Funcionário</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-funcionario-form [model]=\"model\" *ngIf=\"model\"></ox-funcionario-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Funcionario, validaFuncionario } from '../../../models/entidades/funcionario';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'ox-funcionario-edit-dialog',\n templateUrl: './funcionario-edit-dialog.component.html',\n styleUrls: ['./funcionario-edit-dialog.component.scss']\n})\nexport class FuncionarioEditDialogComponent implements OnInit {\n model?: Funcionario;\n mobile: boolean;\n isBusy: boolean = false;\n focus : FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Funcionario,\n public dialog: MatDialog, \n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FuncionarioEditDialogComponent>,\n private screenHelper: ScreenHelperService) {\n if (dataDialog) {\n this.model = dataDialog;\n }\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaFuncionario(this.model, this.focus);\n if (valMsg)\n {\n this.notification.showMsgError(valMsg);\n return;\n }\n\n this.isBusy = true;\n this.ws.saveFuncionario(this.model)\n .subscribe(r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n }, err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Funcionário</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-funcionario-form [model]=\"model\" *ngIf=\"model\"></ox-funcionario-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { animate, style, transition, trigger } from \"@angular/animations\";\r\n\r\nexport const fadeAnimation = trigger(\r\n 'fade',\r\n [\r\n transition(\r\n ':enter', [\r\n style({ transform: 'translateY(100%)', opacity: 0 }),\r\n animate('250ms', style({ transform: 'translateY(0)', 'opacity': 1 }))\r\n ]\r\n ),\r\n transition(\r\n ':leave', [\r\n style({ transform: 'translateY(0)', 'opacity': 1 }),\r\n animate('250ms', style({ transform: 'translateY(100%)', 'opacity': 0 })),\r\n ])]\r\n )\r\n\r\n\r\n export const menuLateralAnimation = trigger(\r\n 'menuLateral',\r\n [\r\n transition(\r\n ':enter', [\r\n style({ transform: 'translateX(-100%)', opacity: 1 }),\r\n animate('200ms', style({ transform: 'translateX(0)', 'opacity': 1 }))\r\n ]\r\n ),\r\n transition(\r\n ':leave', [\r\n style({ 'opacity': 1 }),\r\n animate('200ms', style({ 'opacity': 0 })),\r\n ])]\r\n )\r\n","export class LazyTrigger {\r\n lazyTimeoutId?: number;\r\n constructor(private doFunc : ()=> void, private timeout : number = 800)\r\n {\r\n }\r\n fire() {\r\n console.debug(\"lazyTimeoutId\");\r\n if (this.lazyTimeoutId != undefined)\r\n clearTimeout(this.lazyTimeoutId);\r\n this.lazyTimeoutId = window.setTimeout(() => { this.doFunc(); }, this.timeout);\r\n }\r\n}","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef<AlertDialogComponent>,\n @Inject(MAT_DIALOG_DATA)\n public args: AlertDialogArgs) { }\n\n ngOnInit(): void {\n }\n\n}\n\nexport interface AlertDialogArgs\n{\n titulo : string;\n msg : string;\n}","<h1 mat-dialog-title>{{args.titulo}}</h1>\n<div mat-dialog-content>\n <p>{{args.msg}}</p>\n</div>\n<mat-dialog-actions align=\"end\">\n <button mat-button [mat-dialog-close]=\"false\">Cancelar</button>\n <button mat-button [mat-dialog-close]=\"true\" cdkFocusInitial>Continuar</button>\n</mat-dialog-actions>","import { MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { AlertDialogArgs, AlertDialogComponent } from \"../../controls/alert-dialog/alert-dialog.component\";\r\n\r\nexport interface SelecaoDialog<TItem, TDialog> {\r\n selectedItem: TItem | null | undefined;\r\n dialogRef: MatDialogRef<TDialog>;\r\n items: TItem[];\r\n}\r\nexport class NavegacaoSelecaoDialogUtil<TItem, TDialog>\r\n{\r\n constructor(private view: SelecaoDialog<TItem, TDialog>) {\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n console.info(event.keyCode);\r\n let key = event.keyCode;\r\n const selected = this.view.selectedItem;\r\n const enterKey = 13, keyDown = 40, keyUp = 38;\r\n if (key === enterKey) {\r\n event.cancelBubble = true;\r\n if (selected !== null && selected !== undefined) {\r\n this.view.dialogRef.close(selected);\r\n return;\r\n }\r\n key = keyDown;\r\n }\r\n if (key !== keyDown && key !== keyUp) return;\r\n let index = -1;\r\n if (selected)\r\n index = this.view.items.indexOf(selected, 0);\r\n if (key === keyDown) index++;\r\n if (key === keyUp && index > 0) index--;\r\n\r\n if (index > (this.view.items.length - 1)) return;\r\n this.view.selectedItem = this.view.items[index];\r\n }\r\n}\r\n\r\nexport function confirmaExclusao(\r\n dialog: MatDialog,\r\n msg: string,\r\n continueFunc: () => void) {\r\n const args: AlertDialogArgs =\r\n {\r\n titulo: \"Atenção\",\r\n msg: msg\r\n }\r\n const dialogRef = dialog.open(AlertDialogComponent, {\r\n data: args\r\n });\r\n dialogRef.afterClosed().subscribe(dialogResult => {\r\n if (dialogResult !== true) return;\r\n continueFunc();\r\n });\r\n}","import * as moment from \"moment\";\r\nimport { Moment } from \"moment\";\r\nimport { SearchMode, SearchSetting } from \"../settings/search-setting\";\r\n\r\nexport function geraNomeArquivo(fileName : string, s: SearchSetting)\r\n{\r\n return `${fileName}_${convertToStringArquivo(s)}`\r\n}\r\nexport function convertToStringArquivo(s: SearchSetting) {\r\n const ini: Date | Moment = s.inicial;\r\n const fim: Date | Moment = s.final;\r\n const modo = s.modo;\r\n const ano = s.ano;\r\n const mes = s.mes;\r\n if (modo === SearchMode.Mensal)\r\n return ano + \"_\" + mes;\r\n if (modo === SearchMode.Anual)\r\n return \"\" + ano;\r\n if (modo === SearchMode.Diario)\r\n return formatDayMonthYear(ini);\r\n return `${formatDayMonthYear(ini)}_ate_${formatDayMonthYear(fim)}`;\r\n}\r\n\r\nexport function formatDayMonthYear(d: Date | Moment) {\r\n if (d instanceof Date) {\r\n return `${d.getDate()}_${d.getMonth() + 1}_${d.getFullYear()}`;\r\n }\r\n else if (moment.isMoment(d)) {\r\n return `${d.date()}_${d.month() + 1}_${d.year()}`;\r\n }\r\n return \"\";\r\n}","import { convertToStringArquivo } from \"../infra/convert-setting-to-string\";\r\n\r\nexport class SearchSetting {\r\n frase?: string;\r\n exibeInativo?: boolean;\r\n inicial: Date;\r\n final: Date;\r\n modo: SearchMode;\r\n mes: number;\r\n ano: number;\r\n ordem?: string;\r\n ordemDecrescente?: boolean;\r\n dateField?: string;\r\n\r\n constructor(private propChanged?: () => void) {\r\n const now = new Date();\r\n const hj = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);\r\n console.info(hj);\r\n this.modo = SearchMode.Mensal;\r\n this.mes = hj.getMonth() + 1;\r\n this.ano = hj.getFullYear();\r\n\r\n this.inicial = hj.addDays(-30);\r\n this.final = hj;\r\n }\r\n\r\n set(prop: string, value: any) { \r\n const me = this as any; \r\n me[prop] = value;\r\n if (this.propChanged !== undefined)\r\n this.propChanged();\r\n }\r\n\r\n toStringArquivo() {\r\n return convertToStringArquivo(this);\r\n }\r\n\r\n _meses = [\"JANEIRO\", \"FEVEREIRO\", \"MARÇO\", \"ABRIL\", \"MAIO\", \"JUNHO\", \"JULHO\", \"AGOSTO\", \"SETEMBRO\", \"OUTUBRO\", \"NOVEMBRO\", \"DEZEMBRO\"];\r\n _mesesShort = [\"JAN\", \"FEV\", \"MAR\", \"ABR\", \"MAI\", \"JUN\", \"JUL\", \"AGO\", \"SET\", \"OUT\", \"NOV\", \"DEZ\"];\r\n getDatasTexto(short : boolean = false) {\r\n const ini = this.inicial;\r\n const fim = this.final;\r\n if (this.modo === SearchMode.Mensal && short)\r\n return this._mesesShort[this.mes - 1] + \" DE \" + this.ano;\r\n if (this.modo === SearchMode.Mensal)\r\n return this._meses[this.mes - 1] + \" DE \" + this.ano;\r\n if (this.modo === SearchMode.Anual)\r\n return \"\" + this.ano;\r\n if (this.modo === SearchMode.Diario)\r\n return `${ini.getDate()}/${ini.getMonth() + 1}/${ini.getFullYear()}`;\r\n return `${ini.getDate()}/${ini.getMonth() + 1}/${ini.getFullYear()} ATÉ ${fim.getDate()}/${fim.getMonth() + 1}/${fim.getFullYear()}`;\r\n }\r\n\r\n goNextMonth() {\r\n this.mes++;\r\n if (this.mes > 12) {\r\n this.mes = 1;\r\n this.ano += 1;\r\n }\r\n }\r\n\r\n goBackMonth() {\r\n this.mes--;\r\n if (this.mes < 1) {\r\n this.mes = 12;\r\n this.ano -= 1;\r\n }\r\n }\r\n}\r\nexport enum SearchMode {\r\n Mensal, Anual, Periodo, Diario\r\n}\r\n\r\n","import { IdLoginModel } from \"./usuario\"\r\n\r\nexport interface IOwnership {\r\n startTime?: Date\r\n usuarioId?: number\r\n usuarioLogin?: string\r\n modulo?: number\r\n endTime?: Date\r\n alteracoes? : string\r\n startEndElapsed? : string\r\n}\r\n\r\nexport class Ownership implements IOwnership {\r\n startTime?: Date\r\n usuarioId?: number\r\n usuarioLogin?: string\r\n modulo?: number\r\n endTime?: Date\r\n alteracoes? : string\r\n startEndElapsed? : string\r\n}\r\n\r\nexport function setOwnershipLogin(ownership: IOwnership, usuarios: IdLoginModel[]) {\r\n if (ownership.usuarioId === undefined || ownership.usuarioId === null)\r\n return;\r\n if (ownership.usuarioId === 0)\r\n {\r\n ownership.usuarioLogin = \"sistema\";\r\n return;\r\n }\r\n var u = usuarios.filter(x => x.id === ownership.usuarioId).firstOrNull()\r\n if (u === null) return;\r\n ownership.usuarioLogin = u.login;\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { LoginResult } from '../models/entidades/login-result';\r\nimport { IOwnership, setOwnershipLogin } from '../models/entidades/ownership';\r\nimport { Permissoes } from '../models/entidades/permissoes';\r\nimport { SensoresDef } from '../models/entidades/sensores-def';\r\nimport { IdLoginModel } from '../models/entidades/usuario';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthDataService {\r\n isLoggedIn = false;\r\n token: string = '';\r\n sensoresDef: SensoresDef = { energizacao: false, garagem: false, portaCliente: false, portaServico: false };\r\n permissoes: Permissoes = {\r\n gerencialCaixasAgrupadoMensal: false,\r\n gerencialAtividadesUsuarios: false,\r\n gerencialAuditorias : false,\r\n gerencialOcorrenciasManutencao: false,\r\n gerencialOcorrenciasManutencaoEditar: false,\r\n gerencialDuplicataOcupacao: false,\r\n financasLogin: false,\r\n financasLoginApenasWeb: false,\r\n financasDespesaAdd: false,\r\n financasDespesaUltimosCadastros: false,\r\n financasDespesaPesquisar: false,\r\n financasDespesaDelete: false,\r\n financasDespesaEditar: false,\r\n financasReceitaAdd: false,\r\n financasReceitaUltimosCadastros: false,\r\n financasReceitaPesquisar: false,\r\n financasReceitaDelete: false,\r\n financasReceitaEditar: false,\r\n financasClientePesquisa: false,\r\n financasClienteAdd: false,\r\n financasClienteDelete: false,\r\n financasFornecedorPesquisa: false,\r\n financasFornecedorAdd: false,\r\n financasFornecedorDelete: false,\r\n financasMarcadorPesquisa: false,\r\n financasMarcadorAdd: false,\r\n financasMarcadorDelete: false,\r\n financasDespesaGrupoPesquisa: false,\r\n financasDespesaGrupoAdd: false,\r\n financasDespesaGrupoDelete: false,\r\n financasReceitaGrupoPesquisa: false,\r\n financasReceitaGrupoAdd: false,\r\n financasReceitaGrupoDelete: false,\r\n financasContaPesquisa: false,\r\n financasContaAdd: false,\r\n financasContaDelete: false,\r\n financasExtrato: false,\r\n financasContaAjuste: false,\r\n financasGradeAnualDespesa: false,\r\n financasGradeAnualReceita: false,\r\n financasMensal: false,\r\n financasResumoDiario: false,\r\n financasConfiguracoes: false,\r\n recepcaoEnergizar: false,\r\n recepcaoConfiguracoes: false,\r\n recepcaoTrocaOperador: false,\r\n recepcaoCancelarOcupacao: false,\r\n recepcaoAcrescimo: false,\r\n recepcaoDesconto: false,\r\n recepcaoLimpeza: false,\r\n recepcaoAtrasarHora: false,\r\n gerencialLogin: false,\r\n gerencialPrincipal: false,\r\n gerencialPrincipalCaixa: false,\r\n gerencialPrincipalInfo: false,\r\n gerencialPrincipalQuantidadeOcupacoesDia: false,\r\n gerencialDiario: false,\r\n gerencialMensal: false,\r\n gerencialResumoMensal: false,\r\n gerencialPorFormaPagamento: false,\r\n gerencialMediaTempoOcupacao: false,\r\n gerencialPorOcupacao: false,\r\n gerencialOcupacoesCanceladas: false,\r\n gerencialAgrupado: false,\r\n gerencialPorTurno: false,\r\n gerencialConsumoFuncionarios: false,\r\n gerencialConsumoProdutos: false,\r\n gerencialImagensrecepcao: false,\r\n gerencialCaixas: false,\r\n gerencialVerificacaoCaixa: false,\r\n gerencialComandasPorCaixa: false,\r\n gerencialRegistrorecepcao: false,\r\n gerencialConferenciaCheckout: false,\r\n gerencialAgrupadoDia: false,\r\n gerencialLogUsuarios: false,\r\n gerencialPesquisaOcupacoes: false,\r\n gerencialDescontos: false,\r\n gerencialGraficoMensal: false,\r\n gerencialGraficoDiaSemana: false,\r\n gerencialGraficoAnual: false,\r\n gerencialGraficoSituacaoSuite: false,\r\n gerencialOcupacoesHoraClasse: false,\r\n gerencialLimpezasStatus: false,\r\n gerencialVendasPorRecepcionistas: false,\r\n gerencialPedidos: false,\r\n estoqueLogin: false,\r\n estoqueListaCompras: false,\r\n estoqueListaProdutoGrupo: false,\r\n estoqueMovimento: false,\r\n estoqueSaldoProdutos: false,\r\n estoqueNotaEntradaAdd: false,\r\n estoqueNotaEntradaDelete: false,\r\n estoqueNotaSaidaAdd: false,\r\n estoqueNotaSaidaDelete: false,\r\n estoqueAjusteAdd: false,\r\n estoqueAjusteDelete: false,\r\n estoqueTrocaSetorAdd: false,\r\n estoqueTrocaSetorDelete: false,\r\n estoqueFornecedorPesquisa: false,\r\n estoqueFornecedorAdd: false,\r\n estoqueFornecedorDelete: false,\r\n estoqueClientePesquisa: false,\r\n estoqueClienteAdd: false,\r\n estoqueClienteDelete: false,\r\n estoqueSetorPesquisa: false,\r\n estoqueSetorAdd: false,\r\n estoqueSetorDelete: false,\r\n estoqueProdutoPesquisa: false,\r\n estoqueProdutoAdd: false,\r\n estoqueProdutoDelete: false,\r\n estoqueProdutoGrupoPesquisa: false,\r\n estoqueProdutoGrupoAdd: false,\r\n estoqueProdutoGrupoDelete: false,\r\n estoqueConfiguracao: false,\r\n adminLogin: false,\r\n adminProdutoPesquisa: false,\r\n adminProdutoAdd: false,\r\n adminProdutoDelete: false,\r\n adminProdutoGrupoPesquisa: false,\r\n adminProdutoGrupoAdd: false,\r\n adminProdutoGrupoDelete: false,\r\n adminSuitePesquisa: false,\r\n adminSuiteAdd: false,\r\n adminSuiteDelete: false,\r\n adminSuiteClassePesquisa: false,\r\n adminSuiteClasseAdd: false,\r\n adminSuiteClasseDelete: false,\r\n adminOperadorPesquisa: false,\r\n adminOperadorAdd: false,\r\n adminOperadorDelete: false,\r\n adminFuncionarioPesquisa: false,\r\n adminFuncionarioAdd: false,\r\n adminFuncionarioDelete: false,\r\n adminUsuariosPesquisa: false,\r\n adminUsuariosAdd: false,\r\n adminUsuariosDelete: false,\r\n adminPrecos: false,\r\n adminPatrimonios: false,\r\n adminDefinicoesGerais: false,\r\n adminEditarComanda: false,\r\n adminCortesiaVale: false,\r\n adminClienteFidelidade: false,\r\n adminConfiguracoes: false,\r\n adminPesquisaSatisfacao: false,\r\n adminReservaEdit: false,\r\n adminReservaVisualiza: false,\r\n onGerencialLogin: false,\r\n onGerencialPrincipal: false,\r\n onGerencialDiario: false,\r\n onGerencialMensal: false,\r\n onGerencialPorFormaPagamento: false,\r\n onGerencialMediaTempoOcupacao: false,\r\n onGerencialPorOcupacao: false,\r\n onGerencialOcupacoesCanceladas: false,\r\n onGerencialAgrupadoDia: false,\r\n onGerencialPorTurno: false,\r\n onGerencialConsumoFuncionarios: false,\r\n onGerencialConsumoProdutos: false,\r\n onGerencialImagensRecepcao: false,\r\n onGerencialCaixas: false,\r\n onGerencialComandasPorCaixa: false,\r\n onGerencialRegistroRecepcao: false,\r\n onGerencialGraficoMensal: false,\r\n onGerencialGraficoDiaSemana: false,\r\n onGerencialGraficoAnual: false,\r\n onGerencialGraficoSituacaoSuite: false,\r\n onGerencialOcupacoesHoraClasse: false,\r\n onadminLogin: false,\r\n onadminProdutoPesquisa: false,\r\n onadminProdutoAdd: false,\r\n onadminProdutoDelete: false,\r\n onadminProdutoGrupoPesquisa: false,\r\n onadminProdutoGrupoAdd: false,\r\n onadminProdutoGrupoDelete: false,\r\n onadminSuitePesquisa: false,\r\n onadminSuiteAdd: false,\r\n onadminSuiteDelete: false,\r\n onadminSuiteClassePesquisa: false,\r\n onadminSuiteClasseAdd: false,\r\n onadminSuiteClasseDelete: false,\r\n onadminUsuariosPesquisa: false,\r\n onadminUsuariosAdd: false,\r\n onadminUsuariosDelete: false,\r\n onadminOperadorPesquisa: false,\r\n onadminOperadorAdd: false,\r\n onadminOperadorDelete: false,\r\n onadminFuncionarioPesquisa: false,\r\n onadminFuncionarioAdd: false,\r\n onadminFuncionarioDelete: false,\r\n onadminPrecos: false,\r\n onadminDefinicoesGerais: false,\r\n onadminCortesiaVale: false,\r\n };\r\n empresaNome: string = '';\r\n empresaId: number = 0;\r\n loginNome: string = '';\r\n userId: number = 0;\r\n email: string = '';\r\n nome: string = '';\r\n usaEstoqueOnline: boolean = false;\r\n usaFinancasOnline: boolean = false;\r\n usuarios: IdLoginModel[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n login(result: LoginResult) {\r\n this.isLoggedIn = true;\r\n this.token = result.token;\r\n this.sensoresDef = result.sensoresDef;\r\n this.permissoes = result.permissoes;\r\n this.empresaNome = result.empresaNome;\r\n this.empresaId = result.empresaId;\r\n this.loginNome = result.login;\r\n this.userId = result.userId;\r\n this.nome = result.nome;\r\n this.email = result.email;\r\n this.usaEstoqueOnline = result.usaEstoqueOnline;\r\n this.usuarios = result.usuarios;\r\n this.usaFinancasOnline = result.usaFinancasOnline;\r\n }\r\n setOwnership(ownership :IOwnership)\r\n {\r\n setOwnershipLogin(ownership, this.usuarios);\r\n }\r\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { IOwnership } from '../../models/entidades/ownership';\nimport { AuthDataService } from '../../providers/auth-data.service';\n\n@Component({\n selector: 'ox-item-card',\n templateUrl: './item-card.component.html',\n styleUrls: ['./item-card.component.scss']\n})\nexport class ItemCardComponent implements OnInit {\n\n @Input() nome?: string;\n @Input() codigo?: string | number;\n @Input() star?: boolean;\n @Input() cloud?: boolean;\n @Input() desativado?: boolean;\n private _ownership?: IOwnership | undefined;\n public get ownership(): IOwnership | undefined {\n return this._ownership;\n }\n @Input()\n public set ownership(value: IOwnership | undefined) {\n this._ownership = value;\n if (value != undefined)\n this.auth.setOwnership(value);\n }\n constructor(private auth: AuthDataService) { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"nome-codigo-row\"><span class=\"codigo\" *ngIf=\"codigo\">{{codigo}}</span>{{nome}}</div>\n\n<div class=\"icons-row\">\n <div class=\"ownership\" *ngIf=\"ownership\">\n <span class=\"usuario\" *ngIf=\"ownership.usuarioLogin\">{{ownership.usuarioLogin}}</span>\n <span class=\"startEndTime\" *ngIf=\"ownership.startTime\">\n <span class=\"startTime\">{{ownership.startTime | date:\"dd/MM/yy\"}}</span>\n </span>\n </div>\n <span class=\"material-icons star\" *ngIf=\"star\">\n grade\n </span>\n <span class=\"material-icons desativado\" *ngIf=\"desativado === true\">\n dangerous\n </span>\n <span class=\"material-icons sync-pendente\" *ngIf=\"cloud === false\">\n cloud_queue\n </span>\n <span class=\"material-icons sync-concluido\" *ngIf=\"cloud === true\">\n cloud_done\n </span>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { fadeAnimation } from '../../../animations/animations';\nimport { Funcionario, validaFuncionario } from '../../../models/entidades/funcionario';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { confirmaExclusao } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { FuncionarioAddDialogComponent } from '../funcionario-add-dialog/funcionario-add-dialog.component';\nimport { FuncionarioEditDialogComponent } from '../funcionario-edit-dialog/funcionario-edit-dialog.component';\n\n@Component({\n selector: 'ox-funcionarios',\n templateUrl: './funcionarios.component.html',\n styleUrls: ['./funcionarios.component.scss'],\n animations: [ fadeAnimation ]\n})\nexport class FuncionariosComponent implements OnInit {\n\n mobile: boolean;\n isBusy: boolean = false;\n items: Funcionario[] = [];\n selectedItem : Funcionario | null = null;\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n allowAdd: boolean;\n allowExcluir: boolean;\n setting = new SearchSetting();\n private focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.allowAdd = auth.permissoes.adminFuncionarioAdd;\n this.allowExcluir = auth.permissoes.adminFuncionarioDelete;\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n\n\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n onSelectItem(): void {\n\n if (!this.focus.hasInit()) {\n setTimeout(() => {\n this.focus.registerElementById(\"form-column\");\n this.focus.setFirst();\n }, 500);\n //this._focus.registerElementById(\"form-column\");\n }\n else {\n this.focus.setFirst();\n }\n }\n\n ngOnDestroy(): void {\n this.focus.unregisterElementById(\"form-column\");\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaFuncionario(this.setting)\n .subscribe(r => {\n this.items = r;\n this.selectedItem = null;\n console.info(r);\n this.isBusy = false;\n }, err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n });\n }\n\n\n excluir() { \n const item = this.selectedItem;\n if (!item) return;\n confirmaExclusao(this.dialog, \n `Deseja prosseguir com a exclusão do funcionário ${item.nome}?`,\n () =>\n {\n this.isBusy = true;\n this.ws.deleteFuncionario(item.id)\n .subscribe(r => {\n this.notification.showMsg(\"O funcionário foi excluído com sucesso.\");\n this.items.remove(item);\n this.selectedItem = null;\n this.isBusy = false;\n },\n err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n });\n }\n\n novo() {\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FuncionarioAddDialogComponent, {\n width: width,\n //height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n abreCadastro(item: Funcionario) {\n let height = undefined;\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n height = (window.innerHeight * 0.99) + 'px';\n }\n const dialog = this.dialog.open(FuncionarioEditDialogComponent, {\n data: item,\n width: width,\n //height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result !== true) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n salvar() { \n const item = this.selectedItem;\n if (!item) return;\n const valMsg = validaFuncionario(item, this.focus);\n if (valMsg)\n {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveFuncionario(item)\n .subscribe(r => {\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.isBusy = false;\n },\n err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n });\n }\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Funcionários</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca não retornou resultados</h4>\n\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um funcionário no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-funcionario-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-funcionario-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Cliente } from '../../../models/entidades/pessoa';\n\n@Component({\n selector: 'app-clientes-form',\n templateUrl: './clientes-form.component.html',\n styleUrls: ['./clientes-form.component.scss']\n})\nexport class ClientesFormComponent implements OnInit {\n @Input() model?: Cliente;\n sexos = ['M', 'F'];\n estados = ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO'];\n constructor() { }\n\n ngOnInit(): void {\n }\n\n changeDataInicio(d : Date){ {\n if (this.model)\n this.model.dataNascimento = d;\n }\n}\n}\n","<ng-container *ngIf=\"model\">\n <div class=\"form-section vbox\">\n <h4>Dados Principais</h4>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>{{model.juridica ? 'CNPJ' : 'CPF' }}</label>\n <input [(ngModel)]=\"model.cnpjCpf\" class=\"form-control input-180\" mask=\"000.000.000-00||00.000.000/0000-00\"\n tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>{{model.juridica ? 'IE' : 'RG' }}</label>\n <input [(ngModel)]=\"model.ieRg\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\" *ngIf=\"!model.juridica\">\n <label>Orgão Expeditor</label>\n <input [(ngModel)]=\"model.orgaoExpedidor\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>{{model.juridica ? 'Nome' : 'Razão Social' }}</label>\n <input id=\"nome\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\"\n tabindex=\"1\">\n </div>\n </div>\n \n <div class=\"form-block\" *ngIf=\"model.juridica\">\n <label>Nome Fantasia</label>\n <input id=\"nome\" [(ngModel)]=\"model.fantasia\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n <mat-checkbox [(ngModel)]=\"model.juridica\" tabindex=\"4\">Pessoa Jurídica</mat-checkbox>\n </div>\n <div class=\"form-section vbox\">\n <h4>Contato</h4>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" mask=\"(00)00000-0000\" class=\"form-control input-180\" tabindex=\"3\">\n <mat-checkbox [(ngModel)]=\"model.recebeWhatsApp\" tabindex=\"4\"\n style=\"margin-top: 8px; max-width: 180px;\">Deseja receber WhatsApp</mat-checkbox>\n </div>\n <div class=\"form-block\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" type=\"email\" class=\"form-control input-260\" tabindex=\"3\">\n <mat-checkbox [(ngModel)]=\"model.recebeEmail\" tabindex=\"4\" style=\"margin-top: 8px; max-width: 260px;\">Deseja\n receber E-mail</mat-checkbox>\n </div>\n </div>\n </div>\n \n <div class=\"form-section vbox\">\n <h4>Endereço</h4>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Endereço</label>\n <input [(ngModel)]=\"model.endereco\" class=\"form-control input-260\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Número</label>\n <input [(ngModel)]=\"model.numero\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" mask=\"00000-000\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" class=\"form-control input-260\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Cidade</label>\n <input [(ngModel)]=\"model.cidade\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Estado</label>\n <mat-select [(ngModel)]=\"model.uf\" tabindex=\"3\" style=\"width: 80px;\" class=\"form-control\" color=\"primary\">\n <mat-option *ngFor=\"let e of estados\" [value]=\"e\">\n {{e}}\n </mat-option>\n </mat-select>\n </div>\n </div>\n </div>\n <div class=\"form-section vbox\">\n <h4>Complemento</h4>\n \n <div class=\"hbox gap-16\" *ngIf=\"!model.juridica\">\n <div class=\"form-block\">\n <label>Data Nascimento</label>\n <div class=\"hbox\">\n <input id=\"vencimento\" [(ngModel)]=\"model.dataNascimento\" class=\"form-control input-small\"\n [matDatepicker]=\"pickerdataNascimento\" tabindex=\"8\">\n <mat-datepicker-toggle [for]=\"pickerdataNascimento\"></mat-datepicker-toggle>\n <mat-datepicker [touchUi]=\"false\" #pickerdataNascimento></mat-datepicker>\n </div>\n </div>\n <div class=\"form-block\">\n <label>Sexo</label>\n <mat-select id=\"sexo\" [(ngModel)]=\"model.sexo\" tabindex=\"8\" style=\"width: 80px;\" class=\"form-control\"\n color=\"primary\">\n <mat-option *ngFor=\"let m of sexos\" [value]=\"m\">\n {{m}}\n </mat-option>\n </mat-select>\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Observações</label>\n <input [(ngModel)]=\"model.obs\" class=\"form-control input-300\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n <div class=\"hbox gap-16\">\n <div class=\"form-block\">\n <label>Profissão</label>\n <input [(ngModel)]=\"model.profissao\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Último Destino</label>\n <input [(ngModel)]=\"model.ultimoDestino\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n <div class=\"form-block\">\n <label>Próximo Destino</label>\n <input [(ngModel)]=\"model.proximoDestino\" class=\"form-control input-120\" tabindex=\"3\">\n </div>\n </div>\n \n </div>\n \n</ng-container>","import { FocusService } from \"../../providers/focus.service\";\r\nimport { valTextEmpty } from \"../infra/validations\";\r\n\r\nexport interface Pessoa {\r\n id: number;\r\n nome: string;\r\n telefone?: string;\r\n obs?: string;\r\n fantasia?: string;\r\n endereco?: string;\r\n numero?: string;\r\n complemento?: string;\r\n bairro?: string;\r\n uf?: string;\r\n cidade?: string;\r\n cep?: string;\r\n cnpjCpf?: string;\r\n cnpjCpfFormatado?: string | null;\r\n ieRg?: string;\r\n contato?: string;\r\n email?: string;\r\n fax?: string;\r\n juridica?: boolean;\r\n isAtivo: boolean;\r\n enviadoPC? : boolean;\r\n}\r\n\r\nexport interface Fornecedor extends Pessoa {\r\n}\r\nexport interface Cliente extends Pessoa {\r\n dataNascimento?: Date;\r\n profissao?: string;\r\n nacionalidade?: string;\r\n sexo?: string;\r\n orgaoExpedidor?: string;\r\n ultimoDestino?: string;\r\n proximoDestino?: string;\r\n motivoViagem?: string;\r\n meioTransporte?: string;\r\n codigoMunicipio?: number;\r\n recebeWhatsApp?: boolean;\r\n recebeEmail?: boolean;\r\n}\r\n\r\nexport function validaPessoa(item: Pessoa, focus: FocusService): string | null {\r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n return null;\r\n}","import { Component, ElementRef, Inject, OnInit, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Cliente, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-clientes-add-dialog',\n templateUrl: './clientes-add-dialog.component.html',\n styleUrls: ['./clientes-add-dialog.component.scss']\n})\nexport class ClientesAddDialogComponent implements OnInit {\n model: Cliente;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Optional() @Inject(MAT_DIALOG_DATA)\n public dataDialog: Cliente,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<ClientesAddDialogComponent>,\n private screenHelper: ScreenHelperService) {\n this.model = dataDialog ?? {\n id: 0,\n nome: '',\n isAtivo: true\n };\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.addCliente(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.model.id = r;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.dialogRef.close(this.model);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Novo Cliente</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-clientes-form [model]=\"model\" *ngIf=\"model\"></app-clientes-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" [disabled]=\"isBusy\" (click)=\"salvar()\" tabindex=\"100\">SALVAR</button>\n <button mat-button [mat-dialog-close] >VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Cliente, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-clientes-edit-dialog',\n templateUrl: './clientes-edit-dialog.component.html',\n styleUrls: ['./clientes-edit-dialog.component.scss']\n})\nexport class ClientesEditDialogComponent implements OnInit {\n model?: Cliente;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Cliente,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<ClientesEditDialogComponent>,\n private screenHelper: ScreenHelperService) {\n if (dataDialog) {\n this.model = dataDialog;\n }\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveCliente(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Cliente</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-clientes-form [model]=\"model\" *ngIf=\"model\"></app-clientes-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { fadeAnimation } from '../../../animations/animations';\nimport { Cliente, validaPessoa } from '../../../models/entidades/pessoa';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { confirmaExclusao } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { ClientesAddDialogComponent } from '../clientes-add-dialog/clientes-add-dialog.component';\nimport { ClientesEditDialogComponent } from '../clientes-edit-dialog/clientes-edit-dialog.component';\n\n@Component({\n selector: 'app-clientes',\n templateUrl: './clientes.component.html',\n styleUrls: ['./clientes.component.scss'],\n animations: [fadeAnimation]\n})\nexport class ClientesComponent implements OnInit {\n mobile: boolean;\n isBusy: boolean = false;\n items: Cliente[] = [];\n selectedItem: Cliente | null = null;\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n allowAdd: boolean;\n allowExcluir: boolean;\n setting = new SearchSetting();\n private focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.allowAdd = auth.permissoes.financasClienteAdd;\n this.allowExcluir = auth.permissoes.financasClienteDelete;\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n\n\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n onSelectItem(): void {\n\n if (!this.focus.hasInit()) {\n setTimeout(() => {\n this.focus.registerElementById(\"form-column\");\n this.focus.setFirst();\n }, 500);\n //this._focus.registerElementById(\"form-column\");\n }\n else {\n this.focus.setFirst();\n }\n }\n\n ngOnDestroy(): void {\n this.focus.unregisterElementById(\"form-column\");\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaCliente(this.setting)\n .subscribe({\n next: r => {\n this.items = r;\n this.selectedItem = null;\n console.info(r);\n this.isBusy = false;\n }, error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n\n excluir() {\n const item = this.selectedItem;\n if (!item) return;\n confirmaExclusao(this.dialog,\n `Deseja prosseguir com a exclusão do cliente ${item.nome}?`,\n () => {\n this.isBusy = true;\n this.ws.deleteCliente(item.id)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"O cliente foi excluído com sucesso.\");\n this.items.remove(item);\n this.selectedItem = null;\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n });\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(ClientesAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n abreCadastro(item: Cliente) {\n\n let height = undefined;\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n height = (window.innerHeight * 0.99) + 'px';\n }\n const dialog = this.dialog.open(ClientesEditDialogComponent, {\n data: item,\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result !== true) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n salvar() {\n const item = this.selectedItem;\n if (!item) return;\n const valMsg = validaPessoa(item, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveCliente(item)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Clientes</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca não retornou resultados</h4>\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i; onSelectItem();\"></ox-item-card >\n </div>\n </div>\n <div id=\"form-column\" class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\" class=\"selecione-um-item-msg\">Selecione um cliente no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <app-clientes-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\"></app-clientes-form>\n </div>\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>","export function printTxt(txt: string) {\r\n const r = \"<!doctype html><head><meta charset=\\\"utf-8\\\"></head><body><div style='font-family: \\\"Courier New\\\", Courier, monospace; white-space: pre-wrap;color: black;font-weight: bold;word-wrap: break-word;word-break: break-all;overflow-wrap: break-word;'>\" + txt + '</div></body>';\r\n printHtml(r);\r\n}\r\n\r\nexport function printHtml(r: any) {\r\n const blob = new Blob([r], { type: 'text/html' });\r\n const url = window.URL.createObjectURL(blob);\r\n const w = window.open(url, '_blank');\r\n if (w != null)\r\n w.print();\r\n}\r\n\r\nexport function selectText(ev : any): void\r\n{\r\n ev.target.select()\r\n}\r\n\r\nexport function formatCpfCnpj(cpfCnpj: string | null | undefined): string | null {\r\n if (!cpfCnpj) {\r\n return null;\r\n }\r\n if (cpfCnpj.length === 11) {\r\n return cpfCnpj.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/, '$1.$2.$3-$4');\r\n }\r\n if (cpfCnpj.length === 14) {\r\n return cpfCnpj.replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})/, '$1.$2.$3/$4-$5');\r\n }\r\n return cpfCnpj;\r\n}\r\n\r\nexport function validCpf(cpf : string) : boolean {\r\n if ( !cpf || cpf.length != 11\r\n || cpf == \"00000000000\"\r\n || cpf == \"11111111111\"\r\n || cpf == \"22222222222\" \r\n || cpf == \"33333333333\" \r\n || cpf == \"44444444444\" \r\n || cpf == \"55555555555\" \r\n || cpf == \"66666666666\"\r\n || cpf == \"77777777777\"\r\n || cpf == \"88888888888\" \r\n || cpf == \"99999999999\" )\r\n return false;\r\nvar soma = 0\r\n var resto\r\nfor (var i = 1; i <= 9; i++) \r\n soma = soma + parseInt(cpf.substring(i-1, i)) * (11 - i)\r\nresto = (soma * 10) % 11\r\n if ((resto == 10) || (resto == 11)) resto = 0\r\n if (resto != parseInt(cpf.substring(9, 10)) ) return false;\r\nsoma = 0\r\n for (var i = 1; i <= 10; i++) \r\n soma = soma + parseInt(cpf.substring(i-1, i)) * (12 - i)\r\n resto = (soma * 10) % 11\r\n if ((resto == 10) || (resto == 11)) resto = 0\r\n if (resto != parseInt(cpf.substring(10, 11) ) ) return false;\r\n return true;\r\n}\r\n\r\nexport function validaCnpj(cnpj : string) : boolean {\r\n if ( !cnpj || cnpj.length != 14\r\n || cnpj == \"00000000000000\" \r\n || cnpj == \"11111111111111\" \r\n || cnpj == \"22222222222222\" \r\n || cnpj == \"33333333333333\" \r\n || cnpj == \"44444444444444\" \r\n || cnpj == \"55555555555555\" \r\n || cnpj == \"66666666666666\" \r\n || cnpj == \"77777777777777\" \r\n || cnpj == \"88888888888888\" \r\n || cnpj == \"99999999999999\")\r\n return false;\r\n var tamanho = cnpj.length - 2;\r\n var numeros = cnpj.substring(0,tamanho);\r\n var digitos = cnpj.substring(tamanho);\r\n var soma = 0;\r\n var pos = tamanho - 7;\r\n for (var i = tamanho; i >= 1; i--) {\r\n soma += parseInt(numeros.charAt(tamanho - i)) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n if (resultado != parseInt(digitos.charAt(0))) return false;\r\n tamanho = tamanho + 1;\r\n numeros = cnpj.substring(0,tamanho);\r\n soma = 0;\r\n pos = tamanho - 7;\r\n for (var i = tamanho; i >= 1; i--) {\r\n soma += parseInt(numeros.charAt(tamanho - i)) * pos--;\r\n if (pos < 2) pos = 9;\r\n }\r\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n if (resultado != parseInt(digitos.charAt(1))) return false;\r\n return true;\r\n}","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ox-selecao-list-item',\n templateUrl: './selecao-list-item.component.html',\n styleUrls: ['./selecao-list-item.component.scss']\n})\nexport class SelecaoListItemComponent {\n @Input() text: String | null | undefined = '';\n \n}\n","<span *ngIf=\"text\">{{text}}</span>\n<ng-content *ngIf=\"!text\"></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Cliente } from '../../../models/entidades/pessoa';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { NavegacaoSelecaoDialogUtil } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { ClientesAddDialogComponent } from '../clientes-add-dialog/clientes-add-dialog.component';\nimport { ClientesEditDialogComponent } from '../clientes-edit-dialog/clientes-edit-dialog.component';\nimport { formatCpfCnpj } from '../../../models/infra/utils-methods';\n\n\n@Component({\n selector: 'app-selecao-cliente-dialog',\n templateUrl: './selecao-cliente-dialog.component.html',\n styleUrls: ['./selecao-cliente-dialog.component.scss']\n})\nexport class SelecaoClienteDialogComponent implements OnInit {\n items: Cliente[] = [];\n selectedItem: Cliente | null = null;\n isBusy: boolean = false;\n mobile: boolean;\n allowAdd: boolean;\n allowEdit: boolean;\n setting = new SearchSetting();\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n nav = new NavegacaoSelecaoDialogUtil<Cliente, SelecaoClienteDialogComponent>(this);\n\n constructor(public dialogRef: MatDialogRef<SelecaoClienteDialogComponent>,\n private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.mobile = this.screenHelper.isMedium;\n this.allowAdd = auth.permissoes.financasClienteAdd;\n this.allowEdit = auth.permissoes.financasClientePesquisa;\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaCliente(this.setting)\n .subscribe({\n next: r => {\n this.isBusy = false;\n for (let i of r) {\n i.cnpjCpfFormatado = formatCpfCnpj(i.cnpjCpf);\n }\n this.items = r;\n console.info(r);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n selectItem(i : Cliente) {\n if (this.selectedItem === i) {\n this.dialogRef.close(i);\n }\n this.selectedItem = i;\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(ClientesAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n editar() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(ClientesEditDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n data: this.selectedItem\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n}\n","<div class=\"dialog-header\">\n <h2>Seleção de Clientes</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button color=\"primary\" mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\"> \n <ox-selecao-list-item (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\">\n <div class=\"hbox gap-16\">\n <span class=\"grow-1\">{{i.nome}}</span> <span class=\"cnpj-badge\" *ngIf=\"i.cnpjCpf\" >{{i.cnpjCpfFormatado}}</span>\n </div>\n </ox-selecao-list-item>\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { Fornecedor } from '../../../models/entidades/pessoa';\nimport { validaCnpj, validCpf } from '../../../models/infra/utils-methods';\n\n@Component({\n selector: 'app-fornecedores-form',\n templateUrl: './fornecedores-form.component.html',\n styleUrls: ['./fornecedores-form.component.scss']\n})\nexport class FornecedoresFormComponent implements OnInit {\n _model?: Fornecedor;\n\n @Input()\n get model(): Fornecedor | undefined {\n return this._model;\n }\n\n set model(val: Fornecedor | undefined) {\n this._model = val;\n this.validarCpfCnpj();\n }\n boolCpfCnpjValidado: boolean = false;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n validarCpfCnpj()\n {\n if (this.model?.cnpjCpf == null || this.model?.cnpjCpf == undefined)\n {\n this.boolCpfCnpjValidado = false;\n return;\n }\n if (this.model.cnpjCpf.length == 11)\n {\n this.boolCpfCnpjValidado = validCpf(this.model.cnpjCpf);\n }\n else if (this.model.cnpjCpf.length == 14)\n {\n this.boolCpfCnpjValidado = validaCnpj(this.model.cnpjCpf);\n }\n else\n {\n this.boolCpfCnpjValidado = false;\n }\n }\n\n}\n","<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" maxlength=\"60\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n \n <h4 class=\"margin-top-16\">Dados Complementares</h4>\n \n <div class=\"form-group\">\n <label>Nome Fantasia</label>\n <input [(ngModel)]=\"model.fantasia\" maxlength=\"60\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <div class=\"hbox gap-4\">\n <input [(ngModel)]=\"model.cnpjCpf\" (change)=\"validarCpfCnpj()\" mask=\"000.000.000-00||00.000.000/0000-00\"\n class=\"form-control input-180\" tabindex=\"3\">\n <i class=\"material-icons\" style=\"align-self: center; color: #03a928;\" *ngIf=\"boolCpfCnpjValidado === true\">\n check_circle\n </i>\n <i class=\"material-icons\" style=\"align-self: center; color: #a98203;\" *ngIf=\"boolCpfCnpjValidado === false\">\n cancel\n </i>\n \n </div>\n </div>\n <div class=\"form-group\">\n <label>Observações</label>\n <input [(ngModel)]=\"model.obs\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" maxlength=\"30\" class=\"form-control input-180\">\n </div>\n <div class=\"form-group\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" maxlength=\"30\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" maxlength=\"60\" class=\"form-control input-200\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Endereço</label>\n <input [(ngModel)]=\"model.endereco\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n \n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Número</label>\n <input [(ngModel)]=\"model.numero\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" maxlength=\"9\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" maxlength=\"60\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" maxlength=\"30\" class=\"form-control input-200\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" maxlength=\"20\" class=\"form-control input-120\">\n </div>\n </div>\n</ng-container>","import { Component, ElementRef, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Fornecedor, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-fornecedores-add-dialog',\n templateUrl: './fornecedores-add-dialog.component.html',\n styleUrls: ['./fornecedores-add-dialog.component.scss']\n})\nexport class FornecedoresAddDialogComponent implements OnInit, OnDestroy {\n model: Fornecedor;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Optional() @Inject(MAT_DIALOG_DATA)\n public dataDialog: Fornecedor,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FornecedoresAddDialogComponent>,\n private screenHelper: ScreenHelperService) {\n this.model = dataDialog ?? {\n id: 0,\n nome: '',\n isAtivo: true\n };\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.addFornecedor(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.model.id = r;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.dialogRef.close(this.model);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Novo Fornecedor</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-fornecedores-form [model]=\"model\" *ngIf=\"model\"></app-fornecedores-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" [disabled]=\"isBusy\" (click)=\"salvar()\" tabindex=\"100\">SALVAR</button>\n <button mat-button [mat-dialog-close] >VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Fornecedor, validaPessoa } from '../../../models/entidades/pessoa';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\n\n@Component({\n selector: 'app-fornecedores-edit-dialog',\n templateUrl: './fornecedores-edit-dialog.component.html',\n styleUrls: ['./fornecedores-edit-dialog.component.scss']\n})\nexport class FornecedoresEditDialogComponent implements OnInit, OnDestroy {\n model?: Fornecedor;\n mobile: boolean;\n isBusy: boolean = false;\n focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n @Inject(MAT_DIALOG_DATA)\n public dataDialog: Fornecedor,\n public dialog: MatDialog,\n private elRef: ElementRef,\n private dialogRef: MatDialogRef<FornecedoresEditDialogComponent>,\n private screenHelper: ScreenHelperService) {\n if (dataDialog) {\n this.model = dataDialog;\n }\n this.mobile = this.screenHelper.isMedium;\n\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n }\n\n\n ngOnInit(): void {\n this.focus.registerElement(this.elRef.nativeElement);\n }\n ngOnDestroy(): void {\n this.focus.unregisterElement(this.elRef.nativeElement);\n }\n\n salvar() {\n if (!this.model) return;\n const valMsg = validaPessoa(this.model, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveFornecedor(this.model)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.notification.showMsg(\"Salvo com sucesso.\");\n if (this.dialogRef)\n this.dialogRef.close(true);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Fornecedor</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <app-fornecedores-form [model]=\"model\" *ngIf=\"model\"></app-fornecedores-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { fadeAnimation } from '../../../animations/animations';\nimport { Fornecedor, validaPessoa } from '../../../models/entidades/pessoa';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { confirmaExclusao } from '../../../models/infra/selecao-utils';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { FocusService } from '../../../providers/focus.service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { FornecedoresAddDialogComponent } from '../fornecedores-add-dialog/fornecedores-add-dialog.component';\nimport { FornecedoresEditDialogComponent } from '../fornecedores-edit-dialog/fornecedores-edit-dialog.component';\n\n@Component({\n selector: 'app-fornecedores',\n templateUrl: './fornecedores.component.html',\n styleUrls: ['./fornecedores.component.scss'],\n animations: [fadeAnimation]\n})\nexport class FornecedoresComponent implements OnInit, OnDestroy {\n mobile: boolean;\n isBusy: boolean = false;\n items: Fornecedor[] = [];\n selectedItem: Fornecedor | null = null;\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n allowAdd: boolean;\n allowExcluir: boolean;\n setting = new SearchSetting();\n private focus: FocusService = new FocusService();\n\n constructor(private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.allowAdd = auth.permissoes.financasFornecedorAdd || auth.permissoes.estoqueFornecedorAdd;\n this.allowExcluir = auth.permissoes.financasFornecedorDelete || auth.permissoes.estoqueFornecedorDelete;\n this.mobile = this.screenHelper.isMedium;\n this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);\n\n\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n onSelectItem(): void {\n\n if (!this.focus.hasInit()) {\n setTimeout(() => {\n this.focus.registerElementById(\"form-column\");\n this.focus.setFirst();\n }, 500);\n //this._focus.registerElementById(\"form-column\");\n }\n else {\n this.focus.setFirst();\n }\n }\n\n ngOnDestroy(): void {\n this.focus.unregisterElementById(\"form-column\");\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaFornecedor(this.setting)\n .subscribe({\n next: r => {\n this.items = r;\n this.selectedItem = null;\n console.info(r);\n this.isBusy = false;\n }, error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n\n excluir() {\n const item = this.selectedItem;\n if (!item) return;\n confirmaExclusao(this.dialog,\n `Deseja prosseguir com a exclusão do fornecedor ${item.nome}?`,\n () => {\n this.isBusy = true;\n this.ws.deleteFornecedor(item.id)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"O fornecedor foi excluído com sucesso.\");\n this.items.remove(item);\n this.selectedItem = null;\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n });\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n abreCadastro(item: Fornecedor) {\n\n let height = undefined;\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n height = (window.innerHeight * 0.99) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresEditDialogComponent, {\n data: item,\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result !== true) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n salvar() {\n const item = this.selectedItem;\n if (!item) return;\n const valMsg = validaPessoa(item, this.focus);\n if (valMsg) {\n this.notification.showMsgError(valMsg);\n return;\n }\n this.isBusy = true;\n this.ws.saveFornecedor(item)\n .subscribe({\n next: r => {\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.isBusy = false;\n },\n error: err => {\n this.isBusy = false;\n this.notification.showMsg(err.error);\n }\n });\n }\n\n}\n","<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Fornecedores</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\"\n (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca não retornou resultados</h4>\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i; onSelectItem();\"></ox-item-card >\n </div>\n </div>\n <div id=\"form-column\" class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\" class=\"selecione-um-item-msg\">Selecione um fornecedor no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <app-fornecedores-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\"></app-fornecedores-form>\n </div>\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Fornecedor } from '../../../models/entidades/pessoa';\nimport { SearchSetting } from '../../../models/settings/search-setting';\nimport { LazyTrigger } from '../../../models/infra/lazy-trigger';\nimport { NavegacaoSelecaoDialogUtil } from '../../../models/infra/selecao-utils';\nimport { CommonWebService } from '../../../providers/common-web-service';\nimport { NotificationService } from '../../../providers/notification.service';\nimport { AuthDataService } from '../../../providers/auth-data.service';\nimport { ScreenHelperService } from '../../../providers/screen-helper.service';\nimport { FornecedoresAddDialogComponent } from '../fornecedores-add-dialog/fornecedores-add-dialog.component';\nimport { FornecedoresEditDialogComponent } from '../fornecedores-edit-dialog/fornecedores-edit-dialog.component';\n\n@Component({\n selector: 'app-selecao-fornecedor-dialog',\n templateUrl: './selecao-fornecedor-dialog.component.html',\n styleUrls: ['./selecao-fornecedor-dialog.component.scss']\n})\nexport class SelecaoFornecedorDialogComponent implements OnInit {\n items: Fornecedor[] = [];\n selectedItem: Fornecedor | null = null;\n isBusy: boolean = false;\n mobile: boolean;\n allowAdd: boolean;\n allowEdit: boolean;\n setting = new SearchSetting();\n lazyTrigger = new LazyTrigger(() => { this.atualiza(); });\n nav = new NavegacaoSelecaoDialogUtil<Fornecedor, SelecaoFornecedorDialogComponent>(this);\n\n constructor(public dialogRef: MatDialogRef<SelecaoFornecedorDialogComponent>,\n private ws: CommonWebService,\n private notification: NotificationService,\n public dialog: MatDialog,\n auth: AuthDataService,\n private screenHelper: ScreenHelperService) {\n this.mobile = this.screenHelper.isMedium;\n this.allowAdd = auth.permissoes.financasClienteAdd || auth.permissoes.estoqueFornecedorAdd;\n this.allowEdit = auth.permissoes.financasClientePesquisa || auth.permissoes.estoqueFornecedorPesquisa;\n }\n\n ngOnInit() {\n this.setting.ordem = \"nome\";\n this.atualiza();\n }\n\n atualiza() {\n this.isBusy = true;\n this.ws.buscaFornecedor(this.setting)\n .subscribe({\n next: r => {\n this.isBusy = false;\n this.items = r;\n console.info(r);\n },\n error: err => {\n this.isBusy = false;\n this.notification.showHttpError(err);\n }\n });\n }\n\n selectItem(i : Fornecedor) {\n if (this.selectedItem === i) {\n this.dialogRef.close(i);\n }\n this.selectedItem = i;\n }\n\n novo() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresAddDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n\n editar() {\n\n let height = (window.innerHeight * 0.90) + 'px';\n let width = 550 + 'px';\n if (this.mobile) {\n width = (window.innerWidth * 0.99) + 'px';\n //height = (window.innerHeight * 0.98) + 'px';\n }\n const dialog = this.dialog.open(FornecedoresEditDialogComponent, {\n width: width,\n height: height,\n maxWidth: '100%',\n panelClass: 'dialog-p0',\n data: this.selectedItem\n });\n dialog.afterClosed().subscribe(result => {\n if (result === undefined) return;\n this.notification.showMsg(\"Salvo com sucesso.\");\n this.atualiza();\n });\n }\n}\n","<div class=\"dialog-header\">\n <h2>Seleção de Fornecedores</h2>\n</div>\n<div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>Ações</label>\n <div class=\"tool-row\">\n <button color=\"primary\" mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button color=\"primary\" mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"dialog-content\">\n <div (click)=\"selectItem(i)\" [ngClass]=\"{selected: selectedItem === i}\" class=\"list-item\" *ngFor=\"let i of items\">\n <span>{{i.nome}}</span>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n","import { Component, OnInit, Input, HostListener, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ox-check-button',\n templateUrl: './check-button.component.html',\n styleUrls: ['./check-button.component.scss'],\n host: {\n '[class.checked]': \"checked\",\n }\n})\nexport class CheckButtonComponent implements OnInit {\n @Input() checked: boolean = false;\n @Input() radioBehavior: boolean = false;\n @Output() changed = new EventEmitter<boolean>();\n constructor() {\n this.checked = true;\n }\n\n ngOnInit() {\n }\n\n @HostListener('click', ['$event'])\n onClick(e : any) {\n if (!this.radioBehavior)\n this.checked = !this.checked;\n this.changed.emit(this.checked);\n }\n}\n","<ng-content></ng-content>","import { Component, OnInit, Input, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Component({\n selector: 'ox-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss']\n})\nexport class ImageViewerComponent implements OnInit {\n @Input() info?: ImageViewerInfo;\n @Input() infos: ImageViewerInfo[] = [];\n private _isOpen: boolean = false;\n paginaAtual: number = 0;\n disableBack : boolean= false;\n disableNext : boolean = false;\n @Output() isOpenChange = new EventEmitter();\n\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n set isOpen(val: boolean) {\n this._isOpen = val;\n this.isOpenChange.emit(val);\n }\n\n @HostListener('click', ['$event'])\n onClick(e : any) {\n //this.isOpen = !this.isOpen;\n }\n\n constructor() { }\n\n ngOnInit() {\n }\n\n open(info: ImageViewerInfo, infos: ImageViewerInfo[]) {\n if (infos !== undefined) {\n for (let i = 0; i < infos.length; i++) {\n if (infos[i] === info) {\n this.paginaAtual = i + 1;\n break;\n }\n }\n }\n\n this.info = info;\n this.infos = infos;\n this.isOpen = true;\n this.updateUI();\n }\n\n goNext()\n {\n this.paginaAtual += 1;\n this.info = this.infos[this.paginaAtual - 1];\n this.updateUI();\n }\n\n goBack()\n {\n this.paginaAtual -= 1;\n this.info = this.infos[this.paginaAtual - 1];\n this.updateUI();\n }\n\n updateUI()\n {\n this.disableBack = this.paginaAtual == 1;\n this.disableNext = this.paginaAtual == this.infos.length;\n }\n}\n\nexport interface ImageViewerInfo {\n url: string;\n titulo: string;\n id : any;\n}\n","<div class=\"image-fullsize\" *ngIf=\"isOpen\">\n <div class=\"titulo\">\n {{info?.titulo}}\n </div>\n <div class=\"img-container\" (click)=\"isOpen = !isOpen\">\n <img class=\"image\" *ngIf=\"info\" [src]=\"info?.url\" />\n </div>\n <div class=\"action-bar\" *ngIf=\"infos\">\n <button (click)=\"goBack()\" [disabled]=\"disableBack\" mat-icon-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n <span class=\"picker-text\">\n {{paginaAtual}}/{{infos?.length}}\n </span>\n <button (click)=\"goNext()\" [disabled]=\"disableNext\" mat-icon-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'ox-month-year-picker',\n templateUrl: './month-year-picker.component.html',\n styleUrls: ['./month-year-picker.component.scss']\n})\nexport class MonthYearPickerComponent implements OnInit {\n @Output() anoChange = new EventEmitter<number>();\n @Output() mesChange = new EventEmitter<number>();\n @Output() changed = new EventEmitter<MonthYear>();\n\n _init : boolean = false;\n _ano: number;\n _mes: number;\n _modoAnual : boolean = false;\n _meses = [\"JANEIRO\", \"FEVEREIRO\", \"MARÇO\", \"ABRIL\", \"MAIO\", \"JUNHO\", \"JULHO\", \"AGOSTO\", \"SETEMBRO\", \"OUTUBRO\", \"NOVEMBRO\", \"DEZEMBRO\"];\n text: string = '';\n disableNext: boolean = false;\n @Input()\n blockFuture: boolean = false;\n\n @Input()\n get modoAnual(): boolean {\n return this._modoAnual;\n }\n set modoAnual(val: boolean) {\n this._modoAnual = val;\n if (!this._init) return;\n this.updateText();\n this.raiseOnSelectionChanged();\n }\n\n @Input()\n get ano(): number {\n return this._ano;\n }\n set ano(val: number) {\n this._ano = val;\n if (!this._init) return;\n this.anoChange.emit(val);\n this.updateText();\n }\n\n @Input()\n get mes(): number {\n return this._mes;\n }\n set mes(val: number) {\n this._mes = val;\n if (!this._init) return;\n this.mesChange.emit(val);\n this.updateText();\n }\n\n constructor() {\n let d = new Date();\n this._ano = d.getFullYear();\n this._mes = d.getMonth() + 1;\n }\n\n ngOnInit() {\n this.updateText();\n this._init = true;\n }\n\n goBack() {\n if (this.modoAnual) {\n this.ano -= 1;\n }\n else {\n this.mes--;\n if (this.mes < 1) {\n this.ano -= 1;\n this.mes = 12;\n }\n }\n this.updateText();\n this.raiseOnSelectionChanged();\n };\n\n goNext() {\n if (this.modoAnual) {\n this.ano += 1;\n }\n else {\n this.mes++;\n if (this.mes > 12) {\n this.ano += 1;\n this.mes = 1;\n }\n }\n this.updateText();\n this.raiseOnSelectionChanged();\n };\n\n updateText() {\n if (this.modoAnual)\n this.text = '' + this._ano;\n else\n this.text = this._meses[this._mes - 1] + \" DE \" + this._ano;\n\n if (!this.blockFuture)\n return;\n\n let d = new Date();\n let ano = d.getFullYear();\n let mes = d.getMonth() + 1;\n\n if (!this.modoAnual)\n this.disableNext = ano == this.ano && this.mes >= mes;\n else\n this.disableNext = ano == this.ano;\n };\n\n raiseOnSelectionChanged() {\n let d = { ano: this._ano, mes: this._mes };\n this.changed.emit(d);\n }\n}\nexport interface MonthYear {\n mes: number;\n ano: number;\n}\n","<div class=\"picker-container\">\n <div>\n <button mat-icon-button (click)=\"goBack()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n </div>\n <span class=\"picker-text\">\n {{text}}\n </span>\n <div>\n <button mat-icon-button (click)=\"goNext()\" [disabled]=\"disableNext\" >\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ox-numeric-picker',\n templateUrl: './numeric-picker.component.html',\n styleUrls: ['./numeric-picker.component.scss']\n})\nexport class NumericPickerComponent implements OnInit {\n @Output() valueChange = new EventEmitter<number>();\n @Output() change = new EventEmitter<number>();\n _value: number = 0;\n _max: number = 0;\n _min: number = 0;\n text: string = '';\n disableNext = false;\n disableBack = false;\n\n @Input()\n get value(): number {\n return this._value;\n }\n set value(val: number) {\n this._value = val;\n this.valueChange.emit(val);\n this.refreshUI();\n }\n\n @Input()\n get max(): number {\n return this._max;\n }\n set max(val: number) {\n this._max = val;\n this.refreshUI();\n }\n\n @Input()\n get min(): number {\n return this._min;\n }\n set min(val: number) {\n this._min = Number(val);\n this.refreshUI();\n }\n\n constructor() { }\n\n ngOnInit() {\n }\n\n onTextEdit(ev : any) {\n console.info(ev);\n const i = Number(ev.target.value);\n if (!this.valida(i))\n this.text = '' + this.value;\n else {\n this.value = i;\n this.raiseChange();\n this.refreshUI();\n }\n }\n\n goBack() {\n const newVal = this.value - 1;\n if (!this.valida(newVal))\n return;\n this.value = newVal;\n this.raiseChange();\n };\n\n goNext() {\n const newVal = this.value + 1;\n if (!this.valida(newVal))\n return;\n this.value = newVal;\n this.raiseChange();\n };\n\n refreshUI() {\n this.text = this.value === undefined ? '--' : '' + this.value;\n this.disableNext = this.max !== undefined && this.value === this.max;\n this.disableBack = this.min !== undefined && this.value === this.min;\n }\n\n valida(val : any): boolean {\n if (isNaN(val))\n return false;\n if (this.max !== undefined && val > this.max)\n return false;\n if (this.min !== undefined && val < this.min)\n return false;\n return true;\n }\n\n raiseChange() {\n this.change.emit(this.value);\n }\n}\n","<div>\n <button mat-icon-button (click)=\"goBack()\" [disabled]=\"disableBack\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n</div>\n<input [(ngModel)]=\"text\" (change)=\"onTextEdit($event)\" class=\"date\">\n<div>\n <button mat-icon-button (click)=\"goNext()\" [disabled]=\"disableNext\" >\n <mat-icon>chevron_right</mat-icon>\n </button>\n</div>","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'ox-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent implements OnInit {\n @Output() paginaAtualChange = new EventEmitter<number>();\n @Output() totalPaginasChange = new EventEmitter<number>();\n @Output() change = new EventEmitter<number>();\n _paginaAtual: number = 1;\n _totalPaginas: number = 1;\n inicio: boolean = true;\n fim: boolean = true;\n @Input() pageSize: number = 0;\n\n @Input()\n get paginaAtual(): number {\n return this._paginaAtual;\n }\n\n set paginaAtual(val: number) {\n this._paginaAtual = val;\n this.paginaAtualChange.emit(val);\n this.refreshUI();\n }\n\n @Input()\n get totalPaginas(): number {\n return this._totalPaginas;\n }\n\n set totalPaginas(val: number) {\n this._totalPaginas = val;\n this.totalPaginasChange.emit(val);\n this.refreshUI();\n }\n\n constructor() { }\n\n ngOnInit() {\n }\n\n trocaPagina(pagina: number) {\n if (pagina > this.totalPaginas || pagina < 1)\n return;\n this.paginaAtual = pagina;\n this.refreshUI();\n this.change.emit(this.paginaAtual); \n }\n\n refreshUI()\n {\n this.inicio = this.paginaAtual == 1;\n this.fim = this.paginaAtual == this.totalPaginas; \n }\n\n goBack() {\n this.trocaPagina(this.paginaAtual - 1);\n }\n\n goNext() {\n this.trocaPagina(this.paginaAtual + 1);\n }\n\n}\n","<button [disabled]=\"inicio\" mat-icon-button (click)=\"goBack()\">\n <mat-icon>chevron_left</mat-icon>\n</button>\n<span class=\"picker-text\">\n {{paginaAtual}}/{{totalPaginas}}\n</span>\n<button [disabled]=\"fim\" mat-icon-button (click)=\"goNext()\">\n <mat-icon>chevron_right</mat-icon>\n</button>\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ox-radio-button-group',\n templateUrl: './radio-button-group.component.html',\n styleUrls: ['./radio-button-group.component.scss']\n})\nexport class RadioButtonGroupComponent implements OnInit {\n @Output() change = new EventEmitter<RadioButtonGroupData>();\n _items: RadioButtonGroupData[] = [];\n //_init : boolean = false;\n @Input() selectedItem: RadioButtonGroupData | null = null;\n @Input()\n get items(): RadioButtonGroupData[] {\n return this._items;\n }\n set items(val: RadioButtonGroupData[]) {\n this._items = val;\n this.selectedItem = this.items.filter(x => x.default === true).firstOrNull();\n if (this.selectedItem === null)\n this.selectedItem = this.items.firstOrNull();\n }\n\n constructor() { }\n\n ngOnInit() {\n\n }\n\n raiseChange(item : RadioButtonGroupData) {\n this.selectedItem = item;\n this.change.emit(this.selectedItem);\n }\n}\n\nexport interface RadioButtonGroupData {\n name: string;\n value: any;\n default?: boolean;\n}\n","<ox-check-button [radioBehavior]=\"true\" (changed)=\"raiseChange(item)\" [checked]=\"item == selectedItem\" *ngFor=\"let item of items\">\n {{item.name}}\n</ox-check-button>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml'\n})\nexport class SafeHtmlPipe implements PipeTransform \n{\n constructor(private sanitizer:DomSanitizer){}\n\n transform(html : string) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { BusyIndicatorComponent } from './controls/busy-indicator/busy-indicator.component';\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { MonthYearPickerComponent } from './controls/month-year-picker/month-year-picker.component';\nimport { ImageViewerComponent } from './controls/image-viewer/image-viewer.component';\nimport { NumericPickerComponent } from './controls/numeric-picker/numeric-picker.component';\nimport { PaginatorComponent } from './controls/paginator/paginator.component';\nimport { CheckButtonComponent } from './controls/check-button/check-button.component';\nimport { RadioButtonGroupComponent } from './controls/radio-button-group/radio-button-group.component';\nimport { ItemCardComponent } from './controls/item-card/item-card.component';\nimport { SafeHtmlPipe } from './providers/safe-html.pipe';\nimport { AlertDialogComponent } from './controls/alert-dialog/alert-dialog.component';\nimport { FuncionariosComponent } from './cadastros/funcionarios/funcionarios/funcionarios.component';\nimport { FuncionarioFormComponent } from './cadastros/funcionarios/funcionario-form/funcionario-form.component';\nimport { FuncionarioEditDialogComponent } from './cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component';\nimport { FuncionarioAddDialogComponent } from './cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component';\nimport { ClientesFormComponent } from './cadastros/clientes/clientes/clientes-form.component';\nimport { ClientesComponent } from './cadastros/clientes/clientes/clientes.component';\nimport { ClientesAddDialogComponent } from './cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component';\nimport { ClientesEditDialogComponent } from './cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component';\nimport { SelecaoClienteDialogComponent } from './cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component';\nimport { FornecedoresFormComponent } from './cadastros/fornecedores/fornecedores/fornecedores-form.component';\nimport { FornecedoresComponent } from './cadastros/fornecedores/fornecedores/fornecedores.component';\nimport { FornecedoresAddDialogComponent } from './cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component';\nimport { FornecedoresEditDialogComponent } from './cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component';\nimport { SelecaoFornecedorDialogComponent } from './cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component';\nimport { NgxMaskDirective, NgxMaskPipe, provideEnvironmentNgxMask } from 'ngx-mask';\nimport { SelecaoListItemComponent } from './controls/selecao-list-item/selecao-list-item.component';\n\n\ndeclare global {\n interface String {\n isEmpty(): boolean;\n }\n interface Array<T> {\n firstOrNull(): T | null;\n remove(item: T): boolean;\n }\n interface Date {\n addDays(days: number): Date;\n }\n}\nArray.prototype.remove = function (item): boolean {\n const index = this.indexOf(item);\n if (index === -1) return false;\n this.splice(index, 1);\n return true;\n}\nArray.prototype.firstOrNull = function () {\n if (this.length > 0)\n return this[0];\n return null;\n}\n\nDate.prototype.addDays = function (days: number) {\n var result = new Date(this);\n result.setDate(result.getDate() + days);\n return result;\n}\n\n@NgModule({\n declarations: [\n BusyIndicatorComponent,\n MonthYearPickerComponent,\n ImageViewerComponent,\n NumericPickerComponent,\n PaginatorComponent,\n CheckButtonComponent,\n RadioButtonGroupComponent,\n ItemCardComponent,\n SafeHtmlPipe,\n AlertDialogComponent,\n FuncionariosComponent,\n FuncionarioFormComponent,\n FuncionarioEditDialogComponent,\n FuncionarioAddDialogComponent,\n\n ClientesFormComponent,\n ClientesComponent,\n ClientesAddDialogComponent,\n ClientesEditDialogComponent,\n SelecaoClienteDialogComponent,\n\n FornecedoresFormComponent,\n FornecedoresComponent,\n FornecedoresAddDialogComponent,\n FornecedoresEditDialogComponent,\n SelecaoFornecedorDialogComponent,\n SelecaoListItemComponent,\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatButtonModule,\n MatIconModule,\n MatDialogModule,\n MatSelectModule,\n MatDatepickerModule,\n MatCheckboxModule,\n MatAutocompleteModule,\n MatSlideToggleModule,\n NgxMaskDirective,\n NgxMaskPipe,\n ],\n exports: [\n BusyIndicatorComponent,\n MonthYearPickerComponent,\n ImageViewerComponent,\n NumericPickerComponent,\n PaginatorComponent,\n CheckButtonComponent,\n RadioButtonGroupComponent,\n ItemCardComponent,\n SelecaoListItemComponent,\n SafeHtmlPipe\n ],\n providers: [provideEnvironmentNgxMask()]\n})\nexport class OxpiNglibModule { }\n","import { FocusService } from \"../../providers/focus.service\"\r\nimport { valTextEmpty } from \"../infra/validations\"\r\n\r\nexport interface SetorEstoque\r\n{\r\n id: number\r\n nome: string\r\n isAtivo: boolean\r\n enviadoPC: boolean\r\n marcadoExclusao: boolean \r\n}\r\n\r\nexport function validaSetorEstoque(item: SetorEstoque, focus: FocusService): string | null {\r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n return null;\r\n}","import { FocusService } from \"../../providers/focus.service\";\r\nimport { valTextEmpty } from \"../infra/validations\";\r\n\r\nexport interface Operador {\r\n id: number;\r\n login: string;\r\n senha: string;\r\n nome: string;\r\n pronuncia: string;\r\n isAtivo: boolean;\r\n}\r\n\r\nexport function validaOperador(item: Operador, focus: FocusService): string | null {\r\n if (valTextEmpty(item.login)) {\r\n focus.set('login');\r\n return 'Digite um login válido.';\r\n } \r\n if (valTextEmpty(item.nome)) {\r\n focus.set('nome');\r\n return 'Digite um nome válido.';\r\n }\r\n if (valTextEmpty(item.senha)) {\r\n focus.set('senha');\r\n return 'Digite uma senha válido.';\r\n }\r\n return null;\r\n}","export class BusyState {\r\n isBusy: boolean = false;\r\n private counter: number = 0;\r\n\r\n show() {\r\n this.counter++;\r\n this.isBusy = true;\r\n }\r\n\r\n hide() {\r\n this.counter--;\r\n if (this.counter < 0)\r\n this.counter = 0;\r\n if (this.counter == 0)\r\n this.isBusy = false;\r\n }\r\n}","import { LazyTrigger } from './lazy-trigger';\r\n\r\nexport class NumberParser {\r\n private _parseTrigger: LazyTrigger;\r\n valor: string | undefined;\r\n parsed : boolean = false;\r\n\r\n constructor(\r\n private setPropFunc: (newValue: number | null) => void,\r\n private getPropFunc: () => number | null,\r\n private min?: number,\r\n private max?: number,\r\n triggerMilliseconds : number = 3000) {\r\n this._parseTrigger = new LazyTrigger(() => this.parseValor(), triggerMilliseconds);\r\n }\r\n\r\n parse(vlr: string) {\r\n this.valor = vlr;\r\n this.parsed = false;\r\n this._parseTrigger.fire();\r\n }\r\n store(vlr : string) {\r\n this.valor = vlr;\r\n this.parsed = false;\r\n }\r\n\r\n\r\n checkout()\r\n {\r\n if (this.parsed || !this.valor) return;\r\n this.parseValor();\r\n }\r\n\r\n private parseValor() {\r\n if (this.valor === undefined) return;\r\n this.parsed = true;\r\n const vlrTxt = this.valor.split(\",\").join(\".\");;\r\n const spTxt: string[] = vlrTxt.split(\".\");\r\n let toParseTxt = \"\";\r\n if (spTxt.length > 2) {\r\n const chars = vlrTxt.split(\"\");\r\n const lastIndex = vlrTxt.lastIndexOf(\".\");\r\n for (let i = 0; i < chars.length; i++) {\r\n const c = chars[i];\r\n if (c === \".\" && i != lastIndex) continue;\r\n toParseTxt = toParseTxt.concat(c);\r\n }\r\n }\r\n else {\r\n toParseTxt = vlrTxt;\r\n }\r\n\r\n const vlr = parseFloat(toParseTxt);\r\n if (isNaN(vlr) || !this.validaMinMax(vlr)) {\r\n const original = this.getPropFunc();\r\n this.setPropFunc(0);\r\n setTimeout(() => this.setPropFunc(original));\r\n }\r\n else {\r\n this.setPropFunc(vlr);\r\n }\r\n }\r\n\r\n private validaMinMax(value: number): boolean {\r\n if ((this.min === undefined) && this.max === undefined) return true;\r\n if (!(this.min === undefined) && value < this.min) return false;\r\n if (!(this.max === undefined) && value > this.max) return false;\r\n return true;\r\n }\r\n}\r\n","export class Ordem {\r\n isCrescente: boolean;\r\n colName: string;\r\n onToggle?: () => void;\r\n constructor(ordens: OrdemInfo[], isCrescente: boolean, onToggle?: () => void) {\r\n const d = ordens.filter(x => x.default === true).firstOrNull();\r\n this.colName = d === null ? ordens[0].value : d.value;\r\n this.isCrescente = isCrescente;\r\n this.onToggle = onToggle;\r\n }\r\n\r\n toggle() {\r\n this.isCrescente = !this.isCrescente;\r\n if (this.onToggle !== undefined)\r\n this.onToggle();\r\n }\r\n\r\n toString(): string {\r\n return this.colName + (!this.isCrescente ? \" desc\" : \"\")\r\n }\r\n}\r\n\r\nexport interface OrdemInfo {\r\n name: string;\r\n value: string;\r\n default?: boolean;\r\n}\r\n","import { SearchSetting } from \"./search-setting\";\r\n\r\n\r\nexport class PagamentoRecebimentoSearchSetting extends SearchSetting {\r\n exibirPagamentos: boolean;\r\n exibirRecebimentos: boolean;\r\n gruposDespesasIds: number[] = [];\r\n gruposReceitasIds: number[] = [];\r\n marcadoresIds: number[] = [];\r\n contasIds: number[] = [];\r\n\r\n constructor() {\r\n super();\r\n this.exibirPagamentos = true;\r\n this.exibirRecebimentos = true;\r\n }\r\n}\r\n","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class OcupacaoFilterSetting extends SearchSetting {\r\n dom: boolean;\r\n seg: boolean;\r\n ter: boolean;\r\n qua: boolean;\r\n qui: boolean;\r\n sex: boolean;\r\n sab: boolean;\r\n\r\n exibirPernoite?: boolean;\r\n exibirNormal?: boolean;\r\n\r\n constructor() {\r\n super();\r\n this.dom = false;\r\n this.seg = false;\r\n this.ter = false;\r\n this.qua = false;\r\n this.qui = false;\r\n this.sex = false;\r\n this.sab = false;\r\n }\r\n}\r\n","import { OcupacaoFilterSetting } from \"./ocupacao-filter-setting\";\r\n\r\nexport class OcupacaoSearchSetting extends OcupacaoFilterSetting {\r\n clienteFidelidadeId?: number;\r\n incluiOcupacaoAberta?: boolean;\r\n dateFieldEnum: OcupacaoSearchDateField;\r\n tipoEntrada?: OcupacaoSearchTipoEntrada;\r\n conducao?: OcupacaoConducao;\r\n mostrouContaMult?: boolean;\r\n mostrouContaMaiorMenor?: boolean;\r\n mostrouContaSemCarro?: boolean;\r\n teveExclusaoProduto?: boolean;\r\n teveTransferencia?: boolean;\r\n teveEdicaoFormaPgto?: boolean;\r\n teveDesconto?: boolean;\r\n teveAcrescimo?: boolean;\r\n teveCortesia?: boolean;\r\n teveConsumo?: boolean;\r\n teveExcesso?: boolean;\r\n tevePernoite?: boolean;\r\n teveNormal?: boolean;\r\n tevePessoaExtra?: boolean;\r\n suites?: number[];\r\n marcador?: number;\r\n caixas?: number[];\r\n placas?: string[];\r\n classes?: number[];\r\n operadores?: number[];\r\n teveClienteFidelidade?: boolean;\r\n teveNegociacao?: boolean;\r\n teveMudancaModalidade?: boolean;\r\n formaPagamento?: number;\r\n produtosGrupos?: number[];\r\n imprimeEntradasVeiculos? : boolean;\r\n cuponsPromocionais? : string[];\r\n naoFoiHospedagem?: boolean;\r\n constructor() {\r\n super();\r\n this.dateFieldEnum = OcupacaoSearchDateField.DataBaseCaixa;\r\n }\r\n}\r\n\r\nexport enum PorOcupacaoTipo {\r\n PorSuite, PorClasse, PorPermanencia\r\n}\r\n\r\nexport enum OcupacaoSearchDateField {\r\n DataBaseCaixa = 0,\r\n Entrada = 1,\r\n Saida = 2,\r\n EntradaSaida = 3,\r\n Fechamento = 4,\r\n LancamentoConsumo = 5\r\n}\r\n\r\nexport enum OcupacaoSearchTipoEntrada {\r\n Todas,\r\n Auto,\r\n Manual\r\n}\r\n\r\nexport enum OcupacaoConducao {\r\n Carro,\r\n Moto,\r\n APe,\r\n Carros,\r\n Taxi\r\n}","import { OcupacaoSearchDateField } from \"./ocupacao-search-setting\";\r\nimport { SearchSetting } from \"./search-setting\";\r\n\r\n\r\nexport class ConsumoProdutoSearchSetting extends SearchSetting {\r\n porPeriodoHora?: boolean;\r\n horaInicial?: number;\r\n horaFinal?: number;\r\n minutoInicial?: number;\r\n minutoFinal?: number;\r\n porFaixaHorarioHoraInicial? : number;\r\n porFaixaHorarioHoraFinal? : number;\r\n porFaixaHorario : boolean;\r\n exibeVendas: boolean;\r\n exibeDiretaFunc: boolean;\r\n exibeConsumoInterno: boolean;\r\n operadorId?: number;\r\n grupoId?:number;\r\n porSubgrupo : boolean;\r\n dateFieldEnum: OcupacaoSearchDateField;\r\n\r\n exibirPernoite?: boolean;\r\n exibirNormal?: boolean;\r\n\r\n exibirPedido?: boolean;\r\n exibirCamareiraCheckout?: boolean;\r\n exibirPedidoCliente?: boolean;\r\n exibirLancamentoComanda? : boolean;\r\n \r\n constructor() {\r\n super();\r\n this.dateFieldEnum = OcupacaoSearchDateField.DataBaseCaixa;\r\n this.exibeVendas = true;\r\n this.exibeConsumoInterno = true;\r\n this.exibeDiretaFunc = true;\r\n this.porSubgrupo = false;\r\n this.porFaixaHorario = false;\r\n this.horaInicial = 0;\r\n this.minutoInicial = 0;\r\n this.horaFinal = 23;\r\n this.minutoFinal = 59;\r\n }\r\n}\r\n","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class DuplicataSearchSetting extends SearchSetting {\r\n \r\n exibeQuitado: boolean;\r\n exibeParcial: boolean;\r\n exibeEmAberto: boolean;\r\n pessoaId?: number;\r\n grupoId?: number;\r\n gruposIds?: number[];\r\n marcadoresIds?: number[];\r\n marcadorId?: number;\r\n apenasNaoOperacional?: boolean;\r\n apenasOperacional?: boolean;\r\n apenasNaoOperacionais?: boolean;\r\n ultimosCadastrados : boolean = false;\r\n contasIds?: number[];\r\n\r\n constructor(public isDespesa: boolean, propChanged?: () => void) {\r\n super(propChanged);\r\n this.exibeQuitado = false;\r\n this.exibeParcial = false;\r\n this.exibeEmAberto = false;\r\n this.ordem = \"Vencimento\";\r\n }\r\n}","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class ProdutoSearchSetting extends SearchSetting {\r\n\r\n exibeControladoEstoque: boolean;\r\n exibeMostraRecepcao: boolean;\r\n exibeImprimeCozinha: boolean;\r\n exibeImprimeCorredor: boolean;\r\n grupos?: number[] | undefined | null;\r\n subgrupos?: number[] | undefined | null;\r\n exibeEmiteFiscal: boolean;\r\n exibeNaoEmiteFiscal: boolean;\r\n setorSubEstoqueId: number | undefined | null;\r\n cst: string | undefined | null;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.exibeControladoEstoque = false;\r\n this.exibeMostraRecepcao = false;\r\n this.exibeImprimeCorredor = false;\r\n this.exibeImprimeCozinha = false;\r\n this.exibeEmiteFiscal = false;\r\n this.exibeNaoEmiteFiscal = false;\r\n }\r\n}","import { SearchSetting } from \"./search-setting\";\r\n\r\nexport class SuitesIntervencoesSetting extends SearchSetting {\r\n suites?: number[];\r\n operadores?: number[];\r\n camareiras?: number[];\r\n status?: number[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportFileService {\r\n\r\n empresaNomeFile?: string;\r\n constructor() { }\r\n\r\n start(empresaNomeFile: string) {\r\n this.empresaNomeFile = empresaNomeFile.replace(' ', \"_\").toLowerCase();;\r\n }\r\n\r\n exportarExcel(r: any, fileName: string) {\r\n const blob = new Blob([r], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n FileSaver.saveAs(blob, `${fileName}.${this.empresaNomeFile}.xlsx`);\r\n }\r\n printHtml(r: any) {\r\n const s = r + '<script>window.onload = function() { window.print(); }</script>';\r\n const blob = new Blob([s], { type: 'text/html' });\r\n const url = window.URL.createObjectURL(blob);\r\n const w = window.open(url, '_blank', 'noreferrer');\r\n }\r\n}\r\n","import { Injectable, } from '@angular/core';\r\nimport { RadioButtonGroupData } from '../../public-api';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Preferences {\r\n constructor() {\r\n }\r\n\r\n loadGroup(key: string, list: RadioButtonGroupData[], defaultValue : any): any {\r\n const t = localStorage.getItem(key);\r\n if (t === null) return defaultValue;\r\n let defValue: any;\r\n for (let i = 0; i < list.length; i++) {\r\n const item = list[i];\r\n const isDefault = (item.value + '') === t;\r\n item.default = isDefault;\r\n if (isDefault)\r\n defValue = item.value;\r\n }\r\n return defValue;\r\n }\r\n\r\n load<T>(key: string, defaultValue : T) : T\r\n {\r\n const json = localStorage.getItem(key);\r\n if (json === null) return defaultValue;\r\n return JSON.parse(json);\r\n }\r\n\r\n saveGroup(key: string, data : RadioButtonGroupData) {\r\n localStorage.setItem(key, data.value);\r\n }\r\n\r\n save<T>(key: string, obj : T)\r\n {\r\n const json = JSON.stringify(obj);\r\n localStorage.setItem(key, json);\r\n }\r\n}\r\n","/*\n * Public API Surface of oxpi-nglib\n */\n\n//export * from './lib/oxpi-nglib.service';\nexport * from './lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component';\nexport * from './lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component';\nexport * from './lib/cadastros/funcionarios/funcionario-form/funcionario-form.component';\nexport * from './lib/cadastros/funcionarios/funcionarios/funcionarios.component';\n\nexport * from './lib/cadastros/clientes/clientes/clientes-form.component';\nexport * from './lib/cadastros/clientes/clientes/clientes.component';\nexport * from './lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component';\nexport * from './lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component';\nexport * from './lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component';\n\nexport * from './lib/cadastros/fornecedores/fornecedores/fornecedores-form.component';\nexport * from './lib/cadastros/fornecedores/fornecedores/fornecedores.component';\nexport * from './lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component';\nexport * from './lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component';\nexport * from './lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component';\n\nexport * from './lib/controls/busy-indicator/busy-indicator.component';\nexport * from './lib/controls/check-button/check-button.component';\nexport * from './lib/controls/image-viewer/image-viewer.component';\nexport * from './lib/controls/month-year-picker/month-year-picker.component';\nexport * from './lib/controls/numeric-picker/numeric-picker.component';\nexport * from './lib/controls/paginator/paginator.component';\nexport * from './lib/controls/radio-button-group/radio-button-group.component';\nexport * from './lib/controls/item-card/item-card.component';\nexport * from './lib/controls/selecao-list-item/selecao-list-item.component';\nexport * from './lib/controls/alert-dialog/alert-dialog.component';\n\nexport * from './lib/oxpi-nglib.module';\n\nexport * from './lib/models/entidades/id-nome-model';\nexport * from './lib/models/entidades/login-item';\nexport * from './lib/models/entidades/login-result';\nexport * from './lib/models/entidades/permissoes';\nexport * from './lib/models/entidades/sensores-def';\nexport * from './lib/models/entidades/usuario';\nexport * from './lib/models/entidades/setor-estoque';\nexport * from './lib/models/entidades/pessoa';\nexport * from './lib/models/entidades/operador';\nexport * from './lib/models/entidades/suite-base';\nexport * from './lib/models/entidades/ownership';\nexport * from './lib/models/entidades/funcionario';\n\n\n\nexport * from './lib/models/tuple';\n\nexport * from './lib/models/infra/busy-state';\nexport * from './lib/models/infra/lazy-trigger';\nexport * from './lib/models/infra/number-parser';\nexport * from './lib/models/infra/ordem';\nexport * from './lib/models/infra/paging-result';\nexport * from './lib/models/infra/utils-methods';\nexport * from './lib/models/infra/validations';\nexport * from './lib/models/infra/selecao-utils';\nexport * from './lib/models/infra/convert-setting-to-string';\n\nexport * from './lib/animations/animations';\n\nexport * from './lib/models/settings/PagamentoRecebimentoSearchSetting';\nexport * from './lib/models/settings/consumo-produto-search-setting';\nexport * from './lib/models/settings/duplicata-search-setting';\nexport * from './lib/models/settings/ocupacao-filter-setting';\nexport * from './lib/models/settings/ocupacao-search-setting';\nexport * from './lib/models/settings/search-setting';\nexport * from './lib/models/settings/produto-search-setting';\nexport * from './lib/models/settings/suites-intervencoes-setting';\n\nexport * from './lib/providers/export.file.service';\nexport * from './lib/providers/auth-data.service';\nexport * from './lib/providers/common-web-service';\nexport * from './lib/providers/notification.service';\nexport * from './lib/providers/focus.service';\nexport * from './lib/providers/preference.service';\nexport * from './lib/providers/safe-html.pipe';\nexport * from './lib/providers/screen-helper.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CommonWebService","i2","i3","i6","i7.BusyIndicatorComponent","i4.ScreenHelperService","i5","i7","i8.BusyIndicatorComponent","i9.FuncionarioFormComponent","i1.AuthDataService","i2.NotificationService","i4.AuthDataService","i5.ScreenHelperService","i8","i9","i10.BusyIndicatorComponent","i11.ItemCardComponent","i12.FuncionarioFormComponent","i4","i9.ClientesFormComponent","i12.ClientesFormComponent","i2.CommonWebService","i3.NotificationService","i11.SelecaoListItemComponent","i9.FornecedoresFormComponent","i12.FornecedoresFormComponent","i2.CheckButtonComponent"],"mappings":"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"}
|