oxpi-nglib 2.0.64 → 2.0.66

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 (98) hide show
  1. package/esm2022/lib/cadastros/clientes/clientes/clientes-form.component.mjs +4 -4
  2. package/esm2022/lib/cadastros/clientes/clientes/clientes.component.mjs +5 -5
  3. package/esm2022/lib/cadastros/clientes/clientes-add-dialog/clientes-add-dialog.component.mjs +4 -4
  4. package/esm2022/lib/cadastros/clientes/clientes-edit-dialog/clientes-edit-dialog.component.mjs +4 -4
  5. package/esm2022/lib/cadastros/clientes/selecao-cliente-dialog/selecao-cliente-dialog.component.mjs +4 -4
  6. package/esm2022/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.mjs +4 -4
  7. package/esm2022/lib/cadastros/fornecedores/fornecedores/fornecedores.component.mjs +5 -5
  8. package/esm2022/lib/cadastros/fornecedores/fornecedores-add-dialog/fornecedores-add-dialog.component.mjs +4 -4
  9. package/esm2022/lib/cadastros/fornecedores/fornecedores-edit-dialog/fornecedores-edit-dialog.component.mjs +4 -4
  10. package/esm2022/lib/cadastros/fornecedores/selecao-fornecedor-dialog/selecao-fornecedor-dialog.component.mjs +4 -4
  11. package/esm2022/lib/cadastros/funcionarios/funcionario-add-dialog/funcionario-add-dialog.component.mjs +4 -4
  12. package/esm2022/lib/cadastros/funcionarios/funcionario-edit-dialog/funcionario-edit-dialog.component.mjs +4 -4
  13. package/esm2022/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.mjs +4 -4
  14. package/esm2022/lib/cadastros/funcionarios/funcionarios/funcionarios.component.mjs +5 -5
  15. package/esm2022/lib/controls/alert-dialog/alert-dialog.component.mjs +4 -4
  16. package/esm2022/lib/controls/busy-indicator/busy-indicator.component.mjs +5 -5
  17. package/esm2022/lib/controls/check-button/check-button.component.mjs +5 -5
  18. package/esm2022/lib/controls/image-viewer/image-viewer.component.mjs +5 -5
  19. package/esm2022/lib/controls/item-card/item-card.component.mjs +4 -4
  20. package/esm2022/lib/controls/month-year-picker/month-year-picker.component.mjs +4 -4
  21. package/esm2022/lib/controls/numeric-picker/numeric-picker.component.mjs +4 -4
  22. package/esm2022/lib/controls/paginator/paginator.component.mjs +4 -4
  23. package/esm2022/lib/controls/produto-card/produto-card.component.mjs +4 -4
  24. package/esm2022/lib/controls/radio-button-group/radio-button-group.component.mjs +4 -4
  25. package/esm2022/lib/controls/selecao-list-item/selecao-list-item.component.mjs +5 -5
  26. package/esm2022/lib/oxpi-nglib.module.mjs +6 -93
  27. package/esm2022/lib/providers/auth-data.service.mjs +4 -4
  28. package/esm2022/lib/providers/common-web-service.mjs +4 -4
  29. package/esm2022/lib/providers/export.file.service.mjs +4 -4
  30. package/esm2022/lib/providers/notification.service.mjs +6 -6
  31. package/esm2022/lib/providers/preference.service.mjs +4 -4
  32. package/esm2022/lib/providers/safe-html.pipe.mjs +4 -4
  33. package/esm2022/lib/providers/screen-helper.service.mjs +4 -4
  34. package/esm2022/public-api.mjs +1 -30
  35. package/fesm2022/oxpi-nglib.mjs +521 -3347
  36. package/fesm2022/oxpi-nglib.mjs.map +1 -1
  37. package/lib/oxpi-nglib.module.d.ts +25 -54
  38. package/lib/providers/notification.service.d.ts +1 -1
  39. package/package.json +3 -3
  40. package/public-api.d.ts +0 -29
  41. package/esm2022/lib/cadastros/produtos/produto-add-dialog/produto-add-dialog.component.mjs +0 -85
  42. package/esm2022/lib/cadastros/produtos/produto-busca-filtros-dialog/produto-busca-filtros-dialog.component.mjs +0 -88
  43. package/esm2022/lib/cadastros/produtos/produto-composicao/produto-composicao.component.mjs +0 -150
  44. package/esm2022/lib/cadastros/produtos/produto-composicao-add-dialog/produto-composicao-add-dialog.component.mjs +0 -68
  45. package/esm2022/lib/cadastros/produtos/produto-edit-dialog/produto-edit-dialog.component.mjs +0 -84
  46. package/esm2022/lib/cadastros/produtos/produto-form/produto-form.component.mjs +0 -371
  47. package/esm2022/lib/cadastros/produtos/produto-selecao-dialog/produto-selecao-dialog.component.mjs +0 -159
  48. package/esm2022/lib/cadastros/produtos/produtos/produtos.component.mjs +0 -277
  49. package/esm2022/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-add-dialog/produto-categoria-cardapio-add-dialog.component.mjs +0 -70
  50. package/esm2022/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-edit-dialog/produto-categoria-cardapio-edit-dialog.component.mjs +0 -78
  51. package/esm2022/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-selecao-dialog/produto-categoria-cardapio-selecao-dialog.component.mjs +0 -106
  52. package/esm2022/lib/cadastros/produtos-categoria-cardapio/produtos-categorias-cardapio/produtos-categorias-cardapio.component.mjs +0 -165
  53. package/esm2022/lib/cadastros/produtos-grupos/mover-grupo-dialog/mover-grupo-dialog.component.mjs +0 -65
  54. package/esm2022/lib/cadastros/produtos-grupos/produto-grupo-add-dialog/produto-grupo-add-dialog.component.mjs +0 -69
  55. package/esm2022/lib/cadastros/produtos-grupos/produto-grupo-edit-dialog/produto-grupo-edit-dialog.component.mjs +0 -68
  56. package/esm2022/lib/cadastros/produtos-grupos/produto-grupo-form/produto-grupo-form.component.mjs +0 -21
  57. package/esm2022/lib/cadastros/produtos-grupos/produto-grupo-selecao-dialog/produto-grupo-selecao-dialog.component.mjs +0 -106
  58. package/esm2022/lib/cadastros/produtos-grupos/produtos-grupos/produtos-grupos.component.mjs +0 -184
  59. package/esm2022/lib/cadastros/produtos-history/produtos-history.component.mjs +0 -79
  60. package/esm2022/lib/cadastros/produtos-informacoes-adicionais/produtos-informacoes-adicionais.component.mjs +0 -79
  61. package/esm2022/lib/cadastros/produtos-ncm-dialog/produtos-ncm-dialog.component.mjs +0 -58
  62. package/esm2022/lib/cadastros/produtos-subgrupos/produto-subgrupo-add-dialog/produto-subgrupo-add-dialog.component.mjs +0 -71
  63. package/esm2022/lib/cadastros/produtos-subgrupos/produto-subgrupo-edit-dialog/produto-subgrupo-edit-dialog.component.mjs +0 -68
  64. package/esm2022/lib/cadastros/produtos-subgrupos/produto-subgrupo-selecao-dialog/produto-subgrupo-selecao-dialog.component.mjs +0 -109
  65. package/esm2022/lib/cadastros/produtos-subgrupos/produtos-subgrupos/produtos-subgrupos.component.mjs +0 -156
  66. package/esm2022/lib/cadastros/produtos-verificacao-grupo/produto-verificacao-grupo-add-dialog/produto-verificacao-grupo-add-dialog.component.mjs +0 -70
  67. package/esm2022/lib/cadastros/produtos-verificacao-grupo/produto-verificacao-grupo-edit-dialog/produto-verificacao-grupo-edit-dialog.component.mjs +0 -78
  68. package/esm2022/lib/cadastros/produtos-verificacao-grupo/produto-verificacao-grupo-selecao-dialog/produto-verificacao-grupo-selecao-dialog.component.mjs +0 -106
  69. package/esm2022/lib/cadastros/produtos-verificacao-grupo/produtos-verificacao-grupo/produtos-verificacao-grupo.component.mjs +0 -160
  70. package/lib/cadastros/produtos/produto-add-dialog/produto-add-dialog.component.d.ts +0 -28
  71. package/lib/cadastros/produtos/produto-busca-filtros-dialog/produto-busca-filtros-dialog.component.d.ts +0 -34
  72. package/lib/cadastros/produtos/produto-composicao/produto-composicao.component.d.ts +0 -30
  73. package/lib/cadastros/produtos/produto-composicao-add-dialog/produto-composicao-add-dialog.component.d.ts +0 -29
  74. package/lib/cadastros/produtos/produto-edit-dialog/produto-edit-dialog.component.d.ts +0 -28
  75. package/lib/cadastros/produtos/produto-form/produto-form.component.d.ts +0 -83
  76. package/lib/cadastros/produtos/produto-selecao-dialog/produto-selecao-dialog.component.d.ts +0 -43
  77. package/lib/cadastros/produtos/produtos/produtos.component.d.ts +0 -50
  78. package/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-add-dialog/produto-categoria-cardapio-add-dialog.component.d.ts +0 -27
  79. package/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-edit-dialog/produto-categoria-cardapio-edit-dialog.component.d.ts +0 -28
  80. package/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-selecao-dialog/produto-categoria-cardapio-selecao-dialog.component.d.ts +0 -35
  81. package/lib/cadastros/produtos-categoria-cardapio/produtos-categorias-cardapio/produtos-categorias-cardapio.component.d.ts +0 -39
  82. package/lib/cadastros/produtos-grupos/mover-grupo-dialog/mover-grupo-dialog.component.d.ts +0 -21
  83. package/lib/cadastros/produtos-grupos/produto-grupo-add-dialog/produto-grupo-add-dialog.component.d.ts +0 -27
  84. package/lib/cadastros/produtos-grupos/produto-grupo-edit-dialog/produto-grupo-edit-dialog.component.d.ts +0 -27
  85. package/lib/cadastros/produtos-grupos/produto-grupo-form/produto-grupo-form.component.d.ts +0 -11
  86. package/lib/cadastros/produtos-grupos/produto-grupo-selecao-dialog/produto-grupo-selecao-dialog.component.d.ts +0 -35
  87. package/lib/cadastros/produtos-grupos/produtos-grupos/produtos-grupos.component.d.ts +0 -37
  88. package/lib/cadastros/produtos-history/produtos-history.component.d.ts +0 -28
  89. package/lib/cadastros/produtos-informacoes-adicionais/produtos-informacoes-adicionais.component.d.ts +0 -25
  90. package/lib/cadastros/produtos-ncm-dialog/produtos-ncm-dialog.component.d.ts +0 -29
  91. package/lib/cadastros/produtos-subgrupos/produto-subgrupo-add-dialog/produto-subgrupo-add-dialog.component.d.ts +0 -27
  92. package/lib/cadastros/produtos-subgrupos/produto-subgrupo-edit-dialog/produto-subgrupo-edit-dialog.component.d.ts +0 -28
  93. package/lib/cadastros/produtos-subgrupos/produto-subgrupo-selecao-dialog/produto-subgrupo-selecao-dialog.component.d.ts +0 -35
  94. package/lib/cadastros/produtos-subgrupos/produtos-subgrupos/produtos-subgrupos.component.d.ts +0 -36
  95. package/lib/cadastros/produtos-verificacao-grupo/produto-verificacao-grupo-add-dialog/produto-verificacao-grupo-add-dialog.component.d.ts +0 -27
  96. package/lib/cadastros/produtos-verificacao-grupo/produto-verificacao-grupo-edit-dialog/produto-verificacao-grupo-edit-dialog.component.d.ts +0 -28
  97. package/lib/cadastros/produtos-verificacao-grupo/produto-verificacao-grupo-selecao-dialog/produto-verificacao-grupo-selecao-dialog.component.d.ts +0 -35
  98. package/lib/cadastros/produtos-verificacao-grupo/produtos-verificacao-grupo/produtos-verificacao-grupo.component.d.ts +0 -39
