oxpi-nglib 2.0.24 → 2.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -138,13 +138,13 @@ export class ProdutoComposicaoComponent {
138
138
  });
139
139
  }
140
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoComposicaoComponent, deps: [{ token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: MAT_DIALOG_DATA }, { token: i2.CommonWebService }, { token: i3.NotificationService }, { token: i4.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoComposicaoComponent, selector: "ox-produto-composicao", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:#d9e43d;border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i1.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.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoComposicaoComponent, selector: "ox-produto-composicao", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency:\"BRL\"}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:linear-gradient(359deg,#f4f4f4,white);border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i1.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.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] }); }
142
142
  }
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoComposicaoComponent, decorators: [{
144
144
  type: Component,
145
- args: [{ selector: 'ox-produto-composicao', template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:#d9e43d;border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\n"] }]
145
+ args: [{ selector: 'ox-produto-composicao', template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency:\"BRL\"}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:linear-gradient(359deg,#f4f4f4,white);border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\n"] }]
146
146
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i1.MatDialog }, { type: undefined, decorators: [{
147
147
  type: Inject,
148
148
  args: [MAT_DIALOG_DATA]
149
149
  }] }, { type: i2.CommonWebService }, { type: i3.NotificationService }, { type: i4.ScreenHelperService }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1jb21wb3NpY2FvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvcHJvZHV0b3MvcHJvZHV0by1jb21wb3NpY2FvL3Byb2R1dG8tY29tcG9zaWNhby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tY29tcG9zaWNhby9wcm9kdXRvLWNvbXBvc2ljYW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUl2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0csTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUFtQixTQUFtRCxFQUM3RCxNQUFpQixFQUVqQixPQUFnQixFQUNmLEVBQW9CLEVBQ3BCLFlBQWlDLEVBQ2pDLFlBQWlDO1FBTnhCLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzdELFdBQU0sR0FBTixNQUFNLENBQVc7UUFFakIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNmLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQ3BCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYM0MsVUFBSyxHQUF3QixFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBNkIsSUFBSSxD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Q0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQzFCLGdEQUFnRCxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQ3hFLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztpQkFDckMsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtvQkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTlIVSwwQkFBMEIsdUVBUTNCLGVBQWU7a0dBUmQsMEJBQTBCLDZEQ2hCdkMsb2hEQWtDMkQ7OzJGRGxCOUMsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHVCQUF1Qjs7MEJBWTlCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUHJvZHV0byB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0byc7XG5pbXBvcnQgeyBQcm9kdXRvQ29tcG9zaWNhbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1jb21wb3NpY2FvJztcbmltcG9ydCB7IGNvbmZpcm1hRXhjbHVzYW8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvc2VsZWNhby11dGlscyc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNjcmVlbkhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvc2NyZWVuLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1dG9Db21wb3NpY2FvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1jb21wb3NpY2FvLWFkZC1kaWFsb2cvcHJvZHV0by1jb21wb3NpY2FvLWFkZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9TZWxlY2FvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1zZWxlY2FvLWRpYWxvZy9wcm9kdXRvLXNlbGVjYW8tZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG8tY29tcG9zaWNhbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdXRvLWNvbXBvc2ljYW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvLWNvbXBvc2ljYW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvQ29tcG9zaWNhb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGl0ZW1zOiBQcm9kdXRvQ29tcG9zaWNhb1tdID0gW107XG4gIHNlbGVjdGVkSXRlbTogUHJvZHV0b0NvbXBvc2ljYW8gfCBudWxsID0gbnVsbDtcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XG4gIG1vYmlsZTogYm9vbGVhbjtcbiAgdG90YWxDdXN0byA6IG51bWJlciA9IDA7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvQ29tcG9zaWNhb0NvbXBvbmVudD4sXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBwcm9kdXRvOiBQcm9kdXRvLFxuICAgIHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY3JlZW5IZWxwZXI6IFNjcmVlbkhlbHBlclNlcnZpY2UpIHtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2NyZWVuSGVscGVyLmlzTWVkaXVtO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHVhbGl6YSgpO1xuICB9XG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmdldFByb2R1dG9Db21wb3NpY2FvKHRoaXMucHJvZHV0by5pZClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiByLml0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtLnByb2R1dG9JZCA9IHRoaXMucHJvZHV0by5pZDtcbiAgICAgICAgICAgIGl0ZW0ucHJvZHV0b05vbWUgPSB0aGlzLnByb2R1dG8ubm9tZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHIuaXRlbXM7XG4gICAgICAgICAgdGhpcy50b3RhbEN1c3RvID0gci50b3RhbDtcbiAgICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaTogUHJvZHV0b0NvbXBvc2ljYW8pIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGk7XG4gIH1cblxuICBub3ZvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45MCkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIC8vaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTgpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvU2VsZWNhb0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGNvbnN0IHAgPSByZXN1bHQgYXMgUHJvZHV0bztcbiAgICAgIGNvbnN0IGNvbXBvc2ljYW86IFByb2R1dG9Db21wb3NpY2FvID0ge1xuICAgICAgICBpZDogMCxcbiAgICAgICAgcHJvZHV0b0lkOiB0aGlzLnByb2R1dG8uaWQsXG4gICAgICAgIHByb2R1dG9Ob21lOiB0aGlzLnByb2R1dG8ubm9tZSxcbiAgICAgICAgcHJvZHV0b0l0ZW1JZDogcC5pZCxcbiAgICAgICAgcHJvZHV0b0l0ZW1Ob21lOiBwLm5vbWUsXG4gICAgICAgIHF1YW50aWRhZGU6IDFcbiAgICAgIH07XG4gICAgICBjb25zdCBkaWFsb2cyID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvQ29tcG9zaWNhb0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgIGRhdGE6IGNvbXBvc2ljYW8sXG4gICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgICAgfSk7XG4gICAgICBkaWFsb2cyLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGVkaXRhcigpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSByZXR1cm47XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9Db21wb3NpY2FvQWRkRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAvL2hlaWdodDogaGVpZ2h0LFxuICAgICAgZGF0YTogdGhpcy5zZWxlY3RlZEl0ZW0sXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBleGNsdWlyKCkge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybjtcbiAgICBjb25maXJtYUV4Y2x1c2FvKHRoaXMuZGlhbG9nLFxuICAgICAgYERlc2VqYSBwcm9zc2VndWlyIGNvbSBhIGV4Y2x1c8OjbyBkbyBwcm9kdXRvICcke2l0ZW0ucHJvZHV0b0l0ZW1Ob21lfSc/YCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgICB0aGlzLndzLmRlbGV0ZVByb2R1dG9Db21wb3NpY2FvKGl0ZW0uaWQpXG4gICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIk8gcHJvZHV0byBmb2kgZXhjbHXDrWRvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5yZW1vdmUoaXRlbSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICAgPGgyPkNvbXBvc2nDp8OjbyBkbyBQcm9kdXRvICd7e3Byb2R1dG8ubm9tZX19JzwvaDI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICAgICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1yb3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIm5vdm9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0YXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cImVkaXRhclwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleGNsdWlyKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJlZGl0YXJcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgICA8b3gtaXRlbS1jYXJkIFtjb2RpZ29dPVwiaS5xdWFudGlkYWRlXCIgW25vbWVdPVwiaS5wcm9kdXRvSXRlbU5vbWVcIiAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgW2NsYXNzLnNlbGVjdGVkXT1cImkgPT09IHNlbGVjdGVkSXRlbVwiPjwvb3gtaXRlbS1jYXJkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvdGFsLWN1c3RvXCI+XG4gICAgPGxhYmVsPlRvdGFsIEN1c3RvPC9sYWJlbD5cbiAgICA8c3Bhbj57e3RvdGFsQ3VzdG8gfCBjdXJyZW5jeX19PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW2Rpc2FibGVkXT1cInNlbGVjdGVkSXRlbSA9PSB1bmRlZmluZWRcIiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJzZWxlY3RlZEl0ZW1cIj5DT05GSVJNQVI8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwidW5kZWZpbmVkXCI+Vk9MVEFSPC9idXR0b24+XG5cbiAgPC9kaXY+XG4gIDxveC1idXN5LWluZGljYXRvciBbaXNCdXN5XT1cImlzQnVzeVwiPjwvb3gtYnVzeS1pbmRpY2F0b3I+Il19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1jb21wb3NpY2FvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvcHJvZHV0b3MvcHJvZHV0by1jb21wb3NpY2FvL3Byb2R1dG8tY29tcG9zaWNhby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tY29tcG9zaWNhby9wcm9kdXRvLWNvbXBvc2ljYW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUl2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0csTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUFtQixTQUFtRCxFQUM3RCxNQUFpQixFQUVqQixPQUFnQixFQUNmLEVBQW9CLEVBQ3BCLFlBQWlDLEVBQ2pDLFlBQWlDO1FBTnhCLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzdELFdBQU0sR0FBTixNQUFNLENBQVc7UUFFakIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNmLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQ3BCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYM0MsVUFBSyxHQUF3QixFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBNkIsSUFBSSxD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Q0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQzFCLGdEQUFnRCxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQ3hFLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztpQkFDckMsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtvQkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTlIVSwwQkFBMEIsdUVBUTNCLGVBQWU7a0dBUmQsMEJBQTBCLDZEQ2hCdkMsNGhEQWtDMkQ7OzJGRGxCOUMsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHVCQUF1Qjs7MEJBWTlCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUHJvZHV0byB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0byc7XG5pbXBvcnQgeyBQcm9kdXRvQ29tcG9zaWNhbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1jb21wb3NpY2FvJztcbmltcG9ydCB7IGNvbmZpcm1hRXhjbHVzYW8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvc2VsZWNhby11dGlscyc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNjcmVlbkhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvc2NyZWVuLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1dG9Db21wb3NpY2FvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1jb21wb3NpY2FvLWFkZC1kaWFsb2cvcHJvZHV0by1jb21wb3NpY2FvLWFkZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9TZWxlY2FvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1zZWxlY2FvLWRpYWxvZy9wcm9kdXRvLXNlbGVjYW8tZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG8tY29tcG9zaWNhbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdXRvLWNvbXBvc2ljYW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvLWNvbXBvc2ljYW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvQ29tcG9zaWNhb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGl0ZW1zOiBQcm9kdXRvQ29tcG9zaWNhb1tdID0gW107XG4gIHNlbGVjdGVkSXRlbTogUHJvZHV0b0NvbXBvc2ljYW8gfCBudWxsID0gbnVsbDtcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XG4gIG1vYmlsZTogYm9vbGVhbjtcbiAgdG90YWxDdXN0byA6IG51bWJlciA9IDA7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvQ29tcG9zaWNhb0NvbXBvbmVudD4sXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBwcm9kdXRvOiBQcm9kdXRvLFxuICAgIHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY3JlZW5IZWxwZXI6IFNjcmVlbkhlbHBlclNlcnZpY2UpIHtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2NyZWVuSGVscGVyLmlzTWVkaXVtO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHVhbGl6YSgpO1xuICB9XG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmdldFByb2R1dG9Db21wb3NpY2FvKHRoaXMucHJvZHV0by5pZClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiByLml0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtLnByb2R1dG9JZCA9IHRoaXMucHJvZHV0by5pZDtcbiAgICAgICAgICAgIGl0ZW0ucHJvZHV0b05vbWUgPSB0aGlzLnByb2R1dG8ubm9tZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHIuaXRlbXM7XG4gICAgICAgICAgdGhpcy50b3RhbEN1c3RvID0gci50b3RhbDtcbiAgICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaTogUHJvZHV0b0NvbXBvc2ljYW8pIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGk7XG4gIH1cblxuICBub3ZvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45MCkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIC8vaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTgpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvU2VsZWNhb0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGNvbnN0IHAgPSByZXN1bHQgYXMgUHJvZHV0bztcbiAgICAgIGNvbnN0IGNvbXBvc2ljYW86IFByb2R1dG9Db21wb3NpY2FvID0ge1xuICAgICAgICBpZDogMCxcbiAgICAgICAgcHJvZHV0b0lkOiB0aGlzLnByb2R1dG8uaWQsXG4gICAgICAgIHByb2R1dG9Ob21lOiB0aGlzLnByb2R1dG8ubm9tZSxcbiAgICAgICAgcHJvZHV0b0l0ZW1JZDogcC5pZCxcbiAgICAgICAgcHJvZHV0b0l0ZW1Ob21lOiBwLm5vbWUsXG4gICAgICAgIHF1YW50aWRhZGU6IDFcbiAgICAgIH07XG4gICAgICBjb25zdCBkaWFsb2cyID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvQ29tcG9zaWNhb0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgIGRhdGE6IGNvbXBvc2ljYW8sXG4gICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgICAgfSk7XG4gICAgICBkaWFsb2cyLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGVkaXRhcigpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSByZXR1cm47XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9Db21wb3NpY2FvQWRkRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAvL2hlaWdodDogaGVpZ2h0LFxuICAgICAgZGF0YTogdGhpcy5zZWxlY3RlZEl0ZW0sXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBleGNsdWlyKCkge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybjtcbiAgICBjb25maXJtYUV4Y2x1c2FvKHRoaXMuZGlhbG9nLFxuICAgICAgYERlc2VqYSBwcm9zc2VndWlyIGNvbSBhIGV4Y2x1c8OjbyBkbyBwcm9kdXRvICcke2l0ZW0ucHJvZHV0b0l0ZW1Ob21lfSc/YCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgICB0aGlzLndzLmRlbGV0ZVByb2R1dG9Db21wb3NpY2FvKGl0ZW0uaWQpXG4gICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIk8gcHJvZHV0byBmb2kgZXhjbHXDrWRvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5yZW1vdmUoaXRlbSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICAgPGgyPkNvbXBvc2nDp8OjbyBkbyBQcm9kdXRvICd7e3Byb2R1dG8ubm9tZX19JzwvaDI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICAgICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1yb3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIm5vdm9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0YXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cImVkaXRhclwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleGNsdWlyKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJlZGl0YXJcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgICA8b3gtaXRlbS1jYXJkIFtjb2RpZ29dPVwiaS5xdWFudGlkYWRlXCIgW25vbWVdPVwiaS5wcm9kdXRvSXRlbU5vbWVcIiAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgW2NsYXNzLnNlbGVjdGVkXT1cImkgPT09IHNlbGVjdGVkSXRlbVwiPjwvb3gtaXRlbS1jYXJkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvdGFsLWN1c3RvXCI+XG4gICAgPGxhYmVsPlRvdGFsIEN1c3RvPC9sYWJlbD5cbiAgICA8c3Bhbj57e3RvdGFsQ3VzdG8gfCBjdXJyZW5jeTpcIkJSTFwifX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwic2VsZWN0ZWRJdGVtID09IHVuZGVmaW5lZFwiIGNvbG9yPVwicHJpbWFyeVwiIFttYXQtZGlhbG9nLWNsb3NlXT1cInNlbGVjdGVkSXRlbVwiPkNPTkZJUk1BUjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ1bmRlZmluZWRcIj5WT0xUQVI8L2J1dHRvbj5cblxuICA8L2Rpdj5cbiAgPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj4iXX0=
@@ -3508,11 +3508,11 @@ class ProdutoComposicaoComponent {
3508
3508
  });
3509
3509
  }
3510
3510
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoComposicaoComponent, deps: [{ token: i3.MatDialogRef }, { token: i3.MatDialog }, { token: MAT_DIALOG_DATA }, { token: CommonWebService }, { token: NotificationService }, { token: ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
3511
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoComposicaoComponent, selector: "ox-produto-composicao", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:#d9e43d;border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\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: "component", type: i6$2.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$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "pipe", type: i6.CurrencyPipe, name: "currency" }] }); }
3511
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoComposicaoComponent, selector: "ox-produto-composicao", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency:\"BRL\"}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:linear-gradient(359deg,#f4f4f4,white);border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\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: "component", type: i6$2.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$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "pipe", type: i6.CurrencyPipe, name: "currency" }] }); }
3512
3512
  }
3513
3513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoComposicaoComponent, decorators: [{
3514
3514
  type: Component,
3515
- args: [{ selector: 'ox-produto-composicao', template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:#d9e43d;border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\n"] }]
3515
+ args: [{ selector: 'ox-produto-composicao', template: "<div class=\"dialog-header\">\n <h2>Composi\u00E7\u00E3o do Produto '{{produto.nome}}'</h2>\n </div>\n <div class=\"tool-panel\">\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()\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem\">\n <mat-icon aria-label=\"editar\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [codigo]=\"i.quantidade\" [nome]=\"i.produtoItemNome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"total-custo\">\n <label>Total Custo</label>\n <span>{{totalCusto | currency:\"BRL\"}}</span>\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\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}.total-custo{display:flex;justify-self:flex-end;font-weight:500;place-self:center;align-self:center;padding:8px;background:linear-gradient(359deg,#f4f4f4,white);border-radius:9px;margin:4px;font-size:medium;color:#3c2b1e;flex-direction:column;justify-items:center;align-items:center;gap:2px;border-bottom:1px solid #acac8e}.total-custo label{font-size:small;color:#3c2b1e}\n"] }]
3516
3516
  }], ctorParameters: function () { return [{ type: i3.MatDialogRef }, { type: i3.MatDialog }, { type: undefined, decorators: [{
3517
3517
  type: Inject,
3518
3518
  args: [MAT_DIALOG_DATA]