oxpi-nglib 1.0.22 → 1.0.25

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 (35) 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/operador.mjs +17 -0
  12. package/esm2020/lib/models/entidades/pessoa.mjs +9 -0
  13. package/esm2020/lib/oxpi-nglib.module.mjs +33 -3
  14. package/esm2020/lib/providers/common-web-service.mjs +73 -1
  15. package/esm2020/public-api.mjs +13 -1
  16. package/fesm2015/oxpi-nglib.mjs +996 -143
  17. package/fesm2015/oxpi-nglib.mjs.map +1 -1
  18. package/fesm2020/oxpi-nglib.mjs +990 -145
  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/operador.d.ts +10 -0
  31. package/lib/models/entidades/pessoa.d.ts +29 -0
  32. package/lib/oxpi-nglib.module.d.ts +20 -10
  33. package/lib/providers/common-web-service.d.ts +23 -1
  34. package/package.json +1 -1
  35. package/public-api.d.ts +12 -0
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ export class FornecedoresFormComponent {
6
+ constructor() {
7
+ }
8
+ ngOnInit() {
9
+ }
10
+ }
11
+ FornecedoresFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ 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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresFormComponent, decorators: [{
14
+ type: Component,
15
+ 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"] }]
16
+ }], ctorParameters: function () { return []; }, propDecorators: { model: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybmVjZWRvcmVzLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy9mb3JuZWNlZG9yZXMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7Ozs7QUFRM0UsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQztJQUNBLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7c0hBUFUseUJBQXlCOzBHQUF6Qix5QkFBeUIseUZDUnRDLDQvRUFpRWU7MkZEekRGLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7MEVBS3hCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybmVjZWRvciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcGVzc29hJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm5lY2Vkb3Jlcy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm5lY2Vkb3Jlcy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybmVjZWRvcmVzLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JuZWNlZG9yZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZWw/OiBGb3JuZWNlZG9yO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tYmxvY2tcIj5cbiAgICAgICAgPGxhYmVsPk5vbWU8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgaWQ9XCJub21lXCIgcmVxdWlyZWQgY2RrRm9jdXNJbml0aWFsIFsobmdNb2RlbCldPVwibW9kZWwubm9tZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiIHRhYmluZGV4PVwiMVwiPlxuICAgIDwvZGl2PlxuXG4gICAgPGg0IGNsYXNzPVwibWFyZ2luLXRvcC0xNlwiPkRhZG9zIENvbXBsZW1lbnRhcmVzPC9oND5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5Ob21lIEZhbnRhc2lhPC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibW9kZWwuZmFudGFzaWFcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIiB0YWJpbmRleD1cIjJcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+Q1BGL0NOUEo8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5jbnBqQ3BmXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCIgdGFiaW5kZXg9XCIzXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPk9ic2VydmHDp8O1ZXM8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5vYnNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlRlbGVmb25lPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLnRlbGVmb25lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYXJnaW4tbGVmdC0xNlwiPlxuICAgICAgICAgICAgPGxhYmVsPkZheDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5mYXhcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkNvbnRhdG88L2xhYmVsPlxuICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5jb250YXRvXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkUtbWFpbDwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmVtYWlsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkNFUDwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmNlcFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5FbmRlcmXDp288L2xhYmVsPlxuICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5lbmRlcmVjb1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5Ow7ptZXJvPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLm51bWVyb1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWFyZ2luLWxlZnQtMTZcIj5cbiAgICAgICAgICAgIDxsYWJlbD5CYWlycm88L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibW9kZWwuYmFpcnJvXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5Db21wbGVtZW50bzwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmNvbXBsZW1lbnRvXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPklFL1JHPC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibW9kZWwuaWVSZ1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
@@ -0,0 +1,165 @@
1
+ import { Component } from '@angular/core';
2
+ import { fadeAnimation } from '../../../animations/animations';
3
+ import { validaPessoa } from '../../../models/entidades/pessoa';
4
+ import { LazyTrigger } from '../../../models/infra/lazy-trigger';
5
+ import { confirmaExclusao } from '../../../models/infra/selecao-utils';
6
+ import { SearchSetting } from '../../../models/settings/search-setting';
7
+ import { FocusService } from '../../../providers/focus.service';
8
+ import { FornecedoresAddDialogComponent } from '../fornecedores-add-dialog/fornecedores-add-dialog.component';
9
+ import { FornecedoresEditDialogComponent } from '../fornecedores-edit-dialog/fornecedores-edit-dialog.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../../providers/common-web-service";
12
+ import * as i2 from "../../../providers/notification.service";
13
+ import * as i3 from "@angular/material/dialog";
14
+ import * as i4 from "../../../providers/auth-data.service";
15
+ import * as i5 from "../../../providers/screen-helper.service";
16
+ import * as i6 from "@angular/common";
17
+ import * as i7 from "@angular/forms";
18
+ import * as i8 from "@angular/material/button";
19
+ import * as i9 from "@angular/material/icon";
20
+ import * as i10 from "../../../controls/busy-indicator/busy-indicator.component";
21
+ import * as i11 from "../../../controls/item-card/item-card.component";
22
+ import * as i12 from "./fornecedores-form.component";
23
+ export class FornecedoresComponent {
24
+ constructor(ws, notification, dialog, auth, screenHelper) {
25
+ this.ws = ws;
26
+ this.notification = notification;
27
+ this.dialog = dialog;
28
+ this.screenHelper = screenHelper;
29
+ this.isBusy = false;
30
+ this.items = [];
31
+ this.selectedItem = null;
32
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
33
+ this.setting = new SearchSetting();
34
+ this.focus = new FocusService();
35
+ this.allowAdd = auth.permissoes.financasFornecedorAdd;
36
+ this.allowExcluir = auth.permissoes.financasFornecedorDelete;
37
+ this.mobile = this.screenHelper.isMedium;
38
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
39
+ }
40
+ ngOnInit() {
41
+ this.setting.ordem = "nome";
42
+ this.atualiza();
43
+ }
44
+ onSelectItem() {
45
+ if (!this.focus.hasInit()) {
46
+ setTimeout(() => {
47
+ this.focus.registerElementById("form-column");
48
+ this.focus.setFirst();
49
+ }, 500);
50
+ //this._focus.registerElementById("form-column");
51
+ }
52
+ else {
53
+ this.focus.setFirst();
54
+ }
55
+ }
56
+ ngOnDestroy() {
57
+ this.focus.unregisterElementById("form-column");
58
+ }
59
+ atualiza() {
60
+ this.isBusy = true;
61
+ this.ws.buscaFornecedor(this.setting)
62
+ .subscribe({
63
+ next: r => {
64
+ this.items = r;
65
+ this.selectedItem = null;
66
+ console.info(r);
67
+ this.isBusy = false;
68
+ }, error: err => {
69
+ this.isBusy = false;
70
+ this.notification.showHttpError(err);
71
+ }
72
+ });
73
+ }
74
+ excluir() {
75
+ const item = this.selectedItem;
76
+ if (!item)
77
+ return;
78
+ confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do fornecedor ${item.nome}?`, () => {
79
+ this.isBusy = true;
80
+ this.ws.deleteFornecedor(item.id)
81
+ .subscribe({
82
+ next: r => {
83
+ this.notification.showMsg("O fornecedor foi excluído com sucesso.");
84
+ this.items.remove(item);
85
+ this.selectedItem = null;
86
+ this.isBusy = false;
87
+ },
88
+ error: err => {
89
+ this.isBusy = false;
90
+ this.notification.showMsg(err.error);
91
+ }
92
+ });
93
+ });
94
+ }
95
+ novo() {
96
+ let height = (window.innerHeight * 0.90) + 'px';
97
+ let width = 550 + 'px';
98
+ if (this.mobile) {
99
+ width = (window.innerWidth * 0.99) + 'px';
100
+ //height = (window.innerHeight * 0.98) + 'px';
101
+ }
102
+ const dialog = this.dialog.open(FornecedoresAddDialogComponent, {
103
+ width: width,
104
+ height: height,
105
+ maxWidth: '100%',
106
+ panelClass: 'dialog-p0',
107
+ });
108
+ dialog.afterClosed().subscribe(result => {
109
+ if (result === undefined)
110
+ return;
111
+ this.notification.showMsg("Salvo com sucesso.");
112
+ this.atualiza();
113
+ });
114
+ }
115
+ abreCadastro(item) {
116
+ let height = undefined;
117
+ let width = 550 + 'px';
118
+ if (this.mobile) {
119
+ width = (window.innerWidth * 0.99) + 'px';
120
+ height = (window.innerHeight * 0.99) + 'px';
121
+ }
122
+ const dialog = this.dialog.open(FornecedoresEditDialogComponent, {
123
+ data: item,
124
+ width: width,
125
+ height: height,
126
+ maxWidth: '100%',
127
+ panelClass: 'dialog-p0',
128
+ });
129
+ dialog.afterClosed().subscribe(result => {
130
+ if (result !== true)
131
+ return;
132
+ this.notification.showMsg("Salvo com sucesso.");
133
+ this.atualiza();
134
+ });
135
+ }
136
+ salvar() {
137
+ const item = this.selectedItem;
138
+ if (!item)
139
+ return;
140
+ const valMsg = validaPessoa(item, this.focus);
141
+ if (valMsg) {
142
+ this.notification.showMsgError(valMsg);
143
+ return;
144
+ }
145
+ this.isBusy = true;
146
+ this.ws.saveFornecedor(item)
147
+ .subscribe({
148
+ next: r => {
149
+ this.notification.showMsg("Salvo com sucesso.");
150
+ this.isBusy = false;
151
+ },
152
+ error: err => {
153
+ this.isBusy = false;
154
+ this.notification.showMsg(err.error);
155
+ }
156
+ });
157
+ }
158
+ }
159
+ FornecedoresComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialog }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
160
+ 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: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }, { kind: "component", type: i12.FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresComponent, decorators: [{
162
+ type: Component,
163
+ 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"] }]
164
+ }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialog }, { type: i4.AuthDataService }, { type: i5.ScreenHelperService }]; } });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybmVjZWRvcmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy9mb3JuZWNlZG9yZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVFqSCxNQUFNLE9BQU8scUJBQXFCO0lBV2hDLFlBQW9CLEVBQW9CLEVBQzlCLFlBQWlDLEVBQ2xDLE1BQWlCLEVBQ3hCLElBQXFCLEVBQ2IsWUFBaUM7UUFKdkIsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVc7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QUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzthQUN6QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDOztrSEF0SlUscUJBQXFCO3NHQUFyQixxQkFBcUIsd0RDckJsQyx3NUhBeUVNLG8xRER0RFEsQ0FBQyxhQUFhLENBQUM7MkZBRWhCLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQkFBa0IsY0FHaEIsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmYWRlQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvcm5lY2Vkb3IsIHZhbGlkYVBlc3NvYSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcGVzc29hJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBjb25maXJtYUV4Y2x1c2FvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgU2VhcmNoU2V0dGluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXR0aW5ncy9zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JuZWNlZG9yZXNBZGREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9mb3JuZWNlZG9yZXMtYWRkLWRpYWxvZy9mb3JuZWNlZG9yZXMtYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybmVjZWRvcmVzRWRpdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm5lY2Vkb3Jlcy1lZGl0LWRpYWxvZy9mb3JuZWNlZG9yZXMtZWRpdC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm5lY2Vkb3JlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JuZWNlZG9yZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JuZWNlZG9yZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVBbmltYXRpb25dXG59KVxuZXhwb3J0IGNsYXNzIEZvcm5lY2Vkb3Jlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgbW9iaWxlOiBib29sZWFuO1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXRlbXM6IEZvcm5lY2Vkb3JbXSA9IFtdO1xuICBzZWxlY3RlZEl0ZW06IEZvcm5lY2Vkb3IgfCBudWxsID0gbnVsbDtcbiAgbGF6eVRyaWdnZXIgPSBuZXcgTGF6eVRyaWdnZXIoKCkgPT4geyB0aGlzLmF0dWFsaXphKCk7IH0pO1xuICBhbGxvd0FkZDogYm9vbGVhbjtcbiAgYWxsb3dFeGNsdWlyOiBib29sZWFuO1xuICBzZXR0aW5nID0gbmV3IFNlYXJjaFNldHRpbmcoKTtcbiAgcHJpdmF0ZSBmb2N1czogRm9jdXNTZXJ2aWNlID0gbmV3IEZvY3VzU2VydmljZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIGF1dGg6IEF1dGhEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIHRoaXMuYWxsb3dBZGQgPSBhdXRoLnBlcm1pc3NvZXMuZmluYW5jYXNGb3JuZWNlZG9yQWRkO1xuICAgIHRoaXMuYWxsb3dFeGNsdWlyID0gYXV0aC5wZXJtaXNzb2VzLmZpbmFuY2FzRm9ybmVjZWRvckRlbGV0ZTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2NyZWVuSGVscGVyLmlzTWVkaXVtO1xuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcblxuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHRpbmcub3JkZW0gPSBcIm5vbWVcIjtcbiAgICB0aGlzLmF0dWFsaXphKCk7XG4gIH1cblxuICBvblNlbGVjdEl0ZW0oKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuZm9jdXMuaGFzSW5pdCgpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gICAgICAgIHRoaXMuZm9jdXMuc2V0Rmlyc3QoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgICAvL3RoaXMuX2ZvY3VzLnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzLnNldEZpcnN0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy51bnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgfVxuXG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhRm9ybmVjZWRvcih0aGlzLnNldHRpbmcpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHI7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhyKTtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dIdHRwRXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuXG4gIGV4Y2x1aXIoKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuc2VsZWN0ZWRJdGVtO1xuICAgIGlmICghaXRlbSkgcmV0dXJuO1xuICAgIGNvbmZpcm1hRXhjbHVzYW8odGhpcy5kaWFsb2csXG4gICAgICBgRGVzZWphIHByb3NzZWd1aXIgY29tIGEgZXhjbHVzw6NvIGRvIGZvcm5lY2Vkb3IgJHtpdGVtLm5vbWV9P2AsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cy5kZWxldGVGb3JuZWNlZG9yKGl0ZW0uaWQpXG4gICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIk8gZm9ybmVjZWRvciBmb2kgZXhjbHXDrWRvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5yZW1vdmUoaXRlbSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBub3ZvKCkge1xuXG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKEZvcm5lY2Vkb3Jlc0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBhYnJlQ2FkYXN0cm8oaXRlbTogRm9ybmVjZWRvcikge1xuXG4gICAgbGV0IGhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKEZvcm5lY2Vkb3Jlc0VkaXREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBzYWx2YXIoKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuc2VsZWN0ZWRJdGVtO1xuICAgIGlmICghaXRlbSkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbE1zZyA9IHZhbGlkYVBlc3NvYShpdGVtLCB0aGlzLmZvY3VzKTtcbiAgICBpZiAodmFsTXNnKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnRXJyb3IodmFsTXNnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3Muc2F2ZUZvcm5lY2Vkb3IoaXRlbSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cInRvb2wtcGFuZWxcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gb3JkZW0tc20yXCI+XG4gICAgICAgIDxsYWJlbD5Bw6fDtWVzPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQXR1YWxpemFyXCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOb3ZvIEdydXBvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4Y2x1aXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIGFsbG93RXhjbHVpclwiIFtAZmFkZV0+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyIEdydXBvXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgICAgIDxsYWJlbD5QZXNxdWlzYTwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJzZXR0aW5nLmZyYXNlXCIgcGxhY2Vob2xkZXI9XCJEaWdpdGUgdW0gdGVybW8gZGUgYnVzY2EuLi5cIlxuICAgICAgICAgICAgICAgIChpbnB1dCk9XCJsYXp5VHJpZ2dlci5maXJlKClcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyZXN1bHQtY29udGFpbmVyXCIgKm5nSWY9XCJpdGVtc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXIgY2FyZHMtY29udGFpbmVyLXNoYWRvd1wiICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgICAgIDxveC1pdGVtLWNhcmQgW2Nsb3VkXT1cImkuZW52aWFkb1BDXCIgW25vbWVdPVwiaS5ub21lXCIgKm5nRm9yPVwibGV0IGkgb2YgaXRlbXNcIiAoY2xpY2spPVwiYWJyZUNhZGFzdHJvKGkpXCI+PC9veC1pdGVtLWNhcmQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWRlc2t0b3AtZ3JpZFwiICpuZ0lmPVwiIW1vYmlsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1saXN0LWNvbHVtblwiPlxuICAgICAgICAgICAgPGgzPkZvcm5lY2Vkb3JlczwvaDM+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbCB0b29sLXBhbmVsLWZsb2F0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+UGVzcXVpc2E8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwibGF6eVRyaWdnZXIuZmlyZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gb3JkZW0tc20yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Bw6fDtWVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQXR1YWxpemFyXCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOb3ZvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4Y2x1aXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIGFsbG93RXhjbHVpclwiIFtAZmFkZV0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJuZW5odW0taXRlbS1tc2dcIj5BIGJ1c2NhIG7Do28gcmV0b3Jub3UgcmVzdWx0YWRvczwvaDQ+XG4gICAgICAgICAgICAgICAgPG94LWl0ZW0tY2FyZCBbY2xvdWRdPVwiaS5lbnZpYWRvUENcIiBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIFtjbGFzcy5zZWxlY3RlZF09XCJpID09PSBzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRJdGVtID0gaTsgb25TZWxlY3RJdGVtKCk7XCI+PC9veC1pdGVtLWNhcmQgPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwiZm9ybS1jb2x1bW5cIiBjbGFzcz1cImxpc3RhZ2VtLWNvbHVtbi1jb250YWluZXIgbGlzdGFnZW0tY29sdW1uLWZvcm1cIj5cbiAgICAgICAgICAgIDxoMyAqbmdJZj1cIiFzZWxlY3RlZEl0ZW1cIiBjbGFzcz1cInNlbGVjaW9uZS11bS1pdGVtLW1zZ1wiPlNlbGVjaW9uZSB1bSBmb3JuZWNlZG9yIG5vIGxhZG8gZGlyZWl0bzwvaDM+XG4gICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWxlY3RlZEl0ZW1cIj57e3NlbGVjdGVkSXRlbS5ub21lIHwgdXBwZXJjYXNlfX08L2gzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWZvcm0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1mb3JuZWNlZG9yZXMtZm9ybSBbQGZhZGVdIFttb2RlbF09XCJzZWxlY3RlZEl0ZW1cIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiPjwvYXBwLWZvcm5lY2Vkb3Jlcy1mb3JtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tZm9ybS1hY29lc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCIgbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIHRhYmluZGV4PVwiMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,73 @@
1
+ import { Component, Inject, Optional } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { validaPessoa } from '../../../models/entidades/pessoa';
4
+ import { FocusService } from '../../../providers/focus.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../providers/common-web-service";
7
+ import * as i2 from "../../../providers/notification.service";
8
+ import * as i3 from "@angular/material/dialog";
9
+ import * as i4 from "../../../providers/screen-helper.service";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/material/button";
12
+ import * as i7 from "@angular/material/icon";
13
+ import * as i8 from "../../../controls/busy-indicator/busy-indicator.component";
14
+ import * as i9 from "../fornecedores/fornecedores-form.component";
15
+ export class FornecedoresAddDialogComponent {
16
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
17
+ this.ws = ws;
18
+ this.notification = notification;
19
+ this.dataDialog = dataDialog;
20
+ this.dialog = dialog;
21
+ this.elRef = elRef;
22
+ this.dialogRef = dialogRef;
23
+ this.screenHelper = screenHelper;
24
+ this.isBusy = false;
25
+ this.focus = new FocusService();
26
+ this.model = dataDialog ?? {
27
+ id: 0,
28
+ nome: '',
29
+ isAtivo: true
30
+ };
31
+ this.mobile = this.screenHelper.isMedium;
32
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
33
+ }
34
+ ngOnInit() {
35
+ this.focus.registerElement(this.elRef.nativeElement);
36
+ }
37
+ ngOnDestroy() {
38
+ this.focus.unregisterElement(this.elRef.nativeElement);
39
+ }
40
+ salvar() {
41
+ const valMsg = validaPessoa(this.model, this.focus);
42
+ if (valMsg) {
43
+ this.notification.showMsgError(valMsg);
44
+ return;
45
+ }
46
+ this.isBusy = true;
47
+ this.ws.addFornecedor(this.model)
48
+ .subscribe({
49
+ next: r => {
50
+ this.isBusy = false;
51
+ this.model.id = r;
52
+ this.notification.showMsg("Salvo com sucesso.");
53
+ this.dialogRef.close(this.model);
54
+ },
55
+ error: err => {
56
+ this.isBusy = false;
57
+ this.notification.showMsg(err.error);
58
+ }
59
+ });
60
+ }
61
+ }
62
+ FornecedoresAddDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresAddDialogComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: MAT_DIALOG_DATA, optional: true }, { token: i3.MatDialog }, { token: i0.ElementRef }, { token: i3.MatDialogRef }, { token: i4.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
63
+ 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.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.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: i8.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i9.FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: ["model"] }] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresAddDialogComponent, decorators: [{
65
+ type: Component,
66
+ 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"] }]
67
+ }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: undefined, decorators: [{
68
+ type: Optional
69
+ }, {
70
+ type: Inject,
71
+ args: [MAT_DIALOG_DATA]
72
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: i4.ScreenHelperService }]; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cvZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cvZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTyw4QkFBOEI7SUFLekMsWUFBb0IsRUFBb0IsRUFDOUIsWUFBaUMsRUFFbEMsVUFBc0IsRUFDdEIsTUFBaUIsRUFDaEIsS0FBaUIsRUFDakIsU0FBdUQsRUFDdkQsWUFBaUM7UUFQdkIsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBRWxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQThDO1FBQ3ZELGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQVQzQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFVBQUssR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsSUFBSTtZQUN6QixFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MkhBbERVLDhCQUE4QixxRkFPbkIsZUFBZTsrR0FQMUIsOEJBQThCLG1FQ2IzQyx5a0JBYXlEOzJGREE1Qyw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsNkJBQTZCOzswQkFXcEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGb3JuZWNlZG9yLCB2YWxpZGFQZXNzb2EgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW50aWRhZGVzL3Blc3NvYSc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNjcmVlbkhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvc2NyZWVuLWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm5lY2Vkb3Jlcy1hZGQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm5lY2Vkb3Jlcy1hZGQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JuZWNlZG9yZXNBZGREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG1vZGVsOiBGb3JuZWNlZG9yO1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBmb2N1czogRm9jdXNTZXJ2aWNlID0gbmV3IEZvY3VzU2VydmljZSgpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhRGlhbG9nOiBGb3JuZWNlZG9yLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Rm9ybmVjZWRvcmVzQWRkRGlhbG9nQ29tcG9uZW50PixcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIHRoaXMubW9kZWwgPSBkYXRhRGlhbG9nID8/IHtcbiAgICAgIGlkOiAwLFxuICAgICAgbm9tZTogJycsXG4gICAgICBpc0F0aXZvOiB0cnVlXG4gICAgfTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2NyZWVuSGVscGVyLmlzTWVkaXVtO1xuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBzYWx2YXIoKSB7XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUGVzc29hKHRoaXMubW9kZWwsIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5hZGRGb3JuZWNlZG9yKHRoaXMubW9kZWwpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vZGVsLmlkID0gcjtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMubW9kZWwpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coZXJyLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJ0aXR1bG9cIj5Ob3ZvIEZvcm5lY2Vkb3I8L2gyPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGFwcC1mb3JuZWNlZG9yZXMtZm9ybSBbbW9kZWxdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGVsXCI+PC9hcHAtZm9ybmVjZWRvcmVzLWZvcm0+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJpc0J1c3lcIiAoY2xpY2spPVwic2FsdmFyKClcIiAgdGFiaW5kZXg9XCIxMDBcIj5TQUxWQVI8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdID5WT0xUQVI8L2J1dHRvbj5cbjwvZGl2PlxuPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj4iXX0=
@@ -0,0 +1,71 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { validaPessoa } from '../../../models/entidades/pessoa';
4
+ import { FocusService } from '../../../providers/focus.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../providers/common-web-service";
7
+ import * as i2 from "../../../providers/notification.service";
8
+ import * as i3 from "@angular/material/dialog";
9
+ import * as i4 from "../../../providers/screen-helper.service";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/material/button";
12
+ import * as i7 from "@angular/material/icon";
13
+ import * as i8 from "../../../controls/busy-indicator/busy-indicator.component";
14
+ import * as i9 from "../fornecedores/fornecedores-form.component";
15
+ export class FornecedoresEditDialogComponent {
16
+ constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
17
+ this.ws = ws;
18
+ this.notification = notification;
19
+ this.dataDialog = dataDialog;
20
+ this.dialog = dialog;
21
+ this.elRef = elRef;
22
+ this.dialogRef = dialogRef;
23
+ this.screenHelper = screenHelper;
24
+ this.isBusy = false;
25
+ this.focus = new FocusService();
26
+ if (dataDialog) {
27
+ this.model = dataDialog;
28
+ }
29
+ this.mobile = this.screenHelper.isMedium;
30
+ this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
31
+ }
32
+ ngOnInit() {
33
+ this.focus.registerElement(this.elRef.nativeElement);
34
+ }
35
+ ngOnDestroy() {
36
+ this.focus.unregisterElement(this.elRef.nativeElement);
37
+ }
38
+ salvar() {
39
+ if (!this.model)
40
+ return;
41
+ const valMsg = validaPessoa(this.model, this.focus);
42
+ if (valMsg) {
43
+ this.notification.showMsgError(valMsg);
44
+ return;
45
+ }
46
+ this.isBusy = true;
47
+ this.ws.saveFornecedor(this.model)
48
+ .subscribe({
49
+ next: r => {
50
+ this.isBusy = false;
51
+ this.notification.showMsg("Salvo com sucesso.");
52
+ if (this.dialogRef)
53
+ this.dialogRef.close(true);
54
+ },
55
+ error: err => {
56
+ this.isBusy = false;
57
+ this.notification.showMsg(err.error);
58
+ }
59
+ });
60
+ }
61
+ }
62
+ FornecedoresEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresEditDialogComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: MAT_DIALOG_DATA }, { token: i3.MatDialog }, { token: i0.ElementRef }, { token: i3.MatDialogRef }, { token: i4.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
63
+ 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.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.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: i8.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i9.FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: ["model"] }] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FornecedoresEditDialogComponent, decorators: [{
65
+ type: Component,
66
+ 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"] }]
67
+ }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: undefined, decorators: [{
68
+ type: Inject,
69
+ args: [MAT_DIALOG_DATA]
70
+ }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: i4.ScreenHelperService }]; } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybmVjZWRvcmVzLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy1lZGl0LWRpYWxvZy9mb3JuZWNlZG9yZXMtZWRpdC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvZm9ybmVjZWRvcmVzLWVkaXQtZGlhbG9nL2Zvcm5lY2Vkb3Jlcy1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7OztBQVNoRSxNQUFNLE9BQU8sK0JBQStCO0lBTTFDLFlBQW9CLEVBQW9CLEVBQzlCLFlBQWlDLEVBRWxDLFVBQXNCLEVBQ3RCLE1BQWlCLEVBQ2hCLEtBQWlCLEVBQ2pCLFNBQXdELEVBQ3hELFlBQWlDO1FBUHZCLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUVsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUErQztRQUN4RCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFWM0MsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFVdkMsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFFekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDeEIsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMvQixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2hELElBQUksSUFBSSxDQUFDLFNBQVM7b0JBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEhBbkRVLCtCQUErQixxRkFRaEMsZUFBZTtnSEFSZCwrQkFBK0Isb0VDYjVDLG1qQkFheUQ7MkZEQTVDLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEI7OzBCQVlyQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZvcm5lY2Vkb3IsIHZhbGlkYVBlc3NvYSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcGVzc29hJztcbmltcG9ydCB7IENvbW1vbldlYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tbW9uLXdlYi1zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9mb2N1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY3JlZW4taGVscGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybmVjZWRvcmVzLWVkaXQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm5lY2Vkb3Jlcy1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm5lY2Vkb3Jlcy1lZGl0LWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm5lY2Vkb3Jlc0VkaXREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG1vZGVsPzogRm9ybmVjZWRvcjtcbiAgbW9iaWxlOiBib29sZWFuO1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9jdXM6IEZvY3VzU2VydmljZSA9IG5ldyBGb2N1c1NlcnZpY2UoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhRGlhbG9nOiBGb3JuZWNlZG9yLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Rm9ybmVjZWRvcmVzRWRpdERpYWxvZ0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBzY3JlZW5IZWxwZXI6IFNjcmVlbkhlbHBlclNlcnZpY2UpIHtcbiAgICBpZiAoZGF0YURpYWxvZykge1xuICAgICAgdGhpcy5tb2RlbCA9IGRhdGFEaWFsb2c7XG4gICAgfVxuICAgIHRoaXMubW9iaWxlID0gdGhpcy5zY3JlZW5IZWxwZXIuaXNNZWRpdW07XG5cbiAgICB0aGlzLnNjcmVlbkhlbHBlci5jaGFuZ2VkTWVkaXVtU2NyZWVuLnN1YnNjcmliZSh4ID0+IHRoaXMubW9iaWxlID0geCk7XG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy51bnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgc2FsdmFyKCkge1xuICAgIGlmICghdGhpcy5tb2RlbCkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbE1zZyA9IHZhbGlkYVBlc3NvYSh0aGlzLm1vZGVsLCB0aGlzLmZvY3VzKTtcbiAgICBpZiAodmFsTXNnKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnRXJyb3IodmFsTXNnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3Muc2F2ZUZvcm5lY2Vkb3IodGhpcy5tb2RlbClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgPGgyIGNsYXNzPVwidGl0dWxvXCI+RWRpdGFuZG8gRm9ybmVjZWRvcjwvaDI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZGlhbG9nLWNvbnRlbnRcIj5cbiAgICA8YXBwLWZvcm5lY2Vkb3Jlcy1mb3JtIFttb2RlbF09XCJtb2RlbFwiICpuZ0lmPVwibW9kZWxcIj48L2FwcC1mb3JuZWNlZG9yZXMtZm9ybT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNhbHZhcigpXCIgdGFiaW5kZXg9XCI5XCI+U0FMVkFSPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5WT0xUQVI8L2J1dHRvbj5cbjwvZGl2PlxuPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj4iXX0=
@@ -0,0 +1,108 @@
1
+ import { Component } from '@angular/core';
2
+ import { SearchSetting } from '../../../models/settings/search-setting';
3
+ import { LazyTrigger } from '../../../models/infra/lazy-trigger';
4
+ import { NavegacaoSelecaoDialogUtil } from '../../../models/infra/selecao-utils';
5
+ import { FornecedoresAddDialogComponent } from '../fornecedores-add-dialog/fornecedores-add-dialog.component';
6
+ import { FornecedoresEditDialogComponent } from '../fornecedores-edit-dialog/fornecedores-edit-dialog.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/dialog";
9
+ import * as i2 from "../../../providers/common-web-service";
10
+ import * as i3 from "../../../providers/notification.service";
11
+ import * as i4 from "../../../providers/auth-data.service";
12
+ import * as i5 from "../../../providers/screen-helper.service";
13
+ import * as i6 from "@angular/common";
14
+ import * as i7 from "@angular/forms";
15
+ import * as i8 from "@angular/material/button";
16
+ import * as i9 from "@angular/material/icon";
17
+ import * as i10 from "../../../controls/busy-indicator/busy-indicator.component";
18
+ export class SelecaoFornecedorDialogComponent {
19
+ constructor(dialogRef, ws, notification, dialog, auth, screenHelper) {
20
+ this.dialogRef = dialogRef;
21
+ this.ws = ws;
22
+ this.notification = notification;
23
+ this.dialog = dialog;
24
+ this.screenHelper = screenHelper;
25
+ this.items = [];
26
+ this.selectedItem = null;
27
+ this.isBusy = false;
28
+ this.setting = new SearchSetting();
29
+ this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
30
+ this.nav = new NavegacaoSelecaoDialogUtil(this);
31
+ this.mobile = this.screenHelper.isMedium;
32
+ this.allowAdd = auth.permissoes.financasClienteAdd;
33
+ this.allowEdit = auth.permissoes.financasClientePesquisa;
34
+ }
35
+ ngOnInit() {
36
+ this.setting.ordem = "nome";
37
+ this.atualiza();
38
+ }
39
+ atualiza() {
40
+ this.isBusy = true;
41
+ this.ws.buscaFornecedor(this.setting)
42
+ .subscribe({
43
+ next: r => {
44
+ this.isBusy = false;
45
+ this.items = r;
46
+ console.info(r);
47
+ },
48
+ error: err => {
49
+ this.isBusy = false;
50
+ this.notification.showHttpError(err);
51
+ }
52
+ });
53
+ }
54
+ selectItem(i) {
55
+ if (this.selectedItem === i) {
56
+ this.dialogRef.close(i);
57
+ }
58
+ this.selectedItem = i;
59
+ }
60
+ novo() {
61
+ let height = (window.innerHeight * 0.90) + 'px';
62
+ let width = 550 + 'px';
63
+ if (this.mobile) {
64
+ width = (window.innerWidth * 0.99) + 'px';
65
+ //height = (window.innerHeight * 0.98) + 'px';
66
+ }
67
+ const dialog = this.dialog.open(FornecedoresAddDialogComponent, {
68
+ width: width,
69
+ height: height,
70
+ maxWidth: '100%',
71
+ panelClass: 'dialog-p0',
72
+ });
73
+ dialog.afterClosed().subscribe(result => {
74
+ if (result === undefined)
75
+ return;
76
+ this.notification.showMsg("Salvo com sucesso.");
77
+ this.atualiza();
78
+ });
79
+ }
80
+ editar() {
81
+ let height = (window.innerHeight * 0.90) + 'px';
82
+ let width = 550 + 'px';
83
+ if (this.mobile) {
84
+ width = (window.innerWidth * 0.99) + 'px';
85
+ //height = (window.innerHeight * 0.98) + 'px';
86
+ }
87
+ const dialog = this.dialog.open(FornecedoresEditDialogComponent, {
88
+ width: width,
89
+ height: height,
90
+ maxWidth: '100%',
91
+ panelClass: 'dialog-p0',
92
+ data: this.selectedItem
93
+ });
94
+ dialog.afterClosed().subscribe(result => {
95
+ if (result === undefined)
96
+ return;
97
+ this.notification.showMsg("Salvo com sucesso.");
98
+ this.atualiza();
99
+ });
100
+ }
101
+ }
102
+ SelecaoFornecedorDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoFornecedorDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.CommonWebService }, { token: i3.NotificationService }, { token: i1.MatDialog }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
103
+ 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: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] });
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: SelecaoFornecedorDialogComponent, decorators: [{
105
+ type: Component,
106
+ 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"] }]
107
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.CommonWebService }, { type: i3.NotificationService }, { type: i1.MatDialog }, { type: i4.AuthDataService }, { type: i5.ScreenHelperService }]; } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNhby1mb3JuZWNlZG9yLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL2Zvcm5lY2Vkb3Jlcy9zZWxlY2FvLWZvcm5lY2Vkb3ItZGlhbG9nL3NlbGVjYW8tZm9ybmVjZWRvci1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvc2VsZWNhby1mb3JuZWNlZG9yLWRpYWxvZy9zZWxlY2FvLWZvcm5lY2Vkb3ItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtqRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT2pILE1BQU0sT0FBTyxnQ0FBZ0M7SUFXM0MsWUFBbUIsU0FBeUQsRUFDbEUsRUFBb0IsRUFDcEIsWUFBaUMsRUFDbEMsTUFBaUIsRUFDeEIsSUFBcUIsRUFDYixZQUFpQztRQUx4QixjQUFTLEdBQVQsU0FBUyxDQUFnRDtRQUNsRSxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUVoQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7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LElBQUksQ0FBQztRQUNoRCxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzFDLDhDQUE4QztTQUMvQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQy9ELEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsV0FBVztZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxJQUFJLE1BQU0sS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2SEEzRlUsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MscUVDbkI3Qyw4L0NBbUNBOzJGRGhCYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRm9ybmVjZWRvciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcGVzc29hJztcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xuaW1wb3J0IHsgTGF6eVRyaWdnZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvbGF6eS10cmlnZ2VyJztcbmltcG9ydCB7IE5hdmVnYWNhb1NlbGVjYW9EaWFsb2dVdGlsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY3JlZW4taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybmVjZWRvcmVzQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cvZm9ybmVjZWRvcmVzLWFkZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm5lY2Vkb3Jlc0VkaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9mb3JuZWNlZG9yZXMtZWRpdC1kaWFsb2cvZm9ybmVjZWRvcmVzLWVkaXQtZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWxlY2FvLWZvcm5lY2Vkb3ItZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjYW8tZm9ybmVjZWRvci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY2FvLWZvcm5lY2Vkb3ItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWNhb0Zvcm5lY2Vkb3JEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpdGVtczogRm9ybmVjZWRvcltdID0gW107XG4gIHNlbGVjdGVkSXRlbTogRm9ybmVjZWRvciB8IG51bGwgPSBudWxsO1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbW9iaWxlOiBib29sZWFuO1xuICBhbGxvd0FkZDogYm9vbGVhbjtcbiAgYWxsb3dFZGl0OiBib29sZWFuO1xuICBzZXR0aW5nID0gbmV3IFNlYXJjaFNldHRpbmcoKTtcbiAgbGF6eVRyaWdnZXIgPSBuZXcgTGF6eVRyaWdnZXIoKCkgPT4geyB0aGlzLmF0dWFsaXphKCk7IH0pO1xuICBuYXYgPSBuZXcgTmF2ZWdhY2FvU2VsZWNhb0RpYWxvZ1V0aWw8Rm9ybmVjZWRvciwgU2VsZWNhb0Zvcm5lY2Vkb3JEaWFsb2dDb21wb25lbnQ+KHRoaXMpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTZWxlY2FvRm9ybmVjZWRvckRpYWxvZ0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSB3czogQ29tbW9uV2ViU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgYXV0aDogQXV0aERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NyZWVuSGVscGVyOiBTY3JlZW5IZWxwZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcbiAgICB0aGlzLmFsbG93QWRkID0gYXV0aC5wZXJtaXNzb2VzLmZpbmFuY2FzQ2xpZW50ZUFkZDtcbiAgICB0aGlzLmFsbG93RWRpdCA9IGF1dGgucGVybWlzc29lcy5maW5hbmNhc0NsaWVudGVQZXNxdWlzYTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0dGluZy5vcmRlbSA9IFwibm9tZVwiO1xuICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgfVxuXG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhRm9ybmVjZWRvcih0aGlzLnNldHRpbmcpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gcjtcbiAgICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaSA6IEZvcm5lY2Vkb3IpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0gPT09IGkpIHtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGkpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGk7XG4gIH1cblxuICBub3ZvKCkge1xuXG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKEZvcm5lY2Vkb3Jlc0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBlZGl0YXIoKSB7XG5cbiAgICBsZXQgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTApICsgJ3B4JztcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICAvL2hlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk4KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oRm9ybmVjZWRvcmVzRWRpdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgICBkYXRhOiB0aGlzLnNlbGVjdGVkSXRlbVxuICAgIH0pO1xuICAgIGRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiPlxuICA8aDI+U2VsZcOnw6NvIGRlIEZvcm5lY2Vkb3JlczwvaDI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0b29sLXBhbmVsXCI+XG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICA8bGFiZWw+UGVzcXVpc2E8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICA8aW5wdXQgKGtleWRvd24pPVwibmF2Lm9uS2V5RG93bigkZXZlbnQpXCIgY2RrRm9jdXNJbml0aWFsIFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgIDxsYWJlbD5Bw6fDtWVzPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwidG9vbC1yb3dcIj5cbiAgICAgIDxidXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhdHVhbGl6YSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQXR1YWxpemFyXCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwibm92b1wiPmFkZDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0YXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiZWRpdGFyXCI+ZWRpdDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiPlxuICA8ZGl2IChjbGljayk9XCJzZWxlY3RJdGVtKGkpXCIgW25nQ2xhc3NdPVwie3NlbGVjdGVkOiBzZWxlY3RlZEl0ZW0gPT09IGl9XCIgY2xhc3M9XCJsaXN0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiPlxuICAgIDxzcGFuPnt7aS5ub21lfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxuICA8YnV0dG9uIG1hdC1idXR0b24gW2Rpc2FibGVkXT1cInNlbGVjdGVkSXRlbSA9PSB1bmRlZmluZWRcIiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJzZWxlY3RlZEl0ZW1cIj5DT05GSVJNQVI8L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInVuZGVmaW5lZFwiPlZPTFRBUjwvYnV0dG9uPlxuPC9kaXY+XG48b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuIl19