@seniorsistemas/tmsx-angular-components 1.0.3-feature-tmsx-1918-d79e730e → 1.0.4-feature-tmsx-1991-1376e6b0

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.
@@ -141,10 +141,11 @@ let PainelProcessamentoComponent = PainelProcessamentoComponent_1 = class Painel
141
141
  const successWidth = (this.successCount / this.totalRecords) * 100;
142
142
  const failedWidth = (this.failedCount / this.totalRecords) * 100;
143
143
  const pendingWidth = (this.pendingCount / this.totalRecords) * 100;
144
- this.processingProgress = `${(successWidth + failedWidth)}%`;
145
- this.successProgress = `${successWidth}%`;
146
- this.failedProgress = `${failedWidth}%`;
147
- this.pendingProgress = `${pendingWidth}%`;
144
+ const processedWidth = successWidth + failedWidth;
145
+ this.processingProgress = `${processedWidth.toFixed(0)}%`;
146
+ this.successProgress = `${successWidth.toFixed(0)}%`;
147
+ this.failedProgress = `${failedWidth.toFixed(0)}%`;
148
+ this.pendingProgress = `${pendingWidth.toFixed(0)}%`;
148
149
  }
149
150
  updateRowStatus(row, status, message) {
150
151
  row.status = status;
@@ -231,4 +232,4 @@ PainelProcessamentoComponent = PainelProcessamentoComponent_1 = __decorate([
231
232
  })
232
233
  ], PainelProcessamentoComponent);
233
234
  export { PainelProcessamentoComponent };
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUscUNBQXFDLEVBQXlDLE1BQU0saUJBQWlCLENBQUM7QUFDeEksT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVVqRixJQUFhLDRCQUE0QixvQ0FBekMsTUFBYSw0QkFBNEI7SUFzQnJDLFlBQ3FCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBbEJ0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixjQUFTLEdBQUcsQ0FBQyxDQUFDO0lBSWpCLENBQUM7SUFFTCxRQUFRO1FB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NERBQTRCO0FBQzFCO0lBQVQsTUFBTSxFQUFFO2dFQUFpQztBQUNoQztJQUFULE1BQU0sRUFBRTsrREFBZ0M7QUFOaEMsNEJBQTRCO0lBUnhDLFVBQVUsQ0FBQztRQUNSLFVBQVUsRUFBRSxNQUFNO0tBQ3JCLENBQUM7SUFDRCxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsMkJBQTJCO1FBQ3JDLHk0RkFBb0Q7O0tBRXJELENBQUM7R0FDVyw0QkFBNEIsQ0FpT3hDO1NBak9ZLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0YWJsZSwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c1RyYW5zbGF0aW9uTWFwLCBQcm9jZXNzYW1lbnRvR3JpZCwgUHJvY2Vzc2FtZW50b0lucHV0IH0gZnJvbSAnLi9wcm9jZXNzYW1lbnRvJztcbmltcG9ydCB7IENvbHVtbiwgRW51bUNvbHVtbkZpZWxkVHlwZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1wYWluZWwtcHJvY2Vzc2FtZW50bycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhaW5lbC1wcm9jZXNzYW1lbnRvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBHRU5FUklDX0VSUl9LRVkgPSAndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fZ2VuZXJpY19lcnJvcic7XG5cbiAgICBASW5wdXQoKSBwYXJhbXM6IFByb2Nlc3NhbWVudG9JbnB1dDtcbiAgICBAT3V0cHV0KCkgcHJvY2Vzc2FkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY29uY2x1aWRvID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGdyaWREYXRhOiBQcm9jZXNzYW1lbnRvR3JpZFtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogQ29sdW1uW107XG5cbiAgICBwdWJsaWMgdG90YWxSZWNvcmRzID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgZmFpbGVkQ291bnQgPSAwO1xuICAgIHB1YmxpYyBwZW5kaW5nQ291bnQgPSAwO1xuICAgIHB1YmxpYyBzdWNjZXNzUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBmYWlsZWRQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICBwdWJsaWMgcHJvY2Vzc2luZ1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgc29ydEZpZWxkID0gJ3N0YXR1cyc7XG4gICAgcHVibGljIHNvcnRPcmRlciA9IDE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdFBhbmVsKCk7XG4gICAgfVxuXG4gICAgaW5pdFBhbmVsKCkge1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5nZXRHcmlkQ29sdW1uKCk7XG4gICAgICAgIHRoaXMuaW5pdEdyaWQoKTtcbiAgICAgICAgdGhpcy5pbml0UHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBpbml0UHJvZ3Jlc3NCYXIoKSB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICAgICAgdGhpcy5mYWlsZWRQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMucGVuZGluZ1Byb2dyZXNzID0gJzEwMCUnO1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLmxlbmd0aDtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSB0aGlzLnRvdGFsUmVjb3JkcztcblxuICAgICAgICBpZiAodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NBbGxSZWNvcmRzV2l0aFBMaW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zeW5jUHJvY2Vzc1JlY29yZCgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRHcmlkKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gW107XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKHJlZ2lzdHJvID0+ICh7XG4gICAgICAgICAgICByZWdpc3RybyxcbiAgICAgICAgICAgIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUEVORElORyxcbiAgICAgICAgICAgIGxhYmVsOiByZWdpc3Ryby5kZXNjcmljYW9cbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RXJyb3JNZXNzYWdlKGVycm9yOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGVycm9yLmVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhlcnJvci5tZXNzYWdlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJpY0Vycm9yTXNnO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGdlbmVyaWNFcnJvck1zZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChQYWluZWxQcm9jZXNzYW1lbnRvQ29tcG9uZW50LkdFTkVSSUNfRVJSX0tFWSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dTdWNjZXNzKHJvdzogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc0NvdW50Kys7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuU1VDQ0VTUyk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJvd0Vycm9yKHJvdzogYW55LCBpbmRleDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWlsZWRDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLkZBSUxFRCwgbWVzc2FnZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNQcm9jZXNzUmVjb3JkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0NvdW50IDwgMSkge1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnb2snKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyh0aGlzLmdyaWREYXRhW2luZGV4XSwgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvc1tpbmRleF07XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuZ3JpZERhdGEuZmluZChpdGVtID0+IGl0ZW0ucmVnaXN0cm8gPT09IHJlY29yZCk7XG5cbiAgICAgICAgaWYgKHJlY29yZC5hcGlFbnZpbykge1xuICAgICAgICAgICAgcmVjb3JkLmFwaUVudmlvKHJlY29yZC5vYmpFbnZpbylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zeW5jUHJvY2Vzc1JlY29yZChpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mYWlsZWRDb3VudCA9IHRoaXMucGVuZGluZ0NvdW50O1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LFxuICAgICAgICAgICAgICAgICBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fYXBpX2Vycm9yJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdlcnJvJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKSB7XG4gICAgICBjb25zdCBwTGltaXQgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG4gICAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCh0aGlzLnBhcmFtcy5xdWFudGlkYWRlQ2hhbWFkYXNTaW11bHRhbmVhcyk7XG4gICAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5tYXAoKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgcmVjb3JkLCByZXN1bHQgfTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dFcnJvcihyb3csIGluZGV4LCB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcikpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIHJlY29yZCwgZXJyb3IgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdChyZXN1bHRzKTtcbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvZ3Jlc3NCYXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NXaWR0aCA9ICh0aGlzLnN1Y2Nlc3NDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgZmFpbGVkV2lkdGggPSAodGhpcy5mYWlsZWRDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgcGVuZGluZ1dpZHRoID0gKHRoaXMucGVuZGluZ0NvdW50IC8gdGhpcy50b3RhbFJlY29yZHMpICogMTAwO1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9IGAkeyhzdWNjZXNzV2lkdGggKyBmYWlsZWRXaWR0aCl9JWA7XG5cbiAgICAgICAgdGhpcy5zdWNjZXNzUHJvZ3Jlc3MgPSBgJHtzdWNjZXNzV2lkdGh9JWA7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSBgJHtmYWlsZWRXaWR0aH0lYDtcbiAgICAgICAgdGhpcy5wZW5kaW5nUHJvZ3Jlc3MgPSBgJHtwZW5kaW5nV2lkdGh9JWA7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVJvd1N0YXR1cyhyb3c6IGFueSwgc3RhdHVzOiBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgbWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICByb3cuc3RhdHVzID0gc3RhdHVzO1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgcm93Lm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEdyaWREYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0R3JpZERhdGEoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c09yZGVyID0ge1xuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRURdOiAxLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QUk9DRVNTSU5HXTogMixcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuU1VDQ0VTU106IDMsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkddOiA0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuc29ydEZpZWxkID09PSAnc3RhdHVzJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoc3RhdHVzT3JkZXJbYS5zdGF0dXMgYXMgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNdIC0gc3RhdHVzT3JkZXJbYi5zdGF0dXMgYXMgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNdKSAqIHRoaXMuc29ydE9yZGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxBID0gYVt0aGlzLnNvcnRGaWVsZF0gfHwgJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQiA9IGJbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWxBLmxvY2FsZUNvbXBhcmUodmFsQikgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERhdGEocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgIGxldCB0ZXh0ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c1RyYW5zbGF0aW9uTWFwW3Jvd0RhdGEuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSk7XG4gICAgICAgICAgICBpZiAocm93RGF0YS5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgdGV4dCArPSBgOiAke3Jvd0RhdGEubWVzc2FnZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvd0RhdGFbZmllbGRdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDbGFzc1N0YXR1cyhyb3dEYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZpZWxkICE9PSAnc3RhdHVzJykge1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIGBzdGF0dXMgJHtyb3dEYXRhW2ZpZWxkXS50b0xvd2VyQ2FzZSgpfWA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWRDb2x1bW4oKTogQ29sdW1uW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiAnbGFiZWwnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucmVnaXN0cm8nKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogJzUwJScgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3N0YXR1cycsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zdGF0dXMnKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogJzUwJScgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG4iXX0=
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUscUNBQXFDLEVBQXlDLE1BQU0saUJBQWlCLENBQUM7QUFDeEksT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVVqRixJQUFhLDRCQUE0QixvQ0FBekMsTUFBYSw0QkFBNEI7SUFzQnJDLFlBQ3FCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBbEJ0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixjQUFTLEdBQUcsQ0FBQyxDQUFDO0lBSWpCLENBQUM7SUFFTCxRQUFRO1FB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QkFBbUIsQ0FBQyxNQUFNO2FBQ25DO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFBO0FBaE8yQiw0Q0FBZSxHQUFHLHFFQUFxRSxDQUFDOztZQXFCaEYsZ0JBQWdCOzs7QUFuQnZDO0lBQVIsS0FBSyxFQUFFOzREQUE0QjtBQUMxQjtJQUFULE1BQU0sRUFBRTtnRUFBaUM7QUFDaEM7SUFBVCxNQUFNLEVBQUU7K0RBQWdDO0FBTmhDLDRCQUE0QjtJQVJ4QyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0lBQ0QsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLDJCQUEyQjtRQUNyQyx5NEZBQW9EOztLQUVyRCxDQUFDO0dBQ1csNEJBQTRCLENBa094QztTQWxPWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgR0VORVJJQ19FUlJfS0VZID0gJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2dlbmVyaWNfZXJyb3InO1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyYW1zLnF1YW50aWRhZGVDaGFtYWRhc1NpbXVsdGFuZWFzID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3I/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhlcnJvci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcj8ubWVzc2FnZT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZXJyb3IubWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBnZW5lcmljRXJyb3JNc2coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudC5HRU5FUklDX0VSUl9LRVkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUm93U3VjY2Vzcyhyb3c6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1MpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dFcnJvcihyb3c6IGFueSwgaW5kZXg6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmFpbGVkQ291bnQrKztcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQtLTtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jUHJvY2Vzc1JlY29yZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdDb3VudCA8IDEpIHtcbiAgICAgICAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQoJ29rJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXModGhpcy5ncmlkRGF0YVtpbmRleF0sIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3NbaW5kZXhdO1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuXG4gICAgICAgIGlmIChyZWNvcmQuYXBpRW52aW8pIHtcbiAgICAgICAgICAgIHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd0Vycm9yKHJvdywgaW5kZXgsIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmFpbGVkQ291bnQgPSB0aGlzLnBlbmRpbmdDb3VudDtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdyxcbiAgICAgICAgICAgICAgICAgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELFxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2FwaV9lcnJvcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnZXJybycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0FsbFJlY29yZHNXaXRoUExpbWl0KCkge1xuICAgICAgY29uc3QgcExpbWl0ID0gcmVxdWlyZSgncC1saW1pdCcpO1xuICAgICAgY29uc3QgbGltaXQgPSBwTGltaXQodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMpO1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBsaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKS50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHJlY29yZCwgcmVzdWx0IH07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWNvcmQsIGVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQocmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkV2lkdGggPSBzdWNjZXNzV2lkdGggKyBmYWlsZWRXaWR0aDtcblxuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9IGAke3Byb2Nlc3NlZFdpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSBgJHtmYWlsZWRXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9IGAke3BlbmRpbmdXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
@@ -165,10 +165,11 @@ var PainelProcessamentoComponent = /** @class */ (function () {
165
165
  var successWidth = (this.successCount / this.totalRecords) * 100;
166
166
  var failedWidth = (this.failedCount / this.totalRecords) * 100;
167
167
  var pendingWidth = (this.pendingCount / this.totalRecords) * 100;
168
- this.processingProgress = (successWidth + failedWidth) + "%";
169
- this.successProgress = successWidth + "%";
170
- this.failedProgress = failedWidth + "%";
171
- this.pendingProgress = pendingWidth + "%";
168
+ var processedWidth = successWidth + failedWidth;
169
+ this.processingProgress = processedWidth.toFixed(0) + "%";
170
+ this.successProgress = successWidth.toFixed(0) + "%";
171
+ this.failedProgress = failedWidth.toFixed(0) + "%";
172
+ this.pendingProgress = pendingWidth.toFixed(0) + "%";
172
173
  };
173
174
  PainelProcessamentoComponent.prototype.updateRowStatus = function (row, status, message) {
174
175
  row.status = status;
@@ -259,4 +260,4 @@ var PainelProcessamentoComponent = /** @class */ (function () {
259
260
  return PainelProcessamentoComponent;
260
261
  }());
261
262
  export { PainelProcessamentoComponent };
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGO0lBc0JJLHNDQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO3FDQXhCSSw0QkFBNEI7SUEwQnJDLCtDQUFRLEdBQVI7UUFDSSxJQUFJLENB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QmhGLGdCQUFnQjs7O0lBbkJ2QztRQUFSLEtBQUssRUFBRTtnRUFBNEI7SUFDMUI7UUFBVCxNQUFNLEVBQUU7b0VBQWlDO0lBQ2hDO1FBQVQsTUFBTSxFQUFFO21FQUFnQztJQU5oQyw0QkFBNEI7UUFSeEMsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztRQUNELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwyQkFBMkI7WUFDckMseTRGQUFvRDs7U0FFckQsQ0FBQztPQUNXLDRCQUE0QixDQWlPeEM7dUNBOU9EO0NBOE9DLEFBak9ELElBaU9DO1NBak9ZLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0YWJsZSwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c1RyYW5zbGF0aW9uTWFwLCBQcm9jZXNzYW1lbnRvR3JpZCwgUHJvY2Vzc2FtZW50b0lucHV0IH0gZnJvbSAnLi9wcm9jZXNzYW1lbnRvJztcbmltcG9ydCB7IENvbHVtbiwgRW51bUNvbHVtbkZpZWxkVHlwZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1wYWluZWwtcHJvY2Vzc2FtZW50bycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhaW5lbC1wcm9jZXNzYW1lbnRvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBHRU5FUklDX0VSUl9LRVkgPSAndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fZ2VuZXJpY19lcnJvcic7XG5cbiAgICBASW5wdXQoKSBwYXJhbXM6IFByb2Nlc3NhbWVudG9JbnB1dDtcbiAgICBAT3V0cHV0KCkgcHJvY2Vzc2FkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY29uY2x1aWRvID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGdyaWREYXRhOiBQcm9jZXNzYW1lbnRvR3JpZFtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogQ29sdW1uW107XG5cbiAgICBwdWJsaWMgdG90YWxSZWNvcmRzID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgZmFpbGVkQ291bnQgPSAwO1xuICAgIHB1YmxpYyBwZW5kaW5nQ291bnQgPSAwO1xuICAgIHB1YmxpYyBzdWNjZXNzUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBmYWlsZWRQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICBwdWJsaWMgcHJvY2Vzc2luZ1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgc29ydEZpZWxkID0gJ3N0YXR1cyc7XG4gICAgcHVibGljIHNvcnRPcmRlciA9IDE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdFBhbmVsKCk7XG4gICAgfVxuXG4gICAgaW5pdFBhbmVsKCkge1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5nZXRHcmlkQ29sdW1uKCk7XG4gICAgICAgIHRoaXMuaW5pdEdyaWQoKTtcbiAgICAgICAgdGhpcy5pbml0UHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBpbml0UHJvZ3Jlc3NCYXIoKSB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICAgICAgdGhpcy5mYWlsZWRQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMucGVuZGluZ1Byb2dyZXNzID0gJzEwMCUnO1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLmxlbmd0aDtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSB0aGlzLnRvdGFsUmVjb3JkcztcblxuICAgICAgICBpZiAodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NBbGxSZWNvcmRzV2l0aFBMaW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zeW5jUHJvY2Vzc1JlY29yZCgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRHcmlkKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gW107XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKHJlZ2lzdHJvID0+ICh7XG4gICAgICAgICAgICByZWdpc3RybyxcbiAgICAgICAgICAgIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUEVORElORyxcbiAgICAgICAgICAgIGxhYmVsOiByZWdpc3Ryby5kZXNjcmljYW9cbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RXJyb3JNZXNzYWdlKGVycm9yOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGVycm9yLmVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhlcnJvci5tZXNzYWdlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJpY0Vycm9yTXNnO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGdlbmVyaWNFcnJvck1zZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChQYWluZWxQcm9jZXNzYW1lbnRvQ29tcG9uZW50LkdFTkVSSUNfRVJSX0tFWSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dTdWNjZXNzKHJvdzogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc0NvdW50Kys7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuU1VDQ0VTUyk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJvd0Vycm9yKHJvdzogYW55LCBpbmRleDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWlsZWRDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLkZBSUxFRCwgbWVzc2FnZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNQcm9jZXNzUmVjb3JkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0NvdW50IDwgMSkge1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnb2snKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyh0aGlzLmdyaWREYXRhW2luZGV4XSwgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvc1tpbmRleF07XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuZ3JpZERhdGEuZmluZChpdGVtID0+IGl0ZW0ucmVnaXN0cm8gPT09IHJlY29yZCk7XG5cbiAgICAgICAgaWYgKHJlY29yZC5hcGlFbnZpbykge1xuICAgICAgICAgICAgcmVjb3JkLmFwaUVudmlvKHJlY29yZC5vYmpFbnZpbylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zeW5jUHJvY2Vzc1JlY29yZChpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mYWlsZWRDb3VudCA9IHRoaXMucGVuZGluZ0NvdW50O1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LFxuICAgICAgICAgICAgICAgICBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fYXBpX2Vycm9yJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdlcnJvJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKSB7XG4gICAgICBjb25zdCBwTGltaXQgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG4gICAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCh0aGlzLnBhcmFtcy5xdWFudGlkYWRlQ2hhbWFkYXNTaW11bHRhbmVhcyk7XG4gICAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5tYXAoKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgcmVjb3JkLCByZXN1bHQgfTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dFcnJvcihyb3csIGluZGV4LCB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcikpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIHJlY29yZCwgZXJyb3IgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdChyZXN1bHRzKTtcbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvZ3Jlc3NCYXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NXaWR0aCA9ICh0aGlzLnN1Y2Nlc3NDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgZmFpbGVkV2lkdGggPSAodGhpcy5mYWlsZWRDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgcGVuZGluZ1dpZHRoID0gKHRoaXMucGVuZGluZ0NvdW50IC8gdGhpcy50b3RhbFJlY29yZHMpICogMTAwO1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9IGAkeyhzdWNjZXNzV2lkdGggKyBmYWlsZWRXaWR0aCl9JWA7XG5cbiAgICAgICAgdGhpcy5zdWNjZXNzUHJvZ3Jlc3MgPSBgJHtzdWNjZXNzV2lkdGh9JWA7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSBgJHtmYWlsZWRXaWR0aH0lYDtcbiAgICAgICAgdGhpcy5wZW5kaW5nUHJvZ3Jlc3MgPSBgJHtwZW5kaW5nV2lkdGh9JWA7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVJvd1N0YXR1cyhyb3c6IGFueSwgc3RhdHVzOiBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgbWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICByb3cuc3RhdHVzID0gc3RhdHVzO1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgcm93Lm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEdyaWREYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0R3JpZERhdGEoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c09yZGVyID0ge1xuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRURdOiAxLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QUk9DRVNTSU5HXTogMixcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuU1VDQ0VTU106IDMsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkddOiA0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuc29ydEZpZWxkID09PSAnc3RhdHVzJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoc3RhdHVzT3JkZXJbYS5zdGF0dXMgYXMgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNdIC0gc3RhdHVzT3JkZXJbYi5zdGF0dXMgYXMgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNdKSAqIHRoaXMuc29ydE9yZGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxBID0gYVt0aGlzLnNvcnRGaWVsZF0gfHwgJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQiA9IGJbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWxBLmxvY2FsZUNvbXBhcmUodmFsQikgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERhdGEocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgIGxldCB0ZXh0ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c1RyYW5zbGF0aW9uTWFwW3Jvd0RhdGEuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSk7XG4gICAgICAgICAgICBpZiAocm93RGF0YS5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgdGV4dCArPSBgOiAke3Jvd0RhdGEubWVzc2FnZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvd0RhdGFbZmllbGRdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDbGFzc1N0YXR1cyhyb3dEYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZpZWxkICE9PSAnc3RhdHVzJykge1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIGBzdGF0dXMgJHtyb3dEYXRhW2ZpZWxkXS50b0xvd2VyQ2FzZSgpfWA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWRDb2x1bW4oKTogQ29sdW1uW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiAnbGFiZWwnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucmVnaXN0cm8nKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogJzUwJScgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3N0YXR1cycsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zdGF0dXMnKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogJzUwJScgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG4iXX0=
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGO0lBc0JJLHNDQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO3FDQXhCSSw0QkFBNEI7SUEwQnJDLCtDQUFRLEdBQVI7UUFDSSxJQUFJLENB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QUFFO2dCQUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTthQUNuQztTQUNKLENBQUM7SUFDTixDQUFDOztJQS9OdUIsNENBQWUsR0FBRyxxRUFBcUUsQ0FBQzs7Z0JBcUJoRixnQkFBZ0I7OztJQW5CdkM7UUFBUixLQUFLLEVBQUU7Z0VBQTRCO0lBQzFCO1FBQVQsTUFBTSxFQUFFO29FQUFpQztJQUNoQztRQUFULE1BQU0sRUFBRTttRUFBZ0M7SUFOaEMsNEJBQTRCO1FBUnhDLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7UUFDRCxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLHk0RkFBb0Q7O1NBRXJELENBQUM7T0FDVyw0QkFBNEIsQ0FrT3hDO3VDQS9PRDtDQStPQyxBQWxPRCxJQWtPQztTQWxPWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgR0VORVJJQ19FUlJfS0VZID0gJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2dlbmVyaWNfZXJyb3InO1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyYW1zLnF1YW50aWRhZGVDaGFtYWRhc1NpbXVsdGFuZWFzID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3I/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhlcnJvci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcj8ubWVzc2FnZT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZXJyb3IubWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBnZW5lcmljRXJyb3JNc2coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudC5HRU5FUklDX0VSUl9LRVkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUm93U3VjY2Vzcyhyb3c6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1MpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dFcnJvcihyb3c6IGFueSwgaW5kZXg6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmFpbGVkQ291bnQrKztcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQtLTtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jUHJvY2Vzc1JlY29yZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdDb3VudCA8IDEpIHtcbiAgICAgICAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQoJ29rJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXModGhpcy5ncmlkRGF0YVtpbmRleF0sIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3NbaW5kZXhdO1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuXG4gICAgICAgIGlmIChyZWNvcmQuYXBpRW52aW8pIHtcbiAgICAgICAgICAgIHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd0Vycm9yKHJvdywgaW5kZXgsIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmFpbGVkQ291bnQgPSB0aGlzLnBlbmRpbmdDb3VudDtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdyxcbiAgICAgICAgICAgICAgICAgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELFxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2FwaV9lcnJvcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnZXJybycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0FsbFJlY29yZHNXaXRoUExpbWl0KCkge1xuICAgICAgY29uc3QgcExpbWl0ID0gcmVxdWlyZSgncC1saW1pdCcpO1xuICAgICAgY29uc3QgbGltaXQgPSBwTGltaXQodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMpO1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBsaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKS50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHJlY29yZCwgcmVzdWx0IH07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWNvcmQsIGVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQocmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkV2lkdGggPSBzdWNjZXNzV2lkdGggKyBmYWlsZWRXaWR0aDtcblxuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9IGAke3Byb2Nlc3NlZFdpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSBgJHtmYWlsZWRXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9IGAke3BlbmRpbmdXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
@@ -169,10 +169,11 @@ let PainelProcessamentoComponent = PainelProcessamentoComponent_1 = class Painel
169
169
  const successWidth = (this.successCount / this.totalRecords) * 100;
170
170
  const failedWidth = (this.failedCount / this.totalRecords) * 100;
171
171
  const pendingWidth = (this.pendingCount / this.totalRecords) * 100;
172
- this.processingProgress = `${(successWidth + failedWidth)}%`;
173
- this.successProgress = `${successWidth}%`;
174
- this.failedProgress = `${failedWidth}%`;
175
- this.pendingProgress = `${pendingWidth}%`;
172
+ const processedWidth = successWidth + failedWidth;
173
+ this.processingProgress = `${processedWidth.toFixed(0)}%`;
174
+ this.successProgress = `${successWidth.toFixed(0)}%`;
175
+ this.failedProgress = `${failedWidth.toFixed(0)}%`;
176
+ this.pendingProgress = `${pendingWidth.toFixed(0)}%`;
176
177
  }
177
178
  updateRowStatus(row, status, message) {
178
179
  row.status = status;
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-tmsx-angular-components.js","sources":["ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/processamento.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.module.ts","ng://@seniorsistemas/tmsx-angular-components/utils/services/utils.service.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.module.ts","ng://@seniorsistemas/tmsx-angular-components/tmsx-angular-components.module.ts","ng://@seniorsistemas/tmsx-angular-components/locale/fallback.ts","ng://@seniorsistemas/tmsx-angular-components/seniorsistemas-tmsx-angular-components.ts"],"sourcesContent":["import { Observable } from \"rxjs\";\n\nexport interface ProcessamentoInput {\n quantidadeChamadasSimultaneas: number;\n registros: ProcessamentoRegistro[];\n titulo: string;\n}\n\nexport interface ProcessamentoRegistro {\n descricao: string;\n apiEnvio: (data: object) => Observable<any>;\n objEnvio: any;\n}\n\nexport interface ProcessamentoGrid {\n registro: any;\n label: string;\n status: EnumProcessamentoStatus;\n message?: string;\n}\n\nexport enum EnumProcessamentoStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\"\n}\n\nexport const EnumProcessamentoStatusTranslationMap: Record<EnumProcessamentoStatus, string> = {\n [EnumProcessamentoStatus.SUCCESS]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_success',\n [EnumProcessamentoStatus.FAILED]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed',\n [EnumProcessamentoStatus.PENDING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending',\n [EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'\n};\n\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, Injectable, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { EnumProcessamentoStatus, EnumProcessamentoStatusTranslationMap, ProcessamentoGrid, ProcessamentoInput } from './processamento';\nimport { Column, EnumColumnFieldType } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-painel-processamento',\n templateUrl: './painel-processamento.component.html',\n styleUrls: ['./painel-processamento.component.scss']\n})\nexport class PainelProcessamentoComponent implements OnInit {\n\n private static readonly GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';\n\n @Input() params: ProcessamentoInput;\n @Output() processado = new EventEmitter();\n @Output() concluido = new EventEmitter();\n\n public gridData: ProcessamentoGrid[];\n public gridColumns: Column[];\n\n public totalRecords = 0;\n public successCount = 0;\n public failedCount = 0;\n public pendingCount = 0;\n public successProgress = '0%';\n public failedProgress = '0%';\n public pendingProgress = '100%';\n public processingProgress = '0%';\n public sortField = 'status';\n public sortOrder = 1;\n\n constructor(\n private readonly translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.initPanel();\n }\n\n initPanel() {\n this.gridColumns = this.getGridColumn();\n this.initGrid();\n this.initProgressBar();\n }\n\n initProgressBar() {\n this.successProgress = '0%';\n this.failedProgress = '0%';\n this.pendingProgress = '100%';\n this.processingProgress = '0%';\n this.totalRecords = this.params.registros.length;\n this.pendingCount = this.totalRecords;\n\n if (this.params.quantidadeChamadasSimultaneas > 1) {\n this.processAllRecordsWithPLimit();\n } else {\n this.syncProcessRecord(0);\n }\n }\n\n initGrid() {\n this.gridData = [];\n this.gridData = this.params.registros.map(registro => ({\n registro,\n status: EnumProcessamentoStatus.PENDING,\n label: registro.descricao\n }));\n }\n\n private getErrorMessage(error: any): string {\n try {\n if (!error) {\n return this.genericErrorMsg;\n }\n if (error?.error?.message) {\n return String(error.error.message);\n }\n if (error?.message?.message) {\n return String(error.message.message);\n }\n return this.genericErrorMsg;\n } catch {\n return this.genericErrorMsg;\n }\n }\n\n private get genericErrorMsg(): string {\n return this.translate.instant(PainelProcessamentoComponent.GENERIC_ERR_KEY);\n }\n\n private updateRowSuccess(row: any, index: number): void {\n this.successCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private updateRowError(row: any, index: number, message: string): void {\n this.failedCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private syncProcessRecord(index: number): void {\n if (this.pendingCount < 1) {\n this.concluido.emit('ok');\n return;\n }\n this.updateRowStatus(this.gridData[index], EnumProcessamentoStatus.PROCESSING);\n const record = this.params.registros[index];\n const row = this.gridData.find(item => item.registro === record);\n\n if (record.apiEnvio) {\n record.apiEnvio(record.objEnvio)\n .subscribe(\n () => {\n this.updateRowSuccess(row, index);\n this.syncProcessRecord(index + 1);\n },\n (error: any) => {\n this.updateRowError(row, index, this.getErrorMessage(error));\n this.syncProcessRecord(index + 1);\n }\n );\n } else {\n this.failedCount = this.pendingCount;\n this.pendingCount = 0;\n this.updateRowStatus(row,\n EnumProcessamentoStatus.FAILED,\n this.translate.instant('tmsx_fnd.tmsx_angular_components.painel_processamento_api_error')\n );\n this.updateProgressBar();\n this.concluido.emit('erro');\n }\n }\n\n async processAllRecordsWithPLimit() {\n const pLimit = require('p-limit');\n const limit = pLimit(this.params.quantidadeChamadasSimultaneas);\n const promises = this.params.registros.map((record, index) => {\n return limit(async () => {\n const row = this.gridData.find(item => item.registro === record);\n this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);\n try {\n const result = await record.apiEnvio(record.objEnvio).toPromise();\n this.updateRowSuccess(row, index);\n return { success: true, record, result };\n } catch (error) {\n this.updateRowError(row, index, this.getErrorMessage(error));\n return { success: false, record, error };\n }\n });\n });\n const results = await Promise.all(promises);\n this.concluido.emit(results);\n return results;\n }\n\n private updateProgressBar(): void {\n const successWidth = (this.successCount / this.totalRecords) * 100;\n const failedWidth = (this.failedCount / this.totalRecords) * 100;\n const pendingWidth = (this.pendingCount / this.totalRecords) * 100;\n this.processingProgress = `${(successWidth + failedWidth)}%`;\n\n this.successProgress = `${successWidth}%`;\n this.failedProgress = `${failedWidth}%`;\n this.pendingProgress = `${pendingWidth}%`;\n }\n\n public updateRowStatus(row: any, status: EnumProcessamentoStatus, message?: string) {\n row.status = status;\n if (message) {\n row.message = message;\n }\n this.sortGridData();\n }\n\n private sortGridData() {\n this.gridData.sort((a: any, b: any) => {\n const statusOrder = {\n [EnumProcessamentoStatus.FAILED]: 1,\n [EnumProcessamentoStatus.PROCESSING]: 2,\n [EnumProcessamentoStatus.SUCCESS]: 3,\n [EnumProcessamentoStatus.PENDING]: 4\n };\n if (this.sortField === 'status') {\n return (statusOrder[a.status as EnumProcessamentoStatus] - statusOrder[b.status as EnumProcessamentoStatus]) * this.sortOrder;\n } else {\n const valA = a[this.sortField] || '';\n const valB = b[this.sortField] || '';\n return valA.localeCompare(valB) * this.sortOrder;\n }\n });\n }\n\n public getData(rowData: any, field: string) {\n if (field === 'status') {\n let text = this.translate.instant(EnumProcessamentoStatusTranslationMap[rowData.status as EnumProcessamentoStatus]);\n if (rowData.message) {\n text += `: ${rowData.message}`;\n }\n return text;\n }\n return rowData[field];\n }\n\n public getClassStatus(rowData: any, field: string) {\n if (field !== 'status') {\n return '';\n }\n return `status ${rowData[field].toLowerCase()}`;\n }\n\n public getGridColumn(): Column[] {\n return [\n {\n field: 'label',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.registro'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n {\n field: 'status',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.status'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n ];\n }\n}\n","\n\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LocaleModule, TooltipModule, TableModule } from '@seniorsistemas/angular-components';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PainelProcessamentoComponent } from './painel-processamento.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { CommonModule } from '@angular/common';\nimport { PanelModule } from 'primeng/panel';\n\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n TooltipModule,\n PrimeTableModule,\n TableModule,\n ButtonModule,\n CommonModule,\n PanelModule,\n\n ],\n declarations: [\n PainelProcessamentoComponent\n ],\n providers: [],\n exports: [\n PainelProcessamentoComponent\n ],\n})\nexport class PainelProcessamentoModule {}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FieldType, FormField, LocalizedDatePipe, Option } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(\n private readonly translate: TranslateService,\n private readonly dataPipe: LocalizedDatePipe\n ) { }\n\n public getAuditCreatedBy(createdBy: string, createdDate: Date): string {\n if (!createdBy || !createdDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(createdDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', {nome: createdBy, data: date[0], hora: date[1]});\n }\n\n public getAuditModifiedBy(modifiedBy: string, modifiedDate: Date): string {\n if (!modifiedBy || !modifiedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(modifiedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', {nome: modifiedBy, data: date[0], hora: date[1]});\n }\n\n public getAuditInactivatedBy(inactivatedBy: string, inactivatedDate: Date): string {\n if (!inactivatedBy || !inactivatedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(inactivatedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', {nome: inactivatedBy, data: date[0], hora: date[1]});\n }\n\n /* usage: [innerHTML]=\"getProp(rowData, 'nome')\" */\n public getProp(obj: any, path: any, type?: string): string {\n let value = path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n if (value || value === 0) {\n if (type) {\n value = this.formatType(value, type);\n }\n return `<span>${value}</span>`;\n }\n return `<span class=\"empty-grid\">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;\n }\n\n public formatType(value: any, type: string): string {\n if (value) {\n if (type === 'date') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item.split(' '));\n return date[0];\n }\n if (type === 'datetime') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item);\n return date;\n }\n if (type === 'decimal') {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n if (type === 'currency') {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n if (type === 'cep') {\n return value.replace(/^(\\d{2})(\\d{3})(\\d{3})/, '$1.$2-$3');\n }\n }\n return value;\n }\n\n /* usage: [ngClass]=\"emptyGridClass(value)\" */\n public emptyGridClass(value: string): string {\n if (!value || value === this.translate.instant('tmsx_fnd.replicacao.list_grid_empty_field')) {\n return 'empty-grid';\n }\n return '';\n }\n\n public infoContent(entity?: any) {\n let text = '';\n if (!entity) {\n return this.translate.instant(\"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\");\n }\n text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);\n if (text) {\n text += '\\n';\n }\n text += this.getAuditModifiedBy(entity.lastModifiedBy, entity.lastModifiedDate);\n return text;\n }\n\n public formatCurrency(value: number): string {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n\n public getAtivoTokenLabel(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label } = formField as any;\n if (type === FieldType.Radio) {\n const labelValue = value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');\n return { id: name, label: `${label}: ${labelValue}` };\n }\n return this.createFilterTokens(formField, value, translate);\n }\n\n public getUtilsProp(obj: any, path: any) {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public createFilterTokens(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label, searchFields, options } = formField as any;\n const labelValue = this.getLabelValueByType(type, value, searchFields, options, translate);\n return { id: name, label: `${label}: ${labelValue}` };\n }\n\n private getLabelValueByType(\n type: FieldType,\n value: any,\n searchFields: FormField[],\n options: Option[],\n translate: TranslateService\n ): string {\n switch (type) {\n case FieldType.Date:\n return this.getDateLabel(value);\n case FieldType.Time:\n return this.getTimeFromDate(value);\n case FieldType.LocalDateTime:\n case FieldType.DateTime:\n return this.getDateTimeFromDate(value);\n case FieldType.Lookup:\n return this.getLookupLabel(value, searchFields);\n case FieldType.Enum:\n return this.getEnumLabel(value, options);\n case FieldType.Boolean:\n return this.getBooleanLabel(value, translate);\n default:\n return value;\n }\n }\n\n private getDateLabel(value: any): string {\n const dateObj = value instanceof Date ? value : new Date(value);\n return !isNaN(dateObj.getTime()) ? dateObj.toLocaleDateString('pt-BR') : value;\n }\n\n private getLookupLabel(value: any, searchFields: FormField[]): string {\n return searchFields.map((field: FormField) => this.getUtilsProp(value, field.name)).join(' - ');\n }\n\n private getEnumLabel(value: any, options: Option[]): string {\n const option = options.find((opt: Option) => opt.value === value);\n return option ? option.label : value;\n }\n\n private getBooleanLabel(value: any, translate: TranslateService): string {\n return value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');\n }\n\n public getTimeFromDate(value: any) {\n let dateObj: Date;\n if (typeof value === 'string' && /^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) {\n const [h, m, s = '00'] = value.split(':');\n dateObj = new Date();\n dateObj.setHours(+h, +m, +s, 0);\n } else {\n dateObj = value instanceof Date ? value : new Date(value);\n }\n if (!isNaN(dateObj.getTime())) {\n return dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n }\n return value;\n }\n\n public getDateTimeFromDate(value: any) {\n const dateObj = value instanceof Date ? value : new Date(value);\n if (!isNaN(dateObj.getTime())) {\n const datePart = dateObj.toLocaleDateString('pt-BR'); // DD/MM/AAAA\n const timePart = dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n return `${datePart} ${timePart}`;\n }\n return value;\n }\n}\n","import { ChangeDetectorRef, Component, Injectable, Input, OnDestroy,\n OnInit, Output, ViewChild, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { LazyLoadEvent, MenuItem, SortMeta } from 'primeng/api';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { GridConfig, FrozenColumn } from './grid.interface';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { HotkeysService, Hotkey } from 'angular2-hotkeys';\nimport { UtilsService } from '../../utils/services/utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-grid-editable-nested',\n templateUrl: './grid-editable-nested.component.html',\n styleUrls: ['./grid-editable-nested.component.scss']\n})\nexport class GridEditableNestedComponent implements OnDestroy, OnInit, OnChanges {\n @Input() public config!: GridConfig;\n @Input() nestedFunction!: (listParams: ListParams, rowData: any) => Promise<void>;\n @Output() openDetails = new EventEmitter<any>();\n @Output() paging = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() save = new EventEmitter<any>();\n @Output() add = new EventEmitter<any>();\n\n @ViewChild(\"table\", { static: false }) public table!: Table;\n public clonedData: { [s: string]: any } = {};\n public gridLoading = true;\n public editing = false;\n public lazy = true;\n public deleteEnabled = false;\n public editEnabled = false;\n public addEnabled = false;\n public detailsEnabled = false;\n public calendarTooltipText = '';\n public currentListParams: ListParams = { page: 0, size: 5, sort: [] };\n\n public gridData: any[] = [];\n public gridColumns: any[] = [];\n public gridTotalRecords = 0;\n public selected: any[] = [];\n\n public nestedGridLoading = false;\n public frozenPosition = 'left';\n public frozenWidth = '200px';\n public frozenColumns: FrozenColumn[] = [];\n\n private readonly ngUnsubscribe = new Subject();\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly utils: UtilsService,\n private readonly hotkeysService: HotkeysService,\n ) {\n this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');\n }\n\n ngOnInit(): void {\n this.setGridData();\n this.setHotkeys();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.config) {\n this.setGridData();\n }\n }\n\n public formatData(column: any, value: string) {\n return value;\n }\n\n private setGridData() {\n if (!this.config) {\n return;\n }\n const { data, size, columns, frozenPosition, frozenColumns, editing, lazy,\n deleteActionsEnabled, editEnabled, addEnabled, editActionsEnabled } = this.config;\n\n this.gridData = data ?? [];\n this.gridTotalRecords = size ?? 0;\n this.gridColumns = columns ?? [];\n this.frozenPosition = frozenPosition ?? 'left';\n this.frozenColumns = frozenColumns ?? [];\n this.frozenWidth = this.calculateFrozenWidth(this.frozenColumns);\n\n this.editing = !!editing;\n this.lazy = !!lazy;\n this.deleteEnabled = !!deleteActionsEnabled;\n this.editEnabled = !!editEnabled;\n this.addEnabled = !!addEnabled;\n this.detailsEnabled = !!editActionsEnabled;\n\n this.changeDetectorRef.detectChanges();\n this.nestedGridLoading = false;\n this.gridLoading = false;\n }\n\n private calculateFrozenWidth(frozenColumns: FrozenColumn[]): string {\n const gutter = 120;\n if (!(frozenColumns?.length)) {\n return '120px';\n }\n const totalWidth = frozenColumns.reduce((sum, col) => sum + gutter + (parseInt(col.width, 10) || 0), 0);\n return `${totalWidth}px`;\n }\n\n\n public getActions(data: any): MenuItem[] {\n return [\n {\n id: 'edit',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),\n disabled: !this.detailsEnabled,\n command: () => {\n this.openRowDetails(data.id);\n },\n },\n { separator: true },\n {\n id: 'delete',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),\n disabled: !this.deleteEnabled,\n command: () => {\n this.onDelete(data.id);\n },\n },\n ];\n }\n\n public updateGridData(event: LazyLoadEvent) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n this.gridLoading = true;\n\n if (this.clonedData && Object.keys(this.clonedData).length) {\n this.clonedData = {};\n this.table.editingRowKeys = {};\n }\n\n this.paging.emit({ page, size });\n }\n\n public async updateNestedGridData(event: LazyLoadEvent, rowData: any) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n const sort = event.multiSortMeta || [];\n\n rowData.nestedGridLoading = true;\n await this.nestedFunction({ page, size, sort }, rowData);\n }\n\n onTab(event: KeyboardEvent) {\n if (event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'p-cellEditor input, p-cellEditor textarea, p-cellEditor [tabindex=\"0\"]'\n )\n ).filter(el => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(event.target as HTMLElement);\n\n let next: HTMLElement | undefined;\n\n if (event.shiftKey) {\n next = focusables[currentIndex - 1] || focusables[focusables.length - 1];\n } else {\n next = focusables[currentIndex + 1] || focusables[0];\n }\n\n if (next) {\n next.focus();\n }\n }\n\n\n public getRowIndex() {\n const page = this.currentListParams.page || 0;\n const size = this.currentListParams.size || 0;\n return page * size;\n }\n\n public getPageSize() {\n return this.currentListParams.size ?? 0;\n }\n\n public openRowDetails(id: string) {\n this.openDetails.emit(id);\n }\n\n public onDelete(id: string) {\n this.delete.emit(id);\n }\n\n public onAdd() {\n this.add.emit();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onEditSave() {\n this.saveAllRows();\n }\n\n public onEditCancel() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n const index = this.gridData.findIndex((row) => row.id === data.id);\n this.gridData[index] = this.clonedData[data.id];\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n }\n\n public initAllRowsEdit() {\n this.gridData.forEach((data) => {\n this.editing = true;\n this.table.initRowEdit(data);\n this.clonedData[data.id] = { ...data };\n });\n }\n\n public saveAllRows() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n this.save.emit(this.gridData);\n }\n\n public formatRowData(field: any) {\n return field;\n }\n\n public filterOptions(event: any) {\n return event;\n }\n\n public getSpanProp(obj: any, path: any, type?: string): string {\n type = type?.toLowerCase();\n const value = this.utils.getProp(obj, path, type);\n if (value === '<span>0</span>' && type === 'decimal') {\n return '<span>0,00</span>';\n }\n if (!obj.tiposDados) {\n return value;\n }\n if ('MONETARIO' === obj.tiposDados[path]) {\n return 'R$ ' + value;\n }\n if ('PERCENTUAL' === obj.tiposDados[path]) {\n return value + ' %';\n }\n return value;\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n 'alt+shift+n',\n () => {\n this.onAdd();\n return false;\n },\n ['INPUT', 'SELECT', 'TEXTAREA']\n )\n );\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GridEditableNestedComponent } from './grid-editable-nested.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\n\nimport {\n ButtonModule,\n LoadingStateModule,\n LocaleModule,\n NumberInputModule,\n TableModule,\n TooltipModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n} from '@seniorsistemas/angular-components';\n\nimport { ToastModule } from 'primeng/toast';\nimport { PanelModule } from 'primeng/panel';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { SharedModule } from 'primeng/api';\nimport { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n ButtonModule,\n TableModule,\n TooltipModule,\n LoadingStateModule,\n NumberInputModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n\n // PrimeNG modules\n ToastModule,\n PrimeTableModule,\n PrimeTooltipModule,\n PanelModule,\n InputTextModule,\n ConfirmDialogModule,\n CalendarModule,\n DropdownModule,\n SharedModule,\n AutoCompleteModule,\n CheckboxModule,\n\n // Angular modules\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n GridEditableNestedComponent,\n ],\n providers: [],\n exports: [\n GridEditableNestedComponent,\n ],\n})\nexport class GridEditableNestedModule {}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class TmsxAngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<TmsxAngularComponentsModule> {\n return {\n ngModule: TmsxAngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","export const fallback: any = {\n \"tmsx_fnd.tmsx_angular_components.add\": \"Adicionar\",\n \"tmsx_fnd.tmsx_angular_components.audit_created_by\": \"Criado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_modified_by\": \"Modificado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_inactivated_by\": \"Inativado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\": \"Sem informações de auditoria\",\n \"tmsx_fnd.tmsx_angular_components.delete\": \"Excluir\",\n \"tmsx_fnd.tmsx_angular_components.edit\": \"Editar\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_description\": \"Você não tem permissão para acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_title\": \"Acesso Negado\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_description\": \"O recurso solicitado não foi encontrado.\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_title\": \"Não Encontrado\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_description\": \"Você não está autorizado a acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_title\": \"Não Autorizado\",\n \"tmsx_fnd.tmsx_angular_components.grid_aninhada\": \"Grid Aninhada\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required\": \"É necessário informar a data\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar\": \"Cancelar\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar\": \"Editar valores\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging\": \"registros encontrados\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar\": \"Salvar alterações\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_false\": \"Não\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_true\": \"Sim\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_empty_field\": \"Não informado\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento\": \"Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_api_error\": \"API de envio não definida\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed\": \"Ocorreu um erro\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending\": \"Pendente\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing\": \"Processando\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_success\": \"Finalizado com sucesso\",\n \"tmsx_fnd.tmsx_angular_components.registro\": \"Registro\",\n \"tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title\": \"Demonstração do Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_table_title\": \"Demonstração da Tabela\",\n \"tmsx_fnd.tmsx_angular_components.showcase_title\": \"Showcase\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_false\": \"Inativo\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_true\": \"Ativo\",\n \"tmsx_fnd.tmsx_angular_components.status\": \"Situação\",\n \"tmsx_fnd.tmsx_angular_components.total_records\": \"{{ value }} registros encontrados\"\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["pLimit","require$$0","PrimeTableModule","TableModule","PrimeTooltipModule"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-tmsx-angular-components.js","sources":["ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/processamento.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.module.ts","ng://@seniorsistemas/tmsx-angular-components/utils/services/utils.service.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.module.ts","ng://@seniorsistemas/tmsx-angular-components/tmsx-angular-components.module.ts","ng://@seniorsistemas/tmsx-angular-components/locale/fallback.ts","ng://@seniorsistemas/tmsx-angular-components/seniorsistemas-tmsx-angular-components.ts"],"sourcesContent":["import { Observable } from \"rxjs\";\n\nexport interface ProcessamentoInput {\n quantidadeChamadasSimultaneas: number;\n registros: ProcessamentoRegistro[];\n titulo: string;\n}\n\nexport interface ProcessamentoRegistro {\n descricao: string;\n apiEnvio: (data: object) => Observable<any>;\n objEnvio: any;\n}\n\nexport interface ProcessamentoGrid {\n registro: any;\n label: string;\n status: EnumProcessamentoStatus;\n message?: string;\n}\n\nexport enum EnumProcessamentoStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\"\n}\n\nexport const EnumProcessamentoStatusTranslationMap: Record<EnumProcessamentoStatus, string> = {\n [EnumProcessamentoStatus.SUCCESS]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_success',\n [EnumProcessamentoStatus.FAILED]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed',\n [EnumProcessamentoStatus.PENDING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending',\n [EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'\n};\n\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, Injectable, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { EnumProcessamentoStatus, EnumProcessamentoStatusTranslationMap, ProcessamentoGrid, ProcessamentoInput } from './processamento';\nimport { Column, EnumColumnFieldType } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-painel-processamento',\n templateUrl: './painel-processamento.component.html',\n styleUrls: ['./painel-processamento.component.scss']\n})\nexport class PainelProcessamentoComponent implements OnInit {\n\n private static readonly GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';\n\n @Input() params: ProcessamentoInput;\n @Output() processado = new EventEmitter();\n @Output() concluido = new EventEmitter();\n\n public gridData: ProcessamentoGrid[];\n public gridColumns: Column[];\n\n public totalRecords = 0;\n public successCount = 0;\n public failedCount = 0;\n public pendingCount = 0;\n public successProgress = '0%';\n public failedProgress = '0%';\n public pendingProgress = '100%';\n public processingProgress = '0%';\n public sortField = 'status';\n public sortOrder = 1;\n\n constructor(\n private readonly translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.initPanel();\n }\n\n initPanel() {\n this.gridColumns = this.getGridColumn();\n this.initGrid();\n this.initProgressBar();\n }\n\n initProgressBar() {\n this.successProgress = '0%';\n this.failedProgress = '0%';\n this.pendingProgress = '100%';\n this.processingProgress = '0%';\n this.totalRecords = this.params.registros.length;\n this.pendingCount = this.totalRecords;\n\n if (this.params.quantidadeChamadasSimultaneas > 1) {\n this.processAllRecordsWithPLimit();\n } else {\n this.syncProcessRecord(0);\n }\n }\n\n initGrid() {\n this.gridData = [];\n this.gridData = this.params.registros.map(registro => ({\n registro,\n status: EnumProcessamentoStatus.PENDING,\n label: registro.descricao\n }));\n }\n\n private getErrorMessage(error: any): string {\n try {\n if (!error) {\n return this.genericErrorMsg;\n }\n if (error?.error?.message) {\n return String(error.error.message);\n }\n if (error?.message?.message) {\n return String(error.message.message);\n }\n return this.genericErrorMsg;\n } catch {\n return this.genericErrorMsg;\n }\n }\n\n private get genericErrorMsg(): string {\n return this.translate.instant(PainelProcessamentoComponent.GENERIC_ERR_KEY);\n }\n\n private updateRowSuccess(row: any, index: number): void {\n this.successCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private updateRowError(row: any, index: number, message: string): void {\n this.failedCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private syncProcessRecord(index: number): void {\n if (this.pendingCount < 1) {\n this.concluido.emit('ok');\n return;\n }\n this.updateRowStatus(this.gridData[index], EnumProcessamentoStatus.PROCESSING);\n const record = this.params.registros[index];\n const row = this.gridData.find(item => item.registro === record);\n\n if (record.apiEnvio) {\n record.apiEnvio(record.objEnvio)\n .subscribe(\n () => {\n this.updateRowSuccess(row, index);\n this.syncProcessRecord(index + 1);\n },\n (error: any) => {\n this.updateRowError(row, index, this.getErrorMessage(error));\n this.syncProcessRecord(index + 1);\n }\n );\n } else {\n this.failedCount = this.pendingCount;\n this.pendingCount = 0;\n this.updateRowStatus(row,\n EnumProcessamentoStatus.FAILED,\n this.translate.instant('tmsx_fnd.tmsx_angular_components.painel_processamento_api_error')\n );\n this.updateProgressBar();\n this.concluido.emit('erro');\n }\n }\n\n async processAllRecordsWithPLimit() {\n const pLimit = require('p-limit');\n const limit = pLimit(this.params.quantidadeChamadasSimultaneas);\n const promises = this.params.registros.map((record, index) => {\n return limit(async () => {\n const row = this.gridData.find(item => item.registro === record);\n this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);\n try {\n const result = await record.apiEnvio(record.objEnvio).toPromise();\n this.updateRowSuccess(row, index);\n return { success: true, record, result };\n } catch (error) {\n this.updateRowError(row, index, this.getErrorMessage(error));\n return { success: false, record, error };\n }\n });\n });\n const results = await Promise.all(promises);\n this.concluido.emit(results);\n return results;\n }\n\n private updateProgressBar(): void {\n const successWidth = (this.successCount / this.totalRecords) * 100;\n const failedWidth = (this.failedCount / this.totalRecords) * 100;\n const pendingWidth = (this.pendingCount / this.totalRecords) * 100;\n const processedWidth = successWidth + failedWidth;\n\n this.processingProgress = `${processedWidth.toFixed(0)}%`;\n this.successProgress = `${successWidth.toFixed(0)}%`;\n this.failedProgress = `${failedWidth.toFixed(0)}%`;\n this.pendingProgress = `${pendingWidth.toFixed(0)}%`;\n }\n\n public updateRowStatus(row: any, status: EnumProcessamentoStatus, message?: string) {\n row.status = status;\n if (message) {\n row.message = message;\n }\n this.sortGridData();\n }\n\n private sortGridData() {\n this.gridData.sort((a: any, b: any) => {\n const statusOrder = {\n [EnumProcessamentoStatus.FAILED]: 1,\n [EnumProcessamentoStatus.PROCESSING]: 2,\n [EnumProcessamentoStatus.SUCCESS]: 3,\n [EnumProcessamentoStatus.PENDING]: 4\n };\n if (this.sortField === 'status') {\n return (statusOrder[a.status as EnumProcessamentoStatus] - statusOrder[b.status as EnumProcessamentoStatus]) * this.sortOrder;\n } else {\n const valA = a[this.sortField] || '';\n const valB = b[this.sortField] || '';\n return valA.localeCompare(valB) * this.sortOrder;\n }\n });\n }\n\n public getData(rowData: any, field: string) {\n if (field === 'status') {\n let text = this.translate.instant(EnumProcessamentoStatusTranslationMap[rowData.status as EnumProcessamentoStatus]);\n if (rowData.message) {\n text += `: ${rowData.message}`;\n }\n return text;\n }\n return rowData[field];\n }\n\n public getClassStatus(rowData: any, field: string) {\n if (field !== 'status') {\n return '';\n }\n return `status ${rowData[field].toLowerCase()}`;\n }\n\n public getGridColumn(): Column[] {\n return [\n {\n field: 'label',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.registro'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n {\n field: 'status',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.status'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n ];\n }\n}\n","\n\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LocaleModule, TooltipModule, TableModule } from '@seniorsistemas/angular-components';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PainelProcessamentoComponent } from './painel-processamento.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { CommonModule } from '@angular/common';\nimport { PanelModule } from 'primeng/panel';\n\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n TooltipModule,\n PrimeTableModule,\n TableModule,\n ButtonModule,\n CommonModule,\n PanelModule,\n\n ],\n declarations: [\n PainelProcessamentoComponent\n ],\n providers: [],\n exports: [\n PainelProcessamentoComponent\n ],\n})\nexport class PainelProcessamentoModule {}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FieldType, FormField, LocalizedDatePipe, Option } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(\n private readonly translate: TranslateService,\n private readonly dataPipe: LocalizedDatePipe\n ) { }\n\n public getAuditCreatedBy(createdBy: string, createdDate: Date): string {\n if (!createdBy || !createdDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(createdDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', {nome: createdBy, data: date[0], hora: date[1]});\n }\n\n public getAuditModifiedBy(modifiedBy: string, modifiedDate: Date): string {\n if (!modifiedBy || !modifiedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(modifiedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', {nome: modifiedBy, data: date[0], hora: date[1]});\n }\n\n public getAuditInactivatedBy(inactivatedBy: string, inactivatedDate: Date): string {\n if (!inactivatedBy || !inactivatedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(inactivatedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', {nome: inactivatedBy, data: date[0], hora: date[1]});\n }\n\n /* usage: [innerHTML]=\"getProp(rowData, 'nome')\" */\n public getProp(obj: any, path: any, type?: string): string {\n let value = path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n if (value || value === 0) {\n if (type) {\n value = this.formatType(value, type);\n }\n return `<span>${value}</span>`;\n }\n return `<span class=\"empty-grid\">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;\n }\n\n public formatType(value: any, type: string): string {\n if (value) {\n if (type === 'date') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item.split(' '));\n return date[0];\n }\n if (type === 'datetime') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item);\n return date;\n }\n if (type === 'decimal') {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n if (type === 'currency') {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n if (type === 'cep') {\n return value.replace(/^(\\d{2})(\\d{3})(\\d{3})/, '$1.$2-$3');\n }\n }\n return value;\n }\n\n /* usage: [ngClass]=\"emptyGridClass(value)\" */\n public emptyGridClass(value: string): string {\n if (!value || value === this.translate.instant('tmsx_fnd.replicacao.list_grid_empty_field')) {\n return 'empty-grid';\n }\n return '';\n }\n\n public infoContent(entity?: any) {\n let text = '';\n if (!entity) {\n return this.translate.instant(\"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\");\n }\n text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);\n if (text) {\n text += '\\n';\n }\n text += this.getAuditModifiedBy(entity.lastModifiedBy, entity.lastModifiedDate);\n return text;\n }\n\n public formatCurrency(value: number): string {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n\n public getAtivoTokenLabel(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label } = formField as any;\n if (type === FieldType.Radio) {\n const labelValue = value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');\n return { id: name, label: `${label}: ${labelValue}` };\n }\n return this.createFilterTokens(formField, value, translate);\n }\n\n public getUtilsProp(obj: any, path: any) {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public createFilterTokens(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label, searchFields, options } = formField as any;\n const labelValue = this.getLabelValueByType(type, value, searchFields, options, translate);\n return { id: name, label: `${label}: ${labelValue}` };\n }\n\n private getLabelValueByType(\n type: FieldType,\n value: any,\n searchFields: FormField[],\n options: Option[],\n translate: TranslateService\n ): string {\n switch (type) {\n case FieldType.Date:\n return this.getDateLabel(value);\n case FieldType.Time:\n return this.getTimeFromDate(value);\n case FieldType.LocalDateTime:\n case FieldType.DateTime:\n return this.getDateTimeFromDate(value);\n case FieldType.Lookup:\n return this.getLookupLabel(value, searchFields);\n case FieldType.Enum:\n return this.getEnumLabel(value, options);\n case FieldType.Boolean:\n return this.getBooleanLabel(value, translate);\n default:\n return value;\n }\n }\n\n private getDateLabel(value: any): string {\n const dateObj = value instanceof Date ? value : new Date(value);\n return !isNaN(dateObj.getTime()) ? dateObj.toLocaleDateString('pt-BR') : value;\n }\n\n private getLookupLabel(value: any, searchFields: FormField[]): string {\n return searchFields.map((field: FormField) => this.getUtilsProp(value, field.name)).join(' - ');\n }\n\n private getEnumLabel(value: any, options: Option[]): string {\n const option = options.find((opt: Option) => opt.value === value);\n return option ? option.label : value;\n }\n\n private getBooleanLabel(value: any, translate: TranslateService): string {\n return value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');\n }\n\n public getTimeFromDate(value: any) {\n let dateObj: Date;\n if (typeof value === 'string' && /^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) {\n const [h, m, s = '00'] = value.split(':');\n dateObj = new Date();\n dateObj.setHours(+h, +m, +s, 0);\n } else {\n dateObj = value instanceof Date ? value : new Date(value);\n }\n if (!isNaN(dateObj.getTime())) {\n return dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n }\n return value;\n }\n\n public getDateTimeFromDate(value: any) {\n const dateObj = value instanceof Date ? value : new Date(value);\n if (!isNaN(dateObj.getTime())) {\n const datePart = dateObj.toLocaleDateString('pt-BR'); // DD/MM/AAAA\n const timePart = dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n return `${datePart} ${timePart}`;\n }\n return value;\n }\n}\n","import { ChangeDetectorRef, Component, Injectable, Input, OnDestroy,\n OnInit, Output, ViewChild, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { LazyLoadEvent, MenuItem, SortMeta } from 'primeng/api';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { GridConfig, FrozenColumn } from './grid.interface';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { HotkeysService, Hotkey } from 'angular2-hotkeys';\nimport { UtilsService } from '../../utils/services/utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-grid-editable-nested',\n templateUrl: './grid-editable-nested.component.html',\n styleUrls: ['./grid-editable-nested.component.scss']\n})\nexport class GridEditableNestedComponent implements OnDestroy, OnInit, OnChanges {\n @Input() public config!: GridConfig;\n @Input() nestedFunction!: (listParams: ListParams, rowData: any) => Promise<void>;\n @Output() openDetails = new EventEmitter<any>();\n @Output() paging = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() save = new EventEmitter<any>();\n @Output() add = new EventEmitter<any>();\n\n @ViewChild(\"table\", { static: false }) public table!: Table;\n public clonedData: { [s: string]: any } = {};\n public gridLoading = true;\n public editing = false;\n public lazy = true;\n public deleteEnabled = false;\n public editEnabled = false;\n public addEnabled = false;\n public detailsEnabled = false;\n public calendarTooltipText = '';\n public currentListParams: ListParams = { page: 0, size: 5, sort: [] };\n\n public gridData: any[] = [];\n public gridColumns: any[] = [];\n public gridTotalRecords = 0;\n public selected: any[] = [];\n\n public nestedGridLoading = false;\n public frozenPosition = 'left';\n public frozenWidth = '200px';\n public frozenColumns: FrozenColumn[] = [];\n\n private readonly ngUnsubscribe = new Subject();\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly utils: UtilsService,\n private readonly hotkeysService: HotkeysService,\n ) {\n this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');\n }\n\n ngOnInit(): void {\n this.setGridData();\n this.setHotkeys();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.config) {\n this.setGridData();\n }\n }\n\n public formatData(column: any, value: string) {\n return value;\n }\n\n private setGridData() {\n if (!this.config) {\n return;\n }\n const { data, size, columns, frozenPosition, frozenColumns, editing, lazy,\n deleteActionsEnabled, editEnabled, addEnabled, editActionsEnabled } = this.config;\n\n this.gridData = data ?? [];\n this.gridTotalRecords = size ?? 0;\n this.gridColumns = columns ?? [];\n this.frozenPosition = frozenPosition ?? 'left';\n this.frozenColumns = frozenColumns ?? [];\n this.frozenWidth = this.calculateFrozenWidth(this.frozenColumns);\n\n this.editing = !!editing;\n this.lazy = !!lazy;\n this.deleteEnabled = !!deleteActionsEnabled;\n this.editEnabled = !!editEnabled;\n this.addEnabled = !!addEnabled;\n this.detailsEnabled = !!editActionsEnabled;\n\n this.changeDetectorRef.detectChanges();\n this.nestedGridLoading = false;\n this.gridLoading = false;\n }\n\n private calculateFrozenWidth(frozenColumns: FrozenColumn[]): string {\n const gutter = 120;\n if (!(frozenColumns?.length)) {\n return '120px';\n }\n const totalWidth = frozenColumns.reduce((sum, col) => sum + gutter + (parseInt(col.width, 10) || 0), 0);\n return `${totalWidth}px`;\n }\n\n\n public getActions(data: any): MenuItem[] {\n return [\n {\n id: 'edit',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),\n disabled: !this.detailsEnabled,\n command: () => {\n this.openRowDetails(data.id);\n },\n },\n { separator: true },\n {\n id: 'delete',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),\n disabled: !this.deleteEnabled,\n command: () => {\n this.onDelete(data.id);\n },\n },\n ];\n }\n\n public updateGridData(event: LazyLoadEvent) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n this.gridLoading = true;\n\n if (this.clonedData && Object.keys(this.clonedData).length) {\n this.clonedData = {};\n this.table.editingRowKeys = {};\n }\n\n this.paging.emit({ page, size });\n }\n\n public async updateNestedGridData(event: LazyLoadEvent, rowData: any) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n const sort = event.multiSortMeta || [];\n\n rowData.nestedGridLoading = true;\n await this.nestedFunction({ page, size, sort }, rowData);\n }\n\n onTab(event: KeyboardEvent) {\n if (event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'p-cellEditor input, p-cellEditor textarea, p-cellEditor [tabindex=\"0\"]'\n )\n ).filter(el => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(event.target as HTMLElement);\n\n let next: HTMLElement | undefined;\n\n if (event.shiftKey) {\n next = focusables[currentIndex - 1] || focusables[focusables.length - 1];\n } else {\n next = focusables[currentIndex + 1] || focusables[0];\n }\n\n if (next) {\n next.focus();\n }\n }\n\n\n public getRowIndex() {\n const page = this.currentListParams.page || 0;\n const size = this.currentListParams.size || 0;\n return page * size;\n }\n\n public getPageSize() {\n return this.currentListParams.size ?? 0;\n }\n\n public openRowDetails(id: string) {\n this.openDetails.emit(id);\n }\n\n public onDelete(id: string) {\n this.delete.emit(id);\n }\n\n public onAdd() {\n this.add.emit();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onEditSave() {\n this.saveAllRows();\n }\n\n public onEditCancel() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n const index = this.gridData.findIndex((row) => row.id === data.id);\n this.gridData[index] = this.clonedData[data.id];\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n }\n\n public initAllRowsEdit() {\n this.gridData.forEach((data) => {\n this.editing = true;\n this.table.initRowEdit(data);\n this.clonedData[data.id] = { ...data };\n });\n }\n\n public saveAllRows() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n this.save.emit(this.gridData);\n }\n\n public formatRowData(field: any) {\n return field;\n }\n\n public filterOptions(event: any) {\n return event;\n }\n\n public getSpanProp(obj: any, path: any, type?: string): string {\n type = type?.toLowerCase();\n const value = this.utils.getProp(obj, path, type);\n if (value === '<span>0</span>' && type === 'decimal') {\n return '<span>0,00</span>';\n }\n if (!obj.tiposDados) {\n return value;\n }\n if ('MONETARIO' === obj.tiposDados[path]) {\n return 'R$ ' + value;\n }\n if ('PERCENTUAL' === obj.tiposDados[path]) {\n return value + ' %';\n }\n return value;\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n 'alt+shift+n',\n () => {\n this.onAdd();\n return false;\n },\n ['INPUT', 'SELECT', 'TEXTAREA']\n )\n );\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GridEditableNestedComponent } from './grid-editable-nested.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\n\nimport {\n ButtonModule,\n LoadingStateModule,\n LocaleModule,\n NumberInputModule,\n TableModule,\n TooltipModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n} from '@seniorsistemas/angular-components';\n\nimport { ToastModule } from 'primeng/toast';\nimport { PanelModule } from 'primeng/panel';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { SharedModule } from 'primeng/api';\nimport { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n ButtonModule,\n TableModule,\n TooltipModule,\n LoadingStateModule,\n NumberInputModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n\n // PrimeNG modules\n ToastModule,\n PrimeTableModule,\n PrimeTooltipModule,\n PanelModule,\n InputTextModule,\n ConfirmDialogModule,\n CalendarModule,\n DropdownModule,\n SharedModule,\n AutoCompleteModule,\n CheckboxModule,\n\n // Angular modules\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n GridEditableNestedComponent,\n ],\n providers: [],\n exports: [\n GridEditableNestedComponent,\n ],\n})\nexport class GridEditableNestedModule {}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class TmsxAngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<TmsxAngularComponentsModule> {\n return {\n ngModule: TmsxAngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","export const fallback: any = {\n \"tmsx_fnd.tmsx_angular_components.add\": \"Adicionar\",\n \"tmsx_fnd.tmsx_angular_components.audit_created_by\": \"Criado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_modified_by\": \"Modificado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_inactivated_by\": \"Inativado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\": \"Sem informações de auditoria\",\n \"tmsx_fnd.tmsx_angular_components.delete\": \"Excluir\",\n \"tmsx_fnd.tmsx_angular_components.edit\": \"Editar\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_description\": \"Você não tem permissão para acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_title\": \"Acesso Negado\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_description\": \"O recurso solicitado não foi encontrado.\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_title\": \"Não Encontrado\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_description\": \"Você não está autorizado a acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_title\": \"Não Autorizado\",\n \"tmsx_fnd.tmsx_angular_components.grid_aninhada\": \"Grid Aninhada\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required\": \"É necessário informar a data\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar\": \"Cancelar\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar\": \"Editar valores\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging\": \"registros encontrados\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar\": \"Salvar alterações\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_false\": \"Não\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_true\": \"Sim\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_empty_field\": \"Não informado\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento\": \"Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_api_error\": \"API de envio não definida\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed\": \"Ocorreu um erro\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending\": \"Pendente\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing\": \"Processando\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_success\": \"Finalizado com sucesso\",\n \"tmsx_fnd.tmsx_angular_components.registro\": \"Registro\",\n \"tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title\": \"Demonstração do Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_table_title\": \"Demonstração da Tabela\",\n \"tmsx_fnd.tmsx_angular_components.showcase_title\": \"Showcase\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_false\": \"Inativo\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_true\": \"Ativo\",\n \"tmsx_fnd.tmsx_angular_components.status\": \"Situação\",\n \"tmsx_fnd.tmsx_angular_components.total_records\": \"{{ value }} registros encontrados\"\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["pLimit","require$$0","PrimeTableModule","TableModule","PrimeTooltipModule"],"mappings":"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"}
@@ -194,10 +194,11 @@ var PainelProcessamentoComponent = /** @class */ (function () {
194
194
  var successWidth = (this.successCount / this.totalRecords) * 100;
195
195
  var failedWidth = (this.failedCount / this.totalRecords) * 100;
196
196
  var pendingWidth = (this.pendingCount / this.totalRecords) * 100;
197
- this.processingProgress = (successWidth + failedWidth) + "%";
198
- this.successProgress = successWidth + "%";
199
- this.failedProgress = failedWidth + "%";
200
- this.pendingProgress = pendingWidth + "%";
197
+ var processedWidth = successWidth + failedWidth;
198
+ this.processingProgress = processedWidth.toFixed(0) + "%";
199
+ this.successProgress = successWidth.toFixed(0) + "%";
200
+ this.failedProgress = failedWidth.toFixed(0) + "%";
201
+ this.pendingProgress = pendingWidth.toFixed(0) + "%";
201
202
  };
202
203
  PainelProcessamentoComponent.prototype.updateRowStatus = function (row, status, message) {
203
204
  row.status = status;