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({
@@ -2573,7 +2619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
2573
2619
  class ProdutoSearchSetting extends SearchSetting {
2574
2620
  constructor() {
2575
2621
  super();
2576
- this.exibeControladoEstoque = true;
2622
+ this.exibeControladoEstoque = false;
2577
2623
  this.exibeMostraRecepcao = false;
2578
2624
  this.exibeImprimeCorredor = false;
2579
2625
  this.exibeImprimeCozinha = false;
@@ -3661,6 +3707,743 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
3661
3707
  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"] }]
3662
3708
  }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
3663
3709
 
3710
+ class ClientesFormComponent {
3711
+ constructor() { }
3712
+ ngOnInit() {
3713
+ }
3714
+ }
3715
+ ClientesFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3716
+ 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"] }] });
3717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesFormComponent, decorators: [{
3718
+ type: Component,
3719
+ 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"] }]
3720
+ }], ctorParameters: function () { return []; }, propDecorators: { model: [{
3721
+ type: Input
3722
+ }] } });
3723
+
3724
+ function validaPessoa(item, focus) {
3725
+ if (valTextEmpty(item.nome)) {
3726
+ focus.set('nome');
3727
+ return 'Digite um nome válido.';
3728
+ }
3729
+ return null;
3730
+ }
3731
+
3732
+ class ClientesAddDialogComponent {
3733
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
3734
+ this.ws = ws;
3735
+ this.notification = notification;
3736
+ this.dataDialog = dataDialog;
3737
+ this.dialog = dialog;
3738
+ this.elRef = elRef;
3739
+ this.dialogRef = dialogRef;
3740
+ this.screenHelper = screenHelper;
3741
+ this.isBusy = false;
3742
+ this.focus = new FocusService();
3743
+ this.model = dataDialog ?? {
3744
+ id: 0,
3745
+ nome: '',
3746
+ isAtivo: true
3747
+ };
3748
+ this.mobile = this.screenHelper.isMedium;
3749
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
3750
+ }
3751
+ ngOnInit() {
3752
+ this.focus.registerElement(this.elRef.nativeElement);
3753
+ }
3754
+ ngOnDestroy() {
3755
+ this.focus.unregisterElement(this.elRef.nativeElement);
3756
+ }
3757
+ salvar() {
3758
+ const valMsg = validaPessoa(this.model, this.focus);
3759
+ if (valMsg) {
3760
+ this.notification.showMsgError(valMsg);
3761
+ return;
3762
+ }
3763
+ this.isBusy = true;
3764
+ this.ws.addCliente(this.model)
3765
+ .subscribe({
3766
+ next: r => {
3767
+ this.isBusy = false;
3768
+ this.model.id = r;
3769
+ this.notification.showMsg("Salvo com sucesso.");
3770
+ this.dialogRef.close(this.model);
3771
+ },
3772
+ error: err => {
3773
+ this.isBusy = false;
3774
+ this.notification.showMsg(err.error);
3775
+ }
3776
+ });
3777
+ }
3778
+ }
3779
+ 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 });
3780
+ 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"] }] });
3781
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesAddDialogComponent, decorators: [{
3782
+ type: Component,
3783
+ 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"] }]
3784
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
3785
+ type: Optional
3786
+ }, {
3787
+ type: Inject,
3788
+ args: [MAT_DIALOG_DATA]
3789
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }]; } });
3790
+
3791
+ class ClientesEditDialogComponent {
3792
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
3793
+ this.ws = ws;
3794
+ this.notification = notification;
3795
+ this.dataDialog = dataDialog;
3796
+ this.dialog = dialog;
3797
+ this.elRef = elRef;
3798
+ this.dialogRef = dialogRef;
3799
+ this.screenHelper = screenHelper;
3800
+ this.isBusy = false;
3801
+ this.focus = new FocusService();
3802
+ if (dataDialog) {
3803
+ this.model = dataDialog;
3804
+ }
3805
+ this.mobile = this.screenHelper.isMedium;
3806
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
3807
+ }
3808
+ ngOnInit() {
3809
+ this.focus.registerElement(this.elRef.nativeElement);
3810
+ }
3811
+ ngOnDestroy() {
3812
+ this.focus.unregisterElement(this.elRef.nativeElement);
3813
+ }
3814
+ salvar() {
3815
+ if (!this.model)
3816
+ return;
3817
+ const valMsg = validaPessoa(this.model, this.focus);
3818
+ if (valMsg) {
3819
+ this.notification.showMsgError(valMsg);
3820
+ return;
3821
+ }
3822
+ this.isBusy = true;
3823
+ this.ws.saveCliente(this.model)
3824
+ .subscribe({
3825
+ next: r => {
3826
+ this.isBusy = false;
3827
+ this.notification.showMsg("Salvo com sucesso.");
3828
+ if (this.dialogRef)
3829
+ this.dialogRef.close(true);
3830
+ },
3831
+ error: err => {
3832
+ this.isBusy = false;
3833
+ this.notification.showMsg(err.error);
3834
+ }
3835
+ });
3836
+ }
3837
+ }
3838
+ 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 });
3839
+ 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"] }] });
3840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesEditDialogComponent, decorators: [{
3841
+ type: Component,
3842
+ 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"] }]
3843
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
3844
+ type: Inject,
3845
+ args: [MAT_DIALOG_DATA]
3846
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }]; } });
3847
+
3848
+ class ClientesComponent {
3849
+ constructor(ws, notification, dialog, auth, screenHelper) {
3850
+ this.ws = ws;
3851
+ this.notification = notification;
3852
+ this.dialog = dialog;
3853
+ this.screenHelper = screenHelper;
3854
+ this.isBusy = false;
3855
+ this.items = [];
3856
+ this.selectedItem = null;
3857
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
3858
+ this.setting = new SearchSetting();
3859
+ this.focus = new FocusService();
3860
+ this.allowAdd = auth.permissoes.financasClienteAdd;
3861
+ this.allowExcluir = auth.permissoes.financasClienteDelete;
3862
+ this.mobile = this.screenHelper.isMedium;
3863
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
3864
+ }
3865
+ ngOnInit() {
3866
+ this.setting.ordem = "nome";
3867
+ this.atualiza();
3868
+ }
3869
+ onSelectItem() {
3870
+ if (!this.focus.hasInit()) {
3871
+ setTimeout(() => {
3872
+ this.focus.registerElementById("form-column");
3873
+ this.focus.setFirst();
3874
+ }, 500);
3875
+ //this._focus.registerElementById("form-column");
3876
+ }
3877
+ else {
3878
+ this.focus.setFirst();
3879
+ }
3880
+ }
3881
+ ngOnDestroy() {
3882
+ this.focus.unregisterElementById("form-column");
3883
+ }
3884
+ atualiza() {
3885
+ this.isBusy = true;
3886
+ this.ws.buscaCliente(this.setting)
3887
+ .subscribe({
3888
+ next: r => {
3889
+ this.items = r;
3890
+ this.selectedItem = null;
3891
+ console.info(r);
3892
+ this.isBusy = false;
3893
+ }, error: err => {
3894
+ this.isBusy = false;
3895
+ this.notification.showHttpError(err);
3896
+ }
3897
+ });
3898
+ }
3899
+ excluir() {
3900
+ const item = this.selectedItem;
3901
+ if (!item)
3902
+ return;
3903
+ confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do cliente ${item.nome}?`, () => {
3904
+ this.isBusy = true;
3905
+ this.ws.deleteCliente(item.id)
3906
+ .subscribe({
3907
+ next: r => {
3908
+ this.notification.showMsg("O cliente foi excluído com sucesso.");
3909
+ this.items.remove(item);
3910
+ this.selectedItem = null;
3911
+ this.isBusy = false;
3912
+ },
3913
+ error: err => {
3914
+ this.isBusy = false;
3915
+ this.notification.showMsg(err.error);
3916
+ }
3917
+ });
3918
+ });
3919
+ }
3920
+ novo() {
3921
+ let height = (window.innerHeight * 0.90) + 'px';
3922
+ let width = 550 + 'px';
3923
+ if (this.mobile) {
3924
+ width = (window.innerWidth * 0.99) + 'px';
3925
+ //height = (window.innerHeight * 0.98) + 'px';
3926
+ }
3927
+ const dialog = this.dialog.open(ClientesAddDialogComponent, {
3928
+ width: width,
3929
+ height: height,
3930
+ maxWidth: '100%',
3931
+ panelClass: 'dialog-p0',
3932
+ });
3933
+ dialog.afterClosed().subscribe(result => {
3934
+ if (result === undefined)
3935
+ return;
3936
+ this.notification.showMsg("Salvo com sucesso.");
3937
+ this.atualiza();
3938
+ });
3939
+ }
3940
+ abreCadastro(item) {
3941
+ let height = undefined;
3942
+ let width = 550 + 'px';
3943
+ if (this.mobile) {
3944
+ width = (window.innerWidth * 0.99) + 'px';
3945
+ height = (window.innerHeight * 0.99) + 'px';
3946
+ }
3947
+ const dialog = this.dialog.open(ClientesEditDialogComponent, {
3948
+ data: item,
3949
+ width: width,
3950
+ height: height,
3951
+ maxWidth: '100%',
3952
+ panelClass: 'dialog-p0',
3953
+ });
3954
+ dialog.afterClosed().subscribe(result => {
3955
+ if (result !== true)
3956
+ return;
3957
+ this.notification.showMsg("Salvo com sucesso.");
3958
+ this.atualiza();
3959
+ });
3960
+ }
3961
+ salvar() {
3962
+ const item = this.selectedItem;
3963
+ if (!item)
3964
+ return;
3965
+ const valMsg = validaPessoa(item, this.focus);
3966
+ if (valMsg) {
3967
+ this.notification.showMsgError(valMsg);
3968
+ return;
3969
+ }
3970
+ this.isBusy = true;
3971
+ this.ws.saveCliente(item)
3972
+ .subscribe({
3973
+ next: r => {
3974
+ this.notification.showMsg("Salvo com sucesso.");
3975
+ this.isBusy = false;
3976
+ },
3977
+ error: err => {
3978
+ this.isBusy = false;
3979
+ this.notification.showMsg(err.error);
3980
+ }
3981
+ });
3982
+ }
3983
+ }
3984
+ 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 });
3985
+ 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] });
3986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ClientesComponent, decorators: [{
3987
+ type: Component,
3988
+ 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"] }]
3989
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
3990
+
3991
+ class SelecaoClienteDialogComponent {
3992
+ constructor(dialogRef, ws, notification, dialog, auth, screenHelper) {
3993
+ this.dialogRef = dialogRef;
3994
+ this.ws = ws;
3995
+ this.notification = notification;
3996
+ this.dialog = dialog;
3997
+ this.screenHelper = screenHelper;
3998
+ this.items = [];
3999
+ this.selectedItem = null;
4000
+ this.isBusy = false;
4001
+ this.setting = new SearchSetting();
4002
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
4003
+ this.nav = new NavegacaoSelecaoDialogUtil(this);
4004
+ this.mobile = this.screenHelper.isMedium;
4005
+ this.allowAdd = auth.permissoes.financasClienteAdd;
4006
+ this.allowEdit = auth.permissoes.financasClientePesquisa;
4007
+ }
4008
+ ngOnInit() {
4009
+ this.setting.ordem = "nome";
4010
+ this.atualiza();
4011
+ }
4012
+ atualiza() {
4013
+ this.isBusy = true;
4014
+ this.ws.buscaCliente(this.setting)
4015
+ .subscribe({
4016
+ next: r => {
4017
+ this.isBusy = false;
4018
+ this.items = r;
4019
+ console.info(r);
4020
+ },
4021
+ error: err => {
4022
+ this.isBusy = false;
4023
+ this.notification.showHttpError(err);
4024
+ }
4025
+ });
4026
+ }
4027
+ selectItem(i) {
4028
+ if (this.selectedItem === i) {
4029
+ this.dialogRef.close(i);
4030
+ }
4031
+ this.selectedItem = i;
4032
+ }
4033
+ novo() {
4034
+ let height = (window.innerHeight * 0.90) + 'px';
4035
+ let width = 550 + 'px';
4036
+ if (this.mobile) {
4037
+ width = (window.innerWidth * 0.99) + 'px';
4038
+ //height = (window.innerHeight * 0.98) + 'px';
4039
+ }
4040
+ const dialog = this.dialog.open(ClientesAddDialogComponent, {
4041
+ width: width,
4042
+ height: height,
4043
+ maxWidth: '100%',
4044
+ panelClass: 'dialog-p0',
4045
+ });
4046
+ dialog.afterClosed().subscribe(result => {
4047
+ if (result === undefined)
4048
+ return;
4049
+ this.notification.showMsg("Salvo com sucesso.");
4050
+ this.atualiza();
4051
+ });
4052
+ }
4053
+ editar() {
4054
+ let height = (window.innerHeight * 0.90) + 'px';
4055
+ let width = 550 + 'px';
4056
+ if (this.mobile) {
4057
+ width = (window.innerWidth * 0.99) + 'px';
4058
+ //height = (window.innerHeight * 0.98) + 'px';
4059
+ }
4060
+ const dialog = this.dialog.open(ClientesEditDialogComponent, {
4061
+ width: width,
4062
+ height: height,
4063
+ maxWidth: '100%',
4064
+ panelClass: 'dialog-p0',
4065
+ data: this.selectedItem
4066
+ });
4067
+ dialog.afterClosed().subscribe(result => {
4068
+ if (result === undefined)
4069
+ return;
4070
+ this.notification.showMsg("Salvo com sucesso.");
4071
+ this.atualiza();
4072
+ });
4073
+ }
4074
+ }
4075
+ 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 });
4076
+ 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"] }] });
4077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoClienteDialogComponent, decorators: [{
4078
+ type: Component,
4079
+ 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"] }]
4080
+ }], ctorParameters: function () { return [{ type: i3.MatDialogRef }, { type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4081
+
4082
+ class FornecedoresFormComponent {
4083
+ constructor() {
4084
+ }
4085
+ ngOnInit() {
4086
+ }
4087
+ }
4088
+ FornecedoresFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4089
+ 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"] }] });
4090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresFormComponent, decorators: [{
4091
+ type: Component,
4092
+ 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"] }]
4093
+ }], ctorParameters: function () { return []; }, propDecorators: { model: [{
4094
+ type: Input
4095
+ }] } });
4096
+
4097
+ class FornecedoresAddDialogComponent {
4098
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
4099
+ this.ws = ws;
4100
+ this.notification = notification;
4101
+ this.dataDialog = dataDialog;
4102
+ this.dialog = dialog;
4103
+ this.elRef = elRef;
4104
+ this.dialogRef = dialogRef;
4105
+ this.screenHelper = screenHelper;
4106
+ this.isBusy = false;
4107
+ this.focus = new FocusService();
4108
+ this.model = dataDialog ?? {
4109
+ id: 0,
4110
+ nome: '',
4111
+ isAtivo: true
4112
+ };
4113
+ this.mobile = this.screenHelper.isMedium;
4114
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
4115
+ }
4116
+ ngOnInit() {
4117
+ this.focus.registerElement(this.elRef.nativeElement);
4118
+ }
4119
+ ngOnDestroy() {
4120
+ this.focus.unregisterElement(this.elRef.nativeElement);
4121
+ }
4122
+ salvar() {
4123
+ const valMsg = validaPessoa(this.model, this.focus);
4124
+ if (valMsg) {
4125
+ this.notification.showMsgError(valMsg);
4126
+ return;
4127
+ }
4128
+ this.isBusy = true;
4129
+ this.ws.addFornecedor(this.model)
4130
+ .subscribe({
4131
+ next: r => {
4132
+ this.isBusy = false;
4133
+ this.model.id = r;
4134
+ this.notification.showMsg("Salvo com sucesso.");
4135
+ this.dialogRef.close(this.model);
4136
+ },
4137
+ error: err => {
4138
+ this.isBusy = false;
4139
+ this.notification.showMsg(err.error);
4140
+ }
4141
+ });
4142
+ }
4143
+ }
4144
+ 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 });
4145
+ 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"] }] });
4146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresAddDialogComponent, decorators: [{
4147
+ type: Component,
4148
+ 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"] }]
4149
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
4150
+ type: Optional
4151
+ }, {
4152
+ type: Inject,
4153
+ args: [MAT_DIALOG_DATA]
4154
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }]; } });
4155
+
4156
+ class FornecedoresEditDialogComponent {
4157
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
4158
+ this.ws = ws;
4159
+ this.notification = notification;
4160
+ this.dataDialog = dataDialog;
4161
+ this.dialog = dialog;
4162
+ this.elRef = elRef;
4163
+ this.dialogRef = dialogRef;
4164
+ this.screenHelper = screenHelper;
4165
+ this.isBusy = false;
4166
+ this.focus = new FocusService();
4167
+ if (dataDialog) {
4168
+ this.model = dataDialog;
4169
+ }
4170
+ this.mobile = this.screenHelper.isMedium;
4171
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
4172
+ }
4173
+ ngOnInit() {
4174
+ this.focus.registerElement(this.elRef.nativeElement);
4175
+ }
4176
+ ngOnDestroy() {
4177
+ this.focus.unregisterElement(this.elRef.nativeElement);
4178
+ }
4179
+ salvar() {
4180
+ if (!this.model)
4181
+ return;
4182
+ const valMsg = validaPessoa(this.model, this.focus);
4183
+ if (valMsg) {
4184
+ this.notification.showMsgError(valMsg);
4185
+ return;
4186
+ }
4187
+ this.isBusy = true;
4188
+ this.ws.saveFornecedor(this.model)
4189
+ .subscribe({
4190
+ next: r => {
4191
+ this.isBusy = false;
4192
+ this.notification.showMsg("Salvo com sucesso.");
4193
+ if (this.dialogRef)
4194
+ this.dialogRef.close(true);
4195
+ },
4196
+ error: err => {
4197
+ this.isBusy = false;
4198
+ this.notification.showMsg(err.error);
4199
+ }
4200
+ });
4201
+ }
4202
+ }
4203
+ 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 });
4204
+ 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"] }] });
4205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresEditDialogComponent, decorators: [{
4206
+ type: Component,
4207
+ 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"] }]
4208
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: undefined, decorators: [{
4209
+ type: Inject,
4210
+ args: [MAT_DIALOG_DATA]
4211
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: ScreenHelperService }]; } });
4212
+
4213
+ class FornecedoresComponent {
4214
+ constructor(ws, notification, dialog, auth, screenHelper) {
4215
+ this.ws = ws;
4216
+ this.notification = notification;
4217
+ this.dialog = dialog;
4218
+ this.screenHelper = screenHelper;
4219
+ this.isBusy = false;
4220
+ this.items = [];
4221
+ this.selectedItem = null;
4222
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
4223
+ this.setting = new SearchSetting();
4224
+ this.focus = new FocusService();
4225
+ this.allowAdd = auth.permissoes.financasFornecedorAdd;
4226
+ this.allowExcluir = auth.permissoes.financasFornecedorDelete;
4227
+ this.mobile = this.screenHelper.isMedium;
4228
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
4229
+ }
4230
+ ngOnInit() {
4231
+ this.setting.ordem = "nome";
4232
+ this.atualiza();
4233
+ }
4234
+ onSelectItem() {
4235
+ if (!this.focus.hasInit()) {
4236
+ setTimeout(() => {
4237
+ this.focus.registerElementById("form-column");
4238
+ this.focus.setFirst();
4239
+ }, 500);
4240
+ //this._focus.registerElementById("form-column");
4241
+ }
4242
+ else {
4243
+ this.focus.setFirst();
4244
+ }
4245
+ }
4246
+ ngOnDestroy() {
4247
+ this.focus.unregisterElementById("form-column");
4248
+ }
4249
+ atualiza() {
4250
+ this.isBusy = true;
4251
+ this.ws.buscaFornecedor(this.setting)
4252
+ .subscribe({
4253
+ next: r => {
4254
+ this.items = r;
4255
+ this.selectedItem = null;
4256
+ console.info(r);
4257
+ this.isBusy = false;
4258
+ }, error: err => {
4259
+ this.isBusy = false;
4260
+ this.notification.showHttpError(err);
4261
+ }
4262
+ });
4263
+ }
4264
+ excluir() {
4265
+ const item = this.selectedItem;
4266
+ if (!item)
4267
+ return;
4268
+ confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do fornecedor ${item.nome}?`, () => {
4269
+ this.isBusy = true;
4270
+ this.ws.deleteFornecedor(item.id)
4271
+ .subscribe({
4272
+ next: r => {
4273
+ this.notification.showMsg("O fornecedor foi excluído com sucesso.");
4274
+ this.items.remove(item);
4275
+ this.selectedItem = null;
4276
+ this.isBusy = false;
4277
+ },
4278
+ error: err => {
4279
+ this.isBusy = false;
4280
+ this.notification.showMsg(err.error);
4281
+ }
4282
+ });
4283
+ });
4284
+ }
4285
+ novo() {
4286
+ let height = (window.innerHeight * 0.90) + 'px';
4287
+ let width = 550 + 'px';
4288
+ if (this.mobile) {
4289
+ width = (window.innerWidth * 0.99) + 'px';
4290
+ //height = (window.innerHeight * 0.98) + 'px';
4291
+ }
4292
+ const dialog = this.dialog.open(FornecedoresAddDialogComponent, {
4293
+ width: width,
4294
+ height: height,
4295
+ maxWidth: '100%',
4296
+ panelClass: 'dialog-p0',
4297
+ });
4298
+ dialog.afterClosed().subscribe(result => {
4299
+ if (result === undefined)
4300
+ return;
4301
+ this.notification.showMsg("Salvo com sucesso.");
4302
+ this.atualiza();
4303
+ });
4304
+ }
4305
+ abreCadastro(item) {
4306
+ let height = undefined;
4307
+ let width = 550 + 'px';
4308
+ if (this.mobile) {
4309
+ width = (window.innerWidth * 0.99) + 'px';
4310
+ height = (window.innerHeight * 0.99) + 'px';
4311
+ }
4312
+ const dialog = this.dialog.open(FornecedoresEditDialogComponent, {
4313
+ data: item,
4314
+ width: width,
4315
+ height: height,
4316
+ maxWidth: '100%',
4317
+ panelClass: 'dialog-p0',
4318
+ });
4319
+ dialog.afterClosed().subscribe(result => {
4320
+ if (result !== true)
4321
+ return;
4322
+ this.notification.showMsg("Salvo com sucesso.");
4323
+ this.atualiza();
4324
+ });
4325
+ }
4326
+ salvar() {
4327
+ const item = this.selectedItem;
4328
+ if (!item)
4329
+ return;
4330
+ const valMsg = validaPessoa(item, this.focus);
4331
+ if (valMsg) {
4332
+ this.notification.showMsgError(valMsg);
4333
+ return;
4334
+ }
4335
+ this.isBusy = true;
4336
+ this.ws.saveFornecedor(item)
4337
+ .subscribe({
4338
+ next: r => {
4339
+ this.notification.showMsg("Salvo com sucesso.");
4340
+ this.isBusy = false;
4341
+ },
4342
+ error: err => {
4343
+ this.isBusy = false;
4344
+ this.notification.showMsg(err.error);
4345
+ }
4346
+ });
4347
+ }
4348
+ }
4349
+ 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 });
4350
+ 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] });
4351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresComponent, decorators: [{
4352
+ type: Component,
4353
+ 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"] }]
4354
+ }], ctorParameters: function () { return [{ type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4355
+
4356
+ class SelecaoFornecedorDialogComponent {
4357
+ constructor(dialogRef, ws, notification, dialog, auth, screenHelper) {
4358
+ this.dialogRef = dialogRef;
4359
+ this.ws = ws;
4360
+ this.notification = notification;
4361
+ this.dialog = dialog;
4362
+ this.screenHelper = screenHelper;
4363
+ this.items = [];
4364
+ this.selectedItem = null;
4365
+ this.isBusy = false;
4366
+ this.setting = new SearchSetting();
4367
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
4368
+ this.nav = new NavegacaoSelecaoDialogUtil(this);
4369
+ this.mobile = this.screenHelper.isMedium;
4370
+ this.allowAdd = auth.permissoes.financasClienteAdd;
4371
+ this.allowEdit = auth.permissoes.financasClientePesquisa;
4372
+ }
4373
+ ngOnInit() {
4374
+ this.setting.ordem = "nome";
4375
+ this.atualiza();
4376
+ }
4377
+ atualiza() {
4378
+ this.isBusy = true;
4379
+ this.ws.buscaFornecedor(this.setting)
4380
+ .subscribe({
4381
+ next: r => {
4382
+ this.isBusy = false;
4383
+ this.items = r;
4384
+ console.info(r);
4385
+ },
4386
+ error: err => {
4387
+ this.isBusy = false;
4388
+ this.notification.showHttpError(err);
4389
+ }
4390
+ });
4391
+ }
4392
+ selectItem(i) {
4393
+ if (this.selectedItem === i) {
4394
+ this.dialogRef.close(i);
4395
+ }
4396
+ this.selectedItem = i;
4397
+ }
4398
+ novo() {
4399
+ let height = (window.innerHeight * 0.90) + 'px';
4400
+ let width = 550 + 'px';
4401
+ if (this.mobile) {
4402
+ width = (window.innerWidth * 0.99) + 'px';
4403
+ //height = (window.innerHeight * 0.98) + 'px';
4404
+ }
4405
+ const dialog = this.dialog.open(FornecedoresAddDialogComponent, {
4406
+ width: width,
4407
+ height: height,
4408
+ maxWidth: '100%',
4409
+ panelClass: 'dialog-p0',
4410
+ });
4411
+ dialog.afterClosed().subscribe(result => {
4412
+ if (result === undefined)
4413
+ return;
4414
+ this.notification.showMsg("Salvo com sucesso.");
4415
+ this.atualiza();
4416
+ });
4417
+ }
4418
+ editar() {
4419
+ let height = (window.innerHeight * 0.90) + 'px';
4420
+ let width = 550 + 'px';
4421
+ if (this.mobile) {
4422
+ width = (window.innerWidth * 0.99) + 'px';
4423
+ //height = (window.innerHeight * 0.98) + 'px';
4424
+ }
4425
+ const dialog = this.dialog.open(FornecedoresEditDialogComponent, {
4426
+ width: width,
4427
+ height: height,
4428
+ maxWidth: '100%',
4429
+ panelClass: 'dialog-p0',
4430
+ data: this.selectedItem
4431
+ });
4432
+ dialog.afterClosed().subscribe(result => {
4433
+ if (result === undefined)
4434
+ return;
4435
+ this.notification.showMsg("Salvo com sucesso.");
4436
+ this.atualiza();
4437
+ });
4438
+ }
4439
+ }
4440
+ 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 });
4441
+ 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"] }] });
4442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoFornecedorDialogComponent, decorators: [{
4443
+ type: Component,
4444
+ 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"] }]
4445
+ }], ctorParameters: function () { return [{ type: i3.MatDialogRef }, { type: CommonWebService }, { type: NotificationService }, { type: i3.MatDialog }, { type: AuthDataService }, { type: ScreenHelperService }]; } });
4446
+
3664
4447
  class ImageViewerComponent {
3665
4448
  constructor() {
3666
4449
  this.infos = [];
@@ -4020,7 +4803,17 @@ OxpiNglibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
4020
4803
  ProdutoCategoriaCardapioSelecaoDialogComponent,
4021
4804
  ProdutoComposicaoComponent,
4022
4805
  ProdutoComposicaoAddDialogComponent,
4023
- ProdutoSelecaoDialogComponent], imports: [BrowserModule,
4806
+ ProdutoSelecaoDialogComponent,
4807
+ ClientesFormComponent,
4808
+ ClientesComponent,
4809
+ ClientesAddDialogComponent,
4810
+ ClientesEditDialogComponent,
4811
+ SelecaoClienteDialogComponent,
4812
+ FornecedoresFormComponent,
4813
+ FornecedoresComponent,
4814
+ FornecedoresAddDialogComponent,
4815
+ FornecedoresEditDialogComponent,
4816
+ SelecaoFornecedorDialogComponent], imports: [BrowserModule,
4024
4817
  BrowserAnimationsModule,
4025
4818
  FormsModule,
4026
4819
  MatButtonModule,
@@ -4086,7 +4879,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
4086
4879
  ProdutoCategoriaCardapioSelecaoDialogComponent,
4087
4880
  ProdutoComposicaoComponent,
4088
4881
  ProdutoComposicaoAddDialogComponent,
4089
- ProdutoSelecaoDialogComponent
4882
+ ProdutoSelecaoDialogComponent,
4883
+ ClientesFormComponent,
4884
+ ClientesComponent,
4885
+ ClientesAddDialogComponent,
4886
+ ClientesEditDialogComponent,
4887
+ SelecaoClienteDialogComponent,
4888
+ FornecedoresFormComponent,
4889
+ FornecedoresComponent,
4890
+ FornecedoresAddDialogComponent,
4891
+ FornecedoresEditDialogComponent,
4892
+ SelecaoFornecedorDialogComponent
4090
4893
  ],
4091
4894
  imports: [
4092
4895
  BrowserModule,
@@ -4318,5 +5121,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
4318
5121
  * Generated bundle index. Do not edit.
4319
5122
  */
4320
5123
 
4321
- 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 };
5124
+ 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 };
4322
5125
  //# sourceMappingURL=oxpi-nglib.mjs.map