oxpi-nglib 0.0.51 → 1.0.2
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.
- package/esm2020/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.mjs +74 -0
- package/esm2020/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.mjs +68 -0
- package/esm2020/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.mjs +38 -0
- package/esm2020/lib/cadastros/funcionarios/funcionarios/funcionarios.component.mjs +157 -0
- package/esm2020/lib/cadastros/produtos/produto-add-dialog/produto-add-dialog.component.mjs +79 -0
- package/esm2020/lib/cadastros/produtos/produto-busca-filtros-dialog/produto-busca-filtros-dialog.component.mjs +56 -0
- package/esm2020/lib/cadastros/produtos/produto-edit-dialog/produto-edit-dialog.component.mjs +68 -0
- package/esm2020/lib/cadastros/produtos/produto-form/produto-form.component.mjs +343 -0
- package/esm2020/lib/cadastros/produtos/produtos/produtos.component.mjs +211 -0
- package/esm2020/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-add-dialog/produto-categoria-cardapio-add-dialog.component.mjs +69 -0
- package/esm2020/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-edit-dialog/produto-categoria-cardapio-edit-dialog.component.mjs +68 -0
- package/esm2020/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-selecao-dialog/produto-categoria-cardapio-selecao-dialog.component.mjs +106 -0
- package/esm2020/lib/cadastros/produtos-categoria-cardapio/produtos-categorias-cardapio/produtos-categorias-cardapio.component.mjs +156 -0
- package/esm2020/lib/cadastros/produtos-grupos/mover-grupo-dialog/mover-grupo-dialog.component.mjs +65 -0
- package/esm2020/lib/cadastros/produtos-grupos/produto-grupo-add-dialog/produto-grupo-add-dialog.component.mjs +69 -0
- package/esm2020/lib/cadastros/produtos-grupos/produto-grupo-edit-dialog/produto-grupo-edit-dialog.component.mjs +68 -0
- package/esm2020/lib/cadastros/produtos-grupos/produto-grupo-form/produto-grupo-form.component.mjs +18 -0
- package/esm2020/lib/cadastros/produtos-grupos/produto-grupo-selecao-dialog/produto-grupo-selecao-dialog.component.mjs +106 -0
- package/esm2020/lib/cadastros/produtos-grupos/produtos-grupos/produtos-grupos.component.mjs +179 -0
- package/esm2020/lib/cadastros/produtos-ncm-dialog/produtos-ncm-dialog.component.mjs +58 -0
- package/esm2020/lib/cadastros/produtos-subgrupos/produto-subgrupo-add-dialog/produto-subgrupo-add-dialog.component.mjs +71 -0
- package/esm2020/lib/cadastros/produtos-subgrupos/produto-subgrupo-edit-dialog/produto-subgrupo-edit-dialog.component.mjs +68 -0
- package/esm2020/lib/cadastros/produtos-subgrupos/produto-subgrupo-selecao-dialog/produto-subgrupo-selecao-dialog.component.mjs +106 -0
- package/esm2020/lib/cadastros/produtos-subgrupos/produtos-subgrupos/produtos-subgrupos.component.mjs +156 -0
- package/esm2020/lib/controls/alert-dialog/alert-dialog.component.mjs +4 -4
- package/esm2020/lib/controls/busy-indicator/busy-indicator.component.mjs +4 -4
- package/esm2020/lib/controls/check-button/check-button.component.mjs +3 -3
- package/esm2020/lib/controls/image-viewer/image-viewer.component.mjs +6 -6
- package/esm2020/lib/controls/item-card/item-card.component.mjs +3 -3
- package/esm2020/lib/controls/month-year-picker/month-year-picker.component.mjs +3 -3
- package/esm2020/lib/controls/numeric-picker/numeric-picker.component.mjs +6 -6
- package/esm2020/lib/controls/paginator/paginator.component.mjs +3 -3
- package/esm2020/lib/controls/radio-button-group/radio-button-group.component.mjs +5 -5
- package/esm2020/lib/models/entidades/funcionario.mjs +12 -0
- package/esm2020/lib/models/entidades/produto-grupo.mjs +9 -0
- package/esm2020/lib/models/entidades/produto-ncm.mjs +2 -0
- package/esm2020/lib/models/entidades/produto.mjs +106 -0
- package/esm2020/lib/models/entidades/setor-estoque.mjs +2 -0
- package/esm2020/lib/models/infra/number-parser.mjs +1 -1
- package/esm2020/lib/models/infra/selecao-utils.mjs +4 -2
- package/esm2020/lib/models/infra/validations.mjs +1 -1
- package/esm2020/lib/models/tuple.mjs +2 -0
- package/esm2020/lib/oxpi-nglib.module.mjs +100 -15
- package/esm2020/lib/providers/auth-data.service.mjs +219 -0
- package/esm2020/lib/providers/common-web-service.mjs +220 -0
- package/esm2020/lib/providers/export.file.service.mjs +3 -3
- package/esm2020/lib/providers/notification.service.mjs +29 -0
- package/esm2020/lib/providers/preference.service.mjs +3 -3
- package/esm2020/lib/providers/safe-html.pipe.mjs +3 -3
- package/esm2020/lib/providers/screen-helper.service.mjs +3 -3
- package/esm2020/public-api.mjs +8 -1
- package/fesm2015/oxpi-nglib.mjs +3623 -871
- package/fesm2015/oxpi-nglib.mjs.map +1 -1
- package/fesm2020/oxpi-nglib.mjs +3595 -868
- package/fesm2020/oxpi-nglib.mjs.map +1 -1
- package/{oxpi-nglib.d.ts → index.d.ts} +0 -0
- package/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.d.ts +27 -0
- package/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.d.ts +27 -0
- package/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.d.ts +15 -0
- package/lib/cadastros/funcionarios/funcionarios/funcionarios.component.d.ts +36 -0
- package/lib/cadastros/produtos/produto-add-dialog/produto-add-dialog.component.d.ts +28 -0
- package/lib/cadastros/produtos/produto-busca-filtros-dialog/produto-busca-filtros-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos/produto-edit-dialog/produto-edit-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos/produto-form/produto-form.component.d.ts +78 -0
- package/lib/cadastros/produtos/produtos/produtos.component.d.ts +44 -0
- package/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-add-dialog/produto-categoria-cardapio-add-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-edit-dialog/produto-categoria-cardapio-edit-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-selecao-dialog/produto-categoria-cardapio-selecao-dialog.component.d.ts +35 -0
- package/lib/cadastros/produtos-categoria-cardapio/produtos-categorias-cardapio/produtos-categorias-cardapio.component.d.ts +36 -0
- package/lib/cadastros/produtos-grupos/mover-grupo-dialog/mover-grupo-dialog.component.d.ts +21 -0
- package/lib/cadastros/produtos-grupos/produto-grupo-add-dialog/produto-grupo-add-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos-grupos/produto-grupo-edit-dialog/produto-grupo-edit-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos-grupos/produto-grupo-form/produto-grupo-form.component.d.ts +10 -0
- package/lib/cadastros/produtos-grupos/produto-grupo-selecao-dialog/produto-grupo-selecao-dialog.component.d.ts +35 -0
- package/lib/cadastros/produtos-grupos/produtos-grupos/produtos-grupos.component.d.ts +37 -0
- package/lib/cadastros/produtos-ncm-dialog/produtos-ncm-dialog.component.d.ts +29 -0
- package/lib/cadastros/produtos-subgrupos/produto-subgrupo-add-dialog/produto-subgrupo-add-dialog.component.d.ts +27 -0
- package/lib/cadastros/produtos-subgrupos/produto-subgrupo-edit-dialog/produto-subgrupo-edit-dialog.component.d.ts +28 -0
- package/lib/cadastros/produtos-subgrupos/produto-subgrupo-selecao-dialog/produto-subgrupo-selecao-dialog.component.d.ts +35 -0
- package/lib/cadastros/produtos-subgrupos/produtos-subgrupos/produtos-subgrupos.component.d.ts +36 -0
- package/lib/controls/alert-dialog/alert-dialog.component.d.ts +1 -1
- package/lib/controls/busy-indicator/busy-indicator.component.d.ts +1 -1
- package/lib/controls/check-button/check-button.component.d.ts +1 -1
- package/lib/controls/image-viewer/image-viewer.component.d.ts +1 -1
- package/lib/controls/item-card/item-card.component.d.ts +1 -1
- package/lib/controls/month-year-picker/month-year-picker.component.d.ts +1 -1
- package/lib/controls/numeric-picker/numeric-picker.component.d.ts +1 -1
- package/lib/controls/paginator/paginator.component.d.ts +1 -1
- package/lib/controls/radio-button-group/radio-button-group.component.d.ts +1 -1
- package/lib/models/entidades/funcionario.d.ts +15 -0
- package/lib/models/entidades/produto-grupo.d.ts +20 -0
- package/lib/models/entidades/produto-ncm.d.ts +10 -0
- package/lib/models/entidades/produto.d.ts +74 -0
- package/lib/models/entidades/setor-estoque.d.ts +7 -0
- package/lib/models/infra/number-parser.d.ts +1 -1
- package/lib/models/infra/selecao-utils.d.ts +1 -1
- package/lib/models/infra/validations.d.ts +3 -3
- package/lib/models/tuple.d.ts +4 -0
- package/lib/oxpi-nglib.module.d.ts +34 -7
- package/lib/providers/auth-data.service.d.ts +20 -0
- package/lib/providers/common-web-service.d.ts +80 -0
- package/lib/providers/notification.service.d.ts +12 -0
- package/lib/providers/safe-html.pipe.d.ts +1 -1
- package/package.json +5 -10
- package/public-api.d.ts +7 -0
- package/styles/cadastros-listagens-form.scss +15 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../providers/common-web-service";
|
|
5
|
+
import * as i2 from "../../../providers/notification.service";
|
|
6
|
+
import * as i3 from "@angular/material/dialog";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "@angular/material/button";
|
|
10
|
+
import * as i7 from "@angular/material/icon";
|
|
11
|
+
import * as i8 from "@angular/material/select";
|
|
12
|
+
import * as i9 from "@angular/material/core";
|
|
13
|
+
import * as i10 from "../../../controls/busy-indicator/busy-indicator.component";
|
|
14
|
+
export class ProdutoBuscaFiltrosDialogComponent {
|
|
15
|
+
constructor(d, ws, notification, dialogRef) {
|
|
16
|
+
this.d = d;
|
|
17
|
+
this.ws = ws;
|
|
18
|
+
this.notification = notification;
|
|
19
|
+
this.dialogRef = dialogRef;
|
|
20
|
+
this.isBusy = false;
|
|
21
|
+
this.produtosGrupos = [];
|
|
22
|
+
this.d.setting.grupos = undefined;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.getProdutos();
|
|
26
|
+
}
|
|
27
|
+
getProdutos() {
|
|
28
|
+
this.isBusy = true;
|
|
29
|
+
this.ws.getAllProdutoGrupo()
|
|
30
|
+
.subscribe(r => {
|
|
31
|
+
this.produtosGrupos = r;
|
|
32
|
+
console.info(r);
|
|
33
|
+
this.isBusy = false;
|
|
34
|
+
}, err => {
|
|
35
|
+
this.isBusy = false;
|
|
36
|
+
this.notification.showHttpError(err);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
salvar() {
|
|
40
|
+
this.dialogRef.close(this.d);
|
|
41
|
+
}
|
|
42
|
+
changeGruposProdutos(ev) {
|
|
43
|
+
const itens = ev.value;
|
|
44
|
+
this.d.setting.grupos = itens;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
ProdutoBuscaFiltrosDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoBuscaFiltrosDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
ProdutoBuscaFiltrosDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutoBuscaFiltrosDialogComponent, selector: "app-produto-busca-filtros-dialog", ngImport: i0, template: "<div class=\"ox-header\">\n <span class=\"titulo\">Filtros de Pesquisa</span>\n <button mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"dialog-content\">\n <div class=\"vbox\">\n <h4>Op\u00E7\u00F5es de exibi\u00E7\u00E3o</h4>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeNaoControladoEstoque\" tabindex=-1>Exibir n\u00E3o controlado no\n estoque</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeApenasMostraRecepcao\" tabindex=-1>Apenas o que mostra na recep\u00E7\u00E3o\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimiCozinha\" tabindex=-1>Exibir imprime na cozinha\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeInativo\" tabindex=-1>Exibir desativados</mat-slide-toggle>\n </div>\n <div class=\"vbox margin-top-16\">\n <h4>Selecione um ou mais grupos</h4>\n <mat-select (selectionChange)=\"changeGruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of produtosGrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-32\">\n <h4>Quantidade de Itens por P\u00E1gina</h4>\n\n <div class=\"form-group\">\n <label>Quantidade</label>\n <input [(ngModel)]=\"d.qtd\" class=\"form-control input-120\" maxlength=\"10\" type=\"number\">\n </div>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button (click)=\"salvar()\">CONFIRMAR</button>\n</div>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}.header{display:flex;background:white;border-bottom:1px solid #eee}.header .titulo{align-self:center;margin-left:16px;text-transform:uppercase;flex-grow:1}mat-select{background:white;height:36px;padding:8px 16px;border-radius:.25rem;border:1px solid #ced4da}h4{margin:0 0 16px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoBuscaFiltrosDialogComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'app-produto-busca-filtros-dialog', template: "<div class=\"ox-header\">\n <span class=\"titulo\">Filtros de Pesquisa</span>\n <button mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"dialog-content\">\n <div class=\"vbox\">\n <h4>Op\u00E7\u00F5es de exibi\u00E7\u00E3o</h4>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeNaoControladoEstoque\" tabindex=-1>Exibir n\u00E3o controlado no\n estoque</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeApenasMostraRecepcao\" tabindex=-1>Apenas o que mostra na recep\u00E7\u00E3o\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimiCozinha\" tabindex=-1>Exibir imprime na cozinha\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeInativo\" tabindex=-1>Exibir desativados</mat-slide-toggle>\n </div>\n <div class=\"vbox margin-top-16\">\n <h4>Selecione um ou mais grupos</h4>\n <mat-select (selectionChange)=\"changeGruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of produtosGrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-32\">\n <h4>Quantidade de Itens por P\u00E1gina</h4>\n\n <div class=\"form-group\">\n <label>Quantidade</label>\n <input [(ngModel)]=\"d.qtd\" class=\"form-control input-120\" maxlength=\"10\" type=\"number\">\n </div>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button (click)=\"salvar()\">CONFIRMAR</button>\n</div>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}.header{display:flex;background:white;border-bottom:1px solid #eee}.header .titulo{align-self:center;margin-left:16px;text-transform:uppercase;flex-grow:1}mat-select{background:white;height:36px;padding:8px 16px;border-radius:.25rem;border:1px solid #ced4da}h4{margin:0 0 16px}\n"] }]
|
|
52
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
53
|
+
type: Inject,
|
|
54
|
+
args: [MAT_DIALOG_DATA]
|
|
55
|
+
}] }, { type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialogRef }]; } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cvcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cvcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7QUFhekUsTUFBTSxPQUFPLGtDQUFrQztJQUc3QyxZQUVTLENBQW9CLEVBQ25CLEVBQW9CLEVBQ3BCLFlBQWlDLEVBQ2xDLFNBQTJEO1FBSDNELE1BQUMsR0FBRCxDQUFDLENBQW1CO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQ3BCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFrRDtRQVBwRSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztRQU9oQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTthQUN6QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELG9CQUFvQixDQUFDLEVBQW1CO1FBQ3RDLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDOzsrSEFqQ1Usa0NBQWtDLGtCQUluQyxlQUFlO21IQUpkLGtDQUFrQyx3RUNkL0MsOHFEQXFDTTsyRkR2Qk8sa0NBQWtDO2tCQUw5QyxTQUFTOytCQUNFLGtDQUFrQzs7MEJBUXpDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBQcm9kdXRvR3J1cG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8tZ3J1cG8nO1xuaW1wb3J0IHsgUHJvZHV0b1NlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3MvcHJvZHV0by1zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdXRvLWJ1c2NhLWZpbHRyb3MtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvZHV0b3NHcnVwb3M6IFByb2R1dG9HcnVwb1tdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkOiBmaWx0cm9zRGlhbG9nRGF0YSxcbiAgICBwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvQnVzY2FGaWx0cm9zRGlhbG9nQ29tcG9uZW50PikgeyBcbiAgICAgIHRoaXMuZC5zZXR0aW5nLmdydXBvcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQcm9kdXRvcygpO1xuICB9XG4gIGdldFByb2R1dG9zKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmdldEFsbFByb2R1dG9HcnVwbygpXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLnByb2R1dG9zR3J1cG9zID0gcjtcbiAgICAgICAgY29uc29sZS5pbmZvKHIpO1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgfSk7XG4gIH1cbiAgc2FsdmFyKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZCk7XG4gIH1cbiAgY2hhbmdlR3J1cG9zUHJvZHV0b3MoZXY6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgIGNvbnN0IGl0ZW5zOiBudW1iZXJbXSA9IGV2LnZhbHVlO1xuICAgIHRoaXMuZC5zZXR0aW5nLmdydXBvcyA9IGl0ZW5zO1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIGZpbHRyb3NEaWFsb2dEYXRhIHtcbiAgc2V0dGluZzogUHJvZHV0b1NlYXJjaFNldHRpbmc7XG4gIHF0ZDogbnVtYmVyO1xufVxuIiwiPGRpdiBjbGFzcz1cIm94LWhlYWRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGl0dWxvXCI+RmlsdHJvcyBkZSBQZXNxdWlzYTwvc3Bhbj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInZib3hcIj5cbiAgICAgICAgPGg0Pk9ww6fDtWVzIGRlIGV4aWJpw6fDo288L2g0PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZU5hb0NvbnRyb2xhZG9Fc3RvcXVlXCIgdGFiaW5kZXg9LTE+RXhpYmlyIG7Do28gY29udHJvbGFkbyBub1xuICAgICAgICAgICAgZXN0b3F1ZTwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJkLnNldHRpbmcuZXhpYmVBcGVuYXNNb3N0cmFSZWNlcGNhb1wiIHRhYmluZGV4PS0xPkFwZW5hcyBvIHF1ZSBtb3N0cmEgbmEgcmVjZXDDp8Ojb1xuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlSW1wcmltaUNvemluaGFcIiB0YWJpbmRleD0tMT5FeGliaXIgaW1wcmltZSBuYSBjb3ppbmhhXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJkLnNldHRpbmcuZXhpYmVJbmF0aXZvXCIgdGFiaW5kZXg9LTE+RXhpYmlyIGRlc2F0aXZhZG9zPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2Ym94IG1hcmdpbi10b3AtMTZcIj5cbiAgICAgICAgPGg0PlNlbGVjaW9uZSB1bSBvdSBtYWlzIGdydXBvczwvaDQ+XG4gICAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlR3J1cG9zUHJvZHV0b3MoJGV2ZW50KVwiIG11bHRpcGxlPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGkgb2YgcHJvZHV0b3NHcnVwb3NcIiBbdmFsdWVdPVwiaS5pZFwiPlxuICAgICAgICAgICAgICAgIHt7aS5ub21lfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2Ym94IG1hcmdpbi10b3AtMzJcIj5cbiAgICAgICAgPGg0PlF1YW50aWRhZGUgZGUgSXRlbnMgcG9yIFDDoWdpbmE8L2g0PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+UXVhbnRpZGFkZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJkLnF0ZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiIG1heGxlbmd0aD1cIjEwXCIgdHlwZT1cIm51bWJlclwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCI+Q09ORklSTUFSPC9idXR0b24+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { valida } from '../../../models/entidades/produto';
|
|
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 "../produto-form/produto-form.component";
|
|
15
|
+
export class ProdutoEditDialogComponent {
|
|
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 = valida(this.model, this.focus);
|
|
42
|
+
if (valMsg) {
|
|
43
|
+
this.notification.showMsgError(valMsg);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.isBusy = true;
|
|
47
|
+
this.ws.saveProduto(this.model)
|
|
48
|
+
.subscribe(r => {
|
|
49
|
+
this.isBusy = false;
|
|
50
|
+
this.notification.showMsg("Salvo com sucesso.");
|
|
51
|
+
if (this.dialogRef)
|
|
52
|
+
this.dialogRef.close(true);
|
|
53
|
+
}, err => {
|
|
54
|
+
this.isBusy = false;
|
|
55
|
+
this.notification.showMsg(err.error);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
ProdutoEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoEditDialogComponent, 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 });
|
|
60
|
+
ProdutoEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutoEditDialogComponent, selector: "app-produto-edit-dialog", ngImport: i0, template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Produto</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-produto-form [model]=\"model\" [editMode]=\"true\" *ngIf=\"model\"></app-produto-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.ProdutoFormComponent, selector: "app-produto-form", inputs: ["editMode", "model"], outputs: ["nextIdClick"] }] });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoEditDialogComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'app-produto-edit-dialog', template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Produto</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-produto-form [model]=\"model\" [editMode]=\"true\" *ngIf=\"model\"></app-produto-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"] }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: undefined, decorators: [{
|
|
65
|
+
type: Inject,
|
|
66
|
+
args: [MAT_DIALOG_DATA]
|
|
67
|
+
}] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: i4.ScreenHelperService }]; } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1lZGl0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tZWRpdC1kaWFsb2cvcHJvZHV0by1lZGl0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tZWRpdC1kaWFsb2cvcHJvZHV0by1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBVyxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTywwQkFBMEI7SUFNckMsWUFBb0IsRUFBb0IsRUFDOUIsWUFBaUMsRUFFbEMsVUFBbUIsRUFDbkIsTUFBaUIsRUFDaEIsS0FBaUIsRUFDakIsU0FBbUQsRUFDbkQsWUFBaUM7UUFQdkIsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBRWxDLGVBQVUsR0FBVixVQUFVLENBQVM7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQ25ELGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQVYzQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFVBQUssR0FBa0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVV4QyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUV6QyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUN4QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxNQUFNLEVBQ1Y7WUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQzVCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUztnQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7dUhBbERVLDBCQUEwQixxRkFRM0IsZUFBZTsyR0FSZCwwQkFBMEIsK0RDYnZDLDZqQkFheUQ7MkZEQTVDLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7OzBCQVloQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFByb2R1dG8sIHZhbGlkYSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0byc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNjcmVlbkhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvc2NyZWVuLWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXByb2R1dG8tZWRpdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0by1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG8tZWRpdC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvRWRpdERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1vZGVsOiBQcm9kdXRvIHwgdW5kZWZpbmVkO1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBmb2N1cyA6IEZvY3VzU2VydmljZSA9IG5ldyBGb2N1c1NlcnZpY2UoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhRGlhbG9nOiBQcm9kdXRvLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFByb2R1dG9FZGl0RGlhbG9nQ29tcG9uZW50PixcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIGlmIChkYXRhRGlhbG9nKSB7XG4gICAgICB0aGlzLm1vZGVsID0gZGF0YURpYWxvZztcbiAgICB9XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcblxuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBzYWx2YXIoKSB7XG4gICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhKHRoaXMubW9kZWwsIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpXG4gICAge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZ0Vycm9yKHZhbE1zZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3Muc2F2ZVByb2R1dG8odGhpcy5tb2RlbClcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJveC1oZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJ0aXR1bG9cIj5FZGl0YW5kbyBQcm9kdXRvPC9oMj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV0+XG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiPlxuICAgIDxhcHAtcHJvZHV0by1mb3JtIFttb2RlbF09XCJtb2RlbFwiIFtlZGl0TW9kZV09XCJ0cnVlXCIgKm5nSWY9XCJtb2RlbFwiPjwvYXBwLXByb2R1dG8tZm9ybT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNhbHZhcigpXCIgdGFiaW5kZXg9XCI5XCI+U0FMVkFSPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5WT0xUQVI8L2J1dHRvbj5cbjwvZGl2PlxuPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj4iXX0=
|