oxpi-nglib 1.0.21 → 1.0.24

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.
Files changed (34) hide show
  1. package/esm2020/lib/cadastros/clientes/clientes/clientes-form.component.mjs +18 -0
  2. package/esm2020/lib/cadastros/clientes/clientes/clientes.component.mjs +165 -0
  3. package/esm2020/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.mjs +73 -0
  4. package/esm2020/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.mjs +71 -0
  5. package/esm2020/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.mjs +108 -0
  6. package/esm2020/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.mjs +19 -0
  7. package/esm2020/lib/cadastros/fornecedores/fornecedores/fornecedores.component.mjs +165 -0
  8. package/esm2020/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.mjs +73 -0
  9. package/esm2020/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.mjs +71 -0
  10. package/esm2020/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.mjs +108 -0
  11. package/esm2020/lib/models/entidades/pessoa.mjs +9 -0
  12. package/esm2020/lib/models/settings/produto-search-setting.mjs +2 -2
  13. package/esm2020/lib/oxpi-nglib.module.mjs +33 -3
  14. package/esm2020/lib/providers/common-web-service.mjs +47 -1
  15. package/esm2020/public-api.mjs +12 -1
  16. package/fesm2015/oxpi-nglib.mjs +816 -5
  17. package/fesm2015/oxpi-nglib.mjs.map +1 -1
  18. package/fesm2020/oxpi-nglib.mjs +808 -5
  19. package/fesm2020/oxpi-nglib.mjs.map +1 -1
  20. package/lib/cadastros/clientes/clientes/clientes-form.component.d.ts +10 -0
  21. package/lib/cadastros/clientes/clientes/clientes.component.d.ts +36 -0
  22. package/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.d.ts +27 -0
  23. package/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.d.ts +27 -0
  24. package/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.d.ts +35 -0
  25. package/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.d.ts +10 -0
  26. package/lib/cadastros/fornecedores/fornecedores/fornecedores.component.d.ts +36 -0
  27. package/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.d.ts +27 -0
  28. package/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.d.ts +27 -0
  29. package/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.d.ts +35 -0
  30. package/lib/models/entidades/pessoa.d.ts +29 -0
  31. package/lib/oxpi-nglib.module.d.ts +20 -10
  32. package/lib/providers/common-web-service.d.ts +15 -1
  33. package/package.json +1 -1
  34. package/public-api.d.ts +11 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, EventEmitter, Component, Input, Inject, Output, HostListener, Pipe, NgModule } from '@angular/core';
2
+ import { Injectable, EventEmitter, Component, Input, Inject, Output, HostListener, Optional, Pipe, NgModule } from '@angular/core';
3
3
  import * as i3 from '@angular/material/dialog';
4
4
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
5
5
  import * as i1 from '@angular/common/http';
@@ -132,6 +132,7 @@ class CommonWebService {
132
132
  this.http = http;
133
133
  this.ROOT_URL = '';
134
134
  this.GERENCIAL_URL = '';
135
+ this.FINANCAS_URL = '';
135
136
  this.FUNCIONARIO_BASE_URL = '';
136
137
  this.FUNCIONARIO_CARGO_BASE_URL = '';
137
138
  this.token = '';
@@ -143,6 +144,8 @@ class CommonWebService {
143
144
  this.MEDIA_BASE_URL = '';
144
145
  this.MEDIA_PRODUTO_IMAGEM_URL = '';
145
146
  this.PRODUTO_COMPOSICAO_BASE_URL = '';
147
+ this.FORNECEDOR_BASE_URL = '';
148
+ this.CLIENTE_BASE_URL = '';
146
149
  }
147
150
  setToken(token) {
148
151
  this.token = token;
@@ -158,8 +161,11 @@ class CommonWebService {
158
161
  this.PRODUTO_CATEGORIA_CARDAPIO_BASE_URL = rootUrl + "ProdutoCategoriaCardapio/";
159
162
  this.ESTOQUE_URL = rootUrl + 'Estoque/';
160
163
  this.GERENCIAL_URL = rootUrl + 'Gerencial/';
164
+ this.FINANCAS_URL = rootUrl + 'Financas/';
161
165
  this.MEDIA_BASE_URL = this.GERENCIAL_URL + "Media/";
162
166
  this.MEDIA_PRODUTO_IMAGEM_URL = this.GERENCIAL_URL + 'GetProdutoImagem/';
167
+ this.FORNECEDOR_BASE_URL = this.FINANCAS_URL + 'Fornecedor/';
168
+ this.CLIENTE_BASE_URL = this.FINANCAS_URL + 'Cliente/';
163
169
  }
164
170
  getFuncionarios() {
165
171
  const url = this.FUNCIONARIO_BASE_URL;
@@ -315,6 +321,46 @@ class CommonWebService {
315
321
  const url = this.PRODUTO_COMPOSICAO_BASE_URL + id;
316
322
  return this.http.delete(url, this.getHttpOptions()).pipe(map(data => data));
317
323
  }
324
+ buscaCliente(setting) {
325
+ const url = this.CLIENTE_BASE_URL + CommonWebService.URL_PART_BUSCA;
326
+ return this.http.post(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));
327
+ }
328
+ getAllCliente() {
329
+ const url = this.CLIENTE_BASE_URL;
330
+ return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
331
+ }
332
+ saveCliente(s) {
333
+ const url = this.CLIENTE_BASE_URL;
334
+ return this.http.post(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));
335
+ }
336
+ addCliente(p) {
337
+ const url = this.CLIENTE_BASE_URL;
338
+ return this.http.put(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));
339
+ }
340
+ deleteCliente(id) {
341
+ const url = this.CLIENTE_BASE_URL + id;
342
+ return this.http.delete(url, this.getHttpOptions()).pipe(map(data => data));
343
+ }
344
+ buscaFornecedor(setting) {
345
+ const url = this.FORNECEDOR_BASE_URL + CommonWebService.URL_PART_BUSCA;
346
+ return this.http.post(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));
347
+ }
348
+ getAllFornecedor() {
349
+ const url = this.FORNECEDOR_BASE_URL;
350
+ return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
351
+ }
352
+ saveFornecedor(s) {
353
+ const url = this.FORNECEDOR_BASE_URL;
354
+ return this.http.post(url, JSON.stringify(s), this.getHttpOptions()).pipe(map(data => data));
355
+ }
356
+ addFornecedor(p) {
357
+ const url = this.FORNECEDOR_BASE_URL;
358
+ return this.http.put(url, JSON.stringify(p), this.getHttpOptions()).pipe(map(data => data));
359
+ }
360
+ deleteFornecedor(id) {
361
+ const url = this.FORNECEDOR_BASE_URL + id;
362
+ return this.http.delete(url, this.getHttpOptions()).pipe(map(data => data));
363
+ }
318
364
  getHttpOptions(parameters) {
319
365
  return {
320
366
  headers: new HttpHeaders({
@@ -2598,7 +2644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
2598
2644
  class ProdutoSearchSetting extends SearchSetting {
2599
2645
  constructor() {
2600
2646
  super();
2601
- this.exibeControladoEstoque = true;
2647
+ this.exibeControladoEstoque = false;
2602
2648
  this.exibeMostraRecepcao = false;
2603
2649
  this.exibeImprimeCorredor = false;
2604
2650
  this.exibeImprimeCozinha = false;
@@ -3692,6 +3738,751 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
3692
3738
  args: [{ selector: 'ox-produtos-subgrupos', animations: [fadeAnimation], template: "<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\u00E7\u00F5es</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 Subgrupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Subgrupo\">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>Subgrupos de Produtos</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\u00E7\u00F5es</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\u00E3o 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 subgrupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-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>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"] }]
3693
3739
  }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
3694
3740
 
3741
+ class ClientesFormComponent {
3742
+ constructor() { }
3743
+ ngOnInit() {
3744
+ }
3745
+ }
3746
+ ClientesFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3747
+ ClientesFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ClientesFormComponent, selector: "app-clientes-form", inputs: { model: "model" }, ngImport: i0, template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" 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\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <input [(ngModel)]=\"model.cnpjCpf\" class=\"form-control input-300\" tabindex=\"3\">\n </div>\n <div class=\"form-group\">\n <label>Observa\u00E7\u00F5es</label>\n <input [(ngModel)]=\"model.obs\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>Endere\u00E7o</label>\n <input [(ngModel)]=\"model.endereco\" class=\"form-control input-300\">\n </div>\n\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>N\u00FAmero</label>\n <input [(ngModel)]=\"model.numero\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" class=\"form-control input-300\">\n </div>\n</ng-container>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
3748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesFormComponent, decorators: [{
3749
+ type: Component,
3750
+ args: [{ selector: 'app-clientes-form', template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" 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\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <input [(ngModel)]=\"model.cnpjCpf\" class=\"form-control input-300\" tabindex=\"3\">\n </div>\n <div class=\"form-group\">\n <label>Observa\u00E7\u00F5es</label>\n <input [(ngModel)]=\"model.obs\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>Endere\u00E7o</label>\n <input [(ngModel)]=\"model.endereco\" class=\"form-control input-300\">\n </div>\n\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>N\u00FAmero</label>\n <input [(ngModel)]=\"model.numero\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" class=\"form-control input-300\">\n </div>\n</ng-container>", styles: [":host{display:flex;flex-direction:column}\n"] }]
3751
+ }], ctorParameters: function () { return []; }, propDecorators: { model: [{
3752
+ type: Input
3753
+ }] } });
3754
+
3755
+ function validaPessoa(item, focus) {
3756
+ if (valTextEmpty(item.nome)) {
3757
+ focus.set('nome');
3758
+ return 'Digite um nome válido.';
3759
+ }
3760
+ return null;
3761
+ }
3762
+
3763
+ class ClientesAddDialogComponent {
3764
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
3765
+ this.ws = ws;
3766
+ this.notification = notification;
3767
+ this.dataDialog = dataDialog;
3768
+ this.dialog = dialog;
3769
+ this.elRef = elRef;
3770
+ this.dialogRef = dialogRef;
3771
+ this.screenHelper = screenHelper;
3772
+ this.isBusy = false;
3773
+ this.focus = new FocusService();
3774
+ this.model = dataDialog !== null && dataDialog !== void 0 ? dataDialog : {
3775
+ id: 0,
3776
+ nome: '',
3777
+ isAtivo: true
3778
+ };
3779
+ this.mobile = this.screenHelper.isMedium;
3780
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
3781
+ }
3782
+ ngOnInit() {
3783
+ this.focus.registerElement(this.elRef.nativeElement);
3784
+ }
3785
+ ngOnDestroy() {
3786
+ this.focus.unregisterElement(this.elRef.nativeElement);
3787
+ }
3788
+ salvar() {
3789
+ const valMsg = validaPessoa(this.model, this.focus);
3790
+ if (valMsg) {
3791
+ this.notification.showMsgError(valMsg);
3792
+ return;
3793
+ }
3794
+ this.isBusy = true;
3795
+ this.ws.addCliente(this.model)
3796
+ .subscribe({
3797
+ next: r => {
3798
+ this.isBusy = false;
3799
+ this.model.id = r;
3800
+ this.notification.showMsg("Salvo com sucesso.");
3801
+ this.dialogRef.close(this.model);
3802
+ },
3803
+ error: err => {
3804
+ this.isBusy = false;
3805
+ this.notification.showMsg(err.error);
3806
+ }
3807
+ });
3808
+ }
3809
+ }
3810
+ ClientesAddDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesAddDialogComponent, deps: [{ token: CommonWebService }, { token: NotificationService }, { token: MAT_DIALOG_DATA, optional: true }, { token: i3.MatDialog }, { token: i0.ElementRef }, { token: i3.MatDialogRef }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
3811
+ ClientesAddDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ClientesAddDialogComponent, selector: "app-clientes-add-dialog", ngImport: i0, template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: ClientesFormComponent, selector: "app-clientes-form", inputs: ["model"] }] });
3812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesAddDialogComponent, decorators: [{
3813
+ type: Component,
3814
+ args: [{ selector: 'app-clientes-add-dialog', template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
3815
+ }], ctorParameters: function () {
3816
+ return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
3817
+ type: Optional
3818
+ }, {
3819
+ type: Inject,
3820
+ args: [MAT_DIALOG_DATA]
3821
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }];
3822
+ } });
3823
+
3824
+ class ClientesEditDialogComponent {
3825
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
3826
+ this.ws = ws;
3827
+ this.notification = notification;
3828
+ this.dataDialog = dataDialog;
3829
+ this.dialog = dialog;
3830
+ this.elRef = elRef;
3831
+ this.dialogRef = dialogRef;
3832
+ this.screenHelper = screenHelper;
3833
+ this.isBusy = false;
3834
+ this.focus = new FocusService();
3835
+ if (dataDialog) {
3836
+ this.model = dataDialog;
3837
+ }
3838
+ this.mobile = this.screenHelper.isMedium;
3839
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
3840
+ }
3841
+ ngOnInit() {
3842
+ this.focus.registerElement(this.elRef.nativeElement);
3843
+ }
3844
+ ngOnDestroy() {
3845
+ this.focus.unregisterElement(this.elRef.nativeElement);
3846
+ }
3847
+ salvar() {
3848
+ if (!this.model)
3849
+ return;
3850
+ const valMsg = validaPessoa(this.model, this.focus);
3851
+ if (valMsg) {
3852
+ this.notification.showMsgError(valMsg);
3853
+ return;
3854
+ }
3855
+ this.isBusy = true;
3856
+ this.ws.saveCliente(this.model)
3857
+ .subscribe({
3858
+ next: r => {
3859
+ this.isBusy = false;
3860
+ this.notification.showMsg("Salvo com sucesso.");
3861
+ if (this.dialogRef)
3862
+ this.dialogRef.close(true);
3863
+ },
3864
+ error: err => {
3865
+ this.isBusy = false;
3866
+ this.notification.showMsg(err.error);
3867
+ }
3868
+ });
3869
+ }
3870
+ }
3871
+ ClientesEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesEditDialogComponent, deps: [{ token: CommonWebService }, { token: NotificationService }, { token: MAT_DIALOG_DATA }, { token: i3.MatDialog }, { token: i0.ElementRef }, { token: i3.MatDialogRef }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
3872
+ ClientesEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ClientesEditDialogComponent, selector: "app-clientes-edit-dialog", ngImport: i0, template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: ClientesFormComponent, selector: "app-clientes-form", inputs: ["model"] }] });
3873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesEditDialogComponent, decorators: [{
3874
+ type: Component,
3875
+ args: [{ selector: 'app-clientes-edit-dialog', template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
3876
+ }], ctorParameters: function () {
3877
+ return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
3878
+ type: Inject,
3879
+ args: [MAT_DIALOG_DATA]
3880
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }];
3881
+ } });
3882
+
3883
+ class ClientesComponent {
3884
+ constructor(ws, notification, dialog, auth, screenHelper) {
3885
+ this.ws = ws;
3886
+ this.notification = notification;
3887
+ this.dialog = dialog;
3888
+ this.screenHelper = screenHelper;
3889
+ this.isBusy = false;
3890
+ this.items = [];
3891
+ this.selectedItem = null;
3892
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
3893
+ this.setting = new SearchSetting();
3894
+ this.focus = new FocusService();
3895
+ this.allowAdd = auth.permissoes.financasClienteAdd;
3896
+ this.allowExcluir = auth.permissoes.financasClienteDelete;
3897
+ this.mobile = this.screenHelper.isMedium;
3898
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
3899
+ }
3900
+ ngOnInit() {
3901
+ this.setting.ordem = "nome";
3902
+ this.atualiza();
3903
+ }
3904
+ onSelectItem() {
3905
+ if (!this.focus.hasInit()) {
3906
+ setTimeout(() => {
3907
+ this.focus.registerElementById("form-column");
3908
+ this.focus.setFirst();
3909
+ }, 500);
3910
+ //this._focus.registerElementById("form-column");
3911
+ }
3912
+ else {
3913
+ this.focus.setFirst();
3914
+ }
3915
+ }
3916
+ ngOnDestroy() {
3917
+ this.focus.unregisterElementById("form-column");
3918
+ }
3919
+ atualiza() {
3920
+ this.isBusy = true;
3921
+ this.ws.buscaCliente(this.setting)
3922
+ .subscribe({
3923
+ next: r => {
3924
+ this.items = r;
3925
+ this.selectedItem = null;
3926
+ console.info(r);
3927
+ this.isBusy = false;
3928
+ }, error: err => {
3929
+ this.isBusy = false;
3930
+ this.notification.showHttpError(err);
3931
+ }
3932
+ });
3933
+ }
3934
+ excluir() {
3935
+ const item = this.selectedItem;
3936
+ if (!item)
3937
+ return;
3938
+ confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do cliente ${item.nome}?`, () => {
3939
+ this.isBusy = true;
3940
+ this.ws.deleteCliente(item.id)
3941
+ .subscribe({
3942
+ next: r => {
3943
+ this.notification.showMsg("O cliente foi excluído com sucesso.");
3944
+ this.items.remove(item);
3945
+ this.selectedItem = null;
3946
+ this.isBusy = false;
3947
+ },
3948
+ error: err => {
3949
+ this.isBusy = false;
3950
+ this.notification.showMsg(err.error);
3951
+ }
3952
+ });
3953
+ });
3954
+ }
3955
+ novo() {
3956
+ let height = (window.innerHeight * 0.90) + 'px';
3957
+ let width = 550 + 'px';
3958
+ if (this.mobile) {
3959
+ width = (window.innerWidth * 0.99) + 'px';
3960
+ //height = (window.innerHeight * 0.98) + 'px';
3961
+ }
3962
+ const dialog = this.dialog.open(ClientesAddDialogComponent, {
3963
+ width: width,
3964
+ height: height,
3965
+ maxWidth: '100%',
3966
+ panelClass: 'dialog-p0',
3967
+ });
3968
+ dialog.afterClosed().subscribe(result => {
3969
+ if (result === undefined)
3970
+ return;
3971
+ this.notification.showMsg("Salvo com sucesso.");
3972
+ this.atualiza();
3973
+ });
3974
+ }
3975
+ abreCadastro(item) {
3976
+ let height = undefined;
3977
+ let width = 550 + 'px';
3978
+ if (this.mobile) {
3979
+ width = (window.innerWidth * 0.99) + 'px';
3980
+ height = (window.innerHeight * 0.99) + 'px';
3981
+ }
3982
+ const dialog = this.dialog.open(ClientesEditDialogComponent, {
3983
+ data: item,
3984
+ width: width,
3985
+ height: height,
3986
+ maxWidth: '100%',
3987
+ panelClass: 'dialog-p0',
3988
+ });
3989
+ dialog.afterClosed().subscribe(result => {
3990
+ if (result !== true)
3991
+ return;
3992
+ this.notification.showMsg("Salvo com sucesso.");
3993
+ this.atualiza();
3994
+ });
3995
+ }
3996
+ salvar() {
3997
+ const item = this.selectedItem;
3998
+ if (!item)
3999
+ return;
4000
+ const valMsg = validaPessoa(item, this.focus);
4001
+ if (valMsg) {
4002
+ this.notification.showMsgError(valMsg);
4003
+ return;
4004
+ }
4005
+ this.isBusy = true;
4006
+ this.ws.saveCliente(item)
4007
+ .subscribe({
4008
+ next: r => {
4009
+ this.notification.showMsg("Salvo com sucesso.");
4010
+ this.isBusy = false;
4011
+ },
4012
+ error: err => {
4013
+ this.isBusy = false;
4014
+ this.notification.showMsg(err.error);
4015
+ }
4016
+ });
4017
+ }
4018
+ }
4019
+ ClientesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesComponent, deps: [{ token: CommonWebService }, { token: NotificationService }, { token: i3.MatDialog }, { token: AuthDataService }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
4020
+ ClientesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ClientesComponent, selector: "app-clientes", ngImport: i0, template: "<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\u00E7\u00F5es</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\u00E7\u00F5es</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\u00E3o 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>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fafafa}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }, { kind: "component", type: ClientesFormComponent, selector: "app-clientes-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
4021
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesComponent, decorators: [{
4022
+ type: Component,
4023
+ args: [{ selector: 'app-clientes', animations: [fadeAnimation], template: "<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\u00E7\u00F5es</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\u00E7\u00F5es</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\u00E3o 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>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fafafa}\n"] }]
4024
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4025
+
4026
+ class SelecaoClienteDialogComponent {
4027
+ constructor(dialogRef, ws, notification, dialog, auth, screenHelper) {
4028
+ this.dialogRef = dialogRef;
4029
+ this.ws = ws;
4030
+ this.notification = notification;
4031
+ this.dialog = dialog;
4032
+ this.screenHelper = screenHelper;
4033
+ this.items = [];
4034
+ this.selectedItem = null;
4035
+ this.isBusy = false;
4036
+ this.setting = new SearchSetting();
4037
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
4038
+ this.nav = new NavegacaoSelecaoDialogUtil(this);
4039
+ this.mobile = this.screenHelper.isMedium;
4040
+ this.allowAdd = auth.permissoes.financasClienteAdd;
4041
+ this.allowEdit = auth.permissoes.financasClientePesquisa;
4042
+ }
4043
+ ngOnInit() {
4044
+ this.setting.ordem = "nome";
4045
+ this.atualiza();
4046
+ }
4047
+ atualiza() {
4048
+ this.isBusy = true;
4049
+ this.ws.buscaCliente(this.setting)
4050
+ .subscribe({
4051
+ next: r => {
4052
+ this.isBusy = false;
4053
+ this.items = r;
4054
+ console.info(r);
4055
+ },
4056
+ error: err => {
4057
+ this.isBusy = false;
4058
+ this.notification.showHttpError(err);
4059
+ }
4060
+ });
4061
+ }
4062
+ selectItem(i) {
4063
+ if (this.selectedItem === i) {
4064
+ this.dialogRef.close(i);
4065
+ }
4066
+ this.selectedItem = i;
4067
+ }
4068
+ novo() {
4069
+ let height = (window.innerHeight * 0.90) + 'px';
4070
+ let width = 550 + 'px';
4071
+ if (this.mobile) {
4072
+ width = (window.innerWidth * 0.99) + 'px';
4073
+ //height = (window.innerHeight * 0.98) + 'px';
4074
+ }
4075
+ const dialog = this.dialog.open(ClientesAddDialogComponent, {
4076
+ width: width,
4077
+ height: height,
4078
+ maxWidth: '100%',
4079
+ panelClass: 'dialog-p0',
4080
+ });
4081
+ dialog.afterClosed().subscribe(result => {
4082
+ if (result === undefined)
4083
+ return;
4084
+ this.notification.showMsg("Salvo com sucesso.");
4085
+ this.atualiza();
4086
+ });
4087
+ }
4088
+ editar() {
4089
+ let height = (window.innerHeight * 0.90) + 'px';
4090
+ let width = 550 + 'px';
4091
+ if (this.mobile) {
4092
+ width = (window.innerWidth * 0.99) + 'px';
4093
+ //height = (window.innerHeight * 0.98) + 'px';
4094
+ }
4095
+ const dialog = this.dialog.open(ClientesEditDialogComponent, {
4096
+ width: width,
4097
+ height: height,
4098
+ maxWidth: '100%',
4099
+ panelClass: 'dialog-p0',
4100
+ data: this.selectedItem
4101
+ });
4102
+ dialog.afterClosed().subscribe(result => {
4103
+ if (result === undefined)
4104
+ return;
4105
+ this.notification.showMsg("Salvo com sucesso.");
4106
+ this.atualiza();
4107
+ });
4108
+ }
4109
+ }
4110
+ SelecaoClienteDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoClienteDialogComponent, deps: [{ token: i3.MatDialogRef }, { token: CommonWebService }, { token: NotificationService }, { token: i3.MatDialog }, { token: AuthDataService }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
4111
+ SelecaoClienteDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: SelecaoClienteDialogComponent, selector: "app-selecao-cliente-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o 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\u00E7\u00F5es</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 ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] });
4112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoClienteDialogComponent, decorators: [{
4113
+ type: Component,
4114
+ args: [{ selector: 'app-selecao-cliente-dialog', template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o 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\u00E7\u00F5es</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 ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
4115
+ }], ctorParameters: function () { return [{ type: i3.MatDialogRef }, { type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4116
+
4117
+ class FornecedoresFormComponent {
4118
+ constructor() {
4119
+ }
4120
+ ngOnInit() {
4121
+ }
4122
+ }
4123
+ FornecedoresFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4124
+ FornecedoresFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: { model: "model" }, ngImport: i0, template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" 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\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <input [(ngModel)]=\"model.cnpjCpf\" class=\"form-control input-300\" tabindex=\"3\">\n </div>\n <div class=\"form-group\">\n <label>Observa\u00E7\u00F5es</label>\n <input [(ngModel)]=\"model.obs\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>Endere\u00E7o</label>\n <input [(ngModel)]=\"model.endereco\" class=\"form-control input-300\">\n </div>\n\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>N\u00FAmero</label>\n <input [(ngModel)]=\"model.numero\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" class=\"form-control input-300\">\n </div>\n</ng-container>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
4125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresFormComponent, decorators: [{
4126
+ type: Component,
4127
+ args: [{ selector: 'app-fornecedores-form', template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" 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\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <input [(ngModel)]=\"model.cnpjCpf\" class=\"form-control input-300\" tabindex=\"3\">\n </div>\n <div class=\"form-group\">\n <label>Observa\u00E7\u00F5es</label>\n <input [(ngModel)]=\"model.obs\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>Endere\u00E7o</label>\n <input [(ngModel)]=\"model.endereco\" class=\"form-control input-300\">\n </div>\n\n <div class=\"hbox\">\n <div class=\"form-group\">\n <label>N\u00FAmero</label>\n <input [(ngModel)]=\"model.numero\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group margin-left-16\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" class=\"form-control input-300\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" class=\"form-control input-300\">\n </div>\n</ng-container>", styles: [":host{display:flex;flex-direction:column}\n"] }]
4128
+ }], ctorParameters: function () { return []; }, propDecorators: { model: [{
4129
+ type: Input
4130
+ }] } });
4131
+
4132
+ class FornecedoresAddDialogComponent {
4133
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
4134
+ this.ws = ws;
4135
+ this.notification = notification;
4136
+ this.dataDialog = dataDialog;
4137
+ this.dialog = dialog;
4138
+ this.elRef = elRef;
4139
+ this.dialogRef = dialogRef;
4140
+ this.screenHelper = screenHelper;
4141
+ this.isBusy = false;
4142
+ this.focus = new FocusService();
4143
+ this.model = dataDialog !== null && dataDialog !== void 0 ? dataDialog : {
4144
+ id: 0,
4145
+ nome: '',
4146
+ isAtivo: true
4147
+ };
4148
+ this.mobile = this.screenHelper.isMedium;
4149
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
4150
+ }
4151
+ ngOnInit() {
4152
+ this.focus.registerElement(this.elRef.nativeElement);
4153
+ }
4154
+ ngOnDestroy() {
4155
+ this.focus.unregisterElement(this.elRef.nativeElement);
4156
+ }
4157
+ salvar() {
4158
+ const valMsg = validaPessoa(this.model, this.focus);
4159
+ if (valMsg) {
4160
+ this.notification.showMsgError(valMsg);
4161
+ return;
4162
+ }
4163
+ this.isBusy = true;
4164
+ this.ws.addFornecedor(this.model)
4165
+ .subscribe({
4166
+ next: r => {
4167
+ this.isBusy = false;
4168
+ this.model.id = r;
4169
+ this.notification.showMsg("Salvo com sucesso.");
4170
+ this.dialogRef.close(this.model);
4171
+ },
4172
+ error: err => {
4173
+ this.isBusy = false;
4174
+ this.notification.showMsg(err.error);
4175
+ }
4176
+ });
4177
+ }
4178
+ }
4179
+ FornecedoresAddDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresAddDialogComponent, deps: [{ token: CommonWebService }, { token: NotificationService }, { token: MAT_DIALOG_DATA, optional: true }, { token: i3.MatDialog }, { token: i0.ElementRef }, { token: i3.MatDialogRef }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
4180
+ FornecedoresAddDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: FornecedoresAddDialogComponent, selector: "app-fornecedores-add-dialog", ngImport: i0, template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: ["model"] }] });
4181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresAddDialogComponent, decorators: [{
4182
+ type: Component,
4183
+ args: [{ selector: 'app-fornecedores-add-dialog', template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
4184
+ }], ctorParameters: function () {
4185
+ return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
4186
+ type: Optional
4187
+ }, {
4188
+ type: Inject,
4189
+ args: [MAT_DIALOG_DATA]
4190
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }];
4191
+ } });
4192
+
4193
+ class FornecedoresEditDialogComponent {
4194
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
4195
+ this.ws = ws;
4196
+ this.notification = notification;
4197
+ this.dataDialog = dataDialog;
4198
+ this.dialog = dialog;
4199
+ this.elRef = elRef;
4200
+ this.dialogRef = dialogRef;
4201
+ this.screenHelper = screenHelper;
4202
+ this.isBusy = false;
4203
+ this.focus = new FocusService();
4204
+ if (dataDialog) {
4205
+ this.model = dataDialog;
4206
+ }
4207
+ this.mobile = this.screenHelper.isMedium;
4208
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
4209
+ }
4210
+ ngOnInit() {
4211
+ this.focus.registerElement(this.elRef.nativeElement);
4212
+ }
4213
+ ngOnDestroy() {
4214
+ this.focus.unregisterElement(this.elRef.nativeElement);
4215
+ }
4216
+ salvar() {
4217
+ if (!this.model)
4218
+ return;
4219
+ const valMsg = validaPessoa(this.model, this.focus);
4220
+ if (valMsg) {
4221
+ this.notification.showMsgError(valMsg);
4222
+ return;
4223
+ }
4224
+ this.isBusy = true;
4225
+ this.ws.saveFornecedor(this.model)
4226
+ .subscribe({
4227
+ next: r => {
4228
+ this.isBusy = false;
4229
+ this.notification.showMsg("Salvo com sucesso.");
4230
+ if (this.dialogRef)
4231
+ this.dialogRef.close(true);
4232
+ },
4233
+ error: err => {
4234
+ this.isBusy = false;
4235
+ this.notification.showMsg(err.error);
4236
+ }
4237
+ });
4238
+ }
4239
+ }
4240
+ FornecedoresEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresEditDialogComponent, deps: [{ token: CommonWebService }, { token: NotificationService }, { token: MAT_DIALOG_DATA }, { token: i3.MatDialog }, { token: i0.ElementRef }, { token: i3.MatDialogRef }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
4241
+ FornecedoresEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: FornecedoresEditDialogComponent, selector: "app-fornecedores-edit-dialog", ngImport: i0, template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: ["model"] }] });
4242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresEditDialogComponent, decorators: [{
4243
+ type: Component,
4244
+ args: [{ selector: 'app-fornecedores-edit-dialog', template: "<div class=\"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>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
4245
+ }], ctorParameters: function () {
4246
+ return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
4247
+ type: Inject,
4248
+ args: [MAT_DIALOG_DATA]
4249
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }];
4250
+ } });
4251
+
4252
+ class FornecedoresComponent {
4253
+ constructor(ws, notification, dialog, auth, screenHelper) {
4254
+ this.ws = ws;
4255
+ this.notification = notification;
4256
+ this.dialog = dialog;
4257
+ this.screenHelper = screenHelper;
4258
+ this.isBusy = false;
4259
+ this.items = [];
4260
+ this.selectedItem = null;
4261
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
4262
+ this.setting = new SearchSetting();
4263
+ this.focus = new FocusService();
4264
+ this.allowAdd = auth.permissoes.financasFornecedorAdd;
4265
+ this.allowExcluir = auth.permissoes.financasFornecedorDelete;
4266
+ this.mobile = this.screenHelper.isMedium;
4267
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
4268
+ }
4269
+ ngOnInit() {
4270
+ this.setting.ordem = "nome";
4271
+ this.atualiza();
4272
+ }
4273
+ onSelectItem() {
4274
+ if (!this.focus.hasInit()) {
4275
+ setTimeout(() => {
4276
+ this.focus.registerElementById("form-column");
4277
+ this.focus.setFirst();
4278
+ }, 500);
4279
+ //this._focus.registerElementById("form-column");
4280
+ }
4281
+ else {
4282
+ this.focus.setFirst();
4283
+ }
4284
+ }
4285
+ ngOnDestroy() {
4286
+ this.focus.unregisterElementById("form-column");
4287
+ }
4288
+ atualiza() {
4289
+ this.isBusy = true;
4290
+ this.ws.buscaFornecedor(this.setting)
4291
+ .subscribe({
4292
+ next: r => {
4293
+ this.items = r;
4294
+ this.selectedItem = null;
4295
+ console.info(r);
4296
+ this.isBusy = false;
4297
+ }, error: err => {
4298
+ this.isBusy = false;
4299
+ this.notification.showHttpError(err);
4300
+ }
4301
+ });
4302
+ }
4303
+ excluir() {
4304
+ const item = this.selectedItem;
4305
+ if (!item)
4306
+ return;
4307
+ confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do fornecedor ${item.nome}?`, () => {
4308
+ this.isBusy = true;
4309
+ this.ws.deleteFornecedor(item.id)
4310
+ .subscribe({
4311
+ next: r => {
4312
+ this.notification.showMsg("O fornecedor foi excluído com sucesso.");
4313
+ this.items.remove(item);
4314
+ this.selectedItem = null;
4315
+ this.isBusy = false;
4316
+ },
4317
+ error: err => {
4318
+ this.isBusy = false;
4319
+ this.notification.showMsg(err.error);
4320
+ }
4321
+ });
4322
+ });
4323
+ }
4324
+ novo() {
4325
+ let height = (window.innerHeight * 0.90) + 'px';
4326
+ let width = 550 + 'px';
4327
+ if (this.mobile) {
4328
+ width = (window.innerWidth * 0.99) + 'px';
4329
+ //height = (window.innerHeight * 0.98) + 'px';
4330
+ }
4331
+ const dialog = this.dialog.open(FornecedoresAddDialogComponent, {
4332
+ width: width,
4333
+ height: height,
4334
+ maxWidth: '100%',
4335
+ panelClass: 'dialog-p0',
4336
+ });
4337
+ dialog.afterClosed().subscribe(result => {
4338
+ if (result === undefined)
4339
+ return;
4340
+ this.notification.showMsg("Salvo com sucesso.");
4341
+ this.atualiza();
4342
+ });
4343
+ }
4344
+ abreCadastro(item) {
4345
+ let height = undefined;
4346
+ let width = 550 + 'px';
4347
+ if (this.mobile) {
4348
+ width = (window.innerWidth * 0.99) + 'px';
4349
+ height = (window.innerHeight * 0.99) + 'px';
4350
+ }
4351
+ const dialog = this.dialog.open(FornecedoresEditDialogComponent, {
4352
+ data: item,
4353
+ width: width,
4354
+ height: height,
4355
+ maxWidth: '100%',
4356
+ panelClass: 'dialog-p0',
4357
+ });
4358
+ dialog.afterClosed().subscribe(result => {
4359
+ if (result !== true)
4360
+ return;
4361
+ this.notification.showMsg("Salvo com sucesso.");
4362
+ this.atualiza();
4363
+ });
4364
+ }
4365
+ salvar() {
4366
+ const item = this.selectedItem;
4367
+ if (!item)
4368
+ return;
4369
+ const valMsg = validaPessoa(item, this.focus);
4370
+ if (valMsg) {
4371
+ this.notification.showMsgError(valMsg);
4372
+ return;
4373
+ }
4374
+ this.isBusy = true;
4375
+ this.ws.saveFornecedor(item)
4376
+ .subscribe({
4377
+ next: r => {
4378
+ this.notification.showMsg("Salvo com sucesso.");
4379
+ this.isBusy = false;
4380
+ },
4381
+ error: err => {
4382
+ this.isBusy = false;
4383
+ this.notification.showMsg(err.error);
4384
+ }
4385
+ });
4386
+ }
4387
+ }
4388
+ FornecedoresComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresComponent, deps: [{ token: CommonWebService }, { token: NotificationService }, { token: i3.MatDialog }, { token: AuthDataService }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
4389
+ FornecedoresComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: FornecedoresComponent, selector: "app-fornecedores", ngImport: i0, template: "<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\u00E7\u00F5es</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\u00E7\u00F5es</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\u00E3o 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>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fafafa}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }, { kind: "component", type: FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
4390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresComponent, decorators: [{
4391
+ type: Component,
4392
+ args: [{ selector: 'app-fornecedores', animations: [fadeAnimation], template: "<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\u00E7\u00F5es</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\u00E7\u00F5es</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\u00E3o 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>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fafafa}\n"] }]
4393
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4394
+
4395
+ class SelecaoFornecedorDialogComponent {
4396
+ constructor(dialogRef, ws, notification, dialog, auth, screenHelper) {
4397
+ this.dialogRef = dialogRef;
4398
+ this.ws = ws;
4399
+ this.notification = notification;
4400
+ this.dialog = dialog;
4401
+ this.screenHelper = screenHelper;
4402
+ this.items = [];
4403
+ this.selectedItem = null;
4404
+ this.isBusy = false;
4405
+ this.setting = new SearchSetting();
4406
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
4407
+ this.nav = new NavegacaoSelecaoDialogUtil(this);
4408
+ this.mobile = this.screenHelper.isMedium;
4409
+ this.allowAdd = auth.permissoes.financasClienteAdd;
4410
+ this.allowEdit = auth.permissoes.financasClientePesquisa;
4411
+ }
4412
+ ngOnInit() {
4413
+ this.setting.ordem = "nome";
4414
+ this.atualiza();
4415
+ }
4416
+ atualiza() {
4417
+ this.isBusy = true;
4418
+ this.ws.buscaFornecedor(this.setting)
4419
+ .subscribe({
4420
+ next: r => {
4421
+ this.isBusy = false;
4422
+ this.items = r;
4423
+ console.info(r);
4424
+ },
4425
+ error: err => {
4426
+ this.isBusy = false;
4427
+ this.notification.showHttpError(err);
4428
+ }
4429
+ });
4430
+ }
4431
+ selectItem(i) {
4432
+ if (this.selectedItem === i) {
4433
+ this.dialogRef.close(i);
4434
+ }
4435
+ this.selectedItem = i;
4436
+ }
4437
+ novo() {
4438
+ let height = (window.innerHeight * 0.90) + 'px';
4439
+ let width = 550 + 'px';
4440
+ if (this.mobile) {
4441
+ width = (window.innerWidth * 0.99) + 'px';
4442
+ //height = (window.innerHeight * 0.98) + 'px';
4443
+ }
4444
+ const dialog = this.dialog.open(FornecedoresAddDialogComponent, {
4445
+ width: width,
4446
+ height: height,
4447
+ maxWidth: '100%',
4448
+ panelClass: 'dialog-p0',
4449
+ });
4450
+ dialog.afterClosed().subscribe(result => {
4451
+ if (result === undefined)
4452
+ return;
4453
+ this.notification.showMsg("Salvo com sucesso.");
4454
+ this.atualiza();
4455
+ });
4456
+ }
4457
+ editar() {
4458
+ let height = (window.innerHeight * 0.90) + 'px';
4459
+ let width = 550 + 'px';
4460
+ if (this.mobile) {
4461
+ width = (window.innerWidth * 0.99) + 'px';
4462
+ //height = (window.innerHeight * 0.98) + 'px';
4463
+ }
4464
+ const dialog = this.dialog.open(FornecedoresEditDialogComponent, {
4465
+ width: width,
4466
+ height: height,
4467
+ maxWidth: '100%',
4468
+ panelClass: 'dialog-p0',
4469
+ data: this.selectedItem
4470
+ });
4471
+ dialog.afterClosed().subscribe(result => {
4472
+ if (result === undefined)
4473
+ return;
4474
+ this.notification.showMsg("Salvo com sucesso.");
4475
+ this.atualiza();
4476
+ });
4477
+ }
4478
+ }
4479
+ SelecaoFornecedorDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoFornecedorDialogComponent, deps: [{ token: i3.MatDialogRef }, { token: CommonWebService }, { token: NotificationService }, { token: i3.MatDialog }, { token: AuthDataService }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
4480
+ SelecaoFornecedorDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: SelecaoFornecedorDialogComponent, selector: "app-selecao-fornecedor-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o 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\u00E7\u00F5es</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", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] });
4481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoFornecedorDialogComponent, decorators: [{
4482
+ type: Component,
4483
+ args: [{ selector: 'app-selecao-fornecedor-dialog', template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o 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\u00E7\u00F5es</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", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
4484
+ }], ctorParameters: function () { return [{ type: i3.MatDialogRef }, { type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4485
+
3695
4486
  class ImageViewerComponent {
3696
4487
  constructor() {
3697
4488
  this.infos = [];
@@ -4051,7 +4842,17 @@ OxpiNglibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
4051
4842
  ProdutoCategoriaCardapioSelecaoDialogComponent,
4052
4843
  ProdutoComposicaoComponent,
4053
4844
  ProdutoComposicaoAddDialogComponent,
4054
- ProdutoSelecaoDialogComponent], imports: [BrowserModule,
4845
+ ProdutoSelecaoDialogComponent,
4846
+ ClientesFormComponent,
4847
+ ClientesComponent,
4848
+ ClientesAddDialogComponent,
4849
+ ClientesEditDialogComponent,
4850
+ SelecaoClienteDialogComponent,
4851
+ FornecedoresFormComponent,
4852
+ FornecedoresComponent,
4853
+ FornecedoresAddDialogComponent,
4854
+ FornecedoresEditDialogComponent,
4855
+ SelecaoFornecedorDialogComponent], imports: [BrowserModule,
4055
4856
  BrowserAnimationsModule,
4056
4857
  FormsModule,
4057
4858
  MatButtonModule,
@@ -4117,7 +4918,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
4117
4918
  ProdutoCategoriaCardapioSelecaoDialogComponent,
4118
4919
  ProdutoComposicaoComponent,
4119
4920
  ProdutoComposicaoAddDialogComponent,
4120
- ProdutoSelecaoDialogComponent
4921
+ ProdutoSelecaoDialogComponent,
4922
+ ClientesFormComponent,
4923
+ ClientesComponent,
4924
+ ClientesAddDialogComponent,
4925
+ ClientesEditDialogComponent,
4926
+ SelecaoClienteDialogComponent,
4927
+ FornecedoresFormComponent,
4928
+ FornecedoresComponent,
4929
+ FornecedoresAddDialogComponent,
4930
+ FornecedoresEditDialogComponent,
4931
+ SelecaoFornecedorDialogComponent
4121
4932
  ],
4122
4933
  imports: [
4123
4934
  BrowserModule,
@@ -4349,5 +5160,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
4349
5160
  * Generated bundle index. Do not edit.
4350
5161
  */
4351
5162
 
4352
- export { AlertDialogComponent, AuthDataService, BusyIndicatorComponent, BusyState, CheckButtonComponent, CommonWebService, ConsumoProdutoSearchSetting, DuplicataSearchSetting, ExportFileService, FocusService, FuncionarioAddDialogComponent, FuncionarioEditDialogComponent, FuncionarioFormComponent, FuncionariosComponent, ImageViewerComponent, ItemCardComponent, LazyTrigger, MonthYearPickerComponent, MoverGrupoDialogComponent, NavegacaoSelecaoDialogUtil, NotificationService, NumberParser, NumericPickerComponent, OcupacaoFilterSetting, OcupacaoSearchDateField, OcupacaoSearchSetting, OcupacaoSearchTipoEntrada, Ordem, OxpiNglibModule, PagamentoRecebimentoSearchSetting, PaginatorComponent, PorOcupacaoTipo, Preferences, ProdutoAddDialogComponent, ProdutoBuscaFiltrosDialogComponent, ProdutoCategoriaCardapioAddDialogComponent, ProdutoCategoriaCardapioEditDialogComponent, ProdutoCategoriaCardapioSelecaoDialogComponent, ProdutoComposicaoAddDialogComponent, ProdutoComposicaoComponent, ProdutoEditDialogComponent, ProdutoFormComponent, ProdutoGrupoAddDialogComponent, ProdutoGrupoEditDialogComponent, ProdutoGrupoFormComponent, ProdutoGrupoSelecaoDialogComponent, ProdutoSearchSetting, ProdutoSelecaoDialogComponent, ProdutoSubgrupoAddDialogComponent, ProdutoSubgrupoEditDialogComponent, ProdutoSubgrupoSelecaoDialogComponent, ProdutosCategoriasCardapioComponent, ProdutosComponent, ProdutosGruposComponent, ProdutosNcmDialogComponent, ProdutosSubgruposComponent, RadioButtonGroupComponent, SafeHtmlPipe, ScreenHelperService, SearchMode, SearchSetting, SuitesIntervencoesSetting, confirmaExclusao, createProduct, fadeAnimation, lateralAnimation, menuLateralAnimation, printHtml, printTxt, selectText, valNumberEmpty, valNumberMin, valTextEmpty, valTextMax, validaProduto, validaProdutoComposicao, validaProdutoGrupo, validaSetorEstoque };
5163
+ export { AlertDialogComponent, AuthDataService, BusyIndicatorComponent, BusyState, CheckButtonComponent, ClientesAddDialogComponent, ClientesComponent, ClientesEditDialogComponent, ClientesFormComponent, CommonWebService, ConsumoProdutoSearchSetting, DuplicataSearchSetting, ExportFileService, FocusService, FornecedoresAddDialogComponent, FornecedoresComponent, FornecedoresEditDialogComponent, FornecedoresFormComponent, FuncionarioAddDialogComponent, FuncionarioEditDialogComponent, FuncionarioFormComponent, FuncionariosComponent, ImageViewerComponent, ItemCardComponent, LazyTrigger, MonthYearPickerComponent, MoverGrupoDialogComponent, NavegacaoSelecaoDialogUtil, NotificationService, NumberParser, NumericPickerComponent, OcupacaoFilterSetting, OcupacaoSearchDateField, OcupacaoSearchSetting, OcupacaoSearchTipoEntrada, Ordem, OxpiNglibModule, PagamentoRecebimentoSearchSetting, PaginatorComponent, PorOcupacaoTipo, Preferences, ProdutoAddDialogComponent, ProdutoBuscaFiltrosDialogComponent, ProdutoCategoriaCardapioAddDialogComponent, ProdutoCategoriaCardapioEditDialogComponent, ProdutoCategoriaCardapioSelecaoDialogComponent, ProdutoComposicaoAddDialogComponent, ProdutoComposicaoComponent, ProdutoEditDialogComponent, ProdutoFormComponent, ProdutoGrupoAddDialogComponent, ProdutoGrupoEditDialogComponent, ProdutoGrupoFormComponent, ProdutoGrupoSelecaoDialogComponent, ProdutoSearchSetting, ProdutoSelecaoDialogComponent, ProdutoSubgrupoAddDialogComponent, ProdutoSubgrupoEditDialogComponent, ProdutoSubgrupoSelecaoDialogComponent, ProdutosCategoriasCardapioComponent, ProdutosComponent, ProdutosGruposComponent, ProdutosNcmDialogComponent, ProdutosSubgruposComponent, RadioButtonGroupComponent, SafeHtmlPipe, ScreenHelperService, SearchMode, SearchSetting, SelecaoClienteDialogComponent, SelecaoFornecedorDialogComponent, SuitesIntervencoesSetting, confirmaExclusao, createProduct, fadeAnimation, lateralAnimation, menuLateralAnimation, printHtml, printTxt, selectText, valNumberEmpty, valNumberMin, valTextEmpty, valTextMax, validaPessoa, validaProduto, validaProdutoComposicao, validaProdutoGrupo, validaSetorEstoque };
4353
5164
  //# sourceMappingURL=oxpi-nglib.mjs.map