vk-reports
Advanced tools
Comparing version 0.6.14 to 0.6.15
@@ -1,2 +0,2 @@ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common/http"),require("@angular/forms"),require("@angular/common"),require("@angular/router"),require("@angular/material/snack-bar"),require("@angular/material"),require("ngx-spinner"),require("ag-grid-angular"),require("@angular/flex-layout"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/free-solid-svg-icons"),require("@angular/animations"),require("@angular/platform-browser"),require("rxjs"),require("rxjs/operators"),require("@ng-select/ng-select"),require("exceljs/dist/exceljs.min.js"),require("file-saver"),require("pdfmake/build/pdfmake"),require("pdfmake/build/vfs_fonts")):"function"==typeof define&&define.amd?define("vk-reports",["exports","@angular/core","@angular/common/http","@angular/forms","@angular/common","@angular/router","@angular/material/snack-bar","@angular/material","ngx-spinner","ag-grid-angular","@angular/flex-layout","@fortawesome/angular-fontawesome","@fortawesome/free-solid-svg-icons","@angular/animations","@angular/platform-browser","rxjs","rxjs/operators","@ng-select/ng-select","exceljs/dist/exceljs.min.js","file-saver","pdfmake/build/pdfmake","pdfmake/build/vfs_fonts"],e):e((t=t||self)["vk-reports"]={},t.ng.core,t.ng.common.http,t.ng.forms,t.ng.common,t.ng.router,t.ng.material["snack-bar"],t.ng.material,t.ngxSpinner,t.agGridAngular,t.ng["flex-layout"],t.angularFontawesome,t.freeSolidSvgIcons,t.ng.animations,t.ng.platformBrowser,t.rxjs,t.rxjs.operators,t.ngSelect,t.exceljs_min_js,t.fileSaver,t.pdfMake,t.pdfFonts)}(this,function(t,e,i,n,r,o,a,s,l,p,c,d,u,g,f,m,h,b,x,y,v,w){"use strict";v=v&&v.hasOwnProperty("default")?v.default:v,w=w&&w.hasOwnProperty("default")?w.default:w;var C=function(){function t(t){this._sanitizer=t}return t.prototype.ngOnInit=function(){},t.prototype.agInit=function(t){var e=t.value;this.sanitize(e)},t.prototype.refresh=function(t){return this.cellvalue=t.value,!0},t.prototype.sanitize=function(t){return this.cellvalue=this._sanitizer.bypassSecurityTrustHtml(t),this.cellvalue},t.decorators=[{type:e.Component,args:[{selector:"app-customized-cell",template:'<div [innerHTML]="cellvalue"></div>',styles:[""]}]}],t.ctorParameters=function(){return[{type:f.DomSanitizer}]},t}(),D=function(){function t(t){this.http=t,this.filterValues=[],this.getFilteredDataEvent=new e.EventEmitter,this.updatePaginatorDataEvent=new e.EventEmitter,this.loadReportDataEvent=new e.EventEmitter,this.openSubReportDialogEvent=new e.EventEmitter,this.closeSubReportDialogEvent=new e.EventEmitter,this.showErrorSubReportDialogEvent=new e.EventEmitter}return t.prototype.getReports=function(){return this._setAuthHeaders(this.accessToken),this.http.get(this.apiBaseUrl+"get-all",{headers:this.authHeaders})},t.prototype.getConfig=function(t){return this._setAuthHeaders(this.accessToken),this.http.get(this.apiBaseUrl+"get-config?reportId="+t,{headers:this.authHeaders})},t.prototype.getData=function(t,e){if(e){var i=[];this.filterValues.forEach(function(t){t.value&&i.push(t)});var n=encodeURIComponent(JSON.stringify(i));return this.http.get(this.apiBaseUrl+"get-data?reportId="+t+"&filterAsJSON="+n,{headers:this.authHeaders})}return this.http.get(this.apiBaseUrl+"get-data?reportId="+t,{headers:this.authHeaders})},t.prototype.getSubReportConfig=function(t){return this._setAuthHeaders(this.accessToken),this.http.get(this.apiBaseUrl+"get-config?reportId="+t,{headers:this.authHeaders})},t.prototype.getSubReportData=function(t,e){return this.http.get(this.apiBaseUrl+"get-data?reportId="+t+"&filterAsJSON="+e,{headers:this.authHeaders})},t.prototype.initialFilterData=function(t){this.filterValues.push(t)},t.prototype.resetFilterValues=function(){this.filterValues=[]},t.prototype.setFilterData=function(t){this.filterValues.forEach(function(e){e.id===t.id&&(e.value=t.value)})},t.prototype._setAuthHeaders=function(t){var e="Bearer "+t;this.authHeaders=new i.HttpHeaders({"Content-Type":"application/json",Authorization:e})},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:i.HttpClient}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(i.HttpClient))},token:t,providedIn:"root"}),t}(),S=function(){function t(t){this.reportService=t,this.gridReady=!1,this.dataGridReady=!1,this.loading=!0,this.defaultColDef={resizable:!0},this.mainFrameworkComponents={customizedCell:C},this.subReportId=this.reportService.subReportData.id;var e=this.reportService.subReportData.filters;this.filtersAsJSON=encodeURIComponent(JSON.stringify(e))}return t.prototype.ngOnInit=function(){this.getSubReport()},t.prototype.getSubReport=function(){var t=this;this.reportService.getSubReportConfig(this.subReportId).subscribe(function(e){e.success?(t.mainConfig=e.data.mainConfig,t.getSubReportData()):(t.loading=!1,t.errorMessage=e.errorsMessages.join(". "),t.reportService.showErrorSubReportDialogEvent.emit(t.errorMessage),t.reportService.closeSubReportDialogEvent.emit())})},t.prototype.getSubReportData=function(){var t=this;this.reportService.getSubReportData(this.subReportId,this.filtersAsJSON).subscribe(function(e){e.success?(t.mainColumnDefs=e.data.mainHeaders,t.mainRowData=e.data.mainData,t.dataGridReady=!0,t.loading=!1):(t.loading=!1,t.errorMessage=e.errorsMessages.join(". "),t.reportService.closeSubReportDialogEvent.emit(),t.reportService.showErrorSubReportDialogEvent.emit(t.errorMessage))})},t.prototype.onGridReady=function(t){var e=this;this.gridApi=t.api,this.gridColumnApi=t.columnApi,t.api.setRowData(this.mainRowData),this.gridApi.paginationSetPageSize(10),this.gridApi.setDomLayout("autoHeight"),this.gridReady=!0,setTimeout(function(){e.autoSizeAll()},300)},t.prototype.autoSizeAll=function(){var t=[];this.gridColumnApi.getAllColumns().forEach(function(e){t.push(e.colId)}),this.gridColumnApi.autoSizeColumns(t)},t.prototype.closeDialog=function(){this.reportService.closeSubReportDialogEvent.emit()},t.decorators=[{type:e.Component,args:[{selector:"app-sub-report",template:'<ng-container *ngIf="loading; else mainTemplate">\r\n <div class="loading">\r\n <mat-progress-bar color="warn" mode="indeterminate"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n \r\n<ng-template #mainTemplate>\r\n \r\n<div *ngIf="dataGridReady">\r\n <div class="title-header">\r\n <app-title-subtitle *ngIf="mainConfig.showTitle" [title]="mainConfig.title"\r\n [subtitle]="mainConfig.subtitle"></app-title-subtitle>\r\n <button mat-icon-button (click)=" closeDialog()" aria-label="Cerrar reporte">\r\n <mat-icon aria-hidden="false">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class="actions-container">\r\n <app-actions *ngIf="mainConfig.export" [title]="mainConfig.title" [export]="mainConfig.export"\r\n [agGrid]="agGrid"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class="ag-theme-balham" [animateRows]="true" \r\n [rowData]="mainRowData"\r\n [columnDefs]="mainColumnDefs" [defaultColDef]="defaultColDef" \r\n rowSelection="single"\r\n pagination="true" [suppressPaginationPanel]="true" \r\n (gridReady)="onGridReady($event)"\r\n [frameworkComponents]="mainFrameworkComponents">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf="mainConfig.paginator && gridReady" [agGrid]="agGrid"></app-paginator>\r\n\r\n</div>\r\n</ng-template>\r\n',styles:[".button-container{text-align:right;margin-bottom:10px}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;padding:10px}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#fff}"]}]}],t.ctorParameters=function(){return[{type:D}]},t}(),F=function(){function t(t){this.reportService=t}return t.prototype.ngOnInit=function(){},t.prototype.agInit=function(t){this.cellvalue=t.value,this.myStyles={backgroundColor:t.value.backgroundColor,color:t.value.labelColor}},t.prototype.refresh=function(t){return this.cellvalue=t.value,!0},t.prototype.openDialog=function(){this.reportService.openSubReportDialogEvent.emit(this.cellvalue)},t.decorators=[{type:e.Component,args:[{selector:"app-customized-button-cell",template:'\x3c!-- <div><button mat-flat-button [ngStyle]="myStyles" (click)="openDialog()">{{cellvalue.label}}</button></div> --\x3e\r\n\x3c!-- <div><mat-chip [ngStyle]="myStyles" (click)="openDialog()">{{cellvalue.label}}</mat-chip></div> --\x3e\r\n<mat-chip-list class="mat-chip-list-stacked" #chipList>\r\n <mat-chip [ngStyle]="myStyles" (click)="openDialog()">{{cellvalue.label}}</mat-chip>\r\n</mat-chip-list>',styles:[".align{text-align:center;align-content:center}"]}]}],t.ctorParameters=function(){return[{type:D}]},t}(),R=function(){function t(t,e,i,n){var r=this;this.reportService=t,this.snack=e,this.spinner=i,this.dialog=n,this.OpenNewTab=!0,this.reportIdInput=null,this.reportListFlag=!0,this.dataReady=!1,this.reportFlag=!1,this.configLoading=!0,this.dataLoading=!1,this.error=!1,this.showFilters=!1,this.filtersFlag=!1,this.footerGridReady=!1,this.mainGridReady=!1,this.defaultColDef={resizable:!0,minWidth:5},this.gridOptions={rowHeight:34},this.getFilteredDataSubscription=this.reportService.getFilteredDataEvent.subscribe(function(){return r.getReportData(r.idReport,!0)}),this.getReportDataSubscription=this.reportService.loadReportDataEvent.subscribe(function(t){r.idReport=t,r.loadReport(t)}),this.openSubReportDialogSubscription=this.reportService.openSubReportDialogEvent.subscribe(function(t){r.reportService.subReportData=t,r.openSubReport()}),this.closeSubReportDialogSubscription=this.reportService.closeSubReportDialogEvent.subscribe(function(){r.closeSubReport()}),this.showErrorSubReportDialogSubscription=this.reportService.showErrorSubReportDialogEvent.subscribe(function(t){r.openSnackBar(t)})}return t.prototype.ngOnInit=function(){if(this.reportService.apiBaseUrl=this.ApiBaseUrl,this.reportService.openNewTab=this.OpenNewTab,this.reportService.accessToken=this.accessToken,this.reportService.resetFilterValues(),this.spinner.show(),this.footerFrameworkComponents={customizedCell:C},this.mainFrameworkComponents={customizedCell:C,customizedButtonCell:F},null!==this.reportIdInput)return this.idReport=this.reportIdInput,void this.loadReport(this.idReport);this.getAllReports()},t.prototype.getAllReports=function(){var t=this;this.reportService.getReports().subscribe(function(e){e.success?(t.categories=e.data.categories.sort(function(t,e){return t.order-e.order}),t.reports=e.data.reports,t.filteredReports=t.reports,t.dataReady=!0,t.spinner.hide()):(t.spinner.hide(),t.errorMessage=e.errorsMessages.join(". "),t.openSnackBar(t.errorMessage))})},t.prototype.getReportsFromCategory=function(t){return this.filteredReports.filter(function(e){return e.category===t}).sort(function(t,e){return t.order-e.order})},t.prototype.onSearchChange=function(t){this.filteredReports=this.reports.filter(function(e){return e.title.toLowerCase().includes(t.toLowerCase())||e.subtitle.toLowerCase().includes(t.toLowerCase())})},t.prototype.openSnackBar=function(t){this.snack.open(t,"Cerrar",{duration:5e3})},t.prototype.loadReport=function(t){this.getReport(t),this.reportListFlag=!1,this.reportFlag=!0,this.filtersFlag=!1},t.prototype.getReport=function(t){var e=this;this.spinner.show(),this.reportService.getConfig(t).subscribe(function(i){i.success?(e.error=!1,e.mainConfig=i.data.mainConfig,0!==e.mainConfig.filters.length&&(e.filtersFlag=!0),e.footerConfig=i.data.footerConfig,e.configLoading=!1,e.getReportData(t,!1)):(e.configLoading=!1,e.error=!0,e.spinner.hide(),e.errorMessage=i.errorsMessages.join(". "))})},t.prototype.getReportData=function(t,e){var i=this;this.spinner.show(),this.dataLoading=!0,e?this.reportService.getData(t,e).subscribe(function(t){t.success?(i.mainGridReady=!1,i.mainColumnDefs=t.data.mainHeaders,i.footerColumnDefs=t.data.footerHeaders,i.mainRowData=t.data.mainData,i.footerRowData=t.data.footerData,i.reportService.updatePaginatorDataEvent.emit(),i.dataLoading=!1,i.error=!1,i.spinner.hide(),i.showFilter(),i.reportService.resetFilterValues()):(i.dataLoading=!1,i.error=!0,i.spinner.hide(),i.errorMessage=t.errorsMessages.join(". "))}):this.reportService.getData(t,e).subscribe(function(t){t.success?(i.mainColumnDefs=t.data.mainHeaders,i.footerColumnDefs=t.data.footerHeaders,i.mainRowData=t.data.mainData,i.footerRowData=t.data.footerData,i.dataLoading=!1,i.error=!1,i.spinner.hide()):(i.dataLoading=!1,i.error=!0,i.spinner.hide(),i.errorMessage=t.errorsMessages.join(". "))})},t.prototype.onGridReady=function(t){var e=this;this.mainGridApi=t.api,this.mainGridColumnApi=t.columnApi,t.api.setRowData(this.mainRowData),this.mainGridApi.paginationSetPageSize(10),this.mainGridApi.setDomLayout("autoHeight"),this.mainGridReady=!0,this.mainConfig.noHeader&&this.mainGridApi.setHeaderHeight(0),setTimeout(function(){e.autoSizeAll()},300)},t.prototype.autoSizeAll=function(){var t=[];this.mainGridColumnApi.getAllColumns().forEach(function(e){"customizedButtonCell"!=e.userProvidedColDef.cellRenderer&&t.push(e.colId)}),this.mainGridColumnApi.autoSizeColumns(t)},t.prototype.onGridFooterReady=function(t){this.footerGridApi=t.api,this.footerGridColumnApi=t.columnApi,t.api.setRowData(this.footerRowData),this.footerGridApi.paginationSetPageSize(10),this.footerGridApi.setDomLayout("autoHeight"),this.footerGridReady=!0,this.footerConfig.noHeader&&this.footerGridApi.setHeaderHeight(0),this.footerGridApi.sizeColumnsToFit()},t.prototype.showFilter=function(){this.showFilters=!this.showFilters},t.prototype.goBack=function(){this.reportListFlag=!0,this.reportFlag=!1,this.configLoading=!0,this.dataLoading=!1,this.error=!1,this.showFilters=!1,this.footerGridReady=!1,this.mainGridReady=!1,this.dataReady=!1,this.spinner.show(),this.reportService.resetFilterValues(),this.getAllReports()},t.prototype.openSubReport=function(){this.dialogRef=this.dialog.open(S,{width:"100%",height:"90%",panelClass:"full-width-dialog"})},t.prototype.closeSubReport=function(){this.dialogRef.close()},t.decorators=[{type:e.Component,args:[{selector:"reports-lib",template:'\x3c!-- REPORT LIST --\x3e\n<div *ngIf="reportListFlag">\n <div class="report-wrapper">\n <div class="title-container">\n <p class="reports-title">Reportes</p>\n <input class="search" placeholder="Buscar reportes" type="text"\n (input)="onSearchChange($event.target.value)">\n </div>\n <div *ngFor="let category of categories">\n <app-reports-by-category *ngIf="dataReady && (getReportsFromCategory(category.id).length > 0)"\n [category]="category" [reports]="getReportsFromCategory(category.id)"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type="ball-spin-clockwise" size="medium" color="#d32020">\n <p class="spinner-text">Cargando...</p>\n</ngx-spinner>\n\n\x3c!-- REPORT --\x3e\n<div *ngIf="reportFlag">\n <div *ngIf="!configLoading && !dataLoading">\n <div *ngIf="!error else errorPanel">\n <div>\n <div class="title-header">\n <app-title-subtitle *ngIf="mainConfig.showTitle" [title]="mainConfig.title"\n [subtitle]="mainConfig.subtitle"></app-title-subtitle>\n <button *ngIf="!OpenNewTab" mat-icon-button (click)="goBack()" aria-label="Cerrar reporte">\n <mat-icon aria-hidden="false">close</mat-icon>\n </button>\n </div>\n <div class="actions-container">\n <button mat-button class="filter" *ngIf="filtersFlag" (click)="showFilter()">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf="mainConfig.export" [title]="mainConfig.title" [export]="mainConfig.export"\n [agGrid]="agGrid"></app-actions>\n </div>\n <div *ngIf="filtersFlag">\n <app-filters [@isFiltersVisible]="showFilters" [filters]="mainConfig.filters" [idReport]="idReport"></app-filters>\n </div>\n </div>\n <div class="table-container">\n <ag-grid-angular #agGrid class="ag-theme-balham" [animateRows]="true" [rowData]="mainRowData"\n [columnDefs]="mainColumnDefs" [defaultColDef]="defaultColDef" rowSelection="single"\n pagination="true" [suppressPaginationPanel]="true" (gridReady)="onGridReady($event)"\n [frameworkComponents]="mainFrameworkComponents" [gridOptions]="gridOptions">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf="mainConfig.paginator && mainGridReady" [agGrid]="agGrid"></app-paginator>\n </div>\n <br>\n \x3c!-- <div>\n <app-title-subtitle *ngIf="footerConfig.showTitle" [title]="footerConfig.title"\n [subtitle]="footerConfig.subtitle"></app-title-subtitle>\n\n <app-actions *ngIf="footerConfig.export" [title]="footerConfig.title" [export]="footerConfig.export"\n [agGrid]="agGridFooter"></app-actions>\n\n <button *ngIf="footerConfig.filters" (click)="showFilter()"> <fa-icon class="icon" [icon]="[\'fas\', \'filter\']"></fa-icon> Filtros</button>\n <div *ngIf="footerConfig.filters">\n <app-filters *ngIf="showFilters" [filters]="footerConfig.filters" [idReport]="idReport"></app-filters>\n </div>\n \n <app-paginator *ngIf="footerConfig.paginator && footerGridReady" [agGrid]="agGridFooter">\n </app-paginator>\n\n </div> --\x3e\n\n <ag-grid-angular #agGridFooter class="ag-theme-balham" [animateRows]="true" [rowData]="footerRowData"\n [columnDefs]="footerColumnDefs" rowSelection="single" pagination="true" [suppressPaginationPanel]="true"\n (gridReady)="onGridFooterReady($event)" [frameworkComponents]="footerFrameworkComponents">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class="error-panel">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf="!OpenNewTab" mat-raised-button class="back-button" (click)="goBack()">Volver</button>\n </div>\n </ng-template>\n\n</div>',animations:[g.trigger("isFiltersVisible",[g.state("true",g.style({opacity:1,transform:"scaleY(1.0)",transformOrigin:"top center",position:"inherit"})),g.state("false",g.style({opacity:0,transform:"scaleY(0.0)",transformOrigin:"top center",position:"absolute"})),g.transition("1 => 0",g.animate("300ms ease-in-out")),g.transition("0 => 1",g.animate("300ms ease-in-out"))])],styles:[".report-wrapper{width:100%;background-color:#f5f5f5;padding:10px;box-sizing:border-box;font-family:Roboto,sans-serif;height:100vh}.title-container{display:flex;flex-direction:column;padding:10px;margin:10px 0;background-color:#d32020}.title-container .reports-title{margin:0 0 10px;color:#fff;font-size:24px;font-weight:500}.title-container .search{width:100%}.back-button{margin-top:10px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.spinner-text{color:#fff;font-family:Arial,Helvetica,sans-serif}.icon{font-size:23px}.filter-button{margin-top:20px;margin-bottom:20px;margin-right:20px;text-align:right}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;background:#d32020;padding:10px;color:#fff}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.actions-container .filter{color:#fff}.error-panel{text-align:center}label{font-size:14px;color:#888}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}.table-container ::ng-deep .ag-theme-balham{font-family:Roboto,sans-serif}.table-container ::ng-deep .ag-theme-balham .ag-header{font-family:Roboto,sans-serif;font-weight:500;color:#333}@media (min-width:425px){.title-container{flex-direction:row;align-items:center;justify-content:space-between}.title-container .reports-title{margin:0}.title-container .search{font-size:14px;max-width:200px}}@media (min-width:768px){.formRow{margin-bottom:15px}.actions-container{justify-content:flex-end}}"]}]}],t.ctorParameters=function(){return[{type:D},{type:s.MatSnackBar},{type:l.NgxSpinnerService},{type:s.MatDialog}]},t.propDecorators={ApiBaseUrl:[{type:e.Input}],accessToken:[{type:e.Input}],OpenNewTab:[{type:e.Input}],reportIdInput:[{type:e.Input}],agGrid:[{type:e.ViewChild,args:["agGrid",{static:!1}]}],agGridFooter:[{type:e.ViewChild,args:["agGridFooter",{static:!1}]}]},t}(),k=function(){function t(t){this.reportService=t,this.invalidDate=!1}return t.prototype.ngOnInit=function(){if(this.dateFilter.data.defaultValue){var t=new Date(this.dateFilter.data.defaultValue+" 00:00:00");this.filterData={id:this.dateFilter.id,value:t}}else this.filterData={id:this.dateFilter.id};this.reportService.initialFilterData(this.filterData)},t.prototype.onDateChange=function(t){var e=new Date(t.target.value+" 00:00:00"),i=new Date(this.dateFilter.data.maxValue);e>new Date(this.dateFilter.data.minValue)&&e<i?(this.invalidDate=!1,this.filterData.value=e.toString(),this.reportService.setFilterData(this.filterData)):this.invalidDate=!0},t.decorators=[{type:e.Component,args:[{selector:"app-date-filter",template:' <div class="formRow">\n <label>{{ dateFilter.label }}</label>\n <input #date type="date" [value]="dateFilter.data.defaultValue"\n [min]="dateFilter.data.minValue" [max]="dateFilter.data.maxValue"\n (input)="onDateChange($event)">\n <small *ngIf="invalidDate"> Fecha inválida</small>\n </div> \n ',styles:["input[type=date]{font-family:Roboto,Helvetica,sans-serif;width:100%;margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}small{color:red}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={dateFilter:[{type:e.Input}]},t}(),I=function(){function t(t){this.reportService=t,this.multiple=!1,this.selectedFilters=[]}return t.prototype.ngOnInit=function(){3===this.dropdownFilter.type&&(this.multiple=!0),this.filterData={id:this.dropdownFilter.id},this.reportService.initialFilterData(this.filterData)},t.prototype.onSelectChange=function(t){var e=[];void 0!==t&&(this.multiple?(t.forEach(function(t){e.push(t.key)}),this.filterData.value=e):this.filterData.value=t.key,this.reportService.setFilterData(this.filterData))},t.decorators=[{type:e.Component,args:[{selector:"app-dropdown-filter",template:'<div class="formRow">\n <label>{{ dropdownFilter.label }}</label>\n <ng-select #select class="select"\n [multiple]="multiple"\n [items]="dropdownFilter.data.dataSource"\n [bindLabel]="dropdownFilter.data.valueName"\n [bindValue]="dropdownFilter.data.keyName"\n [placeholder]="dropdownFilter.data.placeholder"\n [closeOnSelect]="!multiple"\n [(ngModel)]="selectedFilters"\n (change)="onSelectChange($event)">\n <ng-template ng-option-tmp let-item="item" \n let-item$="item$" let-index="index">\n <input id="item-{{index}}" type="checkbox"\n [ngModel]="item$.selected"/> \n {{item.description}}\n </ng-template>\n <ng-template ng-multi-label-tmp let-items="items" >\n <div class="ng-value" *ngFor="let item of items | slice:0:1">\n <span class="ng-value-label"> {{item.description}}</span>\n </div>\n <div class="ng-value" *ngIf="items.length > 1">\n <span class="ng-value-label">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>\n',styles:[".select{width:100%;margin-top:7px;min-width:175px}::ng-deep .ng-select .ng-select-container{background-color:#fff;border:.5px solid #707070;border-radius:2px;min-height:35px;transition:.3s ease-in-out}::ng-deep .ng-select .ng-select-container:focus,::ng-deep .ng-select .ng-select-container:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}::ng-deep .ng-select.ng-select-single .ng-select-container{height:35px}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:8px;font-size:15px}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={dropdownFilter:[{type:e.Input}]},t}(),P=function(){function t(t){this.reportService=t,this.invalidNumber=!1}return t.prototype.ngOnInit=function(){if(this.numericFilter.data.defaultValue){var t=this.numericFilter.data.defaultValue.toString();this.filterData={id:this.numericFilter.id,value:t}}else this.filterData={id:this.numericFilter.id};this.reportService.initialFilterData(this.filterData)},t.prototype.onNumberChange=function(t){var e=t.target.value,i=String(e);e>this.numericFilter.data.minValue&&e<this.numericFilter.data.maxValue&&i.length<this.numericFilter.data.maxLength?(this.invalidNumber=!1,this.filterData.value=i,this.reportService.setFilterData(this.filterData)):this.invalidNumber=!0},t.decorators=[{type:e.Component,args:[{selector:"app-numeric-filter",template:'<div class="formRow">\n <label>{{ numericFilter.label }} </label>\n <input type="number" \n [min]="numericFilter.data.minValue" \n [max]="numericFilter.data.maxValue"\n [attr.maxlength]="numericFilter.data.maxLength" \n (keyup)="onNumberChange($event)" \n [placeholder]="numericFilter.data.placeholder"\n [value]="numericFilter.data.defaultValue">\n \n <small *ngIf="invalidNumber"> Campo Inválido</small>\n\n</div> \n \n',styles:["input{margin-top:7px;width:100%;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={numericFilter:[{type:e.Input}]},t}(),z=function(){function t(t){this.reportService=t}return t.prototype.ngOnInit=function(){this.filterData={id:this.textFilter.id},this.reportService.initialFilterData(this.filterData)},t.prototype.onTextChange=function(t){this.filterData.value=t,this.reportService.setFilterData(this.filterData)},t.decorators=[{type:e.Component,args:[{selector:"app-text-filter",template:'<div class="formRow">\n <label>{{ textFilter.label }} </label>\n <input type="text" [attr.maxlength]="textFilter.data.maxLength" [placeholder]="textFilter.data.placeholder"\n (input)="onTextChange($event.target.value)">\n</div>',styles:["input{margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={textFilter:[{type:e.Input}]},t}(),G=function(){function t(t){this.http=t}return t.prototype.getAllFilters=function(t){return this.http.get("../../../assets/autocomplete.json").pipe(h.map(function(t){return t}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:i.HttpClient}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(i.HttpClient))},token:t,providedIn:"root"}),t}(),M=function(){function t(t,e){this.autocompleteService=t,this.reportService=e,this.dataReady=!1,this.multiple=!1,this.selectedFilters=[],this.autocompleteFilterData=[],this.searchTerms=new m.Subject}return t.prototype.ngOnInit=function(){this.filterData={id:this.autocompleteFilterConfig.id},this.reportService.initialFilterData(this.filterData),7===this.autocompleteFilterConfig.type&&(this.multiple=!0),this.initGetFilteredData()},t.prototype.initGetFilteredData=function(){var t=this;this.searchTerms.pipe(h.startWith(""),h.debounceTime(400),h.distinctUntilChanged(),h.switchMap(function(e){return t.autocompleteService.getAllFilters(e)})).subscribe(function(e){return t.filteredDataHandler(e)})},t.prototype.filteredDataHandler=function(t){this.autocompleteFilterData=t,this.dataReady=!0},t.prototype.search=function(t){this.searchTerms.next(t)},t.prototype.onSelectChange=function(t){var e=[];void 0!==t&&(this.multiple?(t.forEach(function(t){e.push(t.key.toString())}),this.filterData.value=e):this.filterData.value=t.key.toString(),this.reportService.setFilterData(this.filterData))},t.decorators=[{type:e.Component,args:[{selector:"app-autocomplete-filter",template:'<div class="formRow">\n <label>{{ autocompleteFilterConfig.label }}</label>\n <ng-select class="autocomplete"\n [disabled] ="!dataReady"\n [items]="autocompleteFilterData.dataSource"\n [bindLabel]="autocompleteFilterData.valueName"\n [bindValue]="autocompleteFilterData.keyName"\n (search)="search($event)"\n [multiple]="multiple"\n [closeOnSelect]="!multiple"\n [(ngModel)]="selectedFilters"\n (change)="onSelectChange($event)">\n\n <ng-template ng-option-tmp let-item="item" let-item$="item$" let-index="index">\n <input id="item-{{index}}" type="checkbox"\n [ngModel]="item$.selected"/> {{item.description}}\n </ng-template>\n\n <ng-template ng-multi-label-tmp let-items="items" >\n <div class="ng-value" *ngFor="let item of items | slice:0:1">\n <span class="ng-value-label"> {{item.description}}</span>\n </div>\n <div class="ng-value" *ngIf="items.length > 1">\n <span class="ng-value-label">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>',styles:[".autocomplete{font-size:15px;margin-top:7px;min-width:175px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;padding:0 10px;font-size:15px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#333;color:#fff}::ng-deep ng-select ::ng-deep .ng-dropdown-panel.ng-select-bottom{border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-color:#000;transition:.3s ease-in-out}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input{top:8px!important}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input input{padding:0;height:auto}::ng-deep .ng-select.ng-select-opened>.ng-select-container{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:G},{type:D}]},t.propDecorators={autocompleteFilterConfig:[{type:e.Input}]},t}(),E=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[k,I,P,z,M],exports:[k,I,P,z,M],imports:[r.CommonModule,n.FormsModule,o.RouterModule,b.NgSelectModule]}]}],t}(),A=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[],exports:[],imports:[r.CommonModule,n.FormsModule,E],providers:[],bootstrap:[]}]}],t}(),T=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[],exports:[],imports:[r.CommonModule,n.FormsModule],providers:[],bootstrap:[]}]}],t}(),j=function(){function t(t){this.reportService=t,this.openNewTab=this.reportService.openNewTab}return t.prototype.ngOnInit=function(){},t.prototype.goToReport=function(t){this.openNewTab?window.open(window.location.href+"/"+t):this.reportService.loadReportDataEvent.emit(t)},t.decorators=[{type:e.Component,args:[{selector:"app-reports-by-category",template:'<p class="category-title">{{category.name}}</p>\n<div *ngFor="let report of reports">\n <button class="single-report" (click)="goToReport(report.id)">\n <span>{{ report.title }}</span>\n <mat-icon>chevron_right</mat-icon>\n </button>\n</div>',styles:[".category-title{color:#000;font-weight:500;font-size:16px;line-height:2;text-align:left;width:100%;border-bottom:1px solid #a9a9a9;margin-bottom:10px}.single-report{display:flex;flex-flow:row;align-items:center;justify-content:space-between;background-color:#fff;margin-bottom:6px;border-radius:3px;border:1px solid #d9d9d9;transition:.3s ease-in-out}button{font-size:13px;text-decoration:none;padding:7px;display:block;width:100%;transition:.3s ease-in-out;z-index:2;border:none;background:0 0;text-align:left;cursor:pointer}button:focus,button:hover{transition:.3s ease-in-out;color:#d32020}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={category:[{type:e.Input}],reports:[{type:e.Input}]},t}(),L=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"app-title-subtitle",template:'<h1>{{title}}</h1>\n<h2 *ngIf="subtitle">{{subtitle}}</h2>\n',styles:["h1{font-size:1.2em;font-weight:400;margin:0 0 5px}h2{font-size:.8em;line-height:1.5;font-weight:400;margin:0}@media (min-width:768px){h1{font-size:1.4em}h2{font-size:.9em}}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={title:[{type:e.Input}],subtitle:[{type:e.Input}]},t}(),O=function(){function t(t){this.datePipe=t}return t.prototype.transformDate=function(){var t=new Date;return this.datePipe.transform(t,"dd/MM/yyyy HH:mm")},t.prototype.generateExcel=function(t,e,i){var n=new x.Workbook,r=n.addWorksheet("VK Report"),o=r.addRow([i]);o.font={name:"Calibri",family:4,size:16,color:{argb:"F8F6F6"}},o.alignment={horizontal:"left",vertical:"middle"},o.getCell(1).fill={type:"pattern",pattern:"solid",fgColor:{argb:"AC1717"}},o.getCell(1).border={top:{style:"medium"},left:{style:"medium"},bottom:{style:"medium"},right:{style:"medium"}},r.mergeCells("A1:J2");var a=this.transformDate()+" - Cantidad de registros: "+e.length,s=r.addRow([a]);s.font={name:"Calibri",family:4,size:14},s.alignment={horizontal:"left",vertical:"middle"},r.mergeCells("A3:J4"),r.addRow([]);var l=r.addRow(t);l.font={name:"Calibri",family:4,size:11,color:{argb:"F8F6F6"}},l.eachCell(function(t,e){t.fill={type:"pattern",pattern:"solid",fgColor:{argb:"AC1717"},bgColor:{}},t.border={top:{style:"thin"},left:{style:"thin"},bottom:{style:"thin"},right:{style:"thin"}}}),e[0].toString().split(",").forEach(function(e,i){var n=Math.max(e.length,t[i].length);r.getColumn(i+1).width=1.6*n}),r.addRows(e),n.xlsx.writeBuffer().then(function(t){var e=new Blob([t],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});y.saveAs(e,i)})},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:r.DatePipe}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(r.DatePipe))},token:t,providedIn:"root"}),t}();v.vfs=w.pdfMake.vfs;var H=function(){function t(t){this.excelService=t,this.csv=!1,this.pdf=!1,this.excel=!1}return t.prototype.ngOnInit=function(){this.csv=this.export.csv,this.pdf=this.export.pdf,this.excel=this.export.excel},t.prototype.exportCSV=function(){var t={columnKeys:[]};this.agGrid.columnDefs.forEach(function(e){"customizedButtonCell"!=e.cellRenderer&&t.columnKeys.push(e.field)}),this.agGrid.api.exportDataAsCsv(t)},t.prototype.generatePdf=function(){this.getColumns(!0),this.getData(!0);var t={pageOrientation:"landscape",content:[{layout:"lightHorizontalLines",table:{headerRows:1,widths:this.widths,body:this.body}}]};v.createPdf(t).open()},t.prototype.generateExcel=function(){this.getColumns(!1),this.getData(!1),this.excelService.generateExcel(this.columns,this.dataExcel,this.title)},t.prototype.getColumns=function(t){var e=this;this.keysCustomizedCell=[],this.keysSubReportButton=[],this.columns=[],this.widths=[],this.body=[],this.agGrid.columnApi.getAllColumns().forEach(function(i){if("customizedCell"===i.getColDef().cellRenderer&&e.keysCustomizedCell.push(i.getColDef().field),"customizedButtonCell"!==i.getColDef().cellRenderer){var n=i.getColDef().headerName;t?(e.columns.push(n),e.widths.push("auto")):e.columns.push(n)}else e.keysSubReportButton.push(i.getColDef().field)})},t.prototype.getData=function(t){var e=this;this.dataExcel=[],this.body=[];var i=this.agGrid.rowData;t&&this.body.push(this.columns),i.forEach(function(i){var n=[];Object.keys(i).map(function(t){(i[t],-1===e.keysSubReportButton.indexOf(t))&&(-1!=e.keysCustomizedCell.indexOf(t)&&(-1!=i[t].indexOf("<")?(i[t].split("<").concat().forEach(function(e){-1!=e.indexOf(">")&&""!=e.split(">")[1]&&(i[t]=e.split(">")[1])}),n.push(i[t])):n.push(i[t])))});t?e.body.push(n):e.dataExcel.push(n)})},t.decorators=[{type:e.Component,args:[{selector:"app-actions",template:'\x3c!-- <mat-menu #saveAsMenu="matMenu"> --\x3e\r\n <button *ngIf="csv" class="menu" mat-button (click)=" exportCSV()"><fa-icon class="icon" [icon]="[\'fas\', \'file-csv\']"></fa-icon> CSV</button>\r\n <button *ngIf="pdf" class="menu" mat-button (click)="generatePdf()" ><fa-icon class="icon" [icon]="[\'fas\', \'file-pdf\']"></fa-icon> PDF</button>\r\n <button *ngIf="excel" class="menu" mat-button (click)="generateExcel()" ><fa-icon class="icon" [icon]="[\'fas\', \'file-excel\']"></fa-icon> EXCEL</button>\r\n\x3c!-- </mat-menu>\r\n<button mat-button class="menu" [matMenuTriggerFor]="saveAsMenu">\r\n <mat-icon>save_alt</mat-icon> Guardar como\r\n</button> --\x3e',styles:[".menu{color:#fff}.icon{font-size:20px}"]}]}],t.ctorParameters=function(){return[{type:O}]},t.propDecorators={title:[{type:e.Input}],agGrid:[{type:e.Input}],export:[{type:e.Input}]},t}(),B=function(){function t(t){this.reportService=t}return t.prototype.ngOnInit=function(){this.filters!==[]&&this.filters[0].order&&(this.filters=this.filters.sort(function(t,e){return t.order-e.order}))},t.prototype.getFilteredData=function(){this.reportService.getFilteredDataEvent.emit()},t.decorators=[{type:e.Component,args:[{selector:"app-filters",template:'<div class="filter-container">\n <p class="filter-title">Filtrar reporte</p>\n <div fxLayout="column" fxLayout.gt-xs="row wrap" fxLayoutGap="15px"\n fxLayoutAlign="start start">\n <div class="filter" fxFlex="100" fxFlex.gt-xs="0 1 calc(25% - 15px)" fxFlex.gt-sm="0 1 calc(20% - 15px)" *ngFor="let filter of filters; let i = index">\n <app-date-filter *ngIf="(filter.order === (i + 1)) && (filter.type === 1)" [dateFilter]="filter">\n </app-date-filter>\n\n <app-dropdown-filter *ngIf="(filter.order === (i + 1)) && ((filter.type === 2) || (filter.type === 3))"\n [dropdownFilter]="filter">\n </app-dropdown-filter>\n\n <app-numeric-filter *ngIf="(filter.order === (i + 1)) && (filter.type === 4)" [numericFilter]="filter">\n </app-numeric-filter>\n\n <app-text-filter *ngIf="(filter.order === (i + 1)) && (filter.type === 5)" [textFilter]="filter">\n </app-text-filter>\n\n <app-autocomplete-filter *ngIf="(filter.order === (i + 1)) && ((filter.type === 6) || (filter.type === 7))"\n [autocompleteFilterConfig]="filter">\n </app-autocomplete-filter>\n </div>\n </div>\n <button mat-raised-button class="filter-button" (click)="getFilteredData()">Aplicar Filtros</button>\n</div>',styles:[".filter-title{margin:0 0 10px;padding:5px 0;font-weight:500;border-bottom:1px solid #333}.filter-button{margin-top:20px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.filter-container{padding:10px}.filter{width:100%}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={idReport:[{type:e.Input}],filters:[{type:e.Input}]},t}(),N=function(){function t(t){var e=this;this.reportService=t,this.updatePaginatorDataEvent=this.reportService.updatePaginatorDataEvent.subscribe(function(){return e.initPaginator()})}return t.prototype.ngOnInit=function(){this.initPaginator()},t.prototype.initPaginator=function(){this.getcurrentPage(),this.getTotalPages(),this.getPages()},t.prototype.onBtFirst=function(){this.agGrid.api.paginationGoToFirstPage(),this.getcurrentPage()},t.prototype.onBtLast=function(){this.agGrid.api.paginationGoToLastPage(),this.getcurrentPage(),this.getPages()},t.prototype.onBtNext=function(){this.agGrid.api.paginationGoToNextPage(),this.getcurrentPage()},t.prototype.onBtPrevious=function(){this.agGrid.api.paginationGoToPreviousPage(),this.getcurrentPage()},t.prototype.showRows=function(t){this.agGrid.api.paginationSetPageSize(t),this.getTotalPages(),this.getPages()},t.prototype.getcurrentPage=function(){this.currentPage=this.agGrid.api.paginationGetCurrentPage()+1},t.prototype.getTotalPages=function(){this.totalPages=this.agGrid.api.paginationGetTotalPages()},t.prototype.getPages=function(){this.pages=this.agGrid.api.paginationGetPageSize()},t.prototype.goToPage=function(t){var e=t.target.value;this.agGrid.api.paginationGoToPage(e-1),this.getcurrentPage()},t.prototype.showRow=function(t){var e=t.target.value;this.agGrid.api.paginationSetPageSize(e),this.getTotalPages(),this.getPages()},t.decorators=[{type:e.Component,args:[{selector:"app-paginator",template:'<div class="paginator-container">\n <div class="paginator-buttons">\n <button (click)="onBtFirst()" aria-label="Primera página" mat-icon-button>\n <mat-icon>first_page</mat-icon>\n </button>\n <button (click)="onBtPrevious()" aria-label="Página anterior" mat-icon-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <input (change)="goToPage($event)" size="4" type="number" [value]="currentPage">\n\n <button (click)="onBtNext()" aria-label="Página siguiente" mat-icon-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button (click)="onBtLast()" aria-label="Última página" mat-icon-button>\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n <p class="paginator-text">Página {{ currentPage }} de {{totalPages}}</p>\n <div class="items-per-page">\n <input (change)="showRow($event)" min="1" max="100" maxlength="3" #rows type="number" [value]="pages" name="itemsPerPage"><label for="itemsPerPage">registros por página</label> \n </div>\n</div>\n\n\n\x3c!-- <button (click)="showRows(rows.value)" >Mostrar</button> --\x3e',styles:[".paginator-container{background-color:#fff;border-radius:5px;padding:10px 0;max-width:300px;margin:10px auto 0;box-shadow:3px 3px 15px 0 rgba(0,0,0,.15)}.paginator-container .paginator-buttons{display:flex;flex-direction:row;align-items:center;justify-content:center}.paginator-container .paginator-buttons input{max-width:40px;text-align:center}.paginator-container .paginator-text{font-size:12px;margin:5px 0;text-align:center}.paginator-container .items-per-page{display:flex;flex-direction:row;align-items:center;justify-content:center;border-top:1px solid #000;margin:0 20px;padding-top:10px}.paginator-container .items-per-page input{max-width:60px;text-align:center}.paginator-container .items-per-page label{margin-left:5px;font-size:12px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}input[type=number]{-moz-appearance:textfield}.icon{font-size:30px}@media (min-width:768px){.paginator-container{display:flex;flex-direction:row;align-items:center;justify-items:center;max-width:550px}.paginator-container .paginator-text{margin-left:5px}.paginator-container .items-per-page{border-top:0;border-left:1px solid #000;padding-top:0;padding-left:10px}}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={agGrid:[{type:e.Input}]},t}(),V=function(){function t(t){t.addIcons(u.faFileCsv,u.faFileExcel,u.faFilePdf),t.addIconPacks(u.fas)}return t.decorators=[{type:e.NgModule,args:[{declarations:[R,j,C,F,L,H,B,N,S],exports:[R,j,C,F,L,H,B,N,S],entryComponents:[S,L],imports:[r.CommonModule,n.FormsModule,s.MatIconModule,l.NgxSpinnerModule,i.HttpClientModule,A,T,a.MatSnackBarModule,E,d.FontAwesomeModule,p.AgGridModule.withComponents([C,F]),s.MatButtonModule,c.FlexLayoutModule,o.RouterModule,s.MatDialogModule,s.MatProgressBarModule,s.MatChipsModule],providers:[r.DatePipe]}]}],t.ctorParameters=function(){return[{type:d.FaIconLibrary}]},t}(),q=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{imports:[V],exports:[V]}]}],t}();t.VKReportsModule=q,t.ɵa=V,t.ɵb=R,t.ɵc=D,t.ɵd=j,t.ɵe=C,t.ɵf=F,t.ɵg=L,t.ɵh=H,t.ɵi=O,t.ɵj=B,t.ɵk=N,t.ɵl=S,t.ɵm=A,t.ɵn=E,t.ɵo=k,t.ɵp=I,t.ɵq=P,t.ɵr=z,t.ɵs=M,t.ɵt=G,t.ɵu=T,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common/http"),require("@angular/forms"),require("@angular/common"),require("@angular/router"),require("@angular/material/snack-bar"),require("@angular/material"),require("ngx-spinner"),require("ag-grid-angular"),require("@angular/flex-layout"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/free-solid-svg-icons"),require("@angular/animations"),require("@angular/platform-browser"),require("rxjs"),require("rxjs/operators"),require("@ng-select/ng-select"),require("exceljs/dist/exceljs.min.js"),require("file-saver"),require("pdfmake/build/pdfmake"),require("pdfmake/build/vfs_fonts")):"function"==typeof define&&define.amd?define("vk-reports",["exports","@angular/core","@angular/common/http","@angular/forms","@angular/common","@angular/router","@angular/material/snack-bar","@angular/material","ngx-spinner","ag-grid-angular","@angular/flex-layout","@fortawesome/angular-fontawesome","@fortawesome/free-solid-svg-icons","@angular/animations","@angular/platform-browser","rxjs","rxjs/operators","@ng-select/ng-select","exceljs/dist/exceljs.min.js","file-saver","pdfmake/build/pdfmake","pdfmake/build/vfs_fonts"],e):e((t=t||self)["vk-reports"]={},t.ng.core,t.ng.common.http,t.ng.forms,t.ng.common,t.ng.router,t.ng.material["snack-bar"],t.ng.material,t.ngxSpinner,t.agGridAngular,t.ng["flex-layout"],t.angularFontawesome,t.freeSolidSvgIcons,t.ng.animations,t.ng.platformBrowser,t.rxjs,t.rxjs.operators,t.ngSelect,t.exceljs_min_js,t.fileSaver,t.pdfMake,t.pdfFonts)}(this,function(t,e,i,n,o,r,a,s,l,p,c,d,u,g,f,m,h,b,y,x,v,w){"use strict";v=v&&v.hasOwnProperty("default")?v.default:v,w=w&&w.hasOwnProperty("default")?w.default:w;var C=function(){function t(t){this._sanitizer=t}return t.prototype.ngOnInit=function(){},t.prototype.agInit=function(t){var e=t.value;this.sanitize(e)},t.prototype.refresh=function(t){return this.cellvalue=t.value,!0},t.prototype.sanitize=function(t){return this.cellvalue=this._sanitizer.bypassSecurityTrustHtml(t),this.cellvalue},t.decorators=[{type:e.Component,args:[{selector:"app-customized-cell",template:'<div [innerHTML]="cellvalue"></div>',styles:[""]}]}],t.ctorParameters=function(){return[{type:f.DomSanitizer}]},t}(),D=function(){function t(t){this.http=t,this.filterValues=[],this.getFilteredDataEvent=new e.EventEmitter,this.updatePaginatorDataEvent=new e.EventEmitter,this.loadReportDataEvent=new e.EventEmitter,this.openSubReportDialogEvent=new e.EventEmitter,this.closeSubReportDialogEvent=new e.EventEmitter,this.showErrorSubReportDialogEvent=new e.EventEmitter}return t.prototype.getReports=function(){return this._setAuthHeaders(this.accessToken),this.http.get(this.apiBaseUrl+"get-all",{headers:this.authHeaders})},t.prototype.getConfig=function(t){return this._setAuthHeaders(this.accessToken),this.http.get(this.apiBaseUrl+"get-config?reportId="+t,{headers:this.authHeaders})},t.prototype.getData=function(t,e){if(e){var i=[];this.filterValues.forEach(function(t){t.value&&i.push(t)});var n=encodeURIComponent(JSON.stringify(i));return this.http.get(this.apiBaseUrl+"get-data?reportId="+t+"&filterAsJSON="+n,{headers:this.authHeaders})}return this.http.get(this.apiBaseUrl+"get-data?reportId="+t,{headers:this.authHeaders})},t.prototype.getSubReportConfig=function(t){return this._setAuthHeaders(this.accessToken),this.http.get(this.apiBaseUrl+"get-config?reportId="+t,{headers:this.authHeaders})},t.prototype.getSubReportData=function(t,e){return this.http.get(this.apiBaseUrl+"get-data?reportId="+t+"&filterAsJSON="+e,{headers:this.authHeaders})},t.prototype.initialFilterData=function(t){this.filterValues.push(t)},t.prototype.resetFilterValues=function(){this.filterValues=[]},t.prototype.setFilterData=function(t){this.filterValues.forEach(function(e){e.id===t.id&&(e.value=t.value)})},t.prototype._setAuthHeaders=function(t){var e="Bearer "+t;this.authHeaders=new i.HttpHeaders({"Content-Type":"application/json",Authorization:e})},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:i.HttpClient}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(i.HttpClient))},token:t,providedIn:"root"}),t}(),R=function(){function t(t){this.reportService=t,this.gridReady=!1,this.footerGridReady=!1,this.dataGridReady=!1,this.loading=!0,this.defaultColDef={resizable:!0},this.mainFrameworkComponents={customizedCell:C},this.footerFrameworkComponents={customizedCell:C},this.subReportId=this.reportService.subReportData.id;var e=this.reportService.subReportData.filters;this.filtersAsJSON=encodeURIComponent(JSON.stringify(e))}return t.prototype.ngOnInit=function(){this.getSubReport()},t.prototype.getSubReport=function(){var t=this;this.reportService.getSubReportConfig(this.subReportId).subscribe(function(e){e.success?(t.mainConfig=e.data.mainConfig,t.getSubReportData()):(t.loading=!1,t.errorMessage=e.errorsMessages.join(". "),t.reportService.showErrorSubReportDialogEvent.emit(t.errorMessage),t.reportService.closeSubReportDialogEvent.emit())})},t.prototype.getSubReportData=function(){var t=this;this.reportService.getSubReportData(this.subReportId,this.filtersAsJSON).subscribe(function(e){e.success?(t.mainColumnDefs=e.data.mainHeaders,t.mainRowData=e.data.mainData,t.footerColumnDefs=e.data.footerHeaders,t.footerRowData=e.data.footerData,t.dataGridReady=!0,t.loading=!1):(t.loading=!1,t.errorMessage=e.errorsMessages.join(". "),t.reportService.closeSubReportDialogEvent.emit(),t.reportService.showErrorSubReportDialogEvent.emit(t.errorMessage))})},t.prototype.onGridReady=function(t){var e=this;this.gridApi=t.api,this.gridColumnApi=t.columnApi,t.api.setRowData(this.mainRowData),this.gridApi.paginationSetPageSize(10),this.gridApi.setDomLayout("autoHeight"),this.gridReady=!0,setTimeout(function(){e.autoSizeAll()},300)},t.prototype.onGridFooterReady=function(t){this.footerGridApi=t.api,this.footerGridColumnApi=t.columnApi,t.api.setRowData(this.footerRowData),this.footerGridApi.paginationSetPageSize(10),this.footerGridApi.setDomLayout("autoHeight"),this.footerGridReady=!0,this.footerGridApi.sizeColumnsToFit()},t.prototype.autoSizeAll=function(){var t=[];this.gridColumnApi.getAllColumns().forEach(function(e){t.push(e.colId)}),this.gridColumnApi.autoSizeColumns(t)},t.prototype.closeDialog=function(){this.reportService.closeSubReportDialogEvent.emit()},t.decorators=[{type:e.Component,args:[{selector:"app-sub-report",template:'<ng-container *ngIf="loading; else mainTemplate">\r\n <div class="loading">\r\n <mat-progress-bar color="warn" mode="indeterminate"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n</ng-container>\r\n\r\n\r\n\r\n<ng-template #mainTemplate>\r\n\r\n <div *ngIf="dataGridReady">\r\n <div class="title-header">\r\n <app-title-subtitle *ngIf="mainConfig.showTitle" [title]="mainConfig.title"\r\n [subtitle]="mainConfig.subtitle"></app-title-subtitle>\r\n <button mat-icon-button (click)=" closeDialog()" aria-label="Cerrar reporte">\r\n <mat-icon aria-hidden="false">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class="actions-container">\r\n <app-actions *ngIf="mainConfig.export" [title]="mainConfig.title" [export]="mainConfig.export"\r\n [agGrid]="agGrid"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class="ag-theme-balham" [animateRows]="true" [rowData]="mainRowData"\r\n [columnDefs]="mainColumnDefs" [defaultColDef]="defaultColDef" rowSelection="single" pagination="true"\r\n [suppressPaginationPanel]="true" (gridReady)="onGridReady($event)"\r\n [frameworkComponents]="mainFrameworkComponents">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf="mainConfig.paginator && gridReady" [agGrid]="agGrid"></app-paginator>\r\n\r\n <ag-grid-angular #agGridFooter class="ag-theme-balham" [animateRows]="true" [rowData]="footerRowData"\r\n [columnDefs]="footerColumnDefs" rowSelection="single" pagination="true" [suppressPaginationPanel]="true"\r\n (gridReady)="onGridFooterReady($event)" [frameworkComponents]="footerFrameworkComponents">\r\n </ag-grid-angular>\r\n\r\n </div>\r\n</ng-template>',styles:[".button-container{text-align:right;margin-bottom:10px}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;padding:10px}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#fff}"]}]}],t.ctorParameters=function(){return[{type:D}]},t}(),F=function(){function t(t){this.reportService=t}return t.prototype.ngOnInit=function(){},t.prototype.agInit=function(t){this.cellvalue=t.value,this.myStyles={backgroundColor:t.value.backgroundColor,color:t.value.labelColor}},t.prototype.refresh=function(t){return this.cellvalue=t.value,!0},t.prototype.openDialog=function(){this.reportService.openSubReportDialogEvent.emit(this.cellvalue)},t.decorators=[{type:e.Component,args:[{selector:"app-customized-button-cell",template:'\x3c!-- <div><button mat-flat-button [ngStyle]="myStyles" (click)="openDialog()">{{cellvalue.label}}</button></div> --\x3e\r\n\x3c!-- <div><mat-chip [ngStyle]="myStyles" (click)="openDialog()">{{cellvalue.label}}</mat-chip></div> --\x3e\r\n<mat-chip-list class="mat-chip-list-stacked" #chipList>\r\n <mat-chip [ngStyle]="myStyles" (click)="openDialog()">{{cellvalue.label}}</mat-chip>\r\n</mat-chip-list>',styles:[".align{text-align:center;align-content:center}"]}]}],t.ctorParameters=function(){return[{type:D}]},t}(),S=function(){function t(t,e,i,n){var o=this;this.reportService=t,this.snack=e,this.spinner=i,this.dialog=n,this.OpenNewTab=!0,this.reportIdInput=null,this.reportListFlag=!0,this.dataReady=!1,this.reportFlag=!1,this.configLoading=!0,this.dataLoading=!1,this.error=!1,this.showFilters=!1,this.filtersFlag=!1,this.footerGridReady=!1,this.mainGridReady=!1,this.defaultColDef={resizable:!0,minWidth:5},this.gridOptions={rowHeight:34},this.getFilteredDataSubscription=this.reportService.getFilteredDataEvent.subscribe(function(){return o.getReportData(o.idReport,!0)}),this.getReportDataSubscription=this.reportService.loadReportDataEvent.subscribe(function(t){o.idReport=t,o.loadReport(t)}),this.openSubReportDialogSubscription=this.reportService.openSubReportDialogEvent.subscribe(function(t){o.reportService.subReportData=t,o.openSubReport()}),this.closeSubReportDialogSubscription=this.reportService.closeSubReportDialogEvent.subscribe(function(){o.closeSubReport()}),this.showErrorSubReportDialogSubscription=this.reportService.showErrorSubReportDialogEvent.subscribe(function(t){o.openSnackBar(t)})}return t.prototype.ngOnInit=function(){if(this.reportService.apiBaseUrl=this.ApiBaseUrl,this.reportService.openNewTab=this.OpenNewTab,this.reportService.accessToken=this.accessToken,this.reportService.resetFilterValues(),this.spinner.show(),this.footerFrameworkComponents={customizedCell:C},this.mainFrameworkComponents={customizedCell:C,customizedButtonCell:F},null!==this.reportIdInput)return this.idReport=this.reportIdInput,void this.loadReport(this.idReport);this.getAllReports()},t.prototype.getAllReports=function(){var t=this;this.reportService.getReports().subscribe(function(e){e.success?(t.categories=e.data.categories.sort(function(t,e){return t.order-e.order}),t.reports=e.data.reports,t.filteredReports=t.reports,t.dataReady=!0,t.spinner.hide()):(t.spinner.hide(),t.errorMessage=e.errorsMessages.join(". "),t.openSnackBar(t.errorMessage))})},t.prototype.getReportsFromCategory=function(t){return this.filteredReports.filter(function(e){return e.category===t}).sort(function(t,e){return t.order-e.order})},t.prototype.onSearchChange=function(t){this.filteredReports=this.reports.filter(function(e){return e.title.toLowerCase().includes(t.toLowerCase())||e.subtitle.toLowerCase().includes(t.toLowerCase())})},t.prototype.openSnackBar=function(t){this.snack.open(t,"Cerrar",{duration:5e3})},t.prototype.loadReport=function(t){this.getReport(t),this.reportListFlag=!1,this.reportFlag=!0,this.filtersFlag=!1},t.prototype.getReport=function(t){var e=this;this.spinner.show(),this.reportService.getConfig(t).subscribe(function(i){i.success?(e.error=!1,e.mainConfig=i.data.mainConfig,0!==e.mainConfig.filters.length&&(e.filtersFlag=!0),e.footerConfig=i.data.footerConfig,e.configLoading=!1,e.getReportData(t,!1)):(e.configLoading=!1,e.error=!0,e.spinner.hide(),e.errorMessage=i.errorsMessages.join(". "))})},t.prototype.getReportData=function(t,e){var i=this;this.spinner.show(),this.dataLoading=!0,e?this.reportService.getData(t,e).subscribe(function(t){t.success?(i.mainGridReady=!1,i.mainColumnDefs=t.data.mainHeaders,i.footerColumnDefs=t.data.footerHeaders,i.mainRowData=t.data.mainData,i.footerRowData=t.data.footerData,i.reportService.updatePaginatorDataEvent.emit(),i.dataLoading=!1,i.error=!1,i.spinner.hide(),i.showFilter(),i.reportService.resetFilterValues()):(i.dataLoading=!1,i.error=!0,i.spinner.hide(),i.errorMessage=t.errorsMessages.join(". "))}):this.reportService.getData(t,e).subscribe(function(t){t.success?(i.mainColumnDefs=t.data.mainHeaders,i.footerColumnDefs=t.data.footerHeaders,i.mainRowData=t.data.mainData,i.footerRowData=t.data.footerData,i.dataLoading=!1,i.error=!1,i.spinner.hide()):(i.dataLoading=!1,i.error=!0,i.spinner.hide(),i.errorMessage=t.errorsMessages.join(". "))})},t.prototype.onGridReady=function(t){var e=this;this.mainGridApi=t.api,this.mainGridColumnApi=t.columnApi,t.api.setRowData(this.mainRowData),this.mainGridApi.paginationSetPageSize(10),this.mainGridApi.setDomLayout("autoHeight"),this.mainGridReady=!0,this.mainConfig.noHeader&&this.mainGridApi.setHeaderHeight(0),setTimeout(function(){e.autoSizeAll()},300)},t.prototype.autoSizeAll=function(){var t=[];this.mainGridColumnApi.getAllColumns().forEach(function(e){"customizedButtonCell"!=e.userProvidedColDef.cellRenderer&&t.push(e.colId)}),this.mainGridColumnApi.autoSizeColumns(t)},t.prototype.onGridFooterReady=function(t){this.footerGridApi=t.api,this.footerGridColumnApi=t.columnApi,t.api.setRowData(this.footerRowData),this.footerGridApi.paginationSetPageSize(10),this.footerGridApi.setDomLayout("autoHeight"),this.footerGridReady=!0,this.footerConfig.noHeader&&this.footerGridApi.setHeaderHeight(0),this.footerGridApi.sizeColumnsToFit()},t.prototype.showFilter=function(){this.showFilters=!this.showFilters},t.prototype.goBack=function(){this.reportListFlag=!0,this.reportFlag=!1,this.configLoading=!0,this.dataLoading=!1,this.error=!1,this.showFilters=!1,this.footerGridReady=!1,this.mainGridReady=!1,this.dataReady=!1,this.spinner.show(),this.reportService.resetFilterValues(),this.getAllReports()},t.prototype.openSubReport=function(){this.dialogRef=this.dialog.open(R,{width:"100%",height:"90%",panelClass:"full-width-dialog"})},t.prototype.closeSubReport=function(){this.dialogRef.close()},t.decorators=[{type:e.Component,args:[{selector:"reports-lib",template:'\x3c!-- REPORT LIST --\x3e\n<div *ngIf="reportListFlag">\n <div class="report-wrapper">\n <div class="title-container">\n <p class="reports-title">Reportes</p>\n <input class="search" placeholder="Buscar reportes" type="text"\n (input)="onSearchChange($event.target.value)">\n </div>\n <div *ngFor="let category of categories">\n <app-reports-by-category *ngIf="dataReady && (getReportsFromCategory(category.id).length > 0)"\n [category]="category" [reports]="getReportsFromCategory(category.id)"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type="ball-spin-clockwise" size="medium" color="#d32020">\n <p class="spinner-text">Cargando...</p>\n</ngx-spinner>\n\n\x3c!-- REPORT --\x3e\n<div *ngIf="reportFlag">\n <div *ngIf="!configLoading && !dataLoading">\n <div *ngIf="!error else errorPanel">\n <div>\n <div class="title-header">\n <app-title-subtitle *ngIf="mainConfig.showTitle" [title]="mainConfig.title"\n [subtitle]="mainConfig.subtitle"></app-title-subtitle>\n <button *ngIf="!OpenNewTab" mat-icon-button (click)="goBack()" aria-label="Cerrar reporte">\n <mat-icon aria-hidden="false">close</mat-icon>\n </button>\n </div>\n <div class="actions-container">\n <button mat-button class="filter" *ngIf="filtersFlag" (click)="showFilter()">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf="mainConfig.export" [title]="mainConfig.title" [export]="mainConfig.export"\n [agGrid]="agGrid"></app-actions>\n </div>\n <div *ngIf="filtersFlag">\n <app-filters [@isFiltersVisible]="showFilters" [filters]="mainConfig.filters" [idReport]="idReport"></app-filters>\n </div>\n </div>\n <div #content class="table-container">\n <ag-grid-angular #agGrid class="ag-theme-balham" [animateRows]="true" [rowData]="mainRowData"\n [columnDefs]="mainColumnDefs" [defaultColDef]="defaultColDef" rowSelection="single"\n pagination="true" [suppressPaginationPanel]="true" (gridReady)="onGridReady($event)"\n [frameworkComponents]="mainFrameworkComponents" [gridOptions]="gridOptions">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf="mainConfig.paginator && mainGridReady" [agGrid]="agGrid"></app-paginator>\n </div>\n <br>\n \x3c!-- <div>\n <app-title-subtitle *ngIf="footerConfig.showTitle" [title]="footerConfig.title"\n [subtitle]="footerConfig.subtitle"></app-title-subtitle>\n\n <app-actions *ngIf="footerConfig.export" [title]="footerConfig.title" [export]="footerConfig.export"\n [agGrid]="agGridFooter"></app-actions>\n\n <button *ngIf="footerConfig.filters" (click)="showFilter()"> <fa-icon class="icon" [icon]="[\'fas\', \'filter\']"></fa-icon> Filtros</button>\n <div *ngIf="footerConfig.filters">\n <app-filters *ngIf="showFilters" [filters]="footerConfig.filters" [idReport]="idReport"></app-filters>\n </div>\n \n <app-paginator *ngIf="footerConfig.paginator && footerGridReady" [agGrid]="agGridFooter">\n </app-paginator>\n\n </div> --\x3e\n\n <ag-grid-angular #agGridFooter class="ag-theme-balham" [animateRows]="true" [rowData]="footerRowData"\n [columnDefs]="footerColumnDefs" rowSelection="single" pagination="true" [suppressPaginationPanel]="true"\n (gridReady)="onGridFooterReady($event)" [frameworkComponents]="footerFrameworkComponents">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class="error-panel">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf="!OpenNewTab" mat-raised-button class="back-button" (click)="goBack()">Volver</button>\n </div>\n </ng-template>\n\n</div>',animations:[g.trigger("isFiltersVisible",[g.state("true",g.style({opacity:1,transform:"scaleY(1.0)",transformOrigin:"top center",position:"inherit"})),g.state("false",g.style({opacity:0,transform:"scaleY(0.0)",transformOrigin:"top center",position:"absolute"})),g.transition("1 => 0",g.animate("300ms ease-in-out")),g.transition("0 => 1",g.animate("300ms ease-in-out"))])],styles:[".report-wrapper{width:100%;background-color:#f5f5f5;padding:10px;box-sizing:border-box;font-family:Roboto,sans-serif;height:100vh}.title-container{display:flex;flex-direction:column;padding:10px;margin:10px 0;background-color:#d32020}.title-container .reports-title{margin:0 0 10px;color:#fff;font-size:24px;font-weight:500}.title-container .search{width:100%}.back-button{margin-top:10px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.spinner-text{color:#fff;font-family:Arial,Helvetica,sans-serif}.icon{font-size:23px}.filter-button{margin-top:20px;margin-bottom:20px;margin-right:20px;text-align:right}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;background:#d32020;padding:10px;color:#fff}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.actions-container .filter{color:#fff}.error-panel{text-align:center}label{font-size:14px;color:#888}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}.table-container ::ng-deep .ag-theme-balham{font-family:Roboto,sans-serif}.table-container ::ng-deep .ag-theme-balham .ag-header{font-family:Roboto,sans-serif;font-weight:500;color:#333}@media (min-width:425px){.title-container{flex-direction:row;align-items:center;justify-content:space-between}.title-container .reports-title{margin:0}.title-container .search{font-size:14px;max-width:200px}}@media (min-width:768px){.formRow{margin-bottom:15px}.actions-container{justify-content:flex-end}}"]}]}],t.ctorParameters=function(){return[{type:D},{type:s.MatSnackBar},{type:l.NgxSpinnerService},{type:s.MatDialog}]},t.propDecorators={ApiBaseUrl:[{type:e.Input}],accessToken:[{type:e.Input}],OpenNewTab:[{type:e.Input}],reportIdInput:[{type:e.Input}],content:[{type:e.ViewChild,args:["content",{static:!1}]}],agGrid:[{type:e.ViewChild,args:["agGrid",{static:!1}]}],agGridFooter:[{type:e.ViewChild,args:["agGridFooter",{static:!1}]}]},t}(),k=function(){function t(t){this.reportService=t,this.invalidDate=!1}return t.prototype.ngOnInit=function(){if(this.dateFilter.data.defaultValue){var t=new Date(this.dateFilter.data.defaultValue+" 00:00:00");this.filterData={id:this.dateFilter.id,value:t}}else this.filterData={id:this.dateFilter.id};this.reportService.initialFilterData(this.filterData)},t.prototype.onDateChange=function(t){var e=new Date(t.target.value+" 00:00:00"),i=new Date(this.dateFilter.data.maxValue);e>new Date(this.dateFilter.data.minValue)&&e<i?(this.invalidDate=!1,this.filterData.value=e.toString(),this.reportService.setFilterData(this.filterData)):this.invalidDate=!0},t.decorators=[{type:e.Component,args:[{selector:"app-date-filter",template:' <div class="formRow">\n <label>{{ dateFilter.label }}</label>\n <input #date type="date" [value]="dateFilter.data.defaultValue"\n [min]="dateFilter.data.minValue" [max]="dateFilter.data.maxValue"\n (input)="onDateChange($event)">\n <small *ngIf="invalidDate"> Fecha inválida</small>\n </div> \n ',styles:["input[type=date]{font-family:Roboto,Helvetica,sans-serif;width:100%;margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}small{color:red}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={dateFilter:[{type:e.Input}]},t}(),I=function(){function t(t){this.reportService=t,this.multiple=!1,this.selectedFilters=[]}return t.prototype.ngOnInit=function(){3===this.dropdownFilter.type&&(this.multiple=!0),this.filterData={id:this.dropdownFilter.id},this.reportService.initialFilterData(this.filterData)},t.prototype.onSelectChange=function(t){var e=[];void 0!==t&&(this.multiple?(t.forEach(function(t){e.push(t.key)}),this.filterData.value=e):this.filterData.value=t.key,this.reportService.setFilterData(this.filterData))},t.decorators=[{type:e.Component,args:[{selector:"app-dropdown-filter",template:'<div class="formRow">\n <label>{{ dropdownFilter.label }}</label>\n <ng-select #select class="select"\n [multiple]="multiple"\n [items]="dropdownFilter.data.dataSource"\n [bindLabel]="dropdownFilter.data.valueName"\n [bindValue]="dropdownFilter.data.keyName"\n [placeholder]="dropdownFilter.data.placeholder"\n [closeOnSelect]="!multiple"\n [(ngModel)]="selectedFilters"\n (change)="onSelectChange($event)">\n <ng-template ng-option-tmp let-item="item" \n let-item$="item$" let-index="index">\n <input id="item-{{index}}" type="checkbox"\n [ngModel]="item$.selected"/> \n {{item.description}}\n </ng-template>\n <ng-template ng-multi-label-tmp let-items="items" >\n <div class="ng-value" *ngFor="let item of items | slice:0:1">\n <span class="ng-value-label"> {{item.description}}</span>\n </div>\n <div class="ng-value" *ngIf="items.length > 1">\n <span class="ng-value-label">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>\n',styles:[".select{width:100%;margin-top:7px;min-width:175px}::ng-deep .ng-select .ng-select-container{background-color:#fff;border:.5px solid #707070;border-radius:2px;min-height:35px;transition:.3s ease-in-out}::ng-deep .ng-select .ng-select-container:focus,::ng-deep .ng-select .ng-select-container:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}::ng-deep .ng-select.ng-select-single .ng-select-container{height:35px}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:8px;font-size:15px}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={dropdownFilter:[{type:e.Input}]},t}(),P=function(){function t(t){this.reportService=t,this.invalidNumber=!1}return t.prototype.ngOnInit=function(){if(this.numericFilter.data.defaultValue){var t=this.numericFilter.data.defaultValue.toString();this.filterData={id:this.numericFilter.id,value:t}}else this.filterData={id:this.numericFilter.id};this.reportService.initialFilterData(this.filterData)},t.prototype.onNumberChange=function(t){var e=t.target.value,i=String(e);e>this.numericFilter.data.minValue&&e<this.numericFilter.data.maxValue&&i.length<this.numericFilter.data.maxLength?(this.invalidNumber=!1,this.filterData.value=i,this.reportService.setFilterData(this.filterData)):this.invalidNumber=!0},t.decorators=[{type:e.Component,args:[{selector:"app-numeric-filter",template:'<div class="formRow">\n <label>{{ numericFilter.label }} </label>\n <input type="number" \n [min]="numericFilter.data.minValue" \n [max]="numericFilter.data.maxValue"\n [attr.maxlength]="numericFilter.data.maxLength" \n (keyup)="onNumberChange($event)" \n [placeholder]="numericFilter.data.placeholder"\n [value]="numericFilter.data.defaultValue">\n \n <small *ngIf="invalidNumber"> Campo Inválido</small>\n\n</div> \n \n',styles:["input{margin-top:7px;width:100%;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={numericFilter:[{type:e.Input}]},t}(),G=function(){function t(t){this.reportService=t}return t.prototype.ngOnInit=function(){this.filterData={id:this.textFilter.id},this.reportService.initialFilterData(this.filterData)},t.prototype.onTextChange=function(t){this.filterData.value=t,this.reportService.setFilterData(this.filterData)},t.decorators=[{type:e.Component,args:[{selector:"app-text-filter",template:'<div class="formRow">\n <label>{{ textFilter.label }} </label>\n <input type="text" [attr.maxlength]="textFilter.data.maxLength" [placeholder]="textFilter.data.placeholder"\n (input)="onTextChange($event.target.value)">\n</div>',styles:["input{margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={textFilter:[{type:e.Input}]},t}(),z=function(){function t(t){this.http=t}return t.prototype.getAllFilters=function(t){return this.http.get("../../../assets/autocomplete.json").pipe(h.map(function(t){return t}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:i.HttpClient}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(i.HttpClient))},token:t,providedIn:"root"}),t}(),M=function(){function t(t,e){this.autocompleteService=t,this.reportService=e,this.dataReady=!1,this.multiple=!1,this.selectedFilters=[],this.autocompleteFilterData=[],this.searchTerms=new m.Subject}return t.prototype.ngOnInit=function(){this.filterData={id:this.autocompleteFilterConfig.id},this.reportService.initialFilterData(this.filterData),7===this.autocompleteFilterConfig.type&&(this.multiple=!0),this.initGetFilteredData()},t.prototype.initGetFilteredData=function(){var t=this;this.searchTerms.pipe(h.startWith(""),h.debounceTime(400),h.distinctUntilChanged(),h.switchMap(function(e){return t.autocompleteService.getAllFilters(e)})).subscribe(function(e){return t.filteredDataHandler(e)})},t.prototype.filteredDataHandler=function(t){this.autocompleteFilterData=t,this.dataReady=!0},t.prototype.search=function(t){this.searchTerms.next(t)},t.prototype.onSelectChange=function(t){var e=[];void 0!==t&&(this.multiple?(t.forEach(function(t){e.push(t.key.toString())}),this.filterData.value=e):this.filterData.value=t.key.toString(),this.reportService.setFilterData(this.filterData))},t.decorators=[{type:e.Component,args:[{selector:"app-autocomplete-filter",template:'<div class="formRow">\n <label>{{ autocompleteFilterConfig.label }}</label>\n <ng-select class="autocomplete"\n [disabled] ="!dataReady"\n [items]="autocompleteFilterData.dataSource"\n [bindLabel]="autocompleteFilterData.valueName"\n [bindValue]="autocompleteFilterData.keyName"\n (search)="search($event)"\n [multiple]="multiple"\n [closeOnSelect]="!multiple"\n [(ngModel)]="selectedFilters"\n (change)="onSelectChange($event)">\n\n <ng-template ng-option-tmp let-item="item" let-item$="item$" let-index="index">\n <input id="item-{{index}}" type="checkbox"\n [ngModel]="item$.selected"/> {{item.description}}\n </ng-template>\n\n <ng-template ng-multi-label-tmp let-items="items" >\n <div class="ng-value" *ngFor="let item of items | slice:0:1">\n <span class="ng-value-label"> {{item.description}}</span>\n </div>\n <div class="ng-value" *ngIf="items.length > 1">\n <span class="ng-value-label">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>',styles:[".autocomplete{font-size:15px;margin-top:7px;min-width:175px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;padding:0 10px;font-size:15px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#333;color:#fff}::ng-deep ng-select ::ng-deep .ng-dropdown-panel.ng-select-bottom{border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-color:#000;transition:.3s ease-in-out}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input{top:8px!important}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input input{padding:0;height:auto}::ng-deep .ng-select.ng-select-opened>.ng-select-container{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:z},{type:D}]},t.propDecorators={autocompleteFilterConfig:[{type:e.Input}]},t}(),A=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[k,I,P,G,M],exports:[k,I,P,G,M],imports:[o.CommonModule,n.FormsModule,r.RouterModule,b.NgSelectModule]}]}],t}(),E=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[],exports:[],imports:[o.CommonModule,n.FormsModule,A],providers:[],bootstrap:[]}]}],t}(),T=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[],exports:[],imports:[o.CommonModule,n.FormsModule],providers:[],bootstrap:[]}]}],t}(),j=function(){function t(t){this.reportService=t,this.openNewTab=this.reportService.openNewTab}return t.prototype.ngOnInit=function(){},t.prototype.goToReport=function(t){this.openNewTab?window.open(window.location.href+"/"+t):this.reportService.loadReportDataEvent.emit(t)},t.decorators=[{type:e.Component,args:[{selector:"app-reports-by-category",template:'<p class="category-title">{{category.name}}</p>\n<div *ngFor="let report of reports">\n <button class="single-report" (click)="goToReport(report.id)">\n <span>{{ report.title }}</span>\n <mat-icon>chevron_right</mat-icon>\n </button>\n</div>',styles:[".category-title{color:#000;font-weight:500;font-size:16px;line-height:2;text-align:left;width:100%;border-bottom:1px solid #a9a9a9;margin-bottom:10px}.single-report{display:flex;flex-flow:row;align-items:center;justify-content:space-between;background-color:#fff;margin-bottom:6px;border-radius:3px;border:1px solid #d9d9d9;transition:.3s ease-in-out}button{font-size:13px;text-decoration:none;padding:7px;display:block;width:100%;transition:.3s ease-in-out;z-index:2;border:none;background:0 0;text-align:left;cursor:pointer}button:focus,button:hover{transition:.3s ease-in-out;color:#d32020}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={category:[{type:e.Input}],reports:[{type:e.Input}]},t}(),H=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"app-title-subtitle",template:'<h1>{{title}}</h1>\n<h2 *ngIf="subtitle">{{subtitle}}</h2>\n',styles:["h1{font-size:1.2em;font-weight:400;margin:0 0 5px}h2{font-size:.8em;line-height:1.5;font-weight:400;margin:0}@media (min-width:768px){h1{font-size:1.4em}h2{font-size:.9em}}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={title:[{type:e.Input}],subtitle:[{type:e.Input}]},t}(),L=function(){function t(t){this.datePipe=t}return t.prototype.transformDate=function(){var t=new Date;return this.datePipe.transform(t,"dd/MM/yyyy HH:mm")},t.prototype.generateExcel=function(t,e,i){var n=new y.Workbook,o=n.addWorksheet("VK Report"),r=o.addRow([i]);r.font={name:"Calibri",family:4,size:16,color:{argb:"F8F6F6"}},r.alignment={horizontal:"left",vertical:"middle"},r.getCell(1).fill={type:"pattern",pattern:"solid",fgColor:{argb:"AC1717"}},r.getCell(1).border={top:{style:"medium"},left:{style:"medium"},bottom:{style:"medium"},right:{style:"medium"}},o.mergeCells("A1:J2");var a=this.transformDate()+" - Cantidad de registros: "+e.length,s=o.addRow([a]);s.font={name:"Calibri",family:4,size:14},s.alignment={horizontal:"left",vertical:"middle"},o.mergeCells("A3:J4"),o.addRow([]);var l=o.addRow(t);l.font={name:"Calibri",family:4,size:11,color:{argb:"F8F6F6"}},l.eachCell(function(t,e){t.fill={type:"pattern",pattern:"solid",fgColor:{argb:"AC1717"},bgColor:{}},t.border={top:{style:"thin"},left:{style:"thin"},bottom:{style:"thin"},right:{style:"thin"}}}),e[0].toString().split(",").forEach(function(e,i){var n=Math.max(e.length,t[i].length);o.getColumn(i+1).width=1.6*n}),o.addRows(e),n.xlsx.writeBuffer().then(function(t){var e=new Blob([t],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});x.saveAs(e,i)})},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:o.DatePipe}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(o.DatePipe))},token:t,providedIn:"root"}),t}();v.vfs=w.pdfMake.vfs;var O=function(){function t(t){this.excelService=t,this.csv=!1,this.pdf=!1,this.excel=!1}return t.prototype.ngOnInit=function(){this.csv=this.export.csv,this.pdf=this.export.pdf,this.excel=this.export.excel},t.prototype.exportCSV=function(){var t={columnKeys:[]};this.agGrid.columnDefs.forEach(function(e){"customizedButtonCell"!=e.cellRenderer&&t.columnKeys.push(e.field)}),this.agGrid.api.exportDataAsCsv(t)},t.prototype.generatePdf=function(){this.getColumns(!0),this.getData(!0);var t={pageOrientation:"landscape",content:[{layout:"lightHorizontalLines",table:{headerRows:1,widths:this.widths,body:this.body}}]};v.createPdf(t).open()},t.prototype.generateExcel=function(){this.getColumns(!1),this.getData(!1),this.excelService.generateExcel(this.columns,this.dataExcel,this.title)},t.prototype.getColumns=function(t){var e=this;this.keysCustomizedCell=[],this.keysSubReportButton=[],this.columns=[],this.widths=[],this.body=[],this.agGrid.columnApi.getAllColumns().forEach(function(i){if("customizedCell"===i.getColDef().cellRenderer&&e.keysCustomizedCell.push(i.getColDef().field),"customizedButtonCell"!==i.getColDef().cellRenderer){var n=i.getColDef().headerName;t?(e.columns.push(n),e.widths.push("auto")):e.columns.push(n)}else e.keysSubReportButton.push(i.getColDef().field)})},t.prototype.getData=function(t){var e=this;this.dataExcel=[],this.body=[];var i=this.agGrid.rowData;t&&this.body.push(this.columns),i.forEach(function(i){var n=[];Object.keys(i).map(function(t){(i[t],-1===e.keysSubReportButton.indexOf(t))&&(-1!=e.keysCustomizedCell.indexOf(t)&&(-1!=i[t].indexOf("<")?(i[t].split("<").concat().forEach(function(e){-1!=e.indexOf(">")&&""!=e.split(">")[1]&&(i[t]=e.split(">")[1])}),n.push(i[t])):n.push(i[t])))});t?e.body.push(n):e.dataExcel.push(n)})},t.decorators=[{type:e.Component,args:[{selector:"app-actions",template:'\x3c!-- <mat-menu #saveAsMenu="matMenu"> --\x3e\r\n <button *ngIf="csv" class="menu" mat-button (click)=" exportCSV()"><fa-icon class="icon" [icon]="[\'fas\', \'file-csv\']"></fa-icon> CSV</button>\r\n <button *ngIf="pdf" class="menu" mat-button (click)="generatePdf()" ><fa-icon class="icon" [icon]="[\'fas\', \'file-pdf\']"></fa-icon> PDF</button>\r\n <button *ngIf="excel" class="menu" mat-button (click)="generateExcel()" ><fa-icon class="icon" [icon]="[\'fas\', \'file-excel\']"></fa-icon> EXCEL</button>\r\n\x3c!-- </mat-menu>\r\n<button mat-button class="menu" [matMenuTriggerFor]="saveAsMenu">\r\n <mat-icon>save_alt</mat-icon> Guardar como\r\n</button> --\x3e',styles:[".menu{color:#fff}.icon{font-size:20px}"]}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={title:[{type:e.Input}],agGrid:[{type:e.Input}],export:[{type:e.Input}]},t}(),B=function(){function t(t){this.reportService=t}return t.prototype.ngOnInit=function(){this.filters!==[]&&this.filters[0].order&&(this.filters=this.filters.sort(function(t,e){return t.order-e.order}))},t.prototype.getFilteredData=function(){this.reportService.getFilteredDataEvent.emit()},t.decorators=[{type:e.Component,args:[{selector:"app-filters",template:'<div class="filter-container">\n <p class="filter-title">Filtrar reporte</p>\n <div fxLayout="column" fxLayout.gt-xs="row wrap" fxLayoutGap="15px"\n fxLayoutAlign="start start">\n <div class="filter" fxFlex="100" fxFlex.gt-xs="0 1 calc(25% - 15px)" fxFlex.gt-sm="0 1 calc(20% - 15px)" *ngFor="let filter of filters; let i = index">\n <app-date-filter *ngIf="(filter.order === (i + 1)) && (filter.type === 1)" [dateFilter]="filter">\n </app-date-filter>\n\n <app-dropdown-filter *ngIf="(filter.order === (i + 1)) && ((filter.type === 2) || (filter.type === 3))"\n [dropdownFilter]="filter">\n </app-dropdown-filter>\n\n <app-numeric-filter *ngIf="(filter.order === (i + 1)) && (filter.type === 4)" [numericFilter]="filter">\n </app-numeric-filter>\n\n <app-text-filter *ngIf="(filter.order === (i + 1)) && (filter.type === 5)" [textFilter]="filter">\n </app-text-filter>\n\n <app-autocomplete-filter *ngIf="(filter.order === (i + 1)) && ((filter.type === 6) || (filter.type === 7))"\n [autocompleteFilterConfig]="filter">\n </app-autocomplete-filter>\n </div>\n </div>\n <button mat-raised-button class="filter-button" (click)="getFilteredData()">Aplicar Filtros</button>\n</div>',styles:[".filter-title{margin:0 0 10px;padding:5px 0;font-weight:500;border-bottom:1px solid #333}.filter-button{margin-top:20px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.filter-container{padding:10px}.filter{width:100%}label{font-size:14px;color:#888}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={idReport:[{type:e.Input}],filters:[{type:e.Input}]},t}(),N=function(){function t(t){var e=this;this.reportService=t,this.updatePaginatorDataEvent=this.reportService.updatePaginatorDataEvent.subscribe(function(){return e.initPaginator()})}return t.prototype.ngOnInit=function(){this.initPaginator()},t.prototype.initPaginator=function(){this.getcurrentPage(),this.getTotalPages(),this.getPages()},t.prototype.onBtFirst=function(){this.agGrid.api.paginationGoToFirstPage(),this.getcurrentPage()},t.prototype.onBtLast=function(){this.agGrid.api.paginationGoToLastPage(),this.getcurrentPage(),this.getPages()},t.prototype.onBtNext=function(){this.agGrid.api.paginationGoToNextPage(),this.getcurrentPage()},t.prototype.onBtPrevious=function(){this.agGrid.api.paginationGoToPreviousPage(),this.getcurrentPage()},t.prototype.showRows=function(t){this.agGrid.api.paginationSetPageSize(t),this.getTotalPages(),this.getPages()},t.prototype.getcurrentPage=function(){this.currentPage=this.agGrid.api.paginationGetCurrentPage()+1},t.prototype.getTotalPages=function(){this.totalPages=this.agGrid.api.paginationGetTotalPages()},t.prototype.getPages=function(){this.pages=this.agGrid.api.paginationGetPageSize()},t.prototype.goToPage=function(t){var e=t.target.value;this.agGrid.api.paginationGoToPage(e-1),this.getcurrentPage()},t.prototype.showRow=function(t){var e=t.target.value;this.agGrid.api.paginationSetPageSize(e),this.getTotalPages(),this.getPages()},t.decorators=[{type:e.Component,args:[{selector:"app-paginator",template:'<div class="paginator-container">\n <div class="paginator-buttons">\n <button (click)="onBtFirst()" aria-label="Primera página" mat-icon-button>\n <mat-icon>first_page</mat-icon>\n </button>\n <button (click)="onBtPrevious()" aria-label="Página anterior" mat-icon-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <input (change)="goToPage($event)" size="4" type="number" [value]="currentPage">\n\n <button (click)="onBtNext()" aria-label="Página siguiente" mat-icon-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button (click)="onBtLast()" aria-label="Última página" mat-icon-button>\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n <p class="paginator-text">Página {{ currentPage }} de {{totalPages}}</p>\n <div class="items-per-page">\n <input (change)="showRow($event)" min="1" max="100" maxlength="3" #rows type="number" [value]="pages" name="itemsPerPage"><label for="itemsPerPage">registros por página</label> \n </div>\n</div>\n\n\n\x3c!-- <button (click)="showRows(rows.value)" >Mostrar</button> --\x3e',styles:[".paginator-container{background-color:#fff;border-radius:5px;padding:10px 0;max-width:300px;margin:10px auto 0;box-shadow:3px 3px 15px 0 rgba(0,0,0,.15)}.paginator-container .paginator-buttons{display:flex;flex-direction:row;align-items:center;justify-content:center}.paginator-container .paginator-buttons input{max-width:40px;text-align:center}.paginator-container .paginator-text{font-size:12px;margin:5px 0;text-align:center}.paginator-container .items-per-page{display:flex;flex-direction:row;align-items:center;justify-content:center;border-top:1px solid #000;margin:0 20px;padding-top:10px}.paginator-container .items-per-page input{max-width:60px;text-align:center}.paginator-container .items-per-page label{margin-left:5px;font-size:12px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}input[type=number]{-moz-appearance:textfield}.icon{font-size:30px}@media (min-width:768px){.paginator-container{display:flex;flex-direction:row;align-items:center;justify-items:center;max-width:550px}.paginator-container .paginator-text{margin-left:5px}.paginator-container .items-per-page{border-top:0;border-left:1px solid #000;padding-top:0;padding-left:10px}}"]}]}],t.ctorParameters=function(){return[{type:D}]},t.propDecorators={agGrid:[{type:e.Input}]},t}(),V=function(){function t(t){t.addIcons(u.faFileCsv,u.faFileExcel,u.faFilePdf),t.addIconPacks(u.fas)}return t.decorators=[{type:e.NgModule,args:[{declarations:[S,j,C,F,H,O,B,N,R],exports:[S,j,C,F,H,O,B,N,R],entryComponents:[R,H],imports:[o.CommonModule,n.FormsModule,s.MatIconModule,l.NgxSpinnerModule,i.HttpClientModule,E,T,a.MatSnackBarModule,A,d.FontAwesomeModule,p.AgGridModule.withComponents([C,F]),s.MatButtonModule,c.FlexLayoutModule,r.RouterModule,s.MatDialogModule,s.MatProgressBarModule,s.MatChipsModule],providers:[o.DatePipe]}]}],t.ctorParameters=function(){return[{type:d.FaIconLibrary}]},t}(),q=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{imports:[V],exports:[V]}]}],t}();t.VKReportsModule=q,t.ɵa=V,t.ɵb=S,t.ɵc=D,t.ɵd=j,t.ɵe=C,t.ɵf=F,t.ɵg=H,t.ɵh=O,t.ɵi=L,t.ɵj=B,t.ɵk=N,t.ɵl=R,t.ɵm=E,t.ɵn=A,t.ɵo=k,t.ɵp=I,t.ɵq=P,t.ɵr=G,t.ɵs=M,t.ɵt=z,t.ɵu=T,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=vk-reports.umd.min.js.map |
@@ -5,3 +5,3 @@ /** | ||
*/ | ||
import { Component, Input, ViewChild } from '@angular/core'; | ||
import { Component, Input, ViewChild, ElementRef } from '@angular/core'; | ||
import { trigger, state, style, transition, animate } from '@angular/animations'; | ||
@@ -377,3 +377,3 @@ import { MatSnackBar, MatDialog } from '@angular/material'; | ||
selector: 'reports-lib', | ||
template: "<!-- REPORT LIST -->\n<div *ngIf=\"reportListFlag\">\n <div class=\"report-wrapper\">\n <div class=\"title-container\">\n <p class=\"reports-title\">Reportes</p>\n <input class=\"search\" placeholder=\"Buscar reportes\" type=\"text\"\n (input)=\"onSearchChange($event.target.value)\">\n </div>\n <div *ngFor=\"let category of categories\">\n <app-reports-by-category *ngIf=\"dataReady && (getReportsFromCategory(category.id).length > 0)\"\n [category]=\"category\" [reports]=\"getReportsFromCategory(category.id)\"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type=\"ball-spin-clockwise\" size=\"medium\" color=\"#d32020\">\n <p class=\"spinner-text\">Cargando...</p>\n</ngx-spinner>\n\n<!-- REPORT -->\n<div *ngIf=\"reportFlag\">\n <div *ngIf=\"!configLoading && !dataLoading\">\n <div *ngIf=\"!error else errorPanel\">\n <div>\n <div class=\"title-header\">\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\n <button *ngIf=\"!OpenNewTab\" mat-icon-button (click)=\"goBack()\" aria-label=\"Cerrar reporte\">\n <mat-icon aria-hidden=\"false\">close</mat-icon>\n </button>\n </div>\n <div class=\"actions-container\">\n <button mat-button class=\"filter\" *ngIf=\"filtersFlag\" (click)=\"showFilter()\">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\n [agGrid]=\"agGrid\"></app-actions>\n </div>\n <div *ngIf=\"filtersFlag\">\n <app-filters [@isFiltersVisible]=\"showFilters\" [filters]=\"mainConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n </div>\n <div class=\"table-container\">\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\"\n pagination=\"true\" [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\n [frameworkComponents]=\"mainFrameworkComponents\" [gridOptions]=\"gridOptions\">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf=\"mainConfig.paginator && mainGridReady\" [agGrid]=\"agGrid\"></app-paginator>\n </div>\n <br>\n <!-- <div>\n <app-title-subtitle *ngIf=\"footerConfig.showTitle\" [title]=\"footerConfig.title\"\n [subtitle]=\"footerConfig.subtitle\"></app-title-subtitle>\n\n <app-actions *ngIf=\"footerConfig.export\" [title]=\"footerConfig.title\" [export]=\"footerConfig.export\"\n [agGrid]=\"agGridFooter\"></app-actions>\n\n <button *ngIf=\"footerConfig.filters\" (click)=\"showFilter()\"> <fa-icon class=\"icon\" [icon]=\"['fas', 'filter']\"></fa-icon> Filtros</button>\n <div *ngIf=\"footerConfig.filters\">\n <app-filters *ngIf=\"showFilters\" [filters]=\"footerConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n \n <app-paginator *ngIf=\"footerConfig.paginator && footerGridReady\" [agGrid]=\"agGridFooter\">\n </app-paginator>\n\n </div> -->\n\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class=\"error-panel\">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf=\"!OpenNewTab\" mat-raised-button class=\"back-button\" (click)=\"goBack()\">Volver</button>\n </div>\n </ng-template>\n\n</div>", | ||
template: "<!-- REPORT LIST -->\n<div *ngIf=\"reportListFlag\">\n <div class=\"report-wrapper\">\n <div class=\"title-container\">\n <p class=\"reports-title\">Reportes</p>\n <input class=\"search\" placeholder=\"Buscar reportes\" type=\"text\"\n (input)=\"onSearchChange($event.target.value)\">\n </div>\n <div *ngFor=\"let category of categories\">\n <app-reports-by-category *ngIf=\"dataReady && (getReportsFromCategory(category.id).length > 0)\"\n [category]=\"category\" [reports]=\"getReportsFromCategory(category.id)\"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type=\"ball-spin-clockwise\" size=\"medium\" color=\"#d32020\">\n <p class=\"spinner-text\">Cargando...</p>\n</ngx-spinner>\n\n<!-- REPORT -->\n<div *ngIf=\"reportFlag\">\n <div *ngIf=\"!configLoading && !dataLoading\">\n <div *ngIf=\"!error else errorPanel\">\n <div>\n <div class=\"title-header\">\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\n <button *ngIf=\"!OpenNewTab\" mat-icon-button (click)=\"goBack()\" aria-label=\"Cerrar reporte\">\n <mat-icon aria-hidden=\"false\">close</mat-icon>\n </button>\n </div>\n <div class=\"actions-container\">\n <button mat-button class=\"filter\" *ngIf=\"filtersFlag\" (click)=\"showFilter()\">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\n [agGrid]=\"agGrid\"></app-actions>\n </div>\n <div *ngIf=\"filtersFlag\">\n <app-filters [@isFiltersVisible]=\"showFilters\" [filters]=\"mainConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n </div>\n <div #content class=\"table-container\">\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\"\n pagination=\"true\" [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\n [frameworkComponents]=\"mainFrameworkComponents\" [gridOptions]=\"gridOptions\">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf=\"mainConfig.paginator && mainGridReady\" [agGrid]=\"agGrid\"></app-paginator>\n </div>\n <br>\n <!-- <div>\n <app-title-subtitle *ngIf=\"footerConfig.showTitle\" [title]=\"footerConfig.title\"\n [subtitle]=\"footerConfig.subtitle\"></app-title-subtitle>\n\n <app-actions *ngIf=\"footerConfig.export\" [title]=\"footerConfig.title\" [export]=\"footerConfig.export\"\n [agGrid]=\"agGridFooter\"></app-actions>\n\n <button *ngIf=\"footerConfig.filters\" (click)=\"showFilter()\"> <fa-icon class=\"icon\" [icon]=\"['fas', 'filter']\"></fa-icon> Filtros</button>\n <div *ngIf=\"footerConfig.filters\">\n <app-filters *ngIf=\"showFilters\" [filters]=\"footerConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n \n <app-paginator *ngIf=\"footerConfig.paginator && footerGridReady\" [agGrid]=\"agGridFooter\">\n </app-paginator>\n\n </div> -->\n\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class=\"error-panel\">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf=\"!OpenNewTab\" mat-raised-button class=\"back-button\" (click)=\"goBack()\">Volver</button>\n </div>\n </ng-template>\n\n</div>", | ||
animations: [ | ||
@@ -402,2 +402,3 @@ trigger('isFiltersVisible', [ | ||
reportIdInput: [{ type: Input }], | ||
content: [{ type: ViewChild, args: ['content', { static: false },] }], | ||
agGrid: [{ type: ViewChild, args: ['agGrid', { static: false },] }], | ||
@@ -416,2 +417,4 @@ agGridFooter: [{ type: ViewChild, args: ['agGridFooter', { static: false },] }] | ||
/** @type {?} */ | ||
AppComponent.prototype.content; | ||
/** @type {?} */ | ||
AppComponent.prototype.reportListFlag; | ||
@@ -527,2 +530,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3ZrLXJlcG9ydHMvIiwic291cmNlcyI6WyJsaWIvcmVwb3J0cy9hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBRXZJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXVCMUQsTUFBTSxPQUFPLFlBQVk7Ozs7Ozs7SUFpRXZCLFlBQXFCLGFBQTRCLEVBQzdCLEtBQWtCLEVBQ2pCLE9BQTBCLEVBQzFCLE1BQWlCO1FBSGpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWhFN0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixrQkFBYSxHQUFXLElBQUksQ0FBQzs7UUFHdEMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFPdEIsY0FBUyxHQUFHLEtBQUssQ0FBQzs7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eEIscUNBQWM7O0lBQ2QsMkNBQW9COztJQUNwQixpREFBMEI7O0lBRTFCLDJDQUFvQjs7SUFDcEIscUNBQWM7O0lBRWQsaUNBQTJDOzs7OztJQUUzQyxtREFBa0Q7Ozs7O0lBQ2xELGlEQUFnRDs7Ozs7SUFDaEQsdURBQXNEOzs7OztJQUN0RCx3REFBdUQ7Ozs7O0lBQ3ZELDREQUEyRDs7SUFFM0QsOEJBQThEOztJQUM5RCxvQ0FBMEU7Ozs7O0lBRTdELHFDQUFvQzs7SUFDcEMsNkJBQXlCOzs7OztJQUN6QiwrQkFBa0M7Ozs7O0lBQ2xDLDhCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQgeyBNYXRTbmFja0JhciwgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBOZ3hTcGlubmVyU2VydmljZSB9IGZyb20gJ25neC1zcGlubmVyJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTdWJSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVwb3J0L2NvbXBvbmVudHMvc3ViLXJlcG9ydC9zdWItcmVwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21pemVkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9jdXN0b21pemVkLWNlbGwvY3VzdG9taXplZC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21pemVkQnV0dG9uQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9jdXN0b21pemVkLWJ1dHRvbi1jZWxsL2N1c3RvbWl6ZWQtYnV0dG9uLWNlbGwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBJQ2F0ZWdvcnkgfSBmcm9tICcuL21vZGVscy9jYXRlZ29yeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVJlcG9ydHMgfSBmcm9tICcuL21vZGVscy9yZXBvcnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJQWxsUmVwb3J0cyB9IGZyb20gJy4vbW9kZWxzL2FsbC1yZXBvcnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvcmVwb3J0LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnRDb25maWcgfSBmcm9tICcuL21vZGVscy9nZW5lcmFsLXJlcG9ydC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHZW5lcmFsUmVwb3J0RGF0YSB9IGZyb20gJy4vbW9kZWxzL2dyaWQtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZE9wdGlvbnMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JlcG9ydHMtbGliJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignaXNGaWx0ZXJzVmlzaWJsZScsIFtcbiAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZVkoMS4wKScsIHRyYW5zZm9ybU9yaWdpbjogJ3RvcCBjZW50ZXInLCBwb3NpdGlvbjogJ2luaGVyaXQnIH0pKSxcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGVZKDAuMCknLCB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgY2VudGVyJywgcG9zaXRpb246ICdhYnNvbHV0ZScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignMSA9PiAwJywgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgICB0cmFuc2l0aW9uKCcwID0+IDEnLCBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcpKVxuICAgIF0pXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIFxuICBASW5wdXQoKSBBcGlCYXNlVXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIEBJbnB1dCgpIE9wZW5OZXdUYWI6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSByZXBvcnRJZElucHV0OiBudW1iZXIgPSBudWxsO1xuICBcbiAgLy8gUkVQT1JUIExJU1RcbiAgcmVwb3J0TGlzdEZsYWcgPSB0cnVlO1xuICBcbiAgY2F0ZWdvcmllczogSUNhdGVnb3J5W107XG4gIHJlcG9ydHM6IElSZXBvcnRzW107XG4gIFxuICBmaWx0ZXJlZFJlcG9ydHM6IElSZXBvcnRzW107XG4gIFxuICBkYXRhUmVhZHkgPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIFxuICAvLyBSRVBPUlRcbiAgcmVwb3J0RmxhZyA9IGZhbHNlO1xuICBcbiAgbWFpbkNvbmZpZzogSVJlcG9ydENvbmZpZztcbiAgZm9vdGVyQ29uZmlnOiBJUmVwb3J0Q29uZmlnO1xuICBcbiAgY29uZmlnTG9hZGluZyA9IHRydWU7XG4gIGRhdGFMb2FkaW5nID0gZmFsc2U7XG4gIGVycm9yID0gZmFsc2U7XG4gIFxuICBpZFJlcG9ydDogbnVtYmVyO1xuICBcbiAgc2hvd0ZpbHRlcnMgPSBmYWxzZTtcbiAgZmlsdGVyc0ZsYWcgPSBmYWxzZTtcbiAgXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgbWFpblJvd0RhdGE6IGFueTtcbiAgZm9vdGVyUm93RGF0YTogYW55O1xuICBtYWluQ29sdW1uRGVmczogYW55O1xuICBmb290ZXJDb2x1bW5EZWZzOiBhbnk7XG4gIGRlZmF1bHRDb2xEZWY7XG5cbiAgZm9vdGVyR3JpZFJlYWR5ID0gZmFsc2U7XG4gIG1haW5HcmlkUmVhZHkgPSBmYWxzZTtcblxuICBtYWluR3JpZEFwaTtcbiAgbWFpbkdyaWRDb2x1bW5BcGk7XG4gIG1haW5GcmFtZXdvcmtDb21wb25lbnRzO1xuXG4gIGZvb3RlckdyaWRBcGk7XG4gIGZvb3RlckdyaWRDb2x1bW5BcGk7XG4gIGZvb3RlckZyYW1ld29ya0NvbXBvbmVudHM7XG5cbiAgZnJhbWV3b3JrQ29tcG9uZW50cztcbiAgc3ViUmVwb3J0RGF0YTtcblxuICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTdWJSZXBvcnRDb21wb25lbnQ+XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZERhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBnZXRSZXBvcnREYXRhU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3BlblN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGNsb3NlU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2hvd0Vycm9yU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnYWdHcmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFnR3JpZDogQWdHcmlkQW5ndWxhcjtcbiAgQFZpZXdDaGlsZCgnYWdHcmlkRm9vdGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFnR3JpZEZvb3RlcjogQWdHcmlkQW5ndWxhcjtcblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSByZXBvcnRTZXJ2aWNlOiBSZXBvcnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgcHVibGljIHNuYWNrOiBNYXRTbmFja0JhcixcbiAgICAgICAgICAgICAgIHByaXZhdGUgc3Bpbm5lcjogTmd4U3Bpbm5lclNlcnZpY2UsXG4gICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nICkge1xuXG4gICAgLy8gUkVQT1JUXG4gICAgdGhpcy5kZWZhdWx0Q29sRGVmID0ge1xuICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgbWluV2lkdGg6IDVcbiAgICB9O1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIHJvd0hlaWdodDogMzRcbiAgICB9XG5cbiAgICAvLyB0aGlzLk9wZW5OZXdUYWIgPSB0aGlzLnJlcG9ydFNlcnZpY2Uub3Blbk5ld1RhYjtcbiAgICAvLyB0aGlzLnJlcG9ydFNlcnZpY2Uub3Blbk5ld1RhYiA9IHRoaXMuT3Blbk5ld1RhYjtcblxuICAgIHRoaXMuZ2V0RmlsdGVyZWREYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLmdldEZpbHRlcmVkRGF0YUV2ZW50XG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZ2V0UmVwb3J0RGF0YSh0aGlzLmlkUmVwb3J0LCB0cnVlKSk7XG5cbiAgICB0aGlzLmdldFJlcG9ydERhdGFTdWJzY3JpcHRpb24gPSB0aGlzLnJlcG9ydFNlcnZpY2UubG9hZFJlcG9ydERhdGFFdmVudFxuICAgICAgLnN1YnNjcmliZSgocmVwb3J0SWQpID0+IHtcbiAgICAgICAgdGhpcy5pZFJlcG9ydCA9IHJlcG9ydElkO1xuICAgICAgICB0aGlzLmxvYWRSZXBvcnQocmVwb3J0SWQpXG4gICAgICB9KTtcblxuICAgIHRoaXMub3BlblN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5vcGVuU3ViUmVwb3J0RGlhbG9nRXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoKGNlbGx2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2Uuc3ViUmVwb3J0RGF0YSA9IGNlbGx2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuU3ViUmVwb3J0KCk7XG4gICAgICB9KVxuXG4gICAgdGhpcy5jbG9zZVN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5jbG9zZVN1YlJlcG9ydERpYWxvZ0V2ZW50XG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZVN1YlJlcG9ydCgpO1xuICAgICAgfSlcbiAgICB0aGlzLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5zaG93RXJyb3JTdWJSZXBvcnREaWFsb2dFdmVudFxuICAgICAgLnN1YnNjcmliZSgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuU25hY2tCYXIoZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5hcGlCYXNlVXJsID0gdGhpcy5BcGlCYXNlVXJsO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5vcGVuTmV3VGFiID0gdGhpcy5PcGVuTmV3VGFiO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5hY2Nlc3NUb2tlbiA9IHRoaXMuYWNjZXNzVG9rZW47XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnJlc2V0RmlsdGVyVmFsdWVzKCk7XG5cbiAgICAvLyBSRVBPUlQgTElTVFxuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG5cbiAgICAvLyBSRVBPUlRcbiAgICB0aGlzLmZvb3RlckZyYW1ld29ya0NvbXBvbmVudHMgPSB7XG4gICAgICBjdXN0b21pemVkQ2VsbDogQ3VzdG9taXplZENlbGxDb21wb25lbnQsXG4gICAgfVxuICAgIHRoaXMubWFpbkZyYW1ld29ya0NvbXBvbmVudHMgPSB7XG4gICAgICBjdXN0b21pemVkQ2VsbDogQ3VzdG9taXplZENlbGxDb21wb25lbnQsXG4gICAgICBjdXN0b21pemVkQnV0dG9uQ2VsbDogQ3VzdG9taXplZEJ1dHRvbkNlbGxDb21wb25lbnRcblxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcG9ydElkSW5wdXQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuaWRSZXBvcnQgPSB0aGlzLnJlcG9ydElkSW5wdXQ7XG4gICAgICB0aGlzLmxvYWRSZXBvcnQodGhpcy5pZFJlcG9ydCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXRBbGxSZXBvcnRzKCk7XG4gIH1cblxuICAvLyBSRVBPUlQgTElTVFxuICBnZXRBbGxSZXBvcnRzKCkge1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRSZXBvcnRzKCkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlOiBJQWxsUmVwb3J0cykgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlc3BvbnNlLmRhdGEuY2F0ZWdvcmllcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgICAgICAgdGhpcy5yZXBvcnRzID0gcmVzcG9uc2UuZGF0YS5yZXBvcnRzO1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWRSZXBvcnRzID0gdGhpcy5yZXBvcnRzO1xuICAgICAgICAgIHRoaXMuZGF0YVJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xuICAgICAgICAgIHRoaXMub3BlblNuYWNrQmFyKHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGdldFJlcG9ydHNGcm9tQ2F0ZWdvcnkoaWQ6IG51bWJlcik6IElSZXBvcnRzW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkUmVwb3J0cy5maWx0ZXIociA9PiByLmNhdGVnb3J5ID09PSBpZCkuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICB9XG5cbiAgb25TZWFyY2hDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyZWRSZXBvcnRzID0gdGhpcy5yZXBvcnRzLlxuICAgICAgZmlsdGVyKHIgPT4gKHIudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhldmVudC50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgfHwgci5zdWJ0aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIG9wZW5TbmFja0JhcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNuYWNrLm9wZW4obWVzc2FnZSwgJ0NlcnJhcicsIHsgZHVyYXRpb246IDUwMDAgfSk7XG4gIH1cblxuICAvLyBSRVBPUlRcbiAgbG9hZFJlcG9ydChyZXBvcnRJZCkge1xuICAgIHRoaXMuZ2V0UmVwb3J0KHJlcG9ydElkKTtcbiAgICB0aGlzLnJlcG9ydExpc3RGbGFnID0gZmFsc2U7XG4gICAgdGhpcy5yZXBvcnRGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlcnNGbGFnID0gZmFsc2U7XG4gIH1cblxuICBnZXRSZXBvcnQocmVwb3J0SWQpIHtcbiAgICB0aGlzLnNwaW5uZXIuc2hvdygpO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRDb25maWcocmVwb3J0SWQpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnRDb25maWcpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5tYWluQ29uZmlnID0gcmVzcG9uc2UuZGF0YS5tYWluQ29uZmlnO1xuICAgICAgICAgIGlmICh0aGlzLm1haW5Db25maWcuZmlsdGVycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyc0ZsYWcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZvb3RlckNvbmZpZyA9IHJlc3BvbnNlLmRhdGEuZm9vdGVyQ29uZmlnO1xuICAgICAgICAgIHRoaXMuY29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ2V0UmVwb3J0RGF0YShyZXBvcnRJZCwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFJlcG9ydERhdGEocmVwb3J0SWQ6IG51bWJlciwgZmlsdGVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNwaW5uZXIuc2hvdygpO1xuICAgIHRoaXMuZGF0YUxvYWRpbmcgPSB0cnVlO1xuICAgIGlmIChmaWx0ZXJlZCkge1xuICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldERhdGEocmVwb3J0SWQsIGZpbHRlcmVkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydERhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLm1haW5HcmlkUmVhZHkgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1haW5Db2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5tYWluSGVhZGVycztcbiAgICAgICAgICB0aGlzLmZvb3RlckNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLmZvb3RlckhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5tYWluUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEubWFpbkRhdGE7XG4gICAgICAgICAgdGhpcy5mb290ZXJSb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5mb290ZXJEYXRhO1xuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS51cGRhdGVQYWdpbmF0b3JEYXRhRXZlbnQuZW1pdCgpO1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLnNob3dGaWx0ZXIoKTtcbiAgICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UucmVzZXRGaWx0ZXJWYWx1ZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXREYXRhKHJlcG9ydElkLCBmaWx0ZXJlZCkuc3Vic2NyaWJlKChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnREYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5tYWluQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEubWFpbkhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5mb290ZXJDb2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5mb290ZXJIZWFkZXJzO1xuICAgICAgICAgIHRoaXMubWFpblJvd0RhdGEgPSByZXNwb25zZS5kYXRhLm1haW5EYXRhO1xuICAgICAgICAgIHRoaXMuZm9vdGVyUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEuZm9vdGVyRGF0YTtcbiAgICAgICAgICB0aGlzLmRhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkdyaWRSZWFkeShwYXJhbXMpIHtcbiAgICB0aGlzLm1haW5HcmlkQXBpID0gcGFyYW1zLmFwaTtcbiAgICB0aGlzLm1haW5HcmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcbiAgICBwYXJhbXMuYXBpLnNldFJvd0RhdGEodGhpcy5tYWluUm93RGF0YSk7XG4gICAgdGhpcy5tYWluR3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xuICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0RG9tTGF5b3V0KFwiYXV0b0hlaWdodFwiKTtcbiAgICB0aGlzLm1haW5HcmlkUmVhZHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLm1haW5Db25maWcubm9IZWFkZXIpIHtcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0SGVhZGVySGVpZ2h0KDApO1xuICAgIH07XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmF1dG9TaXplQWxsKCk7XG4gICAgfSwgMzAwKVxuICB9XG5cbiAgYXV0b1NpemVBbGwoKSB7XG4gICAgdmFyIGFsbENvbHVtbklkcyA9IFtdO1xuICAgIHRoaXMubWFpbkdyaWRDb2x1bW5BcGkuZ2V0QWxsQ29sdW1ucygpLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgaWYgKGNvbHVtbi51c2VyUHJvdmlkZWRDb2xEZWYuY2VsbFJlbmRlcmVyICE9ICdjdXN0b21pemVkQnV0dG9uQ2VsbCcpIHtcbiAgICAgICAgYWxsQ29sdW1uSWRzLnB1c2goY29sdW1uLmNvbElkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1haW5HcmlkQ29sdW1uQXBpLmF1dG9TaXplQ29sdW1ucyhhbGxDb2x1bW5JZHMpO1xuICB9XG5cbiAgb25HcmlkRm9vdGVyUmVhZHkocGFyYW1zKSB7XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpID0gcGFyYW1zLmFwaTtcbiAgICB0aGlzLmZvb3RlckdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLmZvb3RlclJvd0RhdGEpO1xuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zZXREb21MYXlvdXQoXCJhdXRvSGVpZ2h0XCIpO1xuICAgIHRoaXMuZm9vdGVyR3JpZFJlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb290ZXJDb25maWcubm9IZWFkZXIpIHtcbiAgICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zZXRIZWFkZXJIZWlnaHQoMCk7XG4gICAgfVxuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gIH1cblxuICBzaG93RmlsdGVyKCkge1xuICAgIHRoaXMuc2hvd0ZpbHRlcnMgPSAhdGhpcy5zaG93RmlsdGVycztcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLnJlcG9ydExpc3RGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLnJlcG9ydEZsYWcgPSBmYWxzZTtcbiAgICB0aGlzLmNvbmZpZ0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zaG93RmlsdGVycyA9IGZhbHNlO1xuICAgIHRoaXMuZm9vdGVyR3JpZFJlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5tYWluR3JpZFJlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5kYXRhUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLnNwaW5uZXIuc2hvdygpO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5yZXNldEZpbHRlclZhbHVlcygpO1xuICAgIHRoaXMuZ2V0QWxsUmVwb3J0cygpO1xuICB9XG5cbiAgb3BlblN1YlJlcG9ydCgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU3ViUmVwb3J0Q29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnOTAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdmdWxsLXdpZHRoLWRpYWxvZydcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlU3ViUmVwb3J0KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3ZrLXJlcG9ydHMvIiwic291cmNlcyI6WyJsaWIvcmVwb3J0cy9hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUV2SSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFzQjFELE1BQU0sT0FBTyxZQUFZOzs7Ozs7O0lBbUV2QixZQUFxQixhQUE0QixFQUM3QixLQUFrQixFQUNqQixPQUEwQixFQUMxQixNQUFpQjtRQUhqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFsRTdCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxJQUFJLENBQUM7O1FBS3RDLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBT3RCLGNBQVMsR0FBRyxL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Q0FBYzs7SUFFZCx1Q0FBd0I7O0lBQ3hCLHFDQUFzQjs7SUFFdEIsbUNBQVk7O0lBQ1oseUNBQWtCOztJQUNsQiwrQ0FBd0I7O0lBRXhCLHFDQUFjOztJQUNkLDJDQUFvQjs7SUFDcEIsaURBQTBCOztJQUUxQiwyQ0FBb0I7O0lBQ3BCLHFDQUFjOztJQUVkLGlDQUEyQzs7Ozs7SUFFM0MsbURBQWtEOzs7OztJQUNsRCxpREFBZ0Q7Ozs7O0lBQ2hELHVEQUFzRDs7Ozs7SUFDdEQsd0RBQXVEOzs7OztJQUN2RCw0REFBMkQ7O0lBRTNELDhCQUE4RDs7SUFDOUQsb0NBQTBFOzs7OztJQUU3RCxxQ0FBb0M7O0lBQ3BDLDZCQUF5Qjs7Ozs7SUFDekIsK0JBQWtDOzs7OztJQUNsQyw4QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuaW1wb3J0IHsgTWF0U25hY2tCYXIsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgTmd4U3Bpbm5lclNlcnZpY2UgfSBmcm9tICduZ3gtc3Bpbm5lcic7XG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRPcHRpb25zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQgeyBTdWJSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVwb3J0L2NvbXBvbmVudHMvc3ViLXJlcG9ydC9zdWItcmVwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21pemVkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9jdXN0b21pemVkLWNlbGwvY3VzdG9taXplZC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21pemVkQnV0dG9uQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9jdXN0b21pemVkLWJ1dHRvbi1jZWxsL2N1c3RvbWl6ZWQtYnV0dG9uLWNlbGwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBJQ2F0ZWdvcnkgfSBmcm9tICcuL21vZGVscy9jYXRlZ29yeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVJlcG9ydHMgfSBmcm9tICcuL21vZGVscy9yZXBvcnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJQWxsUmVwb3J0cyB9IGZyb20gJy4vbW9kZWxzL2FsbC1yZXBvcnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvcmVwb3J0LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnRDb25maWcgfSBmcm9tICcuL21vZGVscy9nZW5lcmFsLXJlcG9ydC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHZW5lcmFsUmVwb3J0RGF0YSB9IGZyb20gJy4vbW9kZWxzL2dyaWQtZGF0YS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyZXBvcnRzLWxpYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2lzRmlsdGVyc1Zpc2libGUnLCBbXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGVZKDEuMCknLCB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgY2VudGVyJywgcG9zaXRpb246ICdpbmhlcml0JyB9KSksXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlWSgwLjApJywgdHJhbnNmb3JtT3JpZ2luOiAndG9wIGNlbnRlcicsIHBvc2l0aW9uOiAnYWJzb2x1dGUnIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJzEgPT4gMCcsIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4tb3V0JykpLFxuICAgICAgdHJhbnNpdGlvbignMCA9PiAxJywgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnKSlcbiAgICBdKVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBcbiAgQElucHV0KCkgQXBpQmFzZVVybDogc3RyaW5nO1xuICBASW5wdXQoKSBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBASW5wdXQoKSBPcGVuTmV3VGFiOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVwb3J0SWRJbnB1dDogbnVtYmVyID0gbnVsbDtcblxuICBAVmlld0NoaWxkKCdjb250ZW50Jywge3N0YXRpYzogZmFsc2V9KSBjb250ZW50OiBFbGVtZW50UmVmO1xuICBcbiAgLy8gUkVQT1JUIExJU1RcbiAgcmVwb3J0TGlzdEZsYWcgPSB0cnVlO1xuICBcbiAgY2F0ZWdvcmllczogSUNhdGVnb3J5W107XG4gIHJlcG9ydHM6IElSZXBvcnRzW107XG4gIFxuICBmaWx0ZXJlZFJlcG9ydHM6IElSZXBvcnRzW107XG4gIFxuICBkYXRhUmVhZHkgPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIFxuICAvLyBSRVBPUlRcbiAgcmVwb3J0RmxhZyA9IGZhbHNlO1xuICBcbiAgbWFpbkNvbmZpZzogSVJlcG9ydENvbmZpZztcbiAgZm9vdGVyQ29uZmlnOiBJUmVwb3J0Q29uZmlnO1xuICBcbiAgY29uZmlnTG9hZGluZyA9IHRydWU7XG4gIGRhdGFMb2FkaW5nID0gZmFsc2U7XG4gIGVycm9yID0gZmFsc2U7XG4gIFxuICBpZFJlcG9ydDogbnVtYmVyO1xuICBcbiAgc2hvd0ZpbHRlcnMgPSBmYWxzZTtcbiAgZmlsdGVyc0ZsYWcgPSBmYWxzZTtcbiAgXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgbWFpblJvd0RhdGE6IGFueTtcbiAgZm9vdGVyUm93RGF0YTogYW55O1xuICBtYWluQ29sdW1uRGVmczogYW55O1xuICBmb290ZXJDb2x1bW5EZWZzOiBhbnk7XG4gIGRlZmF1bHRDb2xEZWY7XG5cbiAgZm9vdGVyR3JpZFJlYWR5ID0gZmFsc2U7XG4gIG1haW5HcmlkUmVhZHkgPSBmYWxzZTtcblxuICBtYWluR3JpZEFwaTtcbiAgbWFpbkdyaWRDb2x1bW5BcGk7XG4gIG1haW5GcmFtZXdvcmtDb21wb25lbnRzO1xuXG4gIGZvb3RlckdyaWRBcGk7XG4gIGZvb3RlckdyaWRDb2x1bW5BcGk7XG4gIGZvb3RlckZyYW1ld29ya0NvbXBvbmVudHM7XG5cbiAgZnJhbWV3b3JrQ29tcG9uZW50cztcbiAgc3ViUmVwb3J0RGF0YTtcblxuICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTdWJSZXBvcnRDb21wb25lbnQ+XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZERhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBnZXRSZXBvcnREYXRhU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3BlblN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGNsb3NlU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2hvd0Vycm9yU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnYWdHcmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFnR3JpZDogQWdHcmlkQW5ndWxhcjtcbiAgQFZpZXdDaGlsZCgnYWdHcmlkRm9vdGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFnR3JpZEZvb3RlcjogQWdHcmlkQW5ndWxhcjtcblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSByZXBvcnRTZXJ2aWNlOiBSZXBvcnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgcHVibGljIHNuYWNrOiBNYXRTbmFja0JhcixcbiAgICAgICAgICAgICAgIHByaXZhdGUgc3Bpbm5lcjogTmd4U3Bpbm5lclNlcnZpY2UsXG4gICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nICkge1xuXG4gICAgLy8gUkVQT1JUXG4gICAgdGhpcy5kZWZhdWx0Q29sRGVmID0ge1xuICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgbWluV2lkdGg6IDVcbiAgICB9O1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIHJvd0hlaWdodDogMzRcbiAgICB9XG5cbiAgICAvLyB0aGlzLk9wZW5OZXdUYWIgPSB0aGlzLnJlcG9ydFNlcnZpY2Uub3Blbk5ld1RhYjtcbiAgICAvLyB0aGlzLnJlcG9ydFNlcnZpY2Uub3Blbk5ld1RhYiA9IHRoaXMuT3Blbk5ld1RhYjtcblxuICAgIHRoaXMuZ2V0RmlsdGVyZWREYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLmdldEZpbHRlcmVkRGF0YUV2ZW50XG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZ2V0UmVwb3J0RGF0YSh0aGlzLmlkUmVwb3J0LCB0cnVlKSk7XG5cbiAgICB0aGlzLmdldFJlcG9ydERhdGFTdWJzY3JpcHRpb24gPSB0aGlzLnJlcG9ydFNlcnZpY2UubG9hZFJlcG9ydERhdGFFdmVudFxuICAgICAgLnN1YnNjcmliZSgocmVwb3J0SWQpID0+IHtcbiAgICAgICAgdGhpcy5pZFJlcG9ydCA9IHJlcG9ydElkO1xuICAgICAgICB0aGlzLmxvYWRSZXBvcnQocmVwb3J0SWQpXG4gICAgICB9KTtcblxuICAgIHRoaXMub3BlblN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5vcGVuU3ViUmVwb3J0RGlhbG9nRXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoKGNlbGx2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2Uuc3ViUmVwb3J0RGF0YSA9IGNlbGx2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuU3ViUmVwb3J0KCk7XG4gICAgICB9KVxuXG4gICAgdGhpcy5jbG9zZVN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5jbG9zZVN1YlJlcG9ydERpYWxvZ0V2ZW50XG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZVN1YlJlcG9ydCgpO1xuICAgICAgfSlcbiAgICB0aGlzLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ1N1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5zaG93RXJyb3JTdWJSZXBvcnREaWFsb2dFdmVudFxuICAgICAgLnN1YnNjcmliZSgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuU25hY2tCYXIoZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5hcGlCYXNlVXJsID0gdGhpcy5BcGlCYXNlVXJsO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5vcGVuTmV3VGFiID0gdGhpcy5PcGVuTmV3VGFiO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5hY2Nlc3NUb2tlbiA9IHRoaXMuYWNjZXNzVG9rZW47XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnJlc2V0RmlsdGVyVmFsdWVzKCk7XG5cbiAgICAvLyBSRVBPUlQgTElTVFxuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG5cbiAgICAvLyBSRVBPUlRcbiAgICB0aGlzLmZvb3RlckZyYW1ld29ya0NvbXBvbmVudHMgPSB7XG4gICAgICBjdXN0b21pemVkQ2VsbDogQ3VzdG9taXplZENlbGxDb21wb25lbnQsXG4gICAgfVxuICAgIHRoaXMubWFpbkZyYW1ld29ya0NvbXBvbmVudHMgPSB7XG4gICAgICBjdXN0b21pemVkQ2VsbDogQ3VzdG9taXplZENlbGxDb21wb25lbnQsXG4gICAgICBjdXN0b21pemVkQnV0dG9uQ2VsbDogQ3VzdG9taXplZEJ1dHRvbkNlbGxDb21wb25lbnRcblxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcG9ydElkSW5wdXQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuaWRSZXBvcnQgPSB0aGlzLnJlcG9ydElkSW5wdXQ7XG4gICAgICB0aGlzLmxvYWRSZXBvcnQodGhpcy5pZFJlcG9ydCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXRBbGxSZXBvcnRzKCk7XG4gIH1cblxuICAvLyBSRVBPUlQgTElTVFxuICBnZXRBbGxSZXBvcnRzKCkge1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRSZXBvcnRzKCkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlOiBJQWxsUmVwb3J0cykgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlc3BvbnNlLmRhdGEuY2F0ZWdvcmllcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgICAgICAgdGhpcy5yZXBvcnRzID0gcmVzcG9uc2UuZGF0YS5yZXBvcnRzO1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWRSZXBvcnRzID0gdGhpcy5yZXBvcnRzO1xuICAgICAgICAgIHRoaXMuZGF0YVJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xuICAgICAgICAgIHRoaXMub3BlblNuYWNrQmFyKHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGdldFJlcG9ydHNGcm9tQ2F0ZWdvcnkoaWQ6IG51bWJlcik6IElSZXBvcnRzW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkUmVwb3J0cy5maWx0ZXIociA9PiByLmNhdGVnb3J5ID09PSBpZCkuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICB9XG5cbiAgb25TZWFyY2hDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyZWRSZXBvcnRzID0gdGhpcy5yZXBvcnRzLlxuICAgICAgZmlsdGVyKHIgPT4gKHIudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhldmVudC50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgfHwgci5zdWJ0aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIG9wZW5TbmFja0JhcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNuYWNrLm9wZW4obWVzc2FnZSwgJ0NlcnJhcicsIHsgZHVyYXRpb246IDUwMDAgfSk7XG4gIH1cblxuICAvLyBSRVBPUlRcbiAgbG9hZFJlcG9ydChyZXBvcnRJZCkge1xuICAgIHRoaXMuZ2V0UmVwb3J0KHJlcG9ydElkKTtcbiAgICB0aGlzLnJlcG9ydExpc3RGbGFnID0gZmFsc2U7XG4gICAgdGhpcy5yZXBvcnRGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlcnNGbGFnID0gZmFsc2U7XG4gIH1cblxuICBnZXRSZXBvcnQocmVwb3J0SWQpIHtcbiAgICB0aGlzLnNwaW5uZXIuc2hvdygpO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRDb25maWcocmVwb3J0SWQpLnN1YnNjcmliZShcbiAgICAgIChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnRDb25maWcpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5tYWluQ29uZmlnID0gcmVzcG9uc2UuZGF0YS5tYWluQ29uZmlnO1xuICAgICAgICAgIGlmICh0aGlzLm1haW5Db25maWcuZmlsdGVycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyc0ZsYWcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZvb3RlckNvbmZpZyA9IHJlc3BvbnNlLmRhdGEuZm9vdGVyQ29uZmlnO1xuICAgICAgICAgIHRoaXMuY29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ2V0UmVwb3J0RGF0YShyZXBvcnRJZCwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFJlcG9ydERhdGEocmVwb3J0SWQ6IG51bWJlciwgZmlsdGVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNwaW5uZXIuc2hvdygpO1xuICAgIHRoaXMuZGF0YUxvYWRpbmcgPSB0cnVlO1xuICAgIGlmIChmaWx0ZXJlZCkge1xuICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldERhdGEocmVwb3J0SWQsIGZpbHRlcmVkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydERhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLm1haW5HcmlkUmVhZHkgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1haW5Db2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5tYWluSGVhZGVycztcbiAgICAgICAgICB0aGlzLmZvb3RlckNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLmZvb3RlckhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5tYWluUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEubWFpbkRhdGE7XG4gICAgICAgICAgdGhpcy5mb290ZXJSb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5mb290ZXJEYXRhO1xuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS51cGRhdGVQYWdpbmF0b3JEYXRhRXZlbnQuZW1pdCgpO1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLnNob3dGaWx0ZXIoKTtcbiAgICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UucmVzZXRGaWx0ZXJWYWx1ZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXREYXRhKHJlcG9ydElkLCBmaWx0ZXJlZCkuc3Vic2NyaWJlKChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnREYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5tYWluQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEubWFpbkhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5mb290ZXJDb2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5mb290ZXJIZWFkZXJzO1xuICAgICAgICAgIHRoaXMubWFpblJvd0RhdGEgPSByZXNwb25zZS5kYXRhLm1haW5EYXRhO1xuICAgICAgICAgIHRoaXMuZm9vdGVyUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEuZm9vdGVyRGF0YTtcbiAgICAgICAgICB0aGlzLmRhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkdyaWRSZWFkeShwYXJhbXMpIHtcbiAgICB0aGlzLm1haW5HcmlkQXBpID0gcGFyYW1zLmFwaTtcbiAgICB0aGlzLm1haW5HcmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcbiAgICBwYXJhbXMuYXBpLnNldFJvd0RhdGEodGhpcy5tYWluUm93RGF0YSk7XG4gICAgdGhpcy5tYWluR3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xuICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0RG9tTGF5b3V0KFwiYXV0b0hlaWdodFwiKTtcbiAgICB0aGlzLm1haW5HcmlkUmVhZHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLm1haW5Db25maWcubm9IZWFkZXIpIHtcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0SGVhZGVySGVpZ2h0KDApO1xuICAgIH07XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmF1dG9TaXplQWxsKCk7XG4gICAgfSwgMzAwKVxuICB9XG5cbiAgYXV0b1NpemVBbGwoKSB7XG4gICAgdmFyIGFsbENvbHVtbklkcyA9IFtdO1xuICAgIHRoaXMubWFpbkdyaWRDb2x1bW5BcGkuZ2V0QWxsQ29sdW1ucygpLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgaWYgKGNvbHVtbi51c2VyUHJvdmlkZWRDb2xEZWYuY2VsbFJlbmRlcmVyICE9ICdjdXN0b21pemVkQnV0dG9uQ2VsbCcpIHtcbiAgICAgICAgYWxsQ29sdW1uSWRzLnB1c2goY29sdW1uLmNvbElkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1haW5HcmlkQ29sdW1uQXBpLmF1dG9TaXplQ29sdW1ucyhhbGxDb2x1bW5JZHMpO1xuICB9XG5cbiAgb25HcmlkRm9vdGVyUmVhZHkocGFyYW1zKSB7XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpID0gcGFyYW1zLmFwaTtcbiAgICB0aGlzLmZvb3RlckdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLmZvb3RlclJvd0RhdGEpO1xuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zZXREb21MYXlvdXQoXCJhdXRvSGVpZ2h0XCIpO1xuICAgIHRoaXMuZm9vdGVyR3JpZFJlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb290ZXJDb25maWcubm9IZWFkZXIpIHtcbiAgICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zZXRIZWFkZXJIZWlnaHQoMCk7XG4gICAgfVxuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gIH1cblxuICBzaG93RmlsdGVyKCkge1xuICAgIHRoaXMuc2hvd0ZpbHRlcnMgPSAhdGhpcy5zaG93RmlsdGVycztcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLnJlcG9ydExpc3RGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLnJlcG9ydEZsYWcgPSBmYWxzZTtcbiAgICB0aGlzLmNvbmZpZ0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zaG93RmlsdGVycyA9IGZhbHNlO1xuICAgIHRoaXMuZm9vdGVyR3JpZFJlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5tYWluR3JpZFJlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5kYXRhUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLnNwaW5uZXIuc2hvdygpO1xuICAgIHRoaXMucmVwb3J0U2VydmljZS5yZXNldEZpbHRlclZhbHVlcygpO1xuICAgIHRoaXMuZ2V0QWxsUmVwb3J0cygpO1xuICB9XG5cbiAgb3BlblN1YlJlcG9ydCgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU3ViUmVwb3J0Q29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnOTAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdmdWxsLXdpZHRoLWRpYWxvZydcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlU3ViUmVwb3J0KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxufVxuIl19 |
@@ -15,2 +15,3 @@ /** | ||
this.gridReady = false; | ||
this.footerGridReady = false; | ||
this.dataGridReady = false; | ||
@@ -24,2 +25,5 @@ this.loading = true; | ||
}; | ||
this.footerFrameworkComponents = { | ||
customizedCell: CustomizedCellComponent | ||
}; | ||
this.subReportId = this.reportService.subReportData.id; | ||
@@ -69,2 +73,4 @@ /** @type {?} */ | ||
this.mainRowData = response.data.mainData; | ||
this.footerColumnDefs = response.data.footerHeaders; | ||
this.footerRowData = response.data.footerData; | ||
this.dataGridReady = true; | ||
@@ -101,4 +107,20 @@ this.loading = false; | ||
/** | ||
* @param {?} params | ||
* @return {?} | ||
*/ | ||
onGridFooterReady(params) { | ||
this.footerGridApi = params.api; | ||
this.footerGridColumnApi = params.columnApi; | ||
params.api.setRowData(this.footerRowData); | ||
this.footerGridApi.paginationSetPageSize(10); | ||
this.footerGridApi.setDomLayout("autoHeight"); | ||
this.footerGridReady = true; | ||
// if (this.footerConfig.noHeader) { | ||
// this.footerGridApi.setHeaderHeight(0); | ||
// } | ||
this.footerGridApi.sizeColumnsToFit(); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
autoSizeAll() { | ||
@@ -126,3 +148,3 @@ /** @type {?} */ | ||
selector: 'app-sub-report', | ||
template: "<ng-container *ngIf=\"loading; else mainTemplate\">\r\n <div class=\"loading\">\r\n <mat-progress-bar color=\"warn\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n \r\n<ng-template #mainTemplate>\r\n \r\n<div *ngIf=\"dataGridReady\">\r\n <div class=\"title-header\">\r\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\r\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\r\n <button mat-icon-button (click)=\" closeDialog()\" aria-label=\"Cerrar reporte\">\r\n <mat-icon aria-hidden=\"false\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"actions-container\">\r\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\r\n [agGrid]=\"agGrid\"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" \r\n [rowData]=\"mainRowData\"\r\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" \r\n rowSelection=\"single\"\r\n pagination=\"true\" [suppressPaginationPanel]=\"true\" \r\n (gridReady)=\"onGridReady($event)\"\r\n [frameworkComponents]=\"mainFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf=\"mainConfig.paginator && gridReady\" [agGrid]=\"agGrid\"></app-paginator>\r\n\r\n</div>\r\n</ng-template>\r\n", | ||
template: "<ng-container *ngIf=\"loading; else mainTemplate\">\r\n <div class=\"loading\">\r\n <mat-progress-bar color=\"warn\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n</ng-container>\r\n\r\n\r\n\r\n<ng-template #mainTemplate>\r\n\r\n <div *ngIf=\"dataGridReady\">\r\n <div class=\"title-header\">\r\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\r\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\r\n <button mat-icon-button (click)=\" closeDialog()\" aria-label=\"Cerrar reporte\">\r\n <mat-icon aria-hidden=\"false\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"actions-container\">\r\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\r\n [agGrid]=\"agGrid\"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\r\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\" pagination=\"true\"\r\n [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\r\n [frameworkComponents]=\"mainFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf=\"mainConfig.paginator && gridReady\" [agGrid]=\"agGrid\"></app-paginator>\r\n\r\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\r\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n </div>\r\n</ng-template>", | ||
styles: [".button-container{text-align:right;margin-bottom:10px}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;padding:10px}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#fff}"] | ||
@@ -143,2 +165,6 @@ }] } | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerGridApi; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerGridColumnApi; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.mainColumnDefs; | ||
@@ -148,4 +174,10 @@ /** @type {?} */ | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerColumnDefs; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerRowData; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.gridReady; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerGridReady; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.dataGridReady; | ||
@@ -157,2 +189,4 @@ /** @type {?} */ | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerFrameworkComponents; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.mainConfig; | ||
@@ -171,2 +205,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1yZXBvcnRzLyIsInNvdXJjZXMiOlsibGliL3JlcG9ydHMvY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9zdWItcmVwb3J0L3N1Yi1yZXBvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVVwRSxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBaUI3QixZQUFxQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVZqRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFVYixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDN0IsY0FBYyxFQUFFLHVCQUF1QjtTQUN4QyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUE7O1lBQ2xELE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1FBQ3RELElBQUksQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FB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YUFBYSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7OztZQWhHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsb2pEQUEwQzs7YUFFM0M7Ozs7WUFUUSxhQUFhOzs7O0lBWXBCLDJDQUFjOztJQUNkLHFDQUFROztJQUNSLDJDQUFjOztJQUNkLDRDQUFlOztJQUNmLHlDQUFZOztJQUNaLHVDQUFrQjs7SUFDbEIsMkNBQXNCOztJQUN0QixxQ0FBZTs7SUFDZixxREFBd0I7O0lBQ3hCLHdDQUFXOztJQUNYLDBDQUFhOztJQUViLHlDQUFvQjs7SUFDcEIsMkNBQXNCOzs7OztJQUVULDJDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1c3RvbWl6ZWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9taXplZC1jZWxsL2N1c3RvbWl6ZWQtY2VsbC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IElHZW5lcmFsUmVwb3J0RGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ncmlkLWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhbC1yZXBvcnQtY29uZmlnLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zdWItcmVwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLXJlcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3ViLXJlcG9ydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJSZXBvcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkZWZhdWx0Q29sRGVmO1xyXG4gIGdyaWRBcGk7XHJcbiAgZ3JpZENvbHVtbkFwaTtcclxuICBtYWluQ29sdW1uRGVmcztcclxuICBtYWluUm93RGF0YTtcclxuICBncmlkUmVhZHkgPSBmYWxzZTtcclxuICBkYXRhR3JpZFJlYWR5ID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IHRydWU7XHJcbiAgbWFpbkZyYW1ld29ya0NvbXBvbmVudHM7XHJcbiAgbWFpbkNvbmZpZztcclxuICBlcnJvck1lc3NhZ2U7XHJcblxyXG4gIHN1YlJlcG9ydElkOiBudW1iZXI7XHJcbiAgZmlsdGVyc0FzSlNPTjogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSByZXBvcnRTZXJ2aWNlOiBSZXBvcnRTZXJ2aWNlKSB7XHJcblxyXG4gICAgdGhpcy5kZWZhdWx0Q29sRGVmID0ge1xyXG4gICAgICByZXNpemFibGU6IHRydWVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5tYWluRnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcclxuICAgICAgY3VzdG9taXplZENlbGw6IEN1c3RvbWl6ZWRDZWxsQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgICB0aGlzLnN1YlJlcG9ydElkID0gdGhpcy5yZXBvcnRTZXJ2aWNlLnN1YlJlcG9ydERhdGEuaWRcclxuICAgIGxldCBmaWx0ZXJzID0gdGhpcy5yZXBvcnRTZXJ2aWNlLnN1YlJlcG9ydERhdGEuZmlsdGVycztcclxuICAgIHRoaXMuZmlsdGVyc0FzSlNPTiA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0U3ViUmVwb3J0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWJSZXBvcnQoKSB7XHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0U3ViUmVwb3J0Q29uZmlnKHRoaXMuc3ViUmVwb3J0SWQpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydENvbmZpZykgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLm1haW5Db25maWcgPSByZXNwb25zZS5kYXRhLm1haW5Db25maWc7XHJcbiAgICAgICAgICB0aGlzLmdldFN1YlJlcG9ydERhdGEoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2Uuc2hvd0Vycm9yU3ViUmVwb3J0RGlhbG9nRXZlbnQuZW1pdCh0aGlzLmVycm9yTWVzc2FnZSk7ICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmNsb3NlU3ViUmVwb3J0RGlhbG9nRXZlbnQuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWJSZXBvcnREYXRhKCkge1xyXG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldFN1YlJlcG9ydERhdGEodGhpcy5zdWJSZXBvcnRJZCwgdGhpcy5maWx0ZXJzQXNKU09OKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydERhdGEpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLm1haW5Db2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5tYWluSGVhZGVycztcclxuICAgICAgICB0aGlzLm1haW5Sb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5tYWluRGF0YTtcclxuICAgICAgICB0aGlzLmRhdGFHcmlkUmVhZHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMuam9pbignLiAnKTtcclxuICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuY2xvc2VTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQodGhpcy5lcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvbkdyaWRSZWFkeShwYXJhbXMpIHtcclxuICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xyXG4gICAgcGFyYW1zLmFwaS5zZXRSb3dEYXRhKHRoaXMubWFpblJvd0RhdGEpO1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2V0RG9tTGF5b3V0KFwiYXV0b0hlaWdodFwiKTtcclxuICAgIC8vIHRoaXMuYXV0b1NpemVBbGwoKTtcclxuICAgIHRoaXMuZ3JpZFJlYWR5ID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hdXRvU2l6ZUFsbCgpO1xyXG4gICAgfSwgMzAwKVxyXG4gIH1cclxuXHJcbiAgYXV0b1NpemVBbGwoKSB7XHJcbiAgICB2YXIgYWxsQ29sdW1uSWRzID0gW107XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5BcGkuZ2V0QWxsQ29sdW1ucygpLmZvckVhY2goKGNvbHVtbikgPT57XHJcbiAgICAgIGFsbENvbHVtbklkcy5wdXNoKGNvbHVtbi5jb2xJZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ3JpZENvbHVtbkFwaS5hdXRvU2l6ZUNvbHVtbnMoYWxsQ29sdW1uSWRzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlRGlhbG9nKCkge1xyXG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmNsb3NlU3ViUmVwb3J0RGlhbG9nRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1yZXBvcnRzLyIsInNvdXJjZXMiOlsibGliL3JlcG9ydHMvY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9zdWItcmVwb3J0L3N1Yi1yZXBvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVVwRSxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBdUI3QixZQUFxQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVpqRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFXYixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDN0IsY0FBYyxFQUFFLHVCQUF1QjtTQUN4QyxDQUFBO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixHQUFHO1lBQy9CLGNBQWMsRUFBRSx1QkFBdUI7U0FDeEMsQ0FBQTtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFBOztZQUNsRCxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTztRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7O0lBRUQsUUFBUTtR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QixxQ0FBZTs7SUFDZixxREFBd0I7O0lBQ3hCLHVEQUEwQjs7SUFDMUIsd0NBQVc7O0lBQ1gsMENBQWE7O0lBRWIseUNBQW9COztJQUNwQiwyQ0FBc0I7Ozs7O0lBRVQsMkNBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9taXplZENlbGxDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21pemVkLWNlbGwvY3VzdG9taXplZC1jZWxsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnREYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dyaWQtZGF0YS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJR2VuZXJhbFJlcG9ydENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmFsLXJlcG9ydC1jb25maWcuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXN1Yi1yZXBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWItcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdWItcmVwb3J0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1YlJlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGRlZmF1bHRDb2xEZWY7XHJcbiAgZ3JpZEFwaTtcclxuICBncmlkQ29sdW1uQXBpO1xyXG4gIGZvb3RlckdyaWRBcGk7XHJcbiAgZm9vdGVyR3JpZENvbHVtbkFwaTtcclxuICBtYWluQ29sdW1uRGVmcztcclxuICBtYWluUm93RGF0YTtcclxuICBmb290ZXJDb2x1bW5EZWZzO1xyXG4gIGZvb3RlclJvd0RhdGE7XHJcbiAgZ3JpZFJlYWR5ID0gZmFsc2U7XHJcbiAgZm9vdGVyR3JpZFJlYWR5ID0gZmFsc2U7XHJcbiAgZGF0YUdyaWRSZWFkeSA9IGZhbHNlO1xyXG4gIGxvYWRpbmcgPSB0cnVlO1xyXG4gIG1haW5GcmFtZXdvcmtDb21wb25lbnRzO1xyXG4gIGZvb3RlckZyYW1ld29ya0NvbXBvbmVudHM7XHJcbiAgbWFpbkNvbmZpZztcclxuICBlcnJvck1lc3NhZ2U7XHJcblxyXG4gIHN1YlJlcG9ydElkOiBudW1iZXI7XHJcbiAgZmlsdGVyc0FzSlNPTjogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSByZXBvcnRTZXJ2aWNlOiBSZXBvcnRTZXJ2aWNlKSB7XHJcblxyXG4gICAgdGhpcy5kZWZhdWx0Q29sRGVmID0ge1xyXG4gICAgICByZXNpemFibGU6IHRydWVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5tYWluRnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcclxuICAgICAgY3VzdG9taXplZENlbGw6IEN1c3RvbWl6ZWRDZWxsQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvb3RlckZyYW1ld29ya0NvbXBvbmVudHMgPSB7XHJcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudFxyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJSZXBvcnRJZCA9IHRoaXMucmVwb3J0U2VydmljZS5zdWJSZXBvcnREYXRhLmlkXHJcbiAgICBsZXQgZmlsdGVycyA9IHRoaXMucmVwb3J0U2VydmljZS5zdWJSZXBvcnREYXRhLmZpbHRlcnM7XHJcbiAgICB0aGlzLmZpbHRlcnNBc0pTT04gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldFN1YlJlcG9ydCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3ViUmVwb3J0KCkge1xyXG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldFN1YlJlcG9ydENvbmZpZyh0aGlzLnN1YlJlcG9ydElkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnRDb25maWcpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5tYWluQ29uZmlnID0gcmVzcG9uc2UuZGF0YS5tYWluQ29uZmlnO1xyXG4gICAgICAgICAgdGhpcy5nZXRTdWJSZXBvcnREYXRhKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQodGhpcy5lcnJvck1lc3NhZ2UpOyAgICAgICBcclxuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5jbG9zZVN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3ViUmVwb3J0RGF0YSgpIHtcclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRTdWJSZXBvcnREYXRhKHRoaXMuc3ViUmVwb3J0SWQsIHRoaXMuZmlsdGVyc0FzSlNPTikuc3Vic2NyaWJlKChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5tYWluQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEubWFpbkhlYWRlcnM7XHJcbiAgICAgICAgdGhpcy5tYWluUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEubWFpbkRhdGE7XHJcbiAgICAgICAgdGhpcy5mb290ZXJDb2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5mb290ZXJIZWFkZXJzO1xyXG4gICAgICAgIHRoaXMuZm9vdGVyUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEuZm9vdGVyRGF0YTtcclxuICAgICAgICB0aGlzLmRhdGFHcmlkUmVhZHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMuam9pbignLiAnKTtcclxuICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuY2xvc2VTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQodGhpcy5lcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvbkdyaWRSZWFkeShwYXJhbXMpIHtcclxuICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xyXG4gICAgcGFyYW1zLmFwaS5zZXRSb3dEYXRhKHRoaXMubWFpblJvd0RhdGEpO1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2V0RG9tTGF5b3V0KFwiYXV0b0hlaWdodFwiKTtcclxuICAgIC8vIHRoaXMuYXV0b1NpemVBbGwoKTtcclxuICAgIHRoaXMuZ3JpZFJlYWR5ID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hdXRvU2l6ZUFsbCgpO1xyXG4gICAgfSwgMzAwKVxyXG4gIH1cclxuXHJcbiAgb25HcmlkRm9vdGVyUmVhZHkocGFyYW1zKSB7XHJcbiAgICB0aGlzLmZvb3RlckdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5mb290ZXJHcmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLmZvb3RlclJvd0RhdGEpO1xyXG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XHJcbiAgICB0aGlzLmZvb3RlckdyaWRBcGkuc2V0RG9tTGF5b3V0KFwiYXV0b0hlaWdodFwiKTtcclxuICAgIHRoaXMuZm9vdGVyR3JpZFJlYWR5ID0gdHJ1ZTtcclxuICAgIC8vIGlmICh0aGlzLmZvb3RlckNvbmZpZy5ub0hlYWRlcikge1xyXG4gICAgLy8gICB0aGlzLmZvb3RlckdyaWRBcGkuc2V0SGVhZGVySGVpZ2h0KDApO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICB9XHJcblxyXG4gIGF1dG9TaXplQWxsKCkge1xyXG4gICAgdmFyIGFsbENvbHVtbklkcyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpLmdldEFsbENvbHVtbnMoKS5mb3JFYWNoKChjb2x1bW4pID0+e1xyXG4gICAgICBhbGxDb2x1bW5JZHMucHVzaChjb2x1bW4uY29sSWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5BcGkuYXV0b1NpemVDb2x1bW5zKGFsbENvbHVtbklkcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5jbG9zZVN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG59Il19 |
@@ -5,3 +5,3 @@ /** | ||
*/ | ||
import { Component, Input, ViewChild } from '@angular/core'; | ||
import { Component, Input, ViewChild, ElementRef } from '@angular/core'; | ||
import { trigger, state, style, transition, animate } from '@angular/animations'; | ||
@@ -435,3 +435,3 @@ import { MatSnackBar, MatDialog } from '@angular/material'; | ||
selector: 'reports-lib', | ||
template: "<!-- REPORT LIST -->\n<div *ngIf=\"reportListFlag\">\n <div class=\"report-wrapper\">\n <div class=\"title-container\">\n <p class=\"reports-title\">Reportes</p>\n <input class=\"search\" placeholder=\"Buscar reportes\" type=\"text\"\n (input)=\"onSearchChange($event.target.value)\">\n </div>\n <div *ngFor=\"let category of categories\">\n <app-reports-by-category *ngIf=\"dataReady && (getReportsFromCategory(category.id).length > 0)\"\n [category]=\"category\" [reports]=\"getReportsFromCategory(category.id)\"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type=\"ball-spin-clockwise\" size=\"medium\" color=\"#d32020\">\n <p class=\"spinner-text\">Cargando...</p>\n</ngx-spinner>\n\n<!-- REPORT -->\n<div *ngIf=\"reportFlag\">\n <div *ngIf=\"!configLoading && !dataLoading\">\n <div *ngIf=\"!error else errorPanel\">\n <div>\n <div class=\"title-header\">\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\n <button *ngIf=\"!OpenNewTab\" mat-icon-button (click)=\"goBack()\" aria-label=\"Cerrar reporte\">\n <mat-icon aria-hidden=\"false\">close</mat-icon>\n </button>\n </div>\n <div class=\"actions-container\">\n <button mat-button class=\"filter\" *ngIf=\"filtersFlag\" (click)=\"showFilter()\">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\n [agGrid]=\"agGrid\"></app-actions>\n </div>\n <div *ngIf=\"filtersFlag\">\n <app-filters [@isFiltersVisible]=\"showFilters\" [filters]=\"mainConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n </div>\n <div class=\"table-container\">\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\"\n pagination=\"true\" [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\n [frameworkComponents]=\"mainFrameworkComponents\" [gridOptions]=\"gridOptions\">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf=\"mainConfig.paginator && mainGridReady\" [agGrid]=\"agGrid\"></app-paginator>\n </div>\n <br>\n <!-- <div>\n <app-title-subtitle *ngIf=\"footerConfig.showTitle\" [title]=\"footerConfig.title\"\n [subtitle]=\"footerConfig.subtitle\"></app-title-subtitle>\n\n <app-actions *ngIf=\"footerConfig.export\" [title]=\"footerConfig.title\" [export]=\"footerConfig.export\"\n [agGrid]=\"agGridFooter\"></app-actions>\n\n <button *ngIf=\"footerConfig.filters\" (click)=\"showFilter()\"> <fa-icon class=\"icon\" [icon]=\"['fas', 'filter']\"></fa-icon> Filtros</button>\n <div *ngIf=\"footerConfig.filters\">\n <app-filters *ngIf=\"showFilters\" [filters]=\"footerConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n \n <app-paginator *ngIf=\"footerConfig.paginator && footerGridReady\" [agGrid]=\"agGridFooter\">\n </app-paginator>\n\n </div> -->\n\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class=\"error-panel\">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf=\"!OpenNewTab\" mat-raised-button class=\"back-button\" (click)=\"goBack()\">Volver</button>\n </div>\n </ng-template>\n\n</div>", | ||
template: "<!-- REPORT LIST -->\n<div *ngIf=\"reportListFlag\">\n <div class=\"report-wrapper\">\n <div class=\"title-container\">\n <p class=\"reports-title\">Reportes</p>\n <input class=\"search\" placeholder=\"Buscar reportes\" type=\"text\"\n (input)=\"onSearchChange($event.target.value)\">\n </div>\n <div *ngFor=\"let category of categories\">\n <app-reports-by-category *ngIf=\"dataReady && (getReportsFromCategory(category.id).length > 0)\"\n [category]=\"category\" [reports]=\"getReportsFromCategory(category.id)\"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type=\"ball-spin-clockwise\" size=\"medium\" color=\"#d32020\">\n <p class=\"spinner-text\">Cargando...</p>\n</ngx-spinner>\n\n<!-- REPORT -->\n<div *ngIf=\"reportFlag\">\n <div *ngIf=\"!configLoading && !dataLoading\">\n <div *ngIf=\"!error else errorPanel\">\n <div>\n <div class=\"title-header\">\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\n <button *ngIf=\"!OpenNewTab\" mat-icon-button (click)=\"goBack()\" aria-label=\"Cerrar reporte\">\n <mat-icon aria-hidden=\"false\">close</mat-icon>\n </button>\n </div>\n <div class=\"actions-container\">\n <button mat-button class=\"filter\" *ngIf=\"filtersFlag\" (click)=\"showFilter()\">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\n [agGrid]=\"agGrid\"></app-actions>\n </div>\n <div *ngIf=\"filtersFlag\">\n <app-filters [@isFiltersVisible]=\"showFilters\" [filters]=\"mainConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n </div>\n <div #content class=\"table-container\">\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\"\n pagination=\"true\" [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\n [frameworkComponents]=\"mainFrameworkComponents\" [gridOptions]=\"gridOptions\">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf=\"mainConfig.paginator && mainGridReady\" [agGrid]=\"agGrid\"></app-paginator>\n </div>\n <br>\n <!-- <div>\n <app-title-subtitle *ngIf=\"footerConfig.showTitle\" [title]=\"footerConfig.title\"\n [subtitle]=\"footerConfig.subtitle\"></app-title-subtitle>\n\n <app-actions *ngIf=\"footerConfig.export\" [title]=\"footerConfig.title\" [export]=\"footerConfig.export\"\n [agGrid]=\"agGridFooter\"></app-actions>\n\n <button *ngIf=\"footerConfig.filters\" (click)=\"showFilter()\"> <fa-icon class=\"icon\" [icon]=\"['fas', 'filter']\"></fa-icon> Filtros</button>\n <div *ngIf=\"footerConfig.filters\">\n <app-filters *ngIf=\"showFilters\" [filters]=\"footerConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n \n <app-paginator *ngIf=\"footerConfig.paginator && footerGridReady\" [agGrid]=\"agGridFooter\">\n </app-paginator>\n\n </div> -->\n\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class=\"error-panel\">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf=\"!OpenNewTab\" mat-raised-button class=\"back-button\" (click)=\"goBack()\">Volver</button>\n </div>\n </ng-template>\n\n</div>", | ||
animations: [ | ||
@@ -460,2 +460,3 @@ trigger('isFiltersVisible', [ | ||
reportIdInput: [{ type: Input }], | ||
content: [{ type: ViewChild, args: ['content', { static: false },] }], | ||
agGrid: [{ type: ViewChild, args: ['agGrid', { static: false },] }], | ||
@@ -477,2 +478,4 @@ agGridFooter: [{ type: ViewChild, args: ['agGridFooter', { static: false },] }] | ||
/** @type {?} */ | ||
AppComponent.prototype.content; | ||
/** @type {?} */ | ||
AppComponent.prototype.reportListFlag; | ||
@@ -588,2 +591,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3ZrLXJlcG9ydHMvIiwic291cmNlcyI6WyJsaWIvcmVwb3J0cy9hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBRXZJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVUxRDtJQThFRSxzQkFBcUIsYUFBNEIsRUFDN0IsS0FBa0IsRUFDakIsT0FBMEIsRUFDMUIsTUFBaUI7UUFIdEMsaUJBMENDO1FBMUNvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFoRTdCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxJQUFJLENBQUM7O1FBR3RDLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBT3RCLGNBQVMsR0FBRyxLQUFLLENBQUM7O1FBSWxCLGVB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aUI7O0lBRWpCLG1DQUFvQjs7SUFDcEIsbUNBQW9COztJQUVwQixtQ0FBeUI7O0lBQ3pCLG1DQUFpQjs7SUFDakIscUNBQW1COztJQUNuQixzQ0FBb0I7O0lBQ3BCLHdDQUFzQjs7SUFDdEIscUNBQWM7O0lBRWQsdUNBQXdCOztJQUN4QixxQ0FBc0I7O0lBRXRCLG1DQUFZOztJQUNaLHlDQUFrQjs7SUFDbEIsK0NBQXdCOztJQUV4QixxQ0FBYzs7SUFDZCwyQ0FBb0I7O0lBQ3BCLGlEQUEwQjs7SUFFMUIsMkNBQW9COztJQUNwQixxQ0FBYzs7SUFFZCxpQ0FBMkM7Ozs7O0lBRTNDLG1EQUFrRDs7Ozs7SUFDbEQsaURBQWdEOzs7OztJQUNoRCx1REFBc0Q7Ozs7O0lBQ3RELHdEQUF1RDs7Ozs7SUFDdkQsNERBQTJEOztJQUUzRCw4QkFBOEQ7O0lBQzlELG9DQUEwRTs7Ozs7SUFFN0QscUNBQW9DOztJQUNwQyw2QkFBeUI7Ozs7O0lBQ3pCLCtCQUFrQzs7Ozs7SUFDbEMsOEJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHJpZ2dlciwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IE1hdFNuYWNrQmFyLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LXNwaW5uZXInO1xuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFN1YlJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9zdWItcmVwb3J0L3N1Yi1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWl6ZWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC9jb21wb25lbnRzL2N1c3RvbWl6ZWQtY2VsbC9jdXN0b21pemVkLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWl6ZWRCdXR0b25DZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC9jb21wb25lbnRzL2N1c3RvbWl6ZWQtYnV0dG9uLWNlbGwvY3VzdG9taXplZC1idXR0b24tY2VsbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XG5cbmltcG9ydCB7IElDYXRlZ29yeSB9IGZyb20gJy4vbW9kZWxzL2NhdGVnb3J5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0cyB9IGZyb20gJy4vbW9kZWxzL3JlcG9ydHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElBbGxSZXBvcnRzIH0gZnJvbSAnLi9tb2RlbHMvYWxsLXJlcG9ydHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElSZXBvcnRDb25maWcgfSBmcm9tICcuL21vZGVscy9yZXBvcnQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR2VuZXJhbFJlcG9ydENvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2dlbmVyYWwtcmVwb3J0LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnREYXRhIH0gZnJvbSAnLi9tb2RlbHMvZ3JpZC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkT3B0aW9ucyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncmVwb3J0cy1saWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdpc0ZpbHRlcnNWaXNpYmxlJywgW1xuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlWSgxLjApJywgdHJhbnNmb3JtT3JpZ2luOiAndG9wIGNlbnRlcicsIHBvc2l0aW9uOiAnaW5oZXJpdCcgfSkpLFxuICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZVkoMC4wKScsIHRyYW5zZm9ybU9yaWdpbjogJ3RvcCBjZW50ZXInLCBwb3NpdGlvbjogJ2Fic29sdXRlJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCcxID0+IDAnLCBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcpKSxcbiAgICAgIHRyYW5zaXRpb24oJzAgPT4gMScsIGFuaW1hdGUoJzMwMG1zIGVhc2UtaW4tb3V0JykpXG4gICAgXSlcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgXG4gIEBJbnB1dCgpIEFwaUJhc2VVcmw6IHN0cmluZztcbiAgQElucHV0KCkgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgQElucHV0KCkgT3Blbk5ld1RhYjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHJlcG9ydElkSW5wdXQ6IG51bWJlciA9IG51bGw7XG4gIFxuICAvLyBSRVBPUlQgTElTVFxuICByZXBvcnRMaXN0RmxhZyA9IHRydWU7XG4gIFxuICBjYXRlZ29yaWVzOiBJQ2F0ZWdvcnlbXTtcbiAgcmVwb3J0czogSVJlcG9ydHNbXTtcbiAgXG4gIGZpbHRlcmVkUmVwb3J0czogSVJlcG9ydHNbXTtcbiAgXG4gIGRhdGFSZWFkeSA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgXG4gIC8vIFJFUE9SVFxuICByZXBvcnRGbGFnID0gZmFsc2U7XG4gIFxuICBtYWluQ29uZmlnOiBJUmVwb3J0Q29uZmlnO1xuICBmb290ZXJDb25maWc6IElSZXBvcnRDb25maWc7XG4gIFxuICBjb25maWdMb2FkaW5nID0gdHJ1ZTtcbiAgZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgZXJyb3IgPSBmYWxzZTtcbiAgXG4gIGlkUmVwb3J0OiBudW1iZXI7XG4gIFxuICBzaG93RmlsdGVycyA9IGZhbHNlO1xuICBmaWx0ZXJzRmxhZyA9IGZhbHNlO1xuICBcbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBtYWluUm93RGF0YTogYW55O1xuICBmb290ZXJSb3dEYXRhOiBhbnk7XG4gIG1haW5Db2x1bW5EZWZzOiBhbnk7XG4gIGZvb3RlckNvbHVtbkRlZnM6IGFueTtcbiAgZGVmYXVsdENvbERlZjtcblxuICBmb290ZXJHcmlkUmVhZHkgPSBmYWxzZTtcbiAgbWFpbkdyaWRSZWFkeSA9IGZhbHNlO1xuXG4gIG1haW5HcmlkQXBpO1xuICBtYWluR3JpZENvbHVtbkFwaTtcbiAgbWFpbkZyYW1ld29ya0NvbXBvbmVudHM7XG5cbiAgZm9vdGVyR3JpZEFwaTtcbiAgZm9vdGVyR3JpZENvbHVtbkFwaTtcbiAgZm9vdGVyRnJhbWV3b3JrQ29tcG9uZW50cztcblxuICBmcmFtZXdvcmtDb21wb25lbnRzO1xuICBzdWJSZXBvcnREYXRhO1xuXG4gIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFN1YlJlcG9ydENvbXBvbmVudD5cblxuICBwcml2YXRlIGdldEZpbHRlcmVkRGF0YVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGdldFJlcG9ydERhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvcGVuU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgY2xvc2VTdWJSZXBvcnREaWFsb2dTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93RXJyb3JTdWJSZXBvcnREaWFsb2dTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdhZ0dyaWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyO1xuICBAVmlld0NoaWxkKCdhZ0dyaWRGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWdHcmlkRm9vdGVyOiBBZ0dyaWRBbmd1bGFyO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsXG4gICAgICAgICAgICAgICBwdWJsaWMgc25hY2s6IE1hdFNuYWNrQmFyLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzcGlubmVyOiBOZ3hTcGlubmVyU2VydmljZSxcbiAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cgKSB7XG5cbiAgICAvLyBSRVBPUlRcbiAgICB0aGlzLmRlZmF1bHRDb2xEZWYgPSB7XG4gICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICBtaW5XaWR0aDogNVxuICAgIH07XG5cbiAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgcm93SGVpZ2h0OiAzNFxuICAgIH1cblxuICAgIC8vIHRoaXMuT3Blbk5ld1RhYiA9IHRoaXMucmVwb3J0U2VydmljZS5vcGVuTmV3VGFiO1xuICAgIC8vIHRoaXMucmVwb3J0U2VydmljZS5vcGVuTmV3VGFiID0gdGhpcy5PcGVuTmV3VGFiO1xuXG4gICAgdGhpcy5nZXRGaWx0ZXJlZERhdGFTdWJzY3JpcHRpb24gPSB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0RmlsdGVyZWREYXRhRXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5nZXRSZXBvcnREYXRhKHRoaXMuaWRSZXBvcnQsIHRydWUpKTtcblxuICAgIHRoaXMuZ2V0UmVwb3J0RGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5sb2FkUmVwb3J0RGF0YUV2ZW50XG4gICAgICAuc3Vic2NyaWJlKChyZXBvcnRJZCkgPT4ge1xuICAgICAgICB0aGlzLmlkUmVwb3J0ID0gcmVwb3J0SWQ7XG4gICAgICAgIHRoaXMubG9hZFJlcG9ydChyZXBvcnRJZClcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcGVuU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLm9wZW5TdWJSZXBvcnREaWFsb2dFdmVudFxuICAgICAgLnN1YnNjcmliZSgoY2VsbHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5zdWJSZXBvcnREYXRhID0gY2VsbHZhbHVlO1xuICAgICAgICB0aGlzLm9wZW5TdWJSZXBvcnQoKTtcbiAgICAgIH0pXG5cbiAgICB0aGlzLmNsb3NlU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLmNsb3NlU3ViUmVwb3J0RGlhbG9nRXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlU3ViUmVwb3J0KCk7XG4gICAgICB9KVxuICAgIHRoaXMuc2hvd0Vycm9yU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ0V2ZW50XG4gICAgICAuc3Vic2NyaWJlKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLm9wZW5TbmFja0JhcihlcnJvcik7XG4gICAgICB9KTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmFwaUJhc2VVcmwgPSB0aGlzLkFwaUJhc2VVcmw7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLm9wZW5OZXdUYWIgPSB0aGlzLk9wZW5OZXdUYWI7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdGhpcy5hY2Nlc3NUb2tlbjtcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UucmVzZXRGaWx0ZXJWYWx1ZXMoKTtcblxuICAgIC8vIFJFUE9SVCBMSVNUXG4gICAgdGhpcy5zcGlubmVyLnNob3coKTtcblxuICAgIC8vIFJFUE9SVFxuICAgIHRoaXMuZm9vdGVyRnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudCxcbiAgICB9XG4gICAgdGhpcy5tYWluRnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudCxcbiAgICAgIGN1c3RvbWl6ZWRCdXR0b25DZWxsOiBDdXN0b21pemVkQnV0dG9uQ2VsbENvbXBvbmVudFxuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVwb3J0SWRJbnB1dCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5pZFJlcG9ydCA9IHRoaXMucmVwb3J0SWRJbnB1dDtcbiAgICAgIHRoaXMubG9hZFJlcG9ydCh0aGlzLmlkUmVwb3J0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdldEFsbFJlcG9ydHMoKTtcbiAgfVxuXG4gIC8vIFJFUE9SVCBMSVNUXG4gIGdldEFsbFJlcG9ydHMoKSB7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldFJlcG9ydHMoKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2U6IElBbGxSZXBvcnRzKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzcG9uc2UuZGF0YS5jYXRlZ29yaWVzLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgICAgICAgICB0aGlzLnJlcG9ydHMgPSByZXNwb25zZS5kYXRhLnJlcG9ydHM7XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZFJlcG9ydHMgPSB0aGlzLnJlcG9ydHM7XG4gICAgICAgICAgdGhpcy5kYXRhUmVhZHkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgICAgdGhpcy5vcGVuU25hY2tCYXIodGhpcy5lcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZ2V0UmVwb3J0c0Zyb21DYXRlZ29yeShpZDogbnVtYmVyKTogSVJlcG9ydHNbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRSZXBvcnRzLmZpbHRlcihyID0+IHIuY2F0ZWdvcnkgPT09IGlkKS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJlZFJlcG9ydHMgPSB0aGlzLnJlcG9ydHMuXG4gICAgICBmaWx0ZXIociA9PiAoci50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICB8fCByLnN1YnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXZlbnQudG9Mb3dlckNhc2UoKSkpO1xuICB9XG5cbiAgb3BlblNuYWNrQmFyKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc25hY2sub3BlbihtZXNzYWdlLCAnQ2VycmFyJywgeyBkdXJhdGlvbjogNTAwMCB9KTtcbiAgfVxuXG4gIC8vIFJFUE9SVFxuICBsb2FkUmVwb3J0KHJlcG9ydElkKSB7XG4gICAgdGhpcy5nZXRSZXBvcnQocmVwb3J0SWQpO1xuICAgIHRoaXMucmVwb3J0TGlzdEZsYWcgPSBmYWxzZTtcbiAgICB0aGlzLnJlcG9ydEZsYWcgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVyc0ZsYWcgPSBmYWxzZTtcbiAgfVxuXG4gIGdldFJlcG9ydChyZXBvcnRJZCkge1xuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldENvbmZpZyhyZXBvcnRJZCkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydENvbmZpZykgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1haW5Db25maWcgPSByZXNwb25zZS5kYXRhLm1haW5Db25maWc7XG4gICAgICAgICAgaWYgKHRoaXMubWFpbkNvbmZpZy5maWx0ZXJzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzRmxhZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9vdGVyQ29uZmlnID0gcmVzcG9uc2UuZGF0YS5mb290ZXJDb25maWc7XG4gICAgICAgICAgdGhpcy5jb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5nZXRSZXBvcnREYXRhKHJlcG9ydElkLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwb3J0RGF0YShyZXBvcnRJZDogbnVtYmVyLCBmaWx0ZXJlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG4gICAgdGhpcy5kYXRhTG9hZGluZyA9IHRydWU7XG4gICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0RGF0YShyZXBvcnRJZCwgZmlsdGVyZWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IElHZW5lcmFsUmVwb3J0RGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMubWFpbkdyaWRSZWFkeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubWFpbkNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLm1haW5IZWFkZXJzO1xuICAgICAgICAgIHRoaXMuZm9vdGVyQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEuZm9vdGVySGVhZGVycztcbiAgICAgICAgICB0aGlzLm1haW5Sb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5tYWluRGF0YTtcbiAgICAgICAgICB0aGlzLmZvb3RlclJvd0RhdGEgPSByZXNwb25zZS5kYXRhLmZvb3RlckRhdGE7XG4gICAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnVwZGF0ZVBhZ2luYXRvckRhdGFFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xuICAgICAgICAgIHRoaXMuc2hvd0ZpbHRlcigpO1xuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5yZXNldEZpbHRlclZhbHVlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMuam9pbignLiAnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldERhdGEocmVwb3J0SWQsIGZpbHRlcmVkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydERhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLm1haW5Db2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5tYWluSGVhZGVycztcbiAgICAgICAgICB0aGlzLmZvb3RlckNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLmZvb3RlckhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5tYWluUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEubWFpbkRhdGE7XG4gICAgICAgICAgdGhpcy5mb290ZXJSb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5mb290ZXJEYXRhO1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uR3JpZFJlYWR5KHBhcmFtcykge1xuICAgIHRoaXMubWFpbkdyaWRBcGkgPSBwYXJhbXMuYXBpO1xuICAgIHRoaXMubWFpbkdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLm1haW5Sb3dEYXRhKTtcbiAgICB0aGlzLm1haW5HcmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XG4gICAgdGhpcy5tYWluR3JpZEFwaS5zZXREb21MYXlvdXQoXCJhdXRvSGVpZ2h0XCIpO1xuICAgIHRoaXMubWFpbkdyaWRSZWFkeSA9IHRydWU7XG4gICAgaWYgKHRoaXMubWFpbkNvbmZpZy5ub0hlYWRlcikge1xuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRIZWFkZXJIZWlnaHQoMCk7XG4gICAgfTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXV0b1NpemVBbGwoKTtcbiAgICB9LCAzMDApXG4gIH1cblxuICBhdXRvU2l6ZUFsbCgpIHtcbiAgICB2YXIgYWxsQ29sdW1uSWRzID0gW107XG4gICAgdGhpcy5tYWluR3JpZENvbHVtbkFwaS5nZXRBbGxDb2x1bW5zKCkuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBpZiAoY29sdW1uLnVzZXJQcm92aWRlZENvbERlZi5jZWxsUmVuZGVyZXIgIT0gJ2N1c3RvbWl6ZWRCdXR0b25DZWxsJykge1xuICAgICAgICBhbGxDb2x1bW5JZHMucHVzaChjb2x1bW4uY29sSWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubWFpbkdyaWRDb2x1bW5BcGkuYXV0b1NpemVDb2x1bW5zKGFsbENvbHVtbklkcyk7XG4gIH1cblxuICBvbkdyaWRGb290ZXJSZWFkeShwYXJhbXMpIHtcbiAgICB0aGlzLmZvb3RlckdyaWRBcGkgPSBwYXJhbXMuYXBpO1xuICAgIHRoaXMuZm9vdGVyR3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XG4gICAgcGFyYW1zLmFwaS5zZXRSb3dEYXRhKHRoaXMuZm9vdGVyUm93RGF0YSk7XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnNldERvbUxheW91dChcImF1dG9IZWlnaHRcIik7XG4gICAgdGhpcy5mb290ZXJHcmlkUmVhZHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLmZvb3RlckNvbmZpZy5ub0hlYWRlcikge1xuICAgICAgdGhpcy5mb290ZXJHcmlkQXBpLnNldEhlYWRlckhlaWdodCgwKTtcbiAgICB9XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgfVxuXG4gIHNob3dGaWx0ZXIoKSB7XG4gICAgdGhpcy5zaG93RmlsdGVycyA9ICF0aGlzLnNob3dGaWx0ZXJzO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMucmVwb3J0TGlzdEZsYWcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3J0RmxhZyA9IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dGaWx0ZXJzID0gZmFsc2U7XG4gICAgdGhpcy5mb290ZXJHcmlkUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLm1haW5HcmlkUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmRhdGFSZWFkeSA9IGZhbHNlO1xuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnJlc2V0RmlsdGVyVmFsdWVzKCk7XG4gICAgdGhpcy5nZXRBbGxSZXBvcnRzKCk7XG4gIH1cblxuICBvcGVuU3ViUmVwb3J0KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihTdWJSZXBvcnRDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6ICc5MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtd2lkdGgtZGlhbG9nJ1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VTdWJSZXBvcnQoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3ZrLXJlcG9ydHMvIiwic291cmNlcyI6WyJsaWIvcmVwb3J0cy9hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUV2SSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFTMUQ7SUFnRkUsc0JBQXFCLGFBQTRCLEVBQzdCLEtBQWtCLEVBQ2pCLE9BQTBCLEVBQzFCLE1BQWlCO1FBSHRDLGlCQTBDQztRQTFDb0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBbEU3QixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGtCQUFhLEdBQVcsSUFBSSxDQUFDOztRQUt0QyxtQkFBYyxHQUFHLElBQUksQ0FBQztRQU90QixjQUFTLEdBQUcsS0FBSyxDQUFD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RW5CLGtDQUEwQjs7SUFDMUIsb0NBQTRCOztJQUU1QixxQ0FBcUI7O0lBQ3JCLG1DQUFvQjs7SUFDcEIsNkJBQWM7O0lBRWQsZ0NBQWlCOztJQUVqQixtQ0FBb0I7O0lBQ3BCLG1DQUFvQjs7SUFFcEIsbUNBQXlCOztJQUN6QixtQ0FBaUI7O0lBQ2pCLHFDQUFtQjs7SUFDbkIsc0NBQW9COztJQUNwQix3Q0FBc0I7O0lBQ3RCLHFDQUFjOztJQUVkLHVDQUF3Qjs7SUFDeEIscUNBQXNCOztJQUV0QixtQ0FBWTs7SUFDWix5Q0FBa0I7O0lBQ2xCLCtDQUF3Qjs7SUFFeEIscUNBQWM7O0lBQ2QsMkNBQW9COztJQUNwQixpREFBMEI7O0lBRTFCLDJDQUFvQjs7SUFDcEIscUNBQWM7O0lBRWQsaUNBQTJDOzs7OztJQUUzQyxtREFBa0Q7Ozs7O0lBQ2xELGlEQUFnRDs7Ozs7SUFDaEQsdURBQXNEOzs7OztJQUN0RCx3REFBdUQ7Ozs7O0lBQ3ZELDREQUEyRDs7SUFFM0QsOEJBQThEOztJQUM5RCxvQ0FBMEU7Ozs7O0lBRTdELHFDQUFvQzs7SUFDcEMsNkJBQXlCOzs7OztJQUN6QiwrQkFBa0M7Ozs7O0lBQ2xDLDhCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQgeyBNYXRTbmFja0JhciwgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBOZ3hTcGlubmVyU2VydmljZSB9IGZyb20gJ25neC1zcGlubmVyJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZE9wdGlvbnMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IFN1YlJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9zdWItcmVwb3J0L3N1Yi1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWl6ZWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC9jb21wb25lbnRzL2N1c3RvbWl6ZWQtY2VsbC9jdXN0b21pemVkLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWl6ZWRCdXR0b25DZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcG9ydC9jb21wb25lbnRzL2N1c3RvbWl6ZWQtYnV0dG9uLWNlbGwvY3VzdG9taXplZC1idXR0b24tY2VsbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XG5cbmltcG9ydCB7IElDYXRlZ29yeSB9IGZyb20gJy4vbW9kZWxzL2NhdGVnb3J5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0cyB9IGZyb20gJy4vbW9kZWxzL3JlcG9ydHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElBbGxSZXBvcnRzIH0gZnJvbSAnLi9tb2RlbHMvYWxsLXJlcG9ydHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElSZXBvcnRDb25maWcgfSBmcm9tICcuL21vZGVscy9yZXBvcnQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR2VuZXJhbFJlcG9ydENvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2dlbmVyYWwtcmVwb3J0LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnREYXRhIH0gZnJvbSAnLi9tb2RlbHMvZ3JpZC1kYXRhLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JlcG9ydHMtbGliJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignaXNGaWx0ZXJzVmlzaWJsZScsIFtcbiAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZVkoMS4wKScsIHRyYW5zZm9ybU9yaWdpbjogJ3RvcCBjZW50ZXInLCBwb3NpdGlvbjogJ2luaGVyaXQnIH0pKSxcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGVZKDAuMCknLCB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgY2VudGVyJywgcG9zaXRpb246ICdhYnNvbHV0ZScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignMSA9PiAwJywgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgICB0cmFuc2l0aW9uKCcwID0+IDEnLCBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcpKVxuICAgIF0pXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIFxuICBASW5wdXQoKSBBcGlCYXNlVXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIEBJbnB1dCgpIE9wZW5OZXdUYWI6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSByZXBvcnRJZElucHV0OiBudW1iZXIgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7c3RhdGljOiBmYWxzZX0pIGNvbnRlbnQ6IEVsZW1lbnRSZWY7XG4gIFxuICAvLyBSRVBPUlQgTElTVFxuICByZXBvcnRMaXN0RmxhZyA9IHRydWU7XG4gIFxuICBjYXRlZ29yaWVzOiBJQ2F0ZWdvcnlbXTtcbiAgcmVwb3J0czogSVJlcG9ydHNbXTtcbiAgXG4gIGZpbHRlcmVkUmVwb3J0czogSVJlcG9ydHNbXTtcbiAgXG4gIGRhdGFSZWFkeSA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgXG4gIC8vIFJFUE9SVFxuICByZXBvcnRGbGFnID0gZmFsc2U7XG4gIFxuICBtYWluQ29uZmlnOiBJUmVwb3J0Q29uZmlnO1xuICBmb290ZXJDb25maWc6IElSZXBvcnRDb25maWc7XG4gIFxuICBjb25maWdMb2FkaW5nID0gdHJ1ZTtcbiAgZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgZXJyb3IgPSBmYWxzZTtcbiAgXG4gIGlkUmVwb3J0OiBudW1iZXI7XG4gIFxuICBzaG93RmlsdGVycyA9IGZhbHNlO1xuICBmaWx0ZXJzRmxhZyA9IGZhbHNlO1xuICBcbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBtYWluUm93RGF0YTogYW55O1xuICBmb290ZXJSb3dEYXRhOiBhbnk7XG4gIG1haW5Db2x1bW5EZWZzOiBhbnk7XG4gIGZvb3RlckNvbHVtbkRlZnM6IGFueTtcbiAgZGVmYXVsdENvbERlZjtcblxuICBmb290ZXJHcmlkUmVhZHkgPSBmYWxzZTtcbiAgbWFpbkdyaWRSZWFkeSA9IGZhbHNlO1xuXG4gIG1haW5HcmlkQXBpO1xuICBtYWluR3JpZENvbHVtbkFwaTtcbiAgbWFpbkZyYW1ld29ya0NvbXBvbmVudHM7XG5cbiAgZm9vdGVyR3JpZEFwaTtcbiAgZm9vdGVyR3JpZENvbHVtbkFwaTtcbiAgZm9vdGVyRnJhbWV3b3JrQ29tcG9uZW50cztcblxuICBmcmFtZXdvcmtDb21wb25lbnRzO1xuICBzdWJSZXBvcnREYXRhO1xuXG4gIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFN1YlJlcG9ydENvbXBvbmVudD5cblxuICBwcml2YXRlIGdldEZpbHRlcmVkRGF0YVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGdldFJlcG9ydERhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvcGVuU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgY2xvc2VTdWJSZXBvcnREaWFsb2dTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93RXJyb3JTdWJSZXBvcnREaWFsb2dTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdhZ0dyaWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWdHcmlkOiBBZ0dyaWRBbmd1bGFyO1xuICBAVmlld0NoaWxkKCdhZ0dyaWRGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWdHcmlkRm9vdGVyOiBBZ0dyaWRBbmd1bGFyO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsXG4gICAgICAgICAgICAgICBwdWJsaWMgc25hY2s6IE1hdFNuYWNrQmFyLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzcGlubmVyOiBOZ3hTcGlubmVyU2VydmljZSxcbiAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cgKSB7XG5cbiAgICAvLyBSRVBPUlRcbiAgICB0aGlzLmRlZmF1bHRDb2xEZWYgPSB7XG4gICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICBtaW5XaWR0aDogNVxuICAgIH07XG5cbiAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgcm93SGVpZ2h0OiAzNFxuICAgIH1cblxuICAgIC8vIHRoaXMuT3Blbk5ld1RhYiA9IHRoaXMucmVwb3J0U2VydmljZS5vcGVuTmV3VGFiO1xuICAgIC8vIHRoaXMucmVwb3J0U2VydmljZS5vcGVuTmV3VGFiID0gdGhpcy5PcGVuTmV3VGFiO1xuXG4gICAgdGhpcy5nZXRGaWx0ZXJlZERhdGFTdWJzY3JpcHRpb24gPSB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0RmlsdGVyZWREYXRhRXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5nZXRSZXBvcnREYXRhKHRoaXMuaWRSZXBvcnQsIHRydWUpKTtcblxuICAgIHRoaXMuZ2V0UmVwb3J0RGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMucmVwb3J0U2VydmljZS5sb2FkUmVwb3J0RGF0YUV2ZW50XG4gICAgICAuc3Vic2NyaWJlKChyZXBvcnRJZCkgPT4ge1xuICAgICAgICB0aGlzLmlkUmVwb3J0ID0gcmVwb3J0SWQ7XG4gICAgICAgIHRoaXMubG9hZFJlcG9ydChyZXBvcnRJZClcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcGVuU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLm9wZW5TdWJSZXBvcnREaWFsb2dFdmVudFxuICAgICAgLnN1YnNjcmliZSgoY2VsbHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5zdWJSZXBvcnREYXRhID0gY2VsbHZhbHVlO1xuICAgICAgICB0aGlzLm9wZW5TdWJSZXBvcnQoKTtcbiAgICAgIH0pXG5cbiAgICB0aGlzLmNsb3NlU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLmNsb3NlU3ViUmVwb3J0RGlhbG9nRXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlU3ViUmVwb3J0KCk7XG4gICAgICB9KVxuICAgIHRoaXMuc2hvd0Vycm9yU3ViUmVwb3J0RGlhbG9nU3Vic2NyaXB0aW9uID0gdGhpcy5yZXBvcnRTZXJ2aWNlLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ0V2ZW50XG4gICAgICAuc3Vic2NyaWJlKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLm9wZW5TbmFja0JhcihlcnJvcik7XG4gICAgICB9KTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmFwaUJhc2VVcmwgPSB0aGlzLkFwaUJhc2VVcmw7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLm9wZW5OZXdUYWIgPSB0aGlzLk9wZW5OZXdUYWI7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdGhpcy5hY2Nlc3NUb2tlbjtcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UucmVzZXRGaWx0ZXJWYWx1ZXMoKTtcblxuICAgIC8vIFJFUE9SVCBMSVNUXG4gICAgdGhpcy5zcGlubmVyLnNob3coKTtcblxuICAgIC8vIFJFUE9SVFxuICAgIHRoaXMuZm9vdGVyRnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudCxcbiAgICB9XG4gICAgdGhpcy5tYWluRnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudCxcbiAgICAgIGN1c3RvbWl6ZWRCdXR0b25DZWxsOiBDdXN0b21pemVkQnV0dG9uQ2VsbENvbXBvbmVudFxuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVwb3J0SWRJbnB1dCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5pZFJlcG9ydCA9IHRoaXMucmVwb3J0SWRJbnB1dDtcbiAgICAgIHRoaXMubG9hZFJlcG9ydCh0aGlzLmlkUmVwb3J0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdldEFsbFJlcG9ydHMoKTtcbiAgfVxuXG4gIC8vIFJFUE9SVCBMSVNUXG4gIGdldEFsbFJlcG9ydHMoKSB7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldFJlcG9ydHMoKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2U6IElBbGxSZXBvcnRzKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzcG9uc2UuZGF0YS5jYXRlZ29yaWVzLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgICAgICAgICB0aGlzLnJlcG9ydHMgPSByZXNwb25zZS5kYXRhLnJlcG9ydHM7XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZFJlcG9ydHMgPSB0aGlzLnJlcG9ydHM7XG4gICAgICAgICAgdGhpcy5kYXRhUmVhZHkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5oaWRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgICAgdGhpcy5vcGVuU25hY2tCYXIodGhpcy5lcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZ2V0UmVwb3J0c0Zyb21DYXRlZ29yeShpZDogbnVtYmVyKTogSVJlcG9ydHNbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRSZXBvcnRzLmZpbHRlcihyID0+IHIuY2F0ZWdvcnkgPT09IGlkKS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJlZFJlcG9ydHMgPSB0aGlzLnJlcG9ydHMuXG4gICAgICBmaWx0ZXIociA9PiAoci50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICB8fCByLnN1YnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXZlbnQudG9Mb3dlckNhc2UoKSkpO1xuICB9XG5cbiAgb3BlblNuYWNrQmFyKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc25hY2sub3BlbihtZXNzYWdlLCAnQ2VycmFyJywgeyBkdXJhdGlvbjogNTAwMCB9KTtcbiAgfVxuXG4gIC8vIFJFUE9SVFxuICBsb2FkUmVwb3J0KHJlcG9ydElkKSB7XG4gICAgdGhpcy5nZXRSZXBvcnQocmVwb3J0SWQpO1xuICAgIHRoaXMucmVwb3J0TGlzdEZsYWcgPSBmYWxzZTtcbiAgICB0aGlzLnJlcG9ydEZsYWcgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVyc0ZsYWcgPSBmYWxzZTtcbiAgfVxuXG4gIGdldFJlcG9ydChyZXBvcnRJZCkge1xuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldENvbmZpZyhyZXBvcnRJZCkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydENvbmZpZykgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1haW5Db25maWcgPSByZXNwb25zZS5kYXRhLm1haW5Db25maWc7XG4gICAgICAgICAgaWYgKHRoaXMubWFpbkNvbmZpZy5maWx0ZXJzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzRmxhZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9vdGVyQ29uZmlnID0gcmVzcG9uc2UuZGF0YS5mb290ZXJDb25maWc7XG4gICAgICAgICAgdGhpcy5jb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5nZXRSZXBvcnREYXRhKHJlcG9ydElkLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwb3J0RGF0YShyZXBvcnRJZDogbnVtYmVyLCBmaWx0ZXJlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG4gICAgdGhpcy5kYXRhTG9hZGluZyA9IHRydWU7XG4gICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0RGF0YShyZXBvcnRJZCwgZmlsdGVyZWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IElHZW5lcmFsUmVwb3J0RGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMubWFpbkdyaWRSZWFkeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubWFpbkNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLm1haW5IZWFkZXJzO1xuICAgICAgICAgIHRoaXMuZm9vdGVyQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEuZm9vdGVySGVhZGVycztcbiAgICAgICAgICB0aGlzLm1haW5Sb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5tYWluRGF0YTtcbiAgICAgICAgICB0aGlzLmZvb3RlclJvd0RhdGEgPSByZXNwb25zZS5kYXRhLmZvb3RlckRhdGE7XG4gICAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnVwZGF0ZVBhZ2luYXRvckRhdGFFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xuICAgICAgICAgIHRoaXMuc2hvd0ZpbHRlcigpO1xuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5yZXNldEZpbHRlclZhbHVlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMuam9pbignLiAnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldERhdGEocmVwb3J0SWQsIGZpbHRlcmVkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJR2VuZXJhbFJlcG9ydERhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLm1haW5Db2x1bW5EZWZzID0gcmVzcG9uc2UuZGF0YS5tYWluSGVhZGVycztcbiAgICAgICAgICB0aGlzLmZvb3RlckNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLmZvb3RlckhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5tYWluUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEubWFpbkRhdGE7XG4gICAgICAgICAgdGhpcy5mb290ZXJSb3dEYXRhID0gcmVzcG9uc2UuZGF0YS5mb290ZXJEYXRhO1xuICAgICAgICAgIHRoaXMuZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGFMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uR3JpZFJlYWR5KHBhcmFtcykge1xuICAgIHRoaXMubWFpbkdyaWRBcGkgPSBwYXJhbXMuYXBpO1xuICAgIHRoaXMubWFpbkdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLm1haW5Sb3dEYXRhKTtcbiAgICB0aGlzLm1haW5HcmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XG4gICAgdGhpcy5tYWluR3JpZEFwaS5zZXREb21MYXlvdXQoXCJhdXRvSGVpZ2h0XCIpO1xuICAgIHRoaXMubWFpbkdyaWRSZWFkeSA9IHRydWU7XG4gICAgaWYgKHRoaXMubWFpbkNvbmZpZy5ub0hlYWRlcikge1xuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRIZWFkZXJIZWlnaHQoMCk7XG4gICAgfTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXV0b1NpemVBbGwoKTtcbiAgICB9LCAzMDApXG4gIH1cblxuICBhdXRvU2l6ZUFsbCgpIHtcbiAgICB2YXIgYWxsQ29sdW1uSWRzID0gW107XG4gICAgdGhpcy5tYWluR3JpZENvbHVtbkFwaS5nZXRBbGxDb2x1bW5zKCkuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBpZiAoY29sdW1uLnVzZXJQcm92aWRlZENvbERlZi5jZWxsUmVuZGVyZXIgIT0gJ2N1c3RvbWl6ZWRCdXR0b25DZWxsJykge1xuICAgICAgICBhbGxDb2x1bW5JZHMucHVzaChjb2x1bW4uY29sSWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubWFpbkdyaWRDb2x1bW5BcGkuYXV0b1NpemVDb2x1bW5zKGFsbENvbHVtbklkcyk7XG4gIH1cblxuICBvbkdyaWRGb290ZXJSZWFkeShwYXJhbXMpIHtcbiAgICB0aGlzLmZvb3RlckdyaWRBcGkgPSBwYXJhbXMuYXBpO1xuICAgIHRoaXMuZm9vdGVyR3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XG4gICAgcGFyYW1zLmFwaS5zZXRSb3dEYXRhKHRoaXMuZm9vdGVyUm93RGF0YSk7XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnBhZ2luYXRpb25TZXRQYWdlU2l6ZSgxMCk7XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnNldERvbUxheW91dChcImF1dG9IZWlnaHRcIik7XG4gICAgdGhpcy5mb290ZXJHcmlkUmVhZHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLmZvb3RlckNvbmZpZy5ub0hlYWRlcikge1xuICAgICAgdGhpcy5mb290ZXJHcmlkQXBpLnNldEhlYWRlckhlaWdodCgwKTtcbiAgICB9XG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgfVxuXG4gIHNob3dGaWx0ZXIoKSB7XG4gICAgdGhpcy5zaG93RmlsdGVycyA9ICF0aGlzLnNob3dGaWx0ZXJzO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMucmVwb3J0TGlzdEZsYWcgPSB0cnVlO1xuICAgIHRoaXMucmVwb3J0RmxhZyA9IGZhbHNlO1xuICAgIHRoaXMuY29uZmlnTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dGaWx0ZXJzID0gZmFsc2U7XG4gICAgdGhpcy5mb290ZXJHcmlkUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLm1haW5HcmlkUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmRhdGFSZWFkeSA9IGZhbHNlO1xuICAgIHRoaXMuc3Bpbm5lci5zaG93KCk7XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnJlc2V0RmlsdGVyVmFsdWVzKCk7XG4gICAgdGhpcy5nZXRBbGxSZXBvcnRzKCk7XG4gIH1cblxuICBvcGVuU3ViUmVwb3J0KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihTdWJSZXBvcnRDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6ICc5MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtd2lkdGgtZGlhbG9nJ1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VTdWJSZXBvcnQoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG59XG4iXX0= |
@@ -12,2 +12,3 @@ /** | ||
this.gridReady = false; | ||
this.footerGridReady = false; | ||
this.dataGridReady = false; | ||
@@ -21,2 +22,5 @@ this.loading = true; | ||
}; | ||
this.footerFrameworkComponents = { | ||
customizedCell: CustomizedCellComponent | ||
}; | ||
this.subReportId = this.reportService.subReportData.id; | ||
@@ -77,2 +81,4 @@ /** @type {?} */ | ||
_this.mainRowData = response.data.mainData; | ||
_this.footerColumnDefs = response.data.footerHeaders; | ||
_this.footerRowData = response.data.footerData; | ||
_this.dataGridReady = true; | ||
@@ -114,4 +120,24 @@ _this.loading = false; | ||
/** | ||
* @param {?} params | ||
* @return {?} | ||
*/ | ||
SubReportComponent.prototype.onGridFooterReady = /** | ||
* @param {?} params | ||
* @return {?} | ||
*/ | ||
function (params) { | ||
this.footerGridApi = params.api; | ||
this.footerGridColumnApi = params.columnApi; | ||
params.api.setRowData(this.footerRowData); | ||
this.footerGridApi.paginationSetPageSize(10); | ||
this.footerGridApi.setDomLayout("autoHeight"); | ||
this.footerGridReady = true; | ||
// if (this.footerConfig.noHeader) { | ||
// this.footerGridApi.setHeaderHeight(0); | ||
// } | ||
this.footerGridApi.sizeColumnsToFit(); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
SubReportComponent.prototype.autoSizeAll = /** | ||
@@ -144,3 +170,3 @@ * @return {?} | ||
selector: 'app-sub-report', | ||
template: "<ng-container *ngIf=\"loading; else mainTemplate\">\r\n <div class=\"loading\">\r\n <mat-progress-bar color=\"warn\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n \r\n<ng-template #mainTemplate>\r\n \r\n<div *ngIf=\"dataGridReady\">\r\n <div class=\"title-header\">\r\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\r\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\r\n <button mat-icon-button (click)=\" closeDialog()\" aria-label=\"Cerrar reporte\">\r\n <mat-icon aria-hidden=\"false\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"actions-container\">\r\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\r\n [agGrid]=\"agGrid\"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" \r\n [rowData]=\"mainRowData\"\r\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" \r\n rowSelection=\"single\"\r\n pagination=\"true\" [suppressPaginationPanel]=\"true\" \r\n (gridReady)=\"onGridReady($event)\"\r\n [frameworkComponents]=\"mainFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf=\"mainConfig.paginator && gridReady\" [agGrid]=\"agGrid\"></app-paginator>\r\n\r\n</div>\r\n</ng-template>\r\n", | ||
template: "<ng-container *ngIf=\"loading; else mainTemplate\">\r\n <div class=\"loading\">\r\n <mat-progress-bar color=\"warn\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n</ng-container>\r\n\r\n\r\n\r\n<ng-template #mainTemplate>\r\n\r\n <div *ngIf=\"dataGridReady\">\r\n <div class=\"title-header\">\r\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\r\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\r\n <button mat-icon-button (click)=\" closeDialog()\" aria-label=\"Cerrar reporte\">\r\n <mat-icon aria-hidden=\"false\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"actions-container\">\r\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\r\n [agGrid]=\"agGrid\"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\r\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\" pagination=\"true\"\r\n [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\r\n [frameworkComponents]=\"mainFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf=\"mainConfig.paginator && gridReady\" [agGrid]=\"agGrid\"></app-paginator>\r\n\r\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\r\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n </div>\r\n</ng-template>", | ||
styles: [".button-container{text-align:right;margin-bottom:10px}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;padding:10px}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#fff}"] | ||
@@ -164,2 +190,6 @@ }] } | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerGridApi; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerGridColumnApi; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.mainColumnDefs; | ||
@@ -169,4 +199,10 @@ /** @type {?} */ | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerColumnDefs; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerRowData; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.gridReady; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerGridReady; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.dataGridReady; | ||
@@ -178,2 +214,4 @@ /** @type {?} */ | ||
/** @type {?} */ | ||
SubReportComponent.prototype.footerFrameworkComponents; | ||
/** @type {?} */ | ||
SubReportComponent.prototype.mainConfig; | ||
@@ -192,2 +230,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1yZXBvcnRzLyIsInNvdXJjZXMiOlsibGliL3JlcG9ydHMvY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9zdWItcmVwb3J0L3N1Yi1yZXBvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtwRTtJQXNCRSw0QkFBcUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFWakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBVWIsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzdCLGNBQWMsRUFBRSx1QkFBdUI7U0FDeEMsQ0FBQTtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFBOztZQUNsRCxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTztRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7O0lBRUQscUNBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFFRCx5Q0FBWTs7O0lBQVo7UUFBQSxpQkFhQztRQVpDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JB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OztJQUFYO1FBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0RCxDQUFDOztnQkFoR0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLG9qREFBMEM7O2lCQUUzQzs7OztnQkFUUSxhQUFhOztJQXVHdEIseUJBQUM7Q0FBQSxBQWxHRCxJQWtHQztTQTdGWSxrQkFBa0I7OztJQUU3QiwyQ0FBYzs7SUFDZCxxQ0FBUTs7SUFDUiwyQ0FBYzs7SUFDZCw0Q0FBZTs7SUFDZix5Q0FBWTs7SUFDWix1Q0FBa0I7O0lBQ2xCLDJDQUFzQjs7SUFDdEIscUNBQWU7O0lBQ2YscURBQXdCOztJQUN4Qix3Q0FBVzs7SUFDWCwwQ0FBYTs7SUFFYix5Q0FBb0I7O0lBQ3BCLDJDQUFzQjs7Ozs7SUFFVCwyQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21pemVkQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbWl6ZWQtY2VsbC9jdXN0b21pemVkLWNlbGwuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBJR2VuZXJhbFJlcG9ydERhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ3JpZC1kYXRhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElHZW5lcmFsUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYWwtcmVwb3J0LWNvbmZpZy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc3ViLXJlcG9ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1yZXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1Yi1yZXBvcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3ViUmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgZGVmYXVsdENvbERlZjtcclxuICBncmlkQXBpO1xyXG4gIGdyaWRDb2x1bW5BcGk7XHJcbiAgbWFpbkNvbHVtbkRlZnM7XHJcbiAgbWFpblJvd0RhdGE7XHJcbiAgZ3JpZFJlYWR5ID0gZmFsc2U7XHJcbiAgZGF0YUdyaWRSZWFkeSA9IGZhbHNlO1xyXG4gIGxvYWRpbmcgPSB0cnVlO1xyXG4gIG1haW5GcmFtZXdvcmtDb21wb25lbnRzO1xyXG4gIG1haW5Db25maWc7XHJcbiAgZXJyb3JNZXNzYWdlO1xyXG5cclxuICBzdWJSZXBvcnRJZDogbnVtYmVyO1xyXG4gIGZpbHRlcnNBc0pTT046IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZSkge1xyXG5cclxuICAgIHRoaXMuZGVmYXVsdENvbERlZiA9IHtcclxuICAgICAgcmVzaXphYmxlOiB0cnVlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubWFpbkZyYW1ld29ya0NvbXBvbmVudHMgPSB7XHJcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudFxyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJSZXBvcnRJZCA9IHRoaXMucmVwb3J0U2VydmljZS5zdWJSZXBvcnREYXRhLmlkXHJcbiAgICBsZXQgZmlsdGVycyA9IHRoaXMucmVwb3J0U2VydmljZS5zdWJSZXBvcnREYXRhLmZpbHRlcnM7XHJcbiAgICB0aGlzLmZpbHRlcnNBc0pTT04gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldFN1YlJlcG9ydCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3ViUmVwb3J0KCkge1xyXG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldFN1YlJlcG9ydENvbmZpZyh0aGlzLnN1YlJlcG9ydElkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnRDb25maWcpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5tYWluQ29uZmlnID0gcmVzcG9uc2UuZGF0YS5tYWluQ29uZmlnO1xyXG4gICAgICAgICAgdGhpcy5nZXRTdWJSZXBvcnREYXRhKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSByZXNwb25zZS5lcnJvcnNNZXNzYWdlcy5qb2luKCcuICcpO1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLnNob3dFcnJvclN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQodGhpcy5lcnJvck1lc3NhZ2UpOyAgICAgICBcclxuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5jbG9zZVN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3ViUmVwb3J0RGF0YSgpIHtcclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRTdWJSZXBvcnREYXRhKHRoaXMuc3ViUmVwb3J0SWQsIHRoaXMuZmlsdGVyc0FzSlNPTikuc3Vic2NyaWJlKChyZXNwb25zZTogSUdlbmVyYWxSZXBvcnREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5tYWluQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEubWFpbkhlYWRlcnM7XHJcbiAgICAgICAgdGhpcy5tYWluUm93RGF0YSA9IHJlc3BvbnNlLmRhdGEubWFpbkRhdGE7XHJcbiAgICAgICAgdGhpcy5kYXRhR3JpZFJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmNsb3NlU3ViUmVwb3J0RGlhbG9nRXZlbnQuZW1pdCgpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5zaG93RXJyb3JTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KHRoaXMuZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLm1haW5Sb3dEYXRhKTtcclxuICAgIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xyXG4gICAgdGhpcy5ncmlkQXBpLnNldERvbUxheW91dChcImF1dG9IZWlnaHRcIik7XHJcbiAgICAvLyB0aGlzLmF1dG9TaXplQWxsKCk7XHJcbiAgICB0aGlzLmdyaWRSZWFkeSA9IHRydWU7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b1NpemVBbGwoKTtcclxuICAgIH0sIDMwMClcclxuICB9XHJcblxyXG4gIGF1dG9TaXplQWxsKCkge1xyXG4gICAgdmFyIGFsbENvbHVtbklkcyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpLmdldEFsbENvbHVtbnMoKS5mb3JFYWNoKChjb2x1bW4pID0+e1xyXG4gICAgICBhbGxDb2x1bW5JZHMucHVzaChjb2x1bW4uY29sSWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5BcGkuYXV0b1NpemVDb2x1bW5zKGFsbENvbHVtbklkcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5jbG9zZVN1YlJlcG9ydERpYWxvZ0V2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG59Il19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92ay1yZXBvcnRzLyIsInNvdXJjZXMiOlsibGliL3JlcG9ydHMvY29tcG9uZW50cy9yZXBvcnQvY29tcG9uZW50cy9zdWItcmVwb3J0L3N1Yi1yZXBvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtwRTtJQTRCRSw0QkFBcUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFaakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBV2IsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzdCLGNBQWMsRUFBRSx1QkFBdUI7U0FDeEMsQ0FBQTtRQUNELElBQUksQ0FBQyx5QkFBeUIsR0FBRztZQUMvQixjQUFjLEVBQUUsdUJBQXVCO1NBQ3hDLENBQUE7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQTs7WUFDbEQsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU87UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7OztJQUVELHFDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FB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LHlDQUFZOztJQUNaLDhDQUFpQjs7SUFDakIsMkNBQWM7O0lBQ2QsdUNBQWtCOztJQUNsQiw2Q0FBd0I7O0lBQ3hCLDJDQUFzQjs7SUFDdEIscUNBQWU7O0lBQ2YscURBQXdCOztJQUN4Qix1REFBMEI7O0lBQzFCLHdDQUFXOztJQUNYLDBDQUFhOztJQUViLHlDQUFvQjs7SUFDcEIsMkNBQXNCOzs7OztJQUVULDJDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1c3RvbWl6ZWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9taXplZC1jZWxsL2N1c3RvbWl6ZWQtY2VsbC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IElHZW5lcmFsUmVwb3J0RGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ncmlkLWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSUdlbmVyYWxSZXBvcnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhbC1yZXBvcnQtY29uZmlnLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zdWItcmVwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLXJlcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3ViLXJlcG9ydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJSZXBvcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkZWZhdWx0Q29sRGVmO1xyXG4gIGdyaWRBcGk7XHJcbiAgZ3JpZENvbHVtbkFwaTtcclxuICBmb290ZXJHcmlkQXBpO1xyXG4gIGZvb3RlckdyaWRDb2x1bW5BcGk7XHJcbiAgbWFpbkNvbHVtbkRlZnM7XHJcbiAgbWFpblJvd0RhdGE7XHJcbiAgZm9vdGVyQ29sdW1uRGVmcztcclxuICBmb290ZXJSb3dEYXRhO1xyXG4gIGdyaWRSZWFkeSA9IGZhbHNlO1xyXG4gIGZvb3RlckdyaWRSZWFkeSA9IGZhbHNlO1xyXG4gIGRhdGFHcmlkUmVhZHkgPSBmYWxzZTtcclxuICBsb2FkaW5nID0gdHJ1ZTtcclxuICBtYWluRnJhbWV3b3JrQ29tcG9uZW50cztcclxuICBmb290ZXJGcmFtZXdvcmtDb21wb25lbnRzO1xyXG4gIG1haW5Db25maWc7XHJcbiAgZXJyb3JNZXNzYWdlO1xyXG5cclxuICBzdWJSZXBvcnRJZDogbnVtYmVyO1xyXG4gIGZpbHRlcnNBc0pTT046IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZSkge1xyXG5cclxuICAgIHRoaXMuZGVmYXVsdENvbERlZiA9IHtcclxuICAgICAgcmVzaXphYmxlOiB0cnVlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubWFpbkZyYW1ld29ya0NvbXBvbmVudHMgPSB7XHJcbiAgICAgIGN1c3RvbWl6ZWRDZWxsOiBDdXN0b21pemVkQ2VsbENvbXBvbmVudFxyXG4gICAgfVxyXG4gICAgdGhpcy5mb290ZXJGcmFtZXdvcmtDb21wb25lbnRzID0ge1xyXG4gICAgICBjdXN0b21pemVkQ2VsbDogQ3VzdG9taXplZENlbGxDb21wb25lbnRcclxuICAgIH1cclxuICAgIHRoaXMuc3ViUmVwb3J0SWQgPSB0aGlzLnJlcG9ydFNlcnZpY2Uuc3ViUmVwb3J0RGF0YS5pZFxyXG4gICAgbGV0IGZpbHRlcnMgPSB0aGlzLnJlcG9ydFNlcnZpY2Uuc3ViUmVwb3J0RGF0YS5maWx0ZXJzO1xyXG4gICAgdGhpcy5maWx0ZXJzQXNKU09OID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5nZXRTdWJSZXBvcnQoKTtcclxuICB9XHJcblxyXG4gIGdldFN1YlJlcG9ydCgpIHtcclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRTdWJSZXBvcnRDb25maWcodGhpcy5zdWJSZXBvcnRJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcG9uc2U6IElHZW5lcmFsUmVwb3J0Q29uZmlnKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMubWFpbkNvbmZpZyA9IHJlc3BvbnNlLmRhdGEubWFpbkNvbmZpZztcclxuICAgICAgICAgIHRoaXMuZ2V0U3ViUmVwb3J0RGF0YSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gcmVzcG9uc2UuZXJyb3JzTWVzc2FnZXMuam9pbignLiAnKTtcclxuICAgICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5zaG93RXJyb3JTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KHRoaXMuZXJyb3JNZXNzYWdlKTsgICAgICAgXHJcbiAgICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuY2xvc2VTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFN1YlJlcG9ydERhdGEoKSB7XHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0U3ViUmVwb3J0RGF0YSh0aGlzLnN1YlJlcG9ydElkLCB0aGlzLmZpbHRlcnNBc0pTT04pLnN1YnNjcmliZSgocmVzcG9uc2U6IElHZW5lcmFsUmVwb3J0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIHRoaXMubWFpbkNvbHVtbkRlZnMgPSByZXNwb25zZS5kYXRhLm1haW5IZWFkZXJzO1xyXG4gICAgICAgIHRoaXMubWFpblJvd0RhdGEgPSByZXNwb25zZS5kYXRhLm1haW5EYXRhO1xyXG4gICAgICAgIHRoaXMuZm9vdGVyQ29sdW1uRGVmcyA9IHJlc3BvbnNlLmRhdGEuZm9vdGVySGVhZGVycztcclxuICAgICAgICB0aGlzLmZvb3RlclJvd0RhdGEgPSByZXNwb25zZS5kYXRhLmZvb3RlckRhdGE7XHJcbiAgICAgICAgdGhpcy5kYXRhR3JpZFJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLmVycm9yc01lc3NhZ2VzLmpvaW4oJy4gJyk7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmNsb3NlU3ViUmVwb3J0RGlhbG9nRXZlbnQuZW1pdCgpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0U2VydmljZS5zaG93RXJyb3JTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KHRoaXMuZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICAgIHBhcmFtcy5hcGkuc2V0Um93RGF0YSh0aGlzLm1haW5Sb3dEYXRhKTtcclxuICAgIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xyXG4gICAgdGhpcy5ncmlkQXBpLnNldERvbUxheW91dChcImF1dG9IZWlnaHRcIik7XHJcbiAgICAvLyB0aGlzLmF1dG9TaXplQWxsKCk7XHJcbiAgICB0aGlzLmdyaWRSZWFkeSA9IHRydWU7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b1NpemVBbGwoKTtcclxuICAgIH0sIDMwMClcclxuICB9XHJcblxyXG4gIG9uR3JpZEZvb3RlclJlYWR5KHBhcmFtcykge1xyXG4gICAgdGhpcy5mb290ZXJHcmlkQXBpID0gcGFyYW1zLmFwaTtcclxuICAgIHRoaXMuZm9vdGVyR3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XHJcbiAgICBwYXJhbXMuYXBpLnNldFJvd0RhdGEodGhpcy5mb290ZXJSb3dEYXRhKTtcclxuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoMTApO1xyXG4gICAgdGhpcy5mb290ZXJHcmlkQXBpLnNldERvbUxheW91dChcImF1dG9IZWlnaHRcIik7XHJcbiAgICB0aGlzLmZvb3RlckdyaWRSZWFkeSA9IHRydWU7XHJcbiAgICAvLyBpZiAodGhpcy5mb290ZXJDb25maWcubm9IZWFkZXIpIHtcclxuICAgIC8vICAgdGhpcy5mb290ZXJHcmlkQXBpLnNldEhlYWRlckhlaWdodCgwKTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuZm9vdGVyR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgfVxyXG5cclxuICBhdXRvU2l6ZUFsbCgpIHtcclxuICAgIHZhciBhbGxDb2x1bW5JZHMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZENvbHVtbkFwaS5nZXRBbGxDb2x1bW5zKCkuZm9yRWFjaCgoY29sdW1uKSA9PntcclxuICAgICAgYWxsQ29sdW1uSWRzLnB1c2goY29sdW1uLmNvbElkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpLmF1dG9TaXplQ29sdW1ucyhhbGxDb2x1bW5JZHMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuY2xvc2VTdWJSZXBvcnREaWFsb2dFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxufSJdfQ== |
@@ -1,5 +0,6 @@ | ||
import { OnInit } from '@angular/core'; | ||
import { OnInit, ElementRef } from '@angular/core'; | ||
import { MatSnackBar, MatDialog, MatDialogRef } from '@angular/material'; | ||
import { NgxSpinnerService } from 'ngx-spinner'; | ||
import { AgGridAngular } from 'ag-grid-angular'; | ||
import { GridOptions } from 'ag-grid-community'; | ||
import { SubReportComponent } from './components/report/components/sub-report/sub-report.component'; | ||
@@ -10,3 +11,2 @@ import { ReportService } from './services/report.service'; | ||
import { IReportConfig } from './models/report-config.interface'; | ||
import { GridOptions } from 'ag-grid-community'; | ||
export declare class AppComponent implements OnInit { | ||
@@ -21,2 +21,3 @@ private reportService; | ||
reportIdInput: number; | ||
content: ElementRef; | ||
reportListFlag: boolean; | ||
@@ -23,0 +24,0 @@ categories: ICategory[]; |
@@ -8,8 +8,14 @@ import { OnInit } from '@angular/core'; | ||
gridColumnApi: any; | ||
footerGridApi: any; | ||
footerGridColumnApi: any; | ||
mainColumnDefs: any; | ||
mainRowData: any; | ||
footerColumnDefs: any; | ||
footerRowData: any; | ||
gridReady: boolean; | ||
footerGridReady: boolean; | ||
dataGridReady: boolean; | ||
loading: boolean; | ||
mainFrameworkComponents: any; | ||
footerFrameworkComponents: any; | ||
mainConfig: any; | ||
@@ -24,4 +30,5 @@ errorMessage: any; | ||
onGridReady(params: any): void; | ||
onGridFooterReady(params: any): void; | ||
autoSizeAll(): void; | ||
closeDialog(): void; | ||
} |
{ | ||
"name": "vk-reports", | ||
"version": "0.6.14", | ||
"version": "0.6.15", | ||
"peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^8.2.12", |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"VKReportsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":31,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"exports":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"entryComponents":[{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":61,"character":4},{"__symbolic":"reference","module":"ngx-spinner","name":"NgxSpinnerModule","line":62,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":63,"character":4},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBarModule","line":66,"character":4},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":68,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ag-grid-angular","name":"AgGridModule","line":69,"character":4},"member":"withComponents"},"arguments":[[{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}]]},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":70,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":72,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":74,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressBarModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatChipsModule","line":76,"character":4}],"providers":[{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":78,"character":14}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FaIconLibrary","line":81,"character":23}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"reports-lib","animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":27,"character":4},"arguments":["isFiltersVisible",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":28,"character":6},"arguments":["true",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":20},"arguments":[{"opacity":1,"transform":"scaleY(1.0)","transformOrigin":"top center","position":"inherit"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":29,"character":6},"arguments":["false",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":29,"character":21},"arguments":[{"opacity":0,"transform":"scaleY(0.0)","transformOrigin":"top center","position":"absolute"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":30,"character":6},"arguments":["1 => 0",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":30,"character":27},"arguments":["300ms ease-in-out"]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":31,"character":6},"arguments":["0 => 1",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":31,"character":27},"arguments":["300ms ease-in-out"]}]}]]}],"template":"<!-- REPORT LIST -->\n<div *ngIf=\"reportListFlag\">\n <div class=\"report-wrapper\">\n <div class=\"title-container\">\n <p class=\"reports-title\">Reportes</p>\n <input class=\"search\" placeholder=\"Buscar reportes\" type=\"text\"\n (input)=\"onSearchChange($event.target.value)\">\n </div>\n <div *ngFor=\"let category of categories\">\n <app-reports-by-category *ngIf=\"dataReady && (getReportsFromCategory(category.id).length > 0)\"\n [category]=\"category\" [reports]=\"getReportsFromCategory(category.id)\"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type=\"ball-spin-clockwise\" size=\"medium\" color=\"#d32020\">\n <p class=\"spinner-text\">Cargando...</p>\n</ngx-spinner>\n\n<!-- REPORT -->\n<div *ngIf=\"reportFlag\">\n <div *ngIf=\"!configLoading && !dataLoading\">\n <div *ngIf=\"!error else errorPanel\">\n <div>\n <div class=\"title-header\">\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\n <button *ngIf=\"!OpenNewTab\" mat-icon-button (click)=\"goBack()\" aria-label=\"Cerrar reporte\">\n <mat-icon aria-hidden=\"false\">close</mat-icon>\n </button>\n </div>\n <div class=\"actions-container\">\n <button mat-button class=\"filter\" *ngIf=\"filtersFlag\" (click)=\"showFilter()\">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\n [agGrid]=\"agGrid\"></app-actions>\n </div>\n <div *ngIf=\"filtersFlag\">\n <app-filters [@isFiltersVisible]=\"showFilters\" [filters]=\"mainConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n </div>\n <div class=\"table-container\">\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\"\n pagination=\"true\" [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\n [frameworkComponents]=\"mainFrameworkComponents\" [gridOptions]=\"gridOptions\">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf=\"mainConfig.paginator && mainGridReady\" [agGrid]=\"agGrid\"></app-paginator>\n </div>\n <br>\n <!-- <div>\n <app-title-subtitle *ngIf=\"footerConfig.showTitle\" [title]=\"footerConfig.title\"\n [subtitle]=\"footerConfig.subtitle\"></app-title-subtitle>\n\n <app-actions *ngIf=\"footerConfig.export\" [title]=\"footerConfig.title\" [export]=\"footerConfig.export\"\n [agGrid]=\"agGridFooter\"></app-actions>\n\n <button *ngIf=\"footerConfig.filters\" (click)=\"showFilter()\"> <fa-icon class=\"icon\" [icon]=\"['fas', 'filter']\"></fa-icon> Filtros</button>\n <div *ngIf=\"footerConfig.filters\">\n <app-filters *ngIf=\"showFilters\" [filters]=\"footerConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n \n <app-paginator *ngIf=\"footerConfig.paginator && footerGridReady\" [agGrid]=\"agGridFooter\">\n </app-paginator>\n\n </div> -->\n\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class=\"error-panel\">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf=\"!OpenNewTab\" mat-raised-button class=\"back-button\" (click)=\"goBack()\">Volver</button>\n </div>\n </ng-template>\n\n</div>","styles":[".report-wrapper{width:100%;background-color:#f5f5f5;padding:10px;box-sizing:border-box;font-family:Roboto,sans-serif;height:100vh}.title-container{display:flex;flex-direction:column;padding:10px;margin:10px 0;background-color:#d32020}.title-container .reports-title{margin:0 0 10px;color:#fff;font-size:24px;font-weight:500}.title-container .search{width:100%}.back-button{margin-top:10px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.spinner-text{color:#fff;font-family:Arial,Helvetica,sans-serif}.icon{font-size:23px}.filter-button{margin-top:20px;margin-bottom:20px;margin-right:20px;text-align:right}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;background:#d32020;padding:10px;color:#fff}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.actions-container .filter{color:#fff}.error-panel{text-align:center}label{font-size:14px;color:#888}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}.table-container ::ng-deep .ag-theme-balham{font-family:Roboto,sans-serif}.table-container ::ng-deep .ag-theme-balham .ag-header{font-family:Roboto,sans-serif;font-weight:500;color:#333}@media (min-width:425px){.title-container{flex-direction:row;align-items:center;justify-content:space-between}.title-container .reports-title{margin:0}.title-container .search{font-size:14px;max-width:200px}}@media (min-width:768px){.formRow{margin-bottom:15px}.actions-container{justify-content:flex-end}}"]}]}],"members":{"ApiBaseUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"accessToken":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"OpenNewTab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"reportIdInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"agGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":97,"character":3},"arguments":["agGrid",{"static":false}]}]}],"agGridFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":98,"character":3},"arguments":["agGridFooter",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":101,"character":29},{"__symbolic":"reference","module":"ngx-spinner","name":"NgxSpinnerService","line":102,"character":32},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":103,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"getAllReports":[{"__symbolic":"method"}],"getReportsFromCategory":[{"__symbolic":"method"}],"onSearchChange":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}],"loadReport":[{"__symbolic":"method"}],"getReport":[{"__symbolic":"method"}],"getReportData":[{"__symbolic":"method"}],"onGridReady":[{"__symbolic":"method"}],"autoSizeAll":[{"__symbolic":"method"}],"onGridFooterReady":[{"__symbolic":"method"}],"showFilter":[{"__symbolic":"method"}],"goBack":[{"__symbolic":"method"}],"openSubReport":[{"__symbolic":"method"}],"closeSubReport":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":35,"character":27}]}],"getReports":[{"__symbolic":"method"}],"getConfig":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getSubReportConfig":[{"__symbolic":"method"}],"getSubReportData":[{"__symbolic":"method"}],"initialFilterData":[{"__symbolic":"method"}],"resetFilterValues":[{"__symbolic":"method"}],"setFilterData":[{"__symbolic":"method"}],"_setAuthHeaders":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-reports-by-category","template":"<p class=\"category-title\">{{category.name}}</p>\n<div *ngFor=\"let report of reports\">\n <button class=\"single-report\" (click)=\"goToReport(report.id)\">\n <span>{{ report.title }}</span>\n <mat-icon>chevron_right</mat-icon>\n </button>\n</div>","styles":[".category-title{color:#000;font-weight:500;font-size:16px;line-height:2;text-align:left;width:100%;border-bottom:1px solid #a9a9a9;margin-bottom:10px}.single-report{display:flex;flex-flow:row;align-items:center;justify-content:space-between;background-color:#fff;margin-bottom:6px;border-radius:3px;border:1px solid #d9d9d9;transition:.3s ease-in-out}button{font-size:13px;text-decoration:none;padding:7px;display:block;width:100%;transition:.3s ease-in-out;z-index:2;border:none;background:0 0;text-align:left;cursor:pointer}button:focus,button:hover{transition:.3s ease-in-out;color:#d32020}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}"]}]}],"members":{"category":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"reports":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"goToReport":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-customized-cell","template":"<div [innerHTML]=\"cellvalue\"></div>","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":15,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"agInit":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"sanitize":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-customized-button-cell","template":"<!-- <div><button mat-flat-button [ngStyle]=\"myStyles\" (click)=\"openDialog()\">{{cellvalue.label}}</button></div> -->\r\n<!-- <div><mat-chip [ngStyle]=\"myStyles\" (click)=\"openDialog()\">{{cellvalue.label}}</mat-chip></div> -->\r\n<mat-chip-list class=\"mat-chip-list-stacked\" #chipList>\r\n <mat-chip [ngStyle]=\"myStyles\" (click)=\"openDialog()\">{{cellvalue.label}}</mat-chip>\r\n</mat-chip-list>","styles":[".align{text-align:center;align-content:center}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"agInit":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"openDialog":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"app-title-subtitle","template":"<h1>{{title}}</h1>\n<h2 *ngIf=\"subtitle\">{{subtitle}}</h2>\n","styles":["h1{font-size:1.2em;font-weight:400;margin:0 0 5px}h2{font-size:.8em;line-height:1.5;font-weight:400;margin:0}@media (min-width:768px){h1{font-size:1.4em}h2{font-size:.9em}}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"subtitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"app-actions","template":"<!-- <mat-menu #saveAsMenu=\"matMenu\"> -->\r\n <button *ngIf=\"csv\" class=\"menu\" mat-button (click)=\" exportCSV()\"><fa-icon class=\"icon\" [icon]=\"['fas', 'file-csv']\"></fa-icon> CSV</button>\r\n <button *ngIf=\"pdf\" class=\"menu\" mat-button (click)=\"generatePdf()\" ><fa-icon class=\"icon\" [icon]=\"['fas', 'file-pdf']\"></fa-icon> PDF</button>\r\n <button *ngIf=\"excel\" class=\"menu\" mat-button (click)=\"generateExcel()\" ><fa-icon class=\"icon\" [icon]=\"['fas', 'file-excel']\"></fa-icon> EXCEL</button>\r\n<!-- </mat-menu>\r\n<button mat-button class=\"menu\" [matMenuTriggerFor]=\"saveAsMenu\">\r\n <mat-icon>save_alt</mat-icon> Guardar como\r\n</button> -->","styles":[".menu{color:#fff}.icon{font-size:20px}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"agGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"export":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"ngOnInit":[{"__symbolic":"method"}],"exportCSV":[{"__symbolic":"method"}],"generatePdf":[{"__symbolic":"method"}],"generateExcel":[{"__symbolic":"method"}],"getColumns":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":12,"character":32}]}],"transformDate":[{"__symbolic":"method"}],"generateExcel":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-filters","template":"<div class=\"filter-container\">\n <p class=\"filter-title\">Filtrar reporte</p>\n <div fxLayout=\"column\" fxLayout.gt-xs=\"row wrap\" fxLayoutGap=\"15px\"\n fxLayoutAlign=\"start start\">\n <div class=\"filter\" fxFlex=\"100\" fxFlex.gt-xs=\"0 1 calc(25% - 15px)\" fxFlex.gt-sm=\"0 1 calc(20% - 15px)\" *ngFor=\"let filter of filters; let i = index\">\n <app-date-filter *ngIf=\"(filter.order === (i + 1)) && (filter.type === 1)\" [dateFilter]=\"filter\">\n </app-date-filter>\n\n <app-dropdown-filter *ngIf=\"(filter.order === (i + 1)) && ((filter.type === 2) || (filter.type === 3))\"\n [dropdownFilter]=\"filter\">\n </app-dropdown-filter>\n\n <app-numeric-filter *ngIf=\"(filter.order === (i + 1)) && (filter.type === 4)\" [numericFilter]=\"filter\">\n </app-numeric-filter>\n\n <app-text-filter *ngIf=\"(filter.order === (i + 1)) && (filter.type === 5)\" [textFilter]=\"filter\">\n </app-text-filter>\n\n <app-autocomplete-filter *ngIf=\"(filter.order === (i + 1)) && ((filter.type === 6) || (filter.type === 7))\"\n [autocompleteFilterConfig]=\"filter\">\n </app-autocomplete-filter>\n </div>\n </div>\n <button mat-raised-button class=\"filter-button\" (click)=\"getFilteredData()\">Aplicar Filtros</button>\n</div>","styles":[".filter-title{margin:0 0 10px;padding:5px 0;font-weight:500;border-bottom:1px solid #333}.filter-button{margin-top:20px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.filter-container{padding:10px}.filter{width:100%}label{font-size:14px;color:#888}"]}]}],"members":{"idReport":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"filters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"getFilteredData":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-paginator","template":"<div class=\"paginator-container\">\n <div class=\"paginator-buttons\">\n <button (click)=\"onBtFirst()\" aria-label=\"Primera página\" mat-icon-button>\n <mat-icon>first_page</mat-icon>\n </button>\n <button (click)=\"onBtPrevious()\" aria-label=\"Página anterior\" mat-icon-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <input (change)=\"goToPage($event)\" size=\"4\" type=\"number\" [value]=\"currentPage\">\n\n <button (click)=\"onBtNext()\" aria-label=\"Página siguiente\" mat-icon-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button (click)=\"onBtLast()\" aria-label=\"Última página\" mat-icon-button>\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n <p class=\"paginator-text\">Página {{ currentPage }} de {{totalPages}}</p>\n <div class=\"items-per-page\">\n <input (change)=\"showRow($event)\" min=\"1\" max=\"100\" maxlength=\"3\" #rows type=\"number\" [value]=\"pages\" name=\"itemsPerPage\"><label for=\"itemsPerPage\">registros por página</label> \n </div>\n</div>\n\n\n<!-- <button (click)=\"showRows(rows.value)\" >Mostrar</button> -->","styles":[".paginator-container{background-color:#fff;border-radius:5px;padding:10px 0;max-width:300px;margin:10px auto 0;box-shadow:3px 3px 15px 0 rgba(0,0,0,.15)}.paginator-container .paginator-buttons{display:flex;flex-direction:row;align-items:center;justify-content:center}.paginator-container .paginator-buttons input{max-width:40px;text-align:center}.paginator-container .paginator-text{font-size:12px;margin:5px 0;text-align:center}.paginator-container .items-per-page{display:flex;flex-direction:row;align-items:center;justify-content:center;border-top:1px solid #000;margin:0 20px;padding-top:10px}.paginator-container .items-per-page input{max-width:60px;text-align:center}.paginator-container .items-per-page label{margin-left:5px;font-size:12px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}input[type=number]{-moz-appearance:textfield}.icon{font-size:30px}@media (min-width:768px){.paginator-container{display:flex;flex-direction:row;align-items:center;justify-items:center;max-width:550px}.paginator-container .paginator-text{margin-left:5px}.paginator-container .items-per-page{border-top:0;border-left:1px solid #000;padding-top:0;padding-left:10px}}"]}]}],"members":{"agGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"initPaginator":[{"__symbolic":"method"}],"onBtFirst":[{"__symbolic":"method"}],"onBtLast":[{"__symbolic":"method"}],"onBtNext":[{"__symbolic":"method"}],"onBtPrevious":[{"__symbolic":"method"}],"showRows":[{"__symbolic":"method"}],"getcurrentPage":[{"__symbolic":"method"}],"getTotalPages":[{"__symbolic":"method"}],"getPages":[{"__symbolic":"method"}],"goToPage":[{"__symbolic":"method"}],"showRow":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"app-sub-report","template":"<ng-container *ngIf=\"loading; else mainTemplate\">\r\n <div class=\"loading\">\r\n <mat-progress-bar color=\"warn\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n \r\n<ng-template #mainTemplate>\r\n \r\n<div *ngIf=\"dataGridReady\">\r\n <div class=\"title-header\">\r\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\r\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\r\n <button mat-icon-button (click)=\" closeDialog()\" aria-label=\"Cerrar reporte\">\r\n <mat-icon aria-hidden=\"false\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"actions-container\">\r\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\r\n [agGrid]=\"agGrid\"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" \r\n [rowData]=\"mainRowData\"\r\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" \r\n rowSelection=\"single\"\r\n pagination=\"true\" [suppressPaginationPanel]=\"true\" \r\n (gridReady)=\"onGridReady($event)\"\r\n [frameworkComponents]=\"mainFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf=\"mainConfig.paginator && gridReady\" [agGrid]=\"agGrid\"></app-paginator>\r\n\r\n</div>\r\n</ng-template>\r\n","styles":[".button-container{text-align:right;margin-bottom:10px}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;padding:10px}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#fff}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"getSubReport":[{"__symbolic":"method"}],"getSubReportData":[{"__symbolic":"method"}],"onGridReady":[{"__symbolic":"method"}],"autoSizeAll":[{"__symbolic":"method"}],"closeDialog":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[],"exports":[],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","name":"ɵn"}],"providers":[],"bootstrap":[]}]}],"members":{}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"}],"exports":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":32,"character":4},{"__symbolic":"reference","module":"@ng-select/ng-select","name":"NgSelectModule","line":33,"character":4}]}]}],"members":{}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-date-filter","template":" <div class=\"formRow\">\n <label>{{ dateFilter.label }}</label>\n <input #date type=\"date\" [value]=\"dateFilter.data.defaultValue\"\n [min]=\"dateFilter.data.minValue\" [max]=\"dateFilter.data.maxValue\"\n (input)=\"onDateChange($event)\">\n <small *ngIf=\"invalidDate\"> Fecha inválida</small>\n </div> \n ","styles":["input[type=date]{font-family:Roboto,Helvetica,sans-serif;width:100%;margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}small{color:red}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],"members":{"dateFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onDateChange":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-dropdown-filter","template":"<div class=\"formRow\">\n <label>{{ dropdownFilter.label }}</label>\n <ng-select #select class=\"select\"\n [multiple]=\"multiple\"\n [items]=\"dropdownFilter.data.dataSource\"\n [bindLabel]=\"dropdownFilter.data.valueName\"\n [bindValue]=\"dropdownFilter.data.keyName\"\n [placeholder]=\"dropdownFilter.data.placeholder\"\n [closeOnSelect]=\"!multiple\"\n [(ngModel)]=\"selectedFilters\"\n (change)=\"onSelectChange($event)\">\n <ng-template ng-option-tmp let-item=\"item\" \n let-item$=\"item$\" let-index=\"index\">\n <input id=\"item-{{index}}\" type=\"checkbox\"\n [ngModel]=\"item$.selected\"/> \n {{item.description}}\n </ng-template>\n <ng-template ng-multi-label-tmp let-items=\"items\" >\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <span class=\"ng-value-label\"> {{item.description}}</span>\n </div>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>\n","styles":[".select{width:100%;margin-top:7px;min-width:175px}::ng-deep .ng-select .ng-select-container{background-color:#fff;border:.5px solid #707070;border-radius:2px;min-height:35px;transition:.3s ease-in-out}::ng-deep .ng-select .ng-select-container:focus,::ng-deep .ng-select .ng-select-container:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}::ng-deep .ng-select.ng-select-single .ng-select-container{height:35px}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:8px;font-size:15px}label{font-size:14px;color:#888}"]}]}],"members":{"dropdownFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onSelectChange":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-numeric-filter","template":"<div class=\"formRow\">\n <label>{{ numericFilter.label }} </label>\n <input type=\"number\" \n [min]=\"numericFilter.data.minValue\" \n [max]=\"numericFilter.data.maxValue\"\n [attr.maxlength]=\"numericFilter.data.maxLength\" \n (keyup)=\"onNumberChange($event)\" \n [placeholder]=\"numericFilter.data.placeholder\"\n [value]=\"numericFilter.data.defaultValue\">\n \n <small *ngIf=\"invalidNumber\"> Campo Inválido</small>\n\n</div> \n \n","styles":["input{margin-top:7px;width:100%;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],"members":{"numericFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onNumberChange":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-text-filter","template":"<div class=\"formRow\">\n <label>{{ textFilter.label }} </label>\n <input type=\"text\" [attr.maxlength]=\"textFilter.data.maxLength\" [placeholder]=\"textFilter.data.placeholder\"\n (input)=\"onTextChange($event.target.value)\">\n</div>","styles":["input{margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],"members":{"textFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onTextChange":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"app-autocomplete-filter","template":"<div class=\"formRow\">\n <label>{{ autocompleteFilterConfig.label }}</label>\n <ng-select class=\"autocomplete\"\n [disabled] =\"!dataReady\"\n [items]=\"autocompleteFilterData.dataSource\"\n [bindLabel]=\"autocompleteFilterData.valueName\"\n [bindValue]=\"autocompleteFilterData.keyName\"\n (search)=\"search($event)\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [(ngModel)]=\"selectedFilters\"\n (change)=\"onSelectChange($event)\">\n\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\n <input id=\"item-{{index}}\" type=\"checkbox\"\n [ngModel]=\"item$.selected\"/> {{item.description}}\n </ng-template>\n\n <ng-template ng-multi-label-tmp let-items=\"items\" >\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <span class=\"ng-value-label\"> {{item.description}}</span>\n </div>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>","styles":[".autocomplete{font-size:15px;margin-top:7px;min-width:175px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;padding:0 10px;font-size:15px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#333;color:#fff}::ng-deep ng-select ::ng-deep .ng-dropdown-panel.ng-select-bottom{border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-color:#000;transition:.3s ease-in-out}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input{top:8px!important}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input input{padding:0;height:auto}::ng-deep .ng-select.ng-select-opened>.ng-select-container{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}label{font-size:14px;color:#888}"]}]}],"members":{"autocompleteFilterConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"initGetFilteredData":[{"__symbolic":"method"}],"filteredDataHandler":[{"__symbolic":"method"}],"search":[{"__symbolic":"method"}],"onSelectChange":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":12,"character":28}]}],"getAllFilters":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[],"exports":[],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4}],"providers":[],"bootstrap":[]}]}],"members":{}}},"origins":{"VKReportsModule":"./lib/reports.module","ɵa":"./lib/reports/app.module","ɵb":"./lib/reports/app.component","ɵc":"./lib/reports/services/report.service","ɵd":"./lib/reports/components/report-list/reports-by-category/reports-by-category.component","ɵe":"./lib/reports/components/report/components/customized-cell/customized-cell.component","ɵf":"./lib/reports/components/report/components/customized-button-cell/customized-button-cell.component","ɵg":"./lib/reports/components/report/components/title-subtitle/title-subtitle.component","ɵh":"./lib/reports/components/report/components/actions/actions.component","ɵi":"./lib/reports/services/export-excel.service","ɵj":"./lib/reports/components/report/components/filters/filters.component","ɵk":"./lib/reports/components/report/components/paginator/paginator.component","ɵl":"./lib/reports/components/report/components/sub-report/sub-report.component","ɵm":"./lib/reports/components/report/report.module","ɵn":"./lib/reports/components/report/components/filters/filters.module","ɵo":"./lib/reports/components/report/components/filters/date-filter/date-filter.component","ɵp":"./lib/reports/components/report/components/filters/dropdown-filter/dropdown-filter.component","ɵq":"./lib/reports/components/report/components/filters/numeric-filter/numeric-filter.component","ɵr":"./lib/reports/components/report/components/filters/text-filter/text-filter.component","ɵs":"./lib/reports/components/report/components/filters/autocomplete-filter/autocomplete-filter.component","ɵt":"./lib/reports/services/autocomplete.service","ɵu":"./lib/reports/components/report-list/report-list.module"},"importAs":"vk-reports"} | ||
{"__symbolic":"module","version":4,"metadata":{"VKReportsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":31,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"exports":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"entryComponents":[{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":61,"character":4},{"__symbolic":"reference","module":"ngx-spinner","name":"NgxSpinnerModule","line":62,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":63,"character":4},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBarModule","line":66,"character":4},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":68,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ag-grid-angular","name":"AgGridModule","line":69,"character":4},"member":"withComponents"},"arguments":[[{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}]]},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":70,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":72,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":74,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressBarModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatChipsModule","line":76,"character":4}],"providers":[{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":78,"character":14}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FaIconLibrary","line":81,"character":23}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"reports-lib","animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":27,"character":4},"arguments":["isFiltersVisible",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":28,"character":6},"arguments":["true",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":20},"arguments":[{"opacity":1,"transform":"scaleY(1.0)","transformOrigin":"top center","position":"inherit"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":29,"character":6},"arguments":["false",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":29,"character":21},"arguments":[{"opacity":0,"transform":"scaleY(0.0)","transformOrigin":"top center","position":"absolute"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":30,"character":6},"arguments":["1 => 0",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":30,"character":27},"arguments":["300ms ease-in-out"]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":31,"character":6},"arguments":["0 => 1",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":31,"character":27},"arguments":["300ms ease-in-out"]}]}]]}],"template":"<!-- REPORT LIST -->\n<div *ngIf=\"reportListFlag\">\n <div class=\"report-wrapper\">\n <div class=\"title-container\">\n <p class=\"reports-title\">Reportes</p>\n <input class=\"search\" placeholder=\"Buscar reportes\" type=\"text\"\n (input)=\"onSearchChange($event.target.value)\">\n </div>\n <div *ngFor=\"let category of categories\">\n <app-reports-by-category *ngIf=\"dataReady && (getReportsFromCategory(category.id).length > 0)\"\n [category]=\"category\" [reports]=\"getReportsFromCategory(category.id)\"></app-reports-by-category>\n </div>\n </div>\n</div>\n\n<ngx-spinner type=\"ball-spin-clockwise\" size=\"medium\" color=\"#d32020\">\n <p class=\"spinner-text\">Cargando...</p>\n</ngx-spinner>\n\n<!-- REPORT -->\n<div *ngIf=\"reportFlag\">\n <div *ngIf=\"!configLoading && !dataLoading\">\n <div *ngIf=\"!error else errorPanel\">\n <div>\n <div class=\"title-header\">\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\n <button *ngIf=\"!OpenNewTab\" mat-icon-button (click)=\"goBack()\" aria-label=\"Cerrar reporte\">\n <mat-icon aria-hidden=\"false\">close</mat-icon>\n </button>\n </div>\n <div class=\"actions-container\">\n <button mat-button class=\"filter\" *ngIf=\"filtersFlag\" (click)=\"showFilter()\">\n <mat-icon>filter_list</mat-icon> Filtros\n </button>\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\n [agGrid]=\"agGrid\"></app-actions>\n </div>\n <div *ngIf=\"filtersFlag\">\n <app-filters [@isFiltersVisible]=\"showFilters\" [filters]=\"mainConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n </div>\n <div #content class=\"table-container\">\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\"\n pagination=\"true\" [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\n [frameworkComponents]=\"mainFrameworkComponents\" [gridOptions]=\"gridOptions\">\n </ag-grid-angular>\n </div>\n <div>\n <app-paginator *ngIf=\"mainConfig.paginator && mainGridReady\" [agGrid]=\"agGrid\"></app-paginator>\n </div>\n <br>\n <!-- <div>\n <app-title-subtitle *ngIf=\"footerConfig.showTitle\" [title]=\"footerConfig.title\"\n [subtitle]=\"footerConfig.subtitle\"></app-title-subtitle>\n\n <app-actions *ngIf=\"footerConfig.export\" [title]=\"footerConfig.title\" [export]=\"footerConfig.export\"\n [agGrid]=\"agGridFooter\"></app-actions>\n\n <button *ngIf=\"footerConfig.filters\" (click)=\"showFilter()\"> <fa-icon class=\"icon\" [icon]=\"['fas', 'filter']\"></fa-icon> Filtros</button>\n <div *ngIf=\"footerConfig.filters\">\n <app-filters *ngIf=\"showFilters\" [filters]=\"footerConfig.filters\" [idReport]=\"idReport\"></app-filters>\n </div>\n \n <app-paginator *ngIf=\"footerConfig.paginator && footerGridReady\" [agGrid]=\"agGridFooter\">\n </app-paginator>\n\n </div> -->\n\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\n </ag-grid-angular>\n\n </div>\n </div>\n\n <ng-template #errorPanel>\n <div class=\"error-panel\">\n <label><b>Error al cargar reporte</b></label>\n <br>\n <label>{{errorMessage}}</label>\n <br>\n <button *ngIf=\"!OpenNewTab\" mat-raised-button class=\"back-button\" (click)=\"goBack()\">Volver</button>\n </div>\n </ng-template>\n\n</div>","styles":[".report-wrapper{width:100%;background-color:#f5f5f5;padding:10px;box-sizing:border-box;font-family:Roboto,sans-serif;height:100vh}.title-container{display:flex;flex-direction:column;padding:10px;margin:10px 0;background-color:#d32020}.title-container .reports-title{margin:0 0 10px;color:#fff;font-size:24px;font-weight:500}.title-container .search{width:100%}.back-button{margin-top:10px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.spinner-text{color:#fff;font-family:Arial,Helvetica,sans-serif}.icon{font-size:23px}.filter-button{margin-top:20px;margin-bottom:20px;margin-right:20px;text-align:right}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;background:#d32020;padding:10px;color:#fff}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.actions-container .filter{color:#fff}.error-panel{text-align:center}label{font-size:14px;color:#888}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}.table-container ::ng-deep .ag-theme-balham{font-family:Roboto,sans-serif}.table-container ::ng-deep .ag-theme-balham .ag-header{font-family:Roboto,sans-serif;font-weight:500;color:#333}@media (min-width:425px){.title-container{flex-direction:row;align-items:center;justify-content:space-between}.title-container .reports-title{margin:0}.title-container .search{font-size:14px;max-width:200px}}@media (min-width:768px){.formRow{margin-bottom:15px}.actions-container{justify-content:flex-end}}"]}]}],"members":{"ApiBaseUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"accessToken":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"OpenNewTab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"reportIdInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":42,"character":3},"arguments":["content",{"static":false}]}]}],"agGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":99,"character":3},"arguments":["agGrid",{"static":false}]}]}],"agGridFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":100,"character":3},"arguments":["agGridFooter",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":103,"character":29},{"__symbolic":"reference","module":"ngx-spinner","name":"NgxSpinnerService","line":104,"character":32},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":105,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"getAllReports":[{"__symbolic":"method"}],"getReportsFromCategory":[{"__symbolic":"method"}],"onSearchChange":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}],"loadReport":[{"__symbolic":"method"}],"getReport":[{"__symbolic":"method"}],"getReportData":[{"__symbolic":"method"}],"onGridReady":[{"__symbolic":"method"}],"autoSizeAll":[{"__symbolic":"method"}],"onGridFooterReady":[{"__symbolic":"method"}],"showFilter":[{"__symbolic":"method"}],"goBack":[{"__symbolic":"method"}],"openSubReport":[{"__symbolic":"method"}],"closeSubReport":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":35,"character":27}]}],"getReports":[{"__symbolic":"method"}],"getConfig":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getSubReportConfig":[{"__symbolic":"method"}],"getSubReportData":[{"__symbolic":"method"}],"initialFilterData":[{"__symbolic":"method"}],"resetFilterValues":[{"__symbolic":"method"}],"setFilterData":[{"__symbolic":"method"}],"_setAuthHeaders":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-reports-by-category","template":"<p class=\"category-title\">{{category.name}}</p>\n<div *ngFor=\"let report of reports\">\n <button class=\"single-report\" (click)=\"goToReport(report.id)\">\n <span>{{ report.title }}</span>\n <mat-icon>chevron_right</mat-icon>\n </button>\n</div>","styles":[".category-title{color:#000;font-weight:500;font-size:16px;line-height:2;text-align:left;width:100%;border-bottom:1px solid #a9a9a9;margin-bottom:10px}.single-report{display:flex;flex-flow:row;align-items:center;justify-content:space-between;background-color:#fff;margin-bottom:6px;border-radius:3px;border:1px solid #d9d9d9;transition:.3s ease-in-out}button{font-size:13px;text-decoration:none;padding:7px;display:block;width:100%;transition:.3s ease-in-out;z-index:2;border:none;background:0 0;text-align:left;cursor:pointer}button:focus,button:hover{transition:.3s ease-in-out;color:#d32020}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}"]}]}],"members":{"category":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"reports":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"goToReport":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-customized-cell","template":"<div [innerHTML]=\"cellvalue\"></div>","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":15,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"agInit":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"sanitize":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-customized-button-cell","template":"<!-- <div><button mat-flat-button [ngStyle]=\"myStyles\" (click)=\"openDialog()\">{{cellvalue.label}}</button></div> -->\r\n<!-- <div><mat-chip [ngStyle]=\"myStyles\" (click)=\"openDialog()\">{{cellvalue.label}}</mat-chip></div> -->\r\n<mat-chip-list class=\"mat-chip-list-stacked\" #chipList>\r\n <mat-chip [ngStyle]=\"myStyles\" (click)=\"openDialog()\">{{cellvalue.label}}</mat-chip>\r\n</mat-chip-list>","styles":[".align{text-align:center;align-content:center}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"agInit":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"openDialog":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"app-title-subtitle","template":"<h1>{{title}}</h1>\n<h2 *ngIf=\"subtitle\">{{subtitle}}</h2>\n","styles":["h1{font-size:1.2em;font-weight:400;margin:0 0 5px}h2{font-size:.8em;line-height:1.5;font-weight:400;margin:0}@media (min-width:768px){h1{font-size:1.4em}h2{font-size:.9em}}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"subtitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"app-actions","template":"<!-- <mat-menu #saveAsMenu=\"matMenu\"> -->\r\n <button *ngIf=\"csv\" class=\"menu\" mat-button (click)=\" exportCSV()\"><fa-icon class=\"icon\" [icon]=\"['fas', 'file-csv']\"></fa-icon> CSV</button>\r\n <button *ngIf=\"pdf\" class=\"menu\" mat-button (click)=\"generatePdf()\" ><fa-icon class=\"icon\" [icon]=\"['fas', 'file-pdf']\"></fa-icon> PDF</button>\r\n <button *ngIf=\"excel\" class=\"menu\" mat-button (click)=\"generateExcel()\" ><fa-icon class=\"icon\" [icon]=\"['fas', 'file-excel']\"></fa-icon> EXCEL</button>\r\n<!-- </mat-menu>\r\n<button mat-button class=\"menu\" [matMenuTriggerFor]=\"saveAsMenu\">\r\n <mat-icon>save_alt</mat-icon> Guardar como\r\n</button> -->","styles":[".menu{color:#fff}.icon{font-size:20px}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"agGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"export":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"ngOnInit":[{"__symbolic":"method"}],"exportCSV":[{"__symbolic":"method"}],"generatePdf":[{"__symbolic":"method"}],"generateExcel":[{"__symbolic":"method"}],"getColumns":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":12,"character":32}]}],"transformDate":[{"__symbolic":"method"}],"generateExcel":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-filters","template":"<div class=\"filter-container\">\n <p class=\"filter-title\">Filtrar reporte</p>\n <div fxLayout=\"column\" fxLayout.gt-xs=\"row wrap\" fxLayoutGap=\"15px\"\n fxLayoutAlign=\"start start\">\n <div class=\"filter\" fxFlex=\"100\" fxFlex.gt-xs=\"0 1 calc(25% - 15px)\" fxFlex.gt-sm=\"0 1 calc(20% - 15px)\" *ngFor=\"let filter of filters; let i = index\">\n <app-date-filter *ngIf=\"(filter.order === (i + 1)) && (filter.type === 1)\" [dateFilter]=\"filter\">\n </app-date-filter>\n\n <app-dropdown-filter *ngIf=\"(filter.order === (i + 1)) && ((filter.type === 2) || (filter.type === 3))\"\n [dropdownFilter]=\"filter\">\n </app-dropdown-filter>\n\n <app-numeric-filter *ngIf=\"(filter.order === (i + 1)) && (filter.type === 4)\" [numericFilter]=\"filter\">\n </app-numeric-filter>\n\n <app-text-filter *ngIf=\"(filter.order === (i + 1)) && (filter.type === 5)\" [textFilter]=\"filter\">\n </app-text-filter>\n\n <app-autocomplete-filter *ngIf=\"(filter.order === (i + 1)) && ((filter.type === 6) || (filter.type === 7))\"\n [autocompleteFilterConfig]=\"filter\">\n </app-autocomplete-filter>\n </div>\n </div>\n <button mat-raised-button class=\"filter-button\" (click)=\"getFilteredData()\">Aplicar Filtros</button>\n</div>","styles":[".filter-title{margin:0 0 10px;padding:5px 0;font-weight:500;border-bottom:1px solid #333}.filter-button{margin-top:20px;margin-bottom:20px;text-align:right;color:#fff;background:#000}.filter-container{padding:10px}.filter{width:100%}label{font-size:14px;color:#888}"]}]}],"members":{"idReport":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"filters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"getFilteredData":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-paginator","template":"<div class=\"paginator-container\">\n <div class=\"paginator-buttons\">\n <button (click)=\"onBtFirst()\" aria-label=\"Primera página\" mat-icon-button>\n <mat-icon>first_page</mat-icon>\n </button>\n <button (click)=\"onBtPrevious()\" aria-label=\"Página anterior\" mat-icon-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <input (change)=\"goToPage($event)\" size=\"4\" type=\"number\" [value]=\"currentPage\">\n\n <button (click)=\"onBtNext()\" aria-label=\"Página siguiente\" mat-icon-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button (click)=\"onBtLast()\" aria-label=\"Última página\" mat-icon-button>\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n <p class=\"paginator-text\">Página {{ currentPage }} de {{totalPages}}</p>\n <div class=\"items-per-page\">\n <input (change)=\"showRow($event)\" min=\"1\" max=\"100\" maxlength=\"3\" #rows type=\"number\" [value]=\"pages\" name=\"itemsPerPage\"><label for=\"itemsPerPage\">registros por página</label> \n </div>\n</div>\n\n\n<!-- <button (click)=\"showRows(rows.value)\" >Mostrar</button> -->","styles":[".paginator-container{background-color:#fff;border-radius:5px;padding:10px 0;max-width:300px;margin:10px auto 0;box-shadow:3px 3px 15px 0 rgba(0,0,0,.15)}.paginator-container .paginator-buttons{display:flex;flex-direction:row;align-items:center;justify-content:center}.paginator-container .paginator-buttons input{max-width:40px;text-align:center}.paginator-container .paginator-text{font-size:12px;margin:5px 0;text-align:center}.paginator-container .items-per-page{display:flex;flex-direction:row;align-items:center;justify-content:center;border-top:1px solid #000;margin:0 20px;padding-top:10px}.paginator-container .items-per-page input{max-width:60px;text-align:center}.paginator-container .items-per-page label{margin-left:5px;font-size:12px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input{background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}input[type=number]{-moz-appearance:textfield}.icon{font-size:30px}@media (min-width:768px){.paginator-container{display:flex;flex-direction:row;align-items:center;justify-items:center;max-width:550px}.paginator-container .paginator-text{margin-left:5px}.paginator-container .items-per-page{border-top:0;border-left:1px solid #000;padding-top:0;padding-left:10px}}"]}]}],"members":{"agGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"initPaginator":[{"__symbolic":"method"}],"onBtFirst":[{"__symbolic":"method"}],"onBtLast":[{"__symbolic":"method"}],"onBtNext":[{"__symbolic":"method"}],"onBtPrevious":[{"__symbolic":"method"}],"showRows":[{"__symbolic":"method"}],"getcurrentPage":[{"__symbolic":"method"}],"getTotalPages":[{"__symbolic":"method"}],"getPages":[{"__symbolic":"method"}],"goToPage":[{"__symbolic":"method"}],"showRow":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"app-sub-report","template":"<ng-container *ngIf=\"loading; else mainTemplate\">\r\n <div class=\"loading\">\r\n <mat-progress-bar color=\"warn\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>Cargando ...</p>\r\n </div>\r\n</ng-container>\r\n\r\n\r\n\r\n<ng-template #mainTemplate>\r\n\r\n <div *ngIf=\"dataGridReady\">\r\n <div class=\"title-header\">\r\n <app-title-subtitle *ngIf=\"mainConfig.showTitle\" [title]=\"mainConfig.title\"\r\n [subtitle]=\"mainConfig.subtitle\"></app-title-subtitle>\r\n <button mat-icon-button (click)=\" closeDialog()\" aria-label=\"Cerrar reporte\">\r\n <mat-icon aria-hidden=\"false\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"actions-container\">\r\n <app-actions *ngIf=\"mainConfig.export\" [title]=\"mainConfig.title\" [export]=\"mainConfig.export\"\r\n [agGrid]=\"agGrid\"></app-actions>\r\n </div>\r\n\r\n <ag-grid-angular #agGrid class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"mainRowData\"\r\n [columnDefs]=\"mainColumnDefs\" [defaultColDef]=\"defaultColDef\" rowSelection=\"single\" pagination=\"true\"\r\n [suppressPaginationPanel]=\"true\" (gridReady)=\"onGridReady($event)\"\r\n [frameworkComponents]=\"mainFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n <app-paginator *ngIf=\"mainConfig.paginator && gridReady\" [agGrid]=\"agGrid\"></app-paginator>\r\n\r\n <ag-grid-angular #agGridFooter class=\"ag-theme-balham\" [animateRows]=\"true\" [rowData]=\"footerRowData\"\r\n [columnDefs]=\"footerColumnDefs\" rowSelection=\"single\" pagination=\"true\" [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridFooterReady($event)\" [frameworkComponents]=\"footerFrameworkComponents\">\r\n </ag-grid-angular>\r\n\r\n </div>\r\n</ng-template>","styles":[".button-container{text-align:right;margin-bottom:10px}.title-header{display:flex;flex-flow:row;align-items:flex-start;justify-content:space-between;padding:10px}.title-header .close{background:0 0}.actions-container{padding:10px;background:#333;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#fff}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"getSubReport":[{"__symbolic":"method"}],"getSubReportData":[{"__symbolic":"method"}],"onGridReady":[{"__symbolic":"method"}],"onGridFooterReady":[{"__symbolic":"method"}],"autoSizeAll":[{"__symbolic":"method"}],"closeDialog":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[],"exports":[],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","name":"ɵn"}],"providers":[],"bootstrap":[]}]}],"members":{}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"}],"exports":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":32,"character":4},{"__symbolic":"reference","module":"@ng-select/ng-select","name":"NgSelectModule","line":33,"character":4}]}]}],"members":{}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-date-filter","template":" <div class=\"formRow\">\n <label>{{ dateFilter.label }}</label>\n <input #date type=\"date\" [value]=\"dateFilter.data.defaultValue\"\n [min]=\"dateFilter.data.minValue\" [max]=\"dateFilter.data.maxValue\"\n (input)=\"onDateChange($event)\">\n <small *ngIf=\"invalidDate\"> Fecha inválida</small>\n </div> \n ","styles":["input[type=date]{font-family:Roboto,Helvetica,sans-serif;width:100%;margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}small{color:red}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],"members":{"dateFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onDateChange":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-dropdown-filter","template":"<div class=\"formRow\">\n <label>{{ dropdownFilter.label }}</label>\n <ng-select #select class=\"select\"\n [multiple]=\"multiple\"\n [items]=\"dropdownFilter.data.dataSource\"\n [bindLabel]=\"dropdownFilter.data.valueName\"\n [bindValue]=\"dropdownFilter.data.keyName\"\n [placeholder]=\"dropdownFilter.data.placeholder\"\n [closeOnSelect]=\"!multiple\"\n [(ngModel)]=\"selectedFilters\"\n (change)=\"onSelectChange($event)\">\n <ng-template ng-option-tmp let-item=\"item\" \n let-item$=\"item$\" let-index=\"index\">\n <input id=\"item-{{index}}\" type=\"checkbox\"\n [ngModel]=\"item$.selected\"/> \n {{item.description}}\n </ng-template>\n <ng-template ng-multi-label-tmp let-items=\"items\" >\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <span class=\"ng-value-label\"> {{item.description}}</span>\n </div>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>\n","styles":[".select{width:100%;margin-top:7px;min-width:175px}::ng-deep .ng-select .ng-select-container{background-color:#fff;border:.5px solid #707070;border-radius:2px;min-height:35px;transition:.3s ease-in-out}::ng-deep .ng-select .ng-select-container:focus,::ng-deep .ng-select .ng-select-container:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}::ng-deep .ng-select.ng-select-single .ng-select-container{height:35px}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:8px;font-size:15px}label{font-size:14px;color:#888}"]}]}],"members":{"dropdownFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onSelectChange":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-numeric-filter","template":"<div class=\"formRow\">\n <label>{{ numericFilter.label }} </label>\n <input type=\"number\" \n [min]=\"numericFilter.data.minValue\" \n [max]=\"numericFilter.data.maxValue\"\n [attr.maxlength]=\"numericFilter.data.maxLength\" \n (keyup)=\"onNumberChange($event)\" \n [placeholder]=\"numericFilter.data.placeholder\"\n [value]=\"numericFilter.data.defaultValue\">\n \n <small *ngIf=\"invalidNumber\"> Campo Inválido</small>\n\n</div> \n \n","styles":["input{margin-top:7px;width:100%;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],"members":{"numericFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onNumberChange":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-text-filter","template":"<div class=\"formRow\">\n <label>{{ textFilter.label }} </label>\n <input type=\"text\" [attr.maxlength]=\"textFilter.data.maxLength\" [placeholder]=\"textFilter.data.placeholder\"\n (input)=\"onTextChange($event.target.value)\">\n</div>","styles":["input{margin-top:7px;background-color:#fff;border:.5px solid #707070;border-radius:2px;padding:5px 10px;display:block;color:#000;font-size:15px;height:35px;box-sizing:border-box;transition:.3s ease-in-out;outline:0}input:focus,input:hover{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}@media (min-width:768px){.formRow{margin-bottom:15px}}label{font-size:14px;color:#888}"]}]}],"members":{"textFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"onTextChange":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"app-autocomplete-filter","template":"<div class=\"formRow\">\n <label>{{ autocompleteFilterConfig.label }}</label>\n <ng-select class=\"autocomplete\"\n [disabled] =\"!dataReady\"\n [items]=\"autocompleteFilterData.dataSource\"\n [bindLabel]=\"autocompleteFilterData.valueName\"\n [bindValue]=\"autocompleteFilterData.keyName\"\n (search)=\"search($event)\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [(ngModel)]=\"selectedFilters\"\n (change)=\"onSelectChange($event)\">\n\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\n <input id=\"item-{{index}}\" type=\"checkbox\"\n [ngModel]=\"item$.selected\"/> {{item.description}}\n </ng-template>\n\n <ng-template ng-multi-label-tmp let-items=\"items\" >\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <span class=\"ng-value-label\"> {{item.description}}</span>\n </div>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length - 1}} more...</span>\n </div>\n </ng-template>\n </ng-select>\n</div>","styles":[".autocomplete{font-size:15px;margin-top:7px;min-width:175px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;padding:0 10px;font-size:15px}::ng-deep ng-select ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#333;color:#fff}::ng-deep ng-select ::ng-deep .ng-dropdown-panel.ng-select-bottom{border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-color:#000;transition:.3s ease-in-out}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input{top:8px!important}::ng-deep ng-select .ng-select-container .ng-value-container .ng-input input{padding:0;height:auto}::ng-deep .ng-select.ng-select-opened>.ng-select-container{border-color:#000;box-shadow:0 0 4px 0 rgba(0,0,0,.2);transition:.3s ease-in-out}label{font-size:14px;color:#888}"]}]}],"members":{"autocompleteFilterConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵc"}]}],"ngOnInit":[{"__symbolic":"method"}],"initGetFilteredData":[{"__symbolic":"method"}],"filteredDataHandler":[{"__symbolic":"method"}],"search":[{"__symbolic":"method"}],"onSelectChange":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":12,"character":28}]}],"getAllFilters":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[],"exports":[],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4}],"providers":[],"bootstrap":[]}]}],"members":{}}},"origins":{"VKReportsModule":"./lib/reports.module","ɵa":"./lib/reports/app.module","ɵb":"./lib/reports/app.component","ɵc":"./lib/reports/services/report.service","ɵd":"./lib/reports/components/report-list/reports-by-category/reports-by-category.component","ɵe":"./lib/reports/components/report/components/customized-cell/customized-cell.component","ɵf":"./lib/reports/components/report/components/customized-button-cell/customized-button-cell.component","ɵg":"./lib/reports/components/report/components/title-subtitle/title-subtitle.component","ɵh":"./lib/reports/components/report/components/actions/actions.component","ɵi":"./lib/reports/services/export-excel.service","ɵj":"./lib/reports/components/report/components/filters/filters.component","ɵk":"./lib/reports/components/report/components/paginator/paginator.component","ɵl":"./lib/reports/components/report/components/sub-report/sub-report.component","ɵm":"./lib/reports/components/report/report.module","ɵn":"./lib/reports/components/report/components/filters/filters.module","ɵo":"./lib/reports/components/report/components/filters/date-filter/date-filter.component","ɵp":"./lib/reports/components/report/components/filters/dropdown-filter/dropdown-filter.component","ɵq":"./lib/reports/components/report/components/filters/numeric-filter/numeric-filter.component","ɵr":"./lib/reports/components/report/components/filters/text-filter/text-filter.component","ɵs":"./lib/reports/components/report/components/filters/autocomplete-filter/autocomplete-filter.component","ɵt":"./lib/reports/services/autocomplete.service","ɵu":"./lib/reports/components/report-list/report-list.module"},"importAs":"vk-reports"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
1190651
12516