@@ -1,70 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { validaProdutoGrupo } from '../../../models/entidades/produto-grupo';
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 "../../produtos-grupos/produto-grupo-form/produto-grupo-form.component";
15
- export class ProdutoCategoriaCardapioAddDialogComponent {
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 = {
27
- id: 0,
28
- nome: '',
29
- isAtivo: true,
30
- enviadoPC: false,
31
- ordem: 0
32
- };
33
- this.mobile = this.screenHelper.isMedium;
34
- this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
35
- }
36
- ngOnInit() {
37
- this.focus.registerElement(this.elRef.nativeElement);
38
- }
39
- ngOnDestroy() {
40
- this.focus.unregisterElement(this.elRef.nativeElement);
41
- }
42
- salvar() {
43
- const valMsg = validaProdutoGrupo(this.model, this.focus);
44
- if (valMsg) {
45
- this.notification.showMsgError(valMsg);
46
- return;
47
- }
48
- this.isBusy = true;
49
- this.ws.addProdutoCategoriaCardapio(this.model)
50
- .subscribe(r => {
51
- this.isBusy = false;
52
- this.notification.showMsg("Salvo com sucesso.");
53
- if (this.dialogRef)
54
- this.dialogRef.close(true);
55
- }, err => {
56
- this.isBusy = false;
57
- this.notification.showMsg(err.error);
58
- });
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoCategoriaCardapioAddDialogComponent, 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 }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoCategoriaCardapioAddDialogComponent, selector: "ox-produto-categoria-cardapio-add-dialog", ngImport: i0, template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Nova Categoria</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-produto-grupo-form [model]=\"model\" *ngIf=\"model\"></ox-produto-grupo-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-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-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.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }] }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoCategoriaCardapioAddDialogComponent, decorators: [{
64
- type: Component,
65
- args: [{ selector: 'ox-produto-categoria-cardapio-add-dialog', template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Nova Categoria</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-produto-grupo-form [model]=\"model\" *ngIf=\"model\"></ox-produto-grupo-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"] }]
66
- }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: undefined, decorators: [{
67
- type: Inject,
68
- args: [MAT_DIALOG_DATA]
69
- }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: i4.ScreenHelperService }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tYWRkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWNhdGVnb3JpYS1jYXJkYXBpby9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1hZGQtZGlhbG9nL3Byb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWFkZC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tYWRkLWRpYWxvZy9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1hZGQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUE0QixrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFTaEUsTUFBTSxPQUFPLDBDQUEwQztJQU1yRCxZQUFvQixFQUFvQixFQUM5QixZQUFpQyxFQUVsQyxVQUFvQyxFQUNwQyxNQUFpQixFQUNoQixLQUFpQixFQUNqQixTQUFtRSxFQUNuRSxZQUFpQztRQVB2QixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFFbEMsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQTBEO1FBQ25FLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQVYzQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFVBQUssR0FBa0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVV0QyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsRUFBRSxFQUFFLENBQUM7WUFDTCxJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUV6QyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxNQUFNLEVBQ1Y7WUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDNUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTO2dCQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDVCxDQUFDOzhHQXJEVSwwQ0FBMEMscUZBUTNDLGVBQWU7a0dBUmQsMENBQTBDLGdGQ2J2RCxpakJBYXlEOzsyRkRBNUMsMENBQTBDO2tCQUx0RCxTQUFTOytCQUNFLDBDQUEwQzs7MEJBWWpELE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvLCB2YWxpZGFQcm9kdXRvR3J1cG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8tZ3J1cG8nO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWFkZC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tYWRkLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWFkZC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9BZGREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2RlbDogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvO1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBmb2N1cyA6IEZvY3VzU2VydmljZSA9IG5ldyBGb2N1c1NlcnZpY2UoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhRGlhbG9nOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8sXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvQWRkRGlhbG9nQ29tcG9uZW50PixcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgICAgdGhpcy5tb2RlbCA9IHsgXG4gICAgICAgIGlkOiAwLFxuICAgICAgICBub21lOiAnJyxcbiAgICAgICAgaXNBdGl2bzogdHJ1ZSxcbiAgICAgICAgZW52aWFkb1BDOiBmYWxzZSxcbiAgICAgICAgb3JkZW06IDBcbiAgICAgIH07XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcblxuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBzYWx2YXIoKSB7XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUHJvZHV0b0dydXBvKHRoaXMubW9kZWwsIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpXG4gICAge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZ0Vycm9yKHZhbE1zZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuYWRkUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHRoaXMubW9kZWwpXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwib3gtaGVhZGVyXCI+XG4gICAgPGgyIGNsYXNzPVwidGl0dWxvXCI+Tm92YSBDYXRlZ29yaWE8L2gyPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPG94LXByb2R1dG8tZ3J1cG8tZm9ybSBbbW9kZWxdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGVsXCI+PC9veC1wcm9kdXRvLWdydXBvLWZvcm0+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYWx2YXIoKVwiIHRhYmluZGV4PVwiOVwiPlNBTFZBUjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV0+Vk9MVEFSPC9idXR0b24+XG48L2Rpdj5cbjxveC1idXN5LWluZGljYXRvciBbaXNCdXN5XT1cImlzQnVzeVwiPjwvb3gtYnVzeS1pbmRpY2F0b3I+Il19
@@ -1,78 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { validaProdutoGrupo } from '../../../models/entidades/produto-grupo';
4
- import { FocusService } from '../../../providers/focus.service';
5
- import { confirmaExclusao } from '../../../models/infra/selecao-utils';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../providers/common-web-service";
8
- import * as i2 from "../../../providers/notification.service";
9
- import * as i3 from "@angular/material/dialog";
10
- import * as i4 from "../../../providers/screen-helper.service";
11
- import * as i5 from "@angular/common";
12
- import * as i6 from "@angular/material/button";
13
- import * as i7 from "@angular/material/icon";
14
- import * as i8 from "../../../controls/busy-indicator/busy-indicator.component";
15
- import * as i9 from "../../produtos-grupos/produto-grupo-form/produto-grupo-form.component";
16
- export class ProdutoCategoriaCardapioEditDialogComponent {
17
- constructor(ws, notification, dataDialog, dialog, elRef, dialogRef, screenHelper) {
18
- this.ws = ws;
19
- this.notification = notification;
20
- this.dataDialog = dataDialog;
21
- this.dialog = dialog;
22
- this.elRef = elRef;
23
- this.dialogRef = dialogRef;
24
- this.screenHelper = screenHelper;
25
- this.isBusy = false;
26
- this.focus = new FocusService();
27
- if (dataDialog) {
28
- this.model = dataDialog;
29
- }
30
- this.mobile = this.screenHelper.isMedium;
31
- this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
32
- }
33
- ngOnInit() {
34
- this.focus.registerElement(this.elRef.nativeElement);
35
- }
36
- ngOnDestroy() {
37
- this.focus.unregisterElement(this.elRef.nativeElement);
38
- }
39
- desativar() {
40
- if (!this.model)
41
- return;
42
- const item = this.model;
43
- confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do produto ${item.nome}?`, () => {
44
- item.isAtivo = false;
45
- this.salvar();
46
- });
47
- }
48
- salvar() {
49
- if (!this.model)
50
- return;
51
- const valMsg = validaProdutoGrupo(this.model, this.focus);
52
- if (valMsg) {
53
- this.notification.showMsgError(valMsg);
54
- return;
55
- }
56
- this.isBusy = true;
57
- this.ws.saveProdutoCategoriaCardapio(this.model)
58
- .subscribe(r => {
59
- this.isBusy = false;
60
- this.notification.showMsg("Salvo com sucesso.");
61
- if (this.dialogRef)
62
- this.dialogRef.close(true);
63
- }, err => {
64
- this.isBusy = false;
65
- this.notification.showMsg(err.error);
66
- });
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoCategoriaCardapioEditDialogComponent, 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 }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoCategoriaCardapioEditDialogComponent, selector: "ox-produto-categoria-cardapio-edit-dialog", ngImport: i0, template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Categoria do Card\u00E1pio</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-produto-grupo-form [model]=\"model\" *ngIf=\"model\"></ox-produto-grupo-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button (click)=\"desativar()\" tabindex=\"9\">DESATIVAR</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-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-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.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }] }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoCategoriaCardapioEditDialogComponent, decorators: [{
72
- type: Component,
73
- args: [{ selector: 'ox-produto-categoria-cardapio-edit-dialog', template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Editando Categoria do Card\u00E1pio</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <ox-produto-grupo-form [model]=\"model\" *ngIf=\"model\"></ox-produto-grupo-form>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button (click)=\"desativar()\" tabindex=\"9\">DESATIVAR</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"] }]
74
- }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: undefined, decorators: [{
75
- type: Inject,
76
- args: [MAT_DIALOG_DATA]
77
- }] }, { type: i3.MatDialog }, { type: i0.ElementRef }, { type: i3.MatDialogRef }, { type: i4.ScreenHelperService }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQTRCLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7OztBQVF2RSxNQUFNLE9BQU8sMkNBQTJDO0lBTXRELFlBQW9CLEVBQW9CLEVBQzlCLFlBQWlDLEVBRWxDLFVBQW9DLEVBQ3BDLE1BQWlCLEVBQ2hCLEtBQWlCLEVBQ2pCLFNBQW9FLEVBQ3BFLFlBQWlDO1FBUHZCLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUVsQyxlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBMkQ7UUFDcEUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBVjNDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsVUFBSyxHQUFrQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBVXhDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRXpDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFNBQVM7UUFFUCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDMUIsK0NBQStDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFDM0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksTUFBTSxFQUNWO1lBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUztnQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs4R0E3RFUsMkNBQTJDLHFGQVE1QyxlQUFlO2tHQVJkLDJDQUEyQyxpRkNoQnhELHdwQkFjeUQ7OzJGREU1QywyQ0FBMkM7a0JBTHZELFNBQVM7K0JBQ0UsMkNBQTJDOzswQkFZbEQsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8sIHZhbGlkYVByb2R1dG9HcnVwbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XG5cbmltcG9ydCB7IENvbW1vbldlYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tbW9uLXdlYi1zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9mb2N1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY3JlZW4taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29uZmlybWFFeGNsdXNhbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS9zZWxlY2FvLXV0aWxzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdveC1wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvRWRpdERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1vZGVsOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8gfCB1bmRlZmluZWQ7XG4gIG1vYmlsZTogYm9vbGVhbjtcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XG4gIGZvY3VzIDogRm9jdXNTZXJ2aWNlID0gbmV3IEZvY3VzU2VydmljZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgcHVibGljIGRhdGFEaWFsb2c6IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9FZGl0RGlhbG9nQ29tcG9uZW50PixcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIGlmIChkYXRhRGlhbG9nKSB7XG4gICAgICB0aGlzLm1vZGVsID0gZGF0YURpYWxvZztcbiAgICB9XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcblxuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBkZXNhdGl2YXIoKVxuICB7XG4gICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgY29uc3QgaXRlbSA9IHRoaXMubW9kZWw7XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZyxcbiAgICAgIGBEZXNlamEgcHJvc3NlZ3VpciBjb20gYSBleGNsdXPDo28gZG8gcHJvZHV0byAke2l0ZW0ubm9tZX0/YCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgaXRlbS5pc0F0aXZvID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2FsdmFyKCk7XG4gICAgICB9KTtcbiAgfVxuICBzYWx2YXIoKSB7XG4gICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUHJvZHV0b0dydXBvKHRoaXMubW9kZWwsIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpXG4gICAge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZ0Vycm9yKHZhbE1zZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3Muc2F2ZVByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyh0aGlzLm1vZGVsKVxuICAgICAgLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coZXJyLmVycm9yKTtcbiAgICAgICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm94LWhlYWRlclwiPlxuICAgIDxoMiBjbGFzcz1cInRpdHVsb1wiPkVkaXRhbmRvIENhdGVnb3JpYSBkbyBDYXJkw6FwaW88L2gyPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPG94LXByb2R1dG8tZ3J1cG8tZm9ybSBbbW9kZWxdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGVsXCI+PC9veC1wcm9kdXRvLWdydXBvLWZvcm0+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYWx2YXIoKVwiIHRhYmluZGV4PVwiOVwiPlNBTFZBUjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiZGVzYXRpdmFyKClcIiB0YWJpbmRleD1cIjlcIj5ERVNBVElWQVI8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPlZPTFRBUjwvYnV0dG9uPlxuPC9kaXY+XG48b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPiJdfQ==
@@ -1,106 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { LazyTrigger } from '../../../models/infra/lazy-trigger';
3
- import { NavegacaoSelecaoDialogUtil } from '../../../models/infra/selecao-utils';
4
- import { SearchSetting } from '../../../models/settings/search-setting';
5
- import { ProdutoCategoriaCardapioAddDialogComponent } from '../produto-categoria-cardapio-add-dialog/produto-categoria-cardapio-add-dialog.component';
6
- import { ProdutoCategoriaCardapioEditDialogComponent } from '../produto-categoria-cardapio-edit-dialog/produto-categoria-cardapio-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
- import * as i11 from "../../../controls/item-card/item-card.component";
19
- export class ProdutoCategoriaCardapioSelecaoDialogComponent {
20
- constructor(dialogRef, dialog, ws, notification, auth, screenHelper) {
21
- this.dialogRef = dialogRef;
22
- this.dialog = dialog;
23
- this.ws = ws;
24
- this.notification = notification;
25
- this.screenHelper = screenHelper;
26
- this.items = [];
27
- this.selectedItem = null;
28
- this.isBusy = false;
29
- this.setting = new SearchSetting();
30
- this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
31
- this.nav = new NavegacaoSelecaoDialogUtil(this);
32
- this.mobile = this.screenHelper.isMedium;
33
- this.allowAdd = auth.permissoes.adminProdutoGrupoAdd;
34
- this.allowEdit = auth.permissoes.adminProdutoGrupoPesquisa;
35
- }
36
- ngOnInit() {
37
- this.setting.ordem = "nome";
38
- this.atualiza();
39
- }
40
- atualiza() {
41
- this.isBusy = true;
42
- this.ws.buscaProdutoCategoriaCardapio(this.setting)
43
- .subscribe(r => {
44
- this.isBusy = false;
45
- this.items = r;
46
- console.info(r);
47
- }, err => {
48
- this.isBusy = false;
49
- this.notification.showHttpError(err);
50
- });
51
- }
52
- selectItem(i) {
53
- if (this.selectedItem === i) {
54
- this.dialogRef.close(i);
55
- }
56
- this.selectedItem = i;
57
- }
58
- novo() {
59
- let height = (window.innerHeight * 0.90) + 'px';
60
- let width = 550 + 'px';
61
- if (this.mobile) {
62
- width = (window.innerWidth * 0.99) + 'px';
63
- //height = (window.innerHeight * 0.98) + 'px';
64
- }
65
- const dialog = this.dialog.open(ProdutoCategoriaCardapioAddDialogComponent, {
66
- width: width,
67
- height: height,
68
- maxWidth: '100%',
69
- panelClass: 'dialog-p0',
70
- });
71
- dialog.afterClosed().subscribe(result => {
72
- if (result === undefined)
73
- return;
74
- this.notification.showMsg("Salvo com sucesso.");
75
- this.atualiza();
76
- });
77
- }
78
- editar() {
79
- let height = (window.innerHeight * 0.90) + 'px';
80
- let width = 550 + 'px';
81
- if (this.mobile) {
82
- width = (window.innerWidth * 0.99) + 'px';
83
- //height = (window.innerHeight * 0.98) + 'px';
84
- }
85
- const dialog = this.dialog.open(ProdutoCategoriaCardapioEditDialogComponent, {
86
- width: width,
87
- height: height,
88
- maxWidth: '100%',
89
- panelClass: 'dialog-p0',
90
- data: this.selectedItem
91
- });
92
- dialog.afterClosed().subscribe(result => {
93
- if (result === undefined)
94
- return;
95
- this.notification.showMsg("Salvo com sucesso.");
96
- this.atualiza();
97
- });
98
- }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoCategoriaCardapioSelecaoDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.CommonWebService }, { token: i3.NotificationService }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoCategoriaCardapioSelecaoDialogComponent, selector: "ox-produto-categoria-cardapio-selecao-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</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 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)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n<!--\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-->\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.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-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-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"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }] }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoCategoriaCardapioSelecaoDialogComponent, decorators: [{
103
- type: Component,
104
- args: [{ selector: 'ox-produto-categoria-cardapio-selecao-dialog', template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</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 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)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n<!--\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-->\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"] }]
105
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i1.MatDialog }, { type: i2.CommonWebService }, { type: i3.NotificationService }, { type: i4.AuthDataService }, { type: i5.ScreenHelperService }]; } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBS3hFLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLDBGQUEwRixDQUFDO0FBQ3RKLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLDRGQUE0RixDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3pKLE1BQU0sT0FBTyw4Q0FBOEM7SUFXekQsWUFBbUIsU0FBdUUsRUFDakYsTUFBaUIsRUFDZixFQUFvQixFQUNwQixZQUFpQyxFQUN6QyxJQUFxQixFQUNiLFlBQWlDO1FBTHpCLGNBQVMsR0FBVCxTQUFTLENBQThE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Q0wsQ0FBQztJQUVELE1BQU07UUFFSixJQUFJLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2hELElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDMUMsOENBQThDO1NBQy9DO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLEVBQUU7WUFDM0UsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUN4QixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBekZVLDhDQUE4QztrR0FBOUMsOENBQThDLG9GQ2xCM0Qsb3JEQXNDRTs7MkZEcEJXLDhDQUE4QztrQkFMMUQsU0FBUzsrQkFDRSw4Q0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLWdydXBvJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBOYXZlZ2FjYW9TZWxlY2FvRGlhbG9nVXRpbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS9zZWxlY2FvLXV0aWxzJztcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xuaW1wb3J0IHsgQXV0aERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2F1dGgtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbldlYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tbW9uLXdlYi1zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY3JlZW4taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tYWRkLWRpYWxvZy9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1hZGQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9FZGl0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tZWRpdC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3gtcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1zZWxlY2FvLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpdGVtczogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvW109W107XG4gIHNlbGVjdGVkSXRlbTogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvIHwgbnVsbCA9IG51bGw7XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIHNldHRpbmcgPSBuZXcgU2VhcmNoU2V0dGluZygpO1xuICBhbGxvd0FkZDogYm9vbGVhbjtcbiAgYWxsb3dFZGl0OiBib29sZWFuO1xuICBsYXp5VHJpZ2dlciA9IG5ldyBMYXp5VHJpZ2dlcigoKSA9PiB7IHRoaXMuYXR1YWxpemEoKTsgfSk7XG4gIG5hdiA9IG5ldyBOYXZlZ2FjYW9TZWxlY2FvRGlhbG9nVXRpbDxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8sIFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1NlbGVjYW9EaWFsb2dDb21wb25lbnQ+KHRoaXMpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9TZWxlY2FvRGlhbG9nQ29tcG9uZW50PixcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgIHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsIFxuICAgICBwcml2YXRlIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgYXV0aDogQXV0aERhdGFTZXJ2aWNlLFxuICAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTsgIFxuICAgICAgdGhpcy5hbGxvd0FkZCA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9HcnVwb0FkZDtcbiAgICAgIHRoaXMuYWxsb3dFZGl0ID0gYXV0aC5wZXJtaXNzb2VzLmFkbWluUHJvZHV0b0dydXBvUGVzcXVpc2E7XG4gICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0dGluZy5vcmRlbSA9IFwibm9tZVwiO1xuICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgfVxuXG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHRoaXMuc2V0dGluZylcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXRlbXMgPSByO1xuICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICB9LFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgICB9KTtcbiAgfVxuICBcbiAgc2VsZWN0SXRlbShpIDogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtID09PSBpKSB7IFxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoaSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaTtcbiAgfVxuXG4gIG5vdm8oKSB7XG5cbiAgICBsZXQgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTApICsgJ3B4JztcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICAvL2hlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk4KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvQWRkRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgZWRpdGFyKCkge1xuXG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0VkaXREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgICAgZGF0YTogdGhpcy5zZWxlY3RlZEl0ZW1cbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICA8aDI+U2VsZcOnw6NvIGRlIEdydXBvczwvaDI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICAgIDxsYWJlbD5QZXNxdWlzYTwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8aW5wdXQgKGtleWRvd24pPVwibmF2Lm9uS2V5RG93bigkZXZlbnQpXCIgY2RrRm9jdXNJbml0aWFsIFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhdHVhbGl6YSgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJub3ZvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0YXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICAmJiBhbGxvd0VkaXRcIj5cbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cImVkaXRhclwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgICA8b3gtaXRlbS1jYXJkIFtub21lXT1cImkubm9tZVwiIChjbGljayk9XCJzZWxlY3RJdGVtKGkpXCIgKm5nRm9yPVwibGV0IGkgb2YgaXRlbXNcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiaSA9PT0gc2VsZWN0ZWRJdGVtXCI+PC9veC1pdGVtLWNhcmQ+XG48IS0tXG4gICAgPGRpdiAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWRJdGVtID09PSBpfVwiIGNsYXNzPVwibGlzdC1pdGVtXCIgKm5nRm9yPVwibGV0IGkgb2YgaXRlbXNcIj5cbiAgICAgIDxzcGFuPnt7aS5ub21lfX08L3NwYW4+XG4gICAgPC9kaXY+XG4tLT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJzZWxlY3RlZEl0ZW0gPT0gdW5kZWZpbmVkXCIgY29sb3I9XCJwcmltYXJ5XCIgW21hdC1kaWFsb2ctY2xvc2VdPVwic2VsZWN0ZWRJdGVtXCI+Q09ORklSTUFSPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInVuZGVmaW5lZFwiPlZPTFRBUjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj5cbiAgIl19
@@ -1,165 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { fadeAnimation } from '../../../animations/animations';
3
- import { validaProdutoGrupo } from '../../../models/entidades/produto-grupo';
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 { ProdutoCategoriaCardapioAddDialogComponent } from '../produto-categoria-cardapio-add-dialog/produto-categoria-cardapio-add-dialog.component';
9
- import { ProdutoCategoriaCardapioEditDialogComponent } from '../produto-categoria-cardapio-edit-dialog/produto-categoria-cardapio-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 "@angular/router";
16
- import * as i6 from "../../../providers/screen-helper.service";
17
- import * as i7 from "@angular/common";
18
- import * as i8 from "@angular/forms";
19
- import * as i9 from "@angular/material/button";
20
- import * as i10 from "@angular/material/icon";
21
- import * as i11 from "../../../controls/busy-indicator/busy-indicator.component";
22
- import * as i12 from "../../../controls/item-card/item-card.component";
23
- import * as i13 from "../../produtos-grupos/produto-grupo-form/produto-grupo-form.component";
24
- export class ProdutosCategoriasCardapioComponent {
25
- constructor(ws, notification, dialog, auth, route, screenHelper) {
26
- this.ws = ws;
27
- this.notification = notification;
28
- this.dialog = dialog;
29
- this.route = route;
30
- this.screenHelper = screenHelper;
31
- this.isBusy = false;
32
- this.items = [];
33
- this.selectedItem = null;
34
- this.lazyTrigger = new LazyTrigger(() => { this.atualiza(); });
35
- this.setting = new SearchSetting();
36
- this.exibeGruposVerificacao = false;
37
- this.focus = new FocusService();
38
- this.allowAdd = auth.permissoes.adminProdutoGrupoAdd;
39
- this.allowExcluir = auth.permissoes.adminProdutoGrupoDelete;
40
- this.mobile = this.screenHelper.isMedium;
41
- this.screenHelper.changedMediumScreen.subscribe(x => this.mobile = x);
42
- }
43
- ngOnInit() {
44
- this.exibeGruposVerificacao = this.route.snapshot.paramMap.get('exibeGruposVerificacao') === 'true';
45
- this.setting.ordem = "nome";
46
- this.atualiza();
47
- }
48
- onSelectItem() {
49
- if (!this.focus.hasInit()) {
50
- setTimeout(() => {
51
- this.focus.registerElementById("form-column");
52
- this.focus.setFirst();
53
- }, 500);
54
- //this._focus.registerElementById("form-column");
55
- }
56
- else {
57
- this.focus.setFirst();
58
- }
59
- }
60
- ngOnDestroy() {
61
- this.focus.unregisterElementById("form-column");
62
- }
63
- atualiza() {
64
- this.isBusy = true;
65
- this.ws.buscaProdutoCategoriaCardapio(this.setting)
66
- .subscribe({
67
- next: r => {
68
- this.items = r;
69
- this.selectedItem = null;
70
- console.info(r);
71
- this.isBusy = false;
72
- }, error: err => {
73
- this.isBusy = false;
74
- this.notification.showHttpError(err);
75
- }
76
- });
77
- }
78
- excluir() {
79
- const item = this.selectedItem;
80
- if (!item)
81
- return;
82
- confirmaExclusao(this.dialog, `Deseja prosseguir com a exclusão do grupo ${item.nome}?`, () => {
83
- this.isBusy = true;
84
- this.ws.deleteProdutoCategoriaCardapio(item.id)
85
- .subscribe({
86
- next: r => {
87
- this.notification.showMsg("O grupo foi excluído com sucesso.");
88
- this.items.remove(item);
89
- this.selectedItem = null;
90
- this.isBusy = false;
91
- },
92
- error: err => {
93
- this.isBusy = false;
94
- this.notification.showMsg(err.error);
95
- }
96
- });
97
- });
98
- }
99
- novo() {
100
- let height = (window.innerHeight * 0.90) + 'px';
101
- let width = 550 + 'px';
102
- if (this.mobile) {
103
- width = (window.innerWidth * 0.99) + 'px';
104
- //height = (window.innerHeight * 0.98) + 'px';
105
- }
106
- const dialog = this.dialog.open(ProdutoCategoriaCardapioAddDialogComponent, {
107
- width: width,
108
- //height: height,
109
- maxWidth: '100%',
110
- panelClass: 'dialog-p0',
111
- });
112
- dialog.afterClosed().subscribe(result => {
113
- if (result === undefined)
114
- return;
115
- this.notification.showMsg("Salvo com sucesso.");
116
- this.atualiza();
117
- });
118
- }
119
- abreCadastro(item) {
120
- let height = undefined;
121
- let width = 550 + 'px';
122
- if (this.mobile) {
123
- width = (window.innerWidth * 0.99) + 'px';
124
- height = (window.innerHeight * 0.99) + 'px';
125
- }
126
- const dialog = this.dialog.open(ProdutoCategoriaCardapioEditDialogComponent, {
127
- data: item,
128
- width: width,
129
- //height: height,
130
- maxWidth: '100%',
131
- panelClass: 'dialog-p0',
132
- });
133
- dialog.afterClosed().subscribe(result => {
134
- if (result !== true)
135
- return;
136
- this.notification.showMsg("Salvo com sucesso.");
137
- this.atualiza();
138
- });
139
- }
140
- salvar() {
141
- if (!this.selectedItem)
142
- return;
143
- const valMsg = validaProdutoGrupo(this.selectedItem, this.focus);
144
- if (valMsg) {
145
- this.notification.showMsgError(valMsg);
146
- return;
147
- }
148
- this.isBusy = true;
149
- this.ws.saveProdutoCategoriaCardapio(this.selectedItem)
150
- .subscribe(r => {
151
- this.notification.showMsg("Salvo com sucesso.");
152
- this.isBusy = false;
153
- }, err => {
154
- this.isBusy = false;
155
- this.notification.showMsg(err.error);
156
- });
157
- }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutosCategoriasCardapioComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialog }, { token: i4.AuthDataService }, { token: i5.ActivatedRoute }, { token: i6.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutosCategoriasCardapioComponent, selector: "ox-produtos-categorias-cardapio", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo 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>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [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>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i12.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "component", type: i13.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }, { kind: "pipe", type: i7.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] }); }
160
- }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutosCategoriasCardapioComponent, decorators: [{
162
- type: Component,
163
- args: [{ selector: 'ox-produtos-categorias-cardapio', animations: [fadeAnimation], template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo 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>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [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>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"] }]
164
- }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialog }, { type: i4.AuthDataService }, { type: i5.ActivatedRoute }, { type: i6.ScreenHelperService }]; } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWNhdGVnb3JpYS1jYXJkYXBpby9wcm9kdXRvcy1jYXRlZ29yaWFzLWNhcmRhcGlvL3Byb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby9wcm9kdXRvcy1jYXRlZ29yaWFzLWNhcmRhcGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBNEIsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdoRSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUN0SixPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVXpKLE1BQU0sT0FBTyxtQ0FBbUM7SUFZOUMsWUFBb0IsRUFBb0IsRUFDOUIsWUFBaUMsRUFD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T0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBQy9CLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3BELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxFQUNDLEdBQUcsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs4R0FwSlUsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsdUVDdkJoRCxpekdBMkVNLCsyRER0RFEsQ0FBQyxhQUFhLENBQUM7OzJGQUVoQixtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0UsaUNBQWlDLGNBRy9CLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmYWRlQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zJztcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbywgdmFsaWRhUHJvZHV0b0dydXBvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLWdydXBvJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBjb25maXJtYUV4Y2x1c2FvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgU2VhcmNoU2V0dGluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXR0aW5ncy9zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9BZGREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1hZGQtZGlhbG9nL3Byb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWFkZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0VkaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVBbmltYXRpb25dXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1dG9zQ2F0ZWdvcmlhc0NhcmRhcGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbW9iaWxlOiBib29sZWFuO1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXRlbXM6IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1tdID0gW107XG4gIHNlbGVjdGVkSXRlbTogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvIHwgbnVsbCA9IG51bGw7XG4gIGxhenlUcmlnZ2VyID0gbmV3IExhenlUcmlnZ2VyKCgpID0+IHsgdGhpcy5hdHVhbGl6YSgpOyB9KTtcbiAgYWxsb3dBZGQ6IGJvb2xlYW47XG4gIGFsbG93RXhjbHVpcjogYm9vbGVhbjtcbiAgc2V0dGluZyA9IG5ldyBTZWFyY2hTZXR0aW5nKCk7XG4gIGV4aWJlR3J1cG9zVmVyaWZpY2FjYW86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBmb2N1czogRm9jdXNTZXJ2aWNlID0gbmV3IEZvY3VzU2VydmljZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIGF1dGg6IEF1dGhEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIHRoaXMuYWxsb3dBZGQgPSBhdXRoLnBlcm1pc3NvZXMuYWRtaW5Qcm9kdXRvR3J1cG9BZGQ7XG4gICAgdGhpcy5hbGxvd0V4Y2x1aXIgPSBhdXRoLnBlcm1pc3NvZXMuYWRtaW5Qcm9kdXRvR3J1cG9EZWxldGU7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcbiAgICB0aGlzLnNjcmVlbkhlbHBlci5jaGFuZ2VkTWVkaXVtU2NyZWVuLnN1YnNjcmliZSh4ID0+IHRoaXMubW9iaWxlID0geCk7XG5cblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5leGliZUdydXBvc1ZlcmlmaWNhY2FvID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2V4aWJlR3J1cG9zVmVyaWZpY2FjYW8nKSA9PT0gJ3RydWUnO1xuICAgIHRoaXMuc2V0dGluZy5vcmRlbSA9IFwibm9tZVwiO1xuICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbSgpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5mb2N1cy5oYXNJbml0KCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzLnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgICAgICAgdGhpcy5mb2N1cy5zZXRGaXJzdCgpO1xuICAgICAgfSwgNTAwKTtcbiAgICAgIC8vdGhpcy5fZm9jdXMucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXMuc2V0Rmlyc3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICB9XG5cbiAgYXR1YWxpemEoKSB7XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuYnVzY2FQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8odGhpcy5zZXR0aW5nKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgIHRoaXMuaXRlbXMgPSByO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICBleGNsdWlyKCkge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybjtcbiAgICBjb25maXJtYUV4Y2x1c2FvKHRoaXMuZGlhbG9nLFxuICAgICAgYERlc2VqYSBwcm9zc2VndWlyIGNvbSBhIGV4Y2x1c8OjbyBkbyBncnVwbyAke2l0ZW0ubm9tZX0/YCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgICB0aGlzLndzLmRlbGV0ZVByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyhpdGVtLmlkKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJPIGdydXBvIGZvaSBleGNsdcOtZG8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5vdm8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgLy9oZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFicmVDYWRhc3RybyhpdGVtOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8pIHtcbiAgICBsZXQgaGVpZ2h0ID0gdW5kZWZpbmVkO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvRWRpdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSByZXR1cm47XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgc2FsdmFyKCkge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW0pIHJldHVybjtcbiAgICBjb25zdCB2YWxNc2cgPSB2YWxpZGFQcm9kdXRvR3J1cG8odGhpcy5zZWxlY3RlZEl0ZW0sIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHRoaXMuc2VsZWN0ZWRJdGVtKVxuICAgICAgLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgIH0pO1xuICB9XG59XG4iLCI8b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cInRvb2wtcGFuZWxcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm8gR3J1cG9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyIEdydXBvXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJlc3VsdC1jb250YWluZXJcIiAqbmdJZj1cIml0ZW1zXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXIgY2FyZHMtY29udGFpbmVyLXNoYWRvd1wiICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgPG94LWl0ZW0tY2FyZCBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIChjbGljayk9XCJhYnJlQ2FkYXN0cm8oaSlcIj48L294LWl0ZW0tY2FyZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1kZXNrdG9wLWdyaWRcIiAqbmdJZj1cIiFtb2JpbGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1saXN0LWNvbHVtblwiPlxuICAgICAgPGgzPkdydXBvcyBkZSBQcm9kdXRvczwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbCB0b29sLXBhbmVsLWZsb2F0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICAgICAgICA8bGFiZWw+UGVzcXVpc2E8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJzZXR0aW5nLmZyYXNlXCIgcGxhY2Vob2xkZXI9XCJEaWdpdGUgdW0gdGVybW8gZGUgYnVzY2EuLi5cIiAoaW5wdXQpPVwibGF6eVRyaWdnZXIuZmlyZSgpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG9yZGVtLXNtMlwiPlxuICAgICAgICAgIDxsYWJlbD5Bw6fDtWVzPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1yb3dcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhdHVhbGl6YSgpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQXR1YWxpemFyXCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTm92b1wiPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleGNsdWlyKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBhbGxvd0V4Y2x1aXJcIiBbQGZhZGVdPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkV4Y2x1aXJcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tbGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJuZW5odW0taXRlbS1tc2dcIj5BIGJ1c2NhIG7Do28gcmV0b3Jub3UgcmVzdWx0YWRvczwvaDQ+XG5cbiAgICAgICAgPG94LWl0ZW0tY2FyZCBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIFtjbGFzcy5zZWxlY3RlZF09XCJpID09PSBzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZEl0ZW0gPSBpO1wiPjwvb3gtaXRlbS1jYXJkPlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBncnVwbyBubyBsYWRvIGRpcmVpdG88L2gzPlxuICAgICAgPGgzICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+e3tzZWxlY3RlZEl0ZW0ubm9tZSB8IHVwcGVyY2FzZX19PC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICA8b3gtcHJvZHV0by1ncnVwby1mb3JtIFtAZmFkZV0gW21vZGVsXT1cInNlbGVjdGVkSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgIDwvb3gtcHJvZHV0by1ncnVwby1mb3JtPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWFjb2VzXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCIgbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIHRhYmluZGV4PVwiMjBcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19