axidio-styleguide-library1-v2 0.1.33 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ax-table/ax-table.component.mjs +3 -3
- package/esm2022/lib/chart-header-v3/chart-header-v3.component.mjs +3 -4
- package/esm2022/lib/group-chart/group-chart.component.mjs +3 -3
- package/fesm2022/axidio-styleguide-library1-v2.mjs +238 -238
- package/fesm2022/axidio-styleguide-library1-v2.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -241,11 +241,11 @@ export class AxTableComponent {
|
|
|
241
241
|
this.clickEvent.emit(d);
|
|
242
242
|
}
|
|
243
243
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AxTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
244
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AxTableComponent, selector: "lib-ax-table", inputs: { tableData: "tableData", customChartConfiguration: "customChartConfiguration" }, outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<!-- <div class=\"header-alt lib-display-flex lib-justify-content-space-between\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\" class=\"float-right padding-5 input-style\"\r\n id=\"exampleInputEmail1\" autocomplete=\"off\" placeholder=\" Search \" aria-describedby=\"emailHelp\"\r\n (keyup)=\"onEnter($event)\" />\r\n</div>\r\n<div class=\"table-header\"></div>\r\n<div class=\"table-wrapper\">\r\n <table class=\"table table-bordered table-hover\">\r\n <thead class=\"table-thead\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" class=\"header-cell\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div class=\"pagination-container\" *ngIf=\"itemList && itemList.length && !tableData.metaData.isPaginationHidden\">\r\n <div class=\"results-summary\">\r\n Showing <b>{{ (currentPage - 1) * pageSize + 1 }}</b> to\r\n <b>{{ currentPage * pageSize > totalItems ? totalItems : currentPage * pageSize }}</b>\r\n of <b>{{ totalItems }}</b> entries\r\n </div>\r\n\r\n <ngb-pagination \r\n [collectionSize]=\"totalItems\" \r\n [(page)]=\"currentPage\" \r\n [pageSize]=\"pageSize\" \r\n [maxSize]=\"5\"\r\n [rotate]=\"true\" \r\n [boundaryLinks]=\"true\" \r\n (pageChange)=\"onPaginationChange()\" \r\n class=\"sb-pagination\">\r\n </ngb-pagination>\r\n\r\n <div class=\"go-to-page\">\r\n <label for=\"gotoPageInput\">Go to page</label>\r\n <input \r\n id=\"gotoPageInput\" \r\n type=\"number\" \r\n [min]=\"1\" \r\n [max]=\"totalPages\" \r\n [ngModel]=\"goToPageValue\"\r\n (ngModelChange)=\"goToPageValue = $event; goToPage()\"\r\n (keypress)=\"validateNumberInput($event)\">\r\n </div>\r\n</div> -->\r\n\r\n\r\n\r\n<div class=\"d-flex align-items-center justify-content-between w-100\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n </div>\r\n\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\"\r\n class=\"form-control custom-input medium-font-size textbox-ax-common\" id=\"exampleInputEmail1\" autocomplete=\"off\"\r\n placeholder=\" Search \" aria-describedby=\"emailHelp\" (keyup)=\"onEnter($event)\" />\r\n</div>\r\n\r\n<div class=\"popup-body-for-scroll\">\r\n <div class=\"table-wrapper\">\r\n\r\n <div class=\"table-responsive border\">\r\n <table class=\"table table-bordered table-hover align-middle mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"pagination-bar mt-0\">\r\n <span>Go To</span>\r\n <input type=\"number\" class=\"page-input\" min=\"1\" [max]=\"totalPages\" (keyup.enter)=\"goToSpecificPage()\" [(ngModel)]=\"goToPageNumber\"\r\n placeholder=\"page\">\r\n\r\n <span> {{ (currentList.length > 0 ? ((currentPage - 1) * pageSize + 1) : 0) }} -\r\n {{ ((currentPage - 1) * pageSize + currentList.length) }} of\r\n {{ totalItems | number }}</span>\r\n\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToFirstPage()\" class=\"pagination-btn\" title=\"First Page\">\r\n <i class=\"bi bi-chevron-double-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToPreviousPage()\" class=\"pagination-btn\" title=\"Previous Page\">\r\n <i class=\"bi bi-chevron-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToNextPage()\" class=\"pagination-btn\" title=\"Next Page\">\r\n <i class=\"bi bi-chevron-right\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToLastPage()\" class=\"pagination-btn\" title=\"Last Page\">\r\n <i class=\"bi bi-chevron-double-right\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".modal-dialog{max-height:90vh;height:90vh;margin:5vh auto;display:flex;flex-direction:column}.modal-content{height:100%;display:flex;flex-direction:column;max-height:100%;overflow:hidden}.modal-header{flex-shrink:0;border-bottom:1px solid #dee2e6;padding:1rem}.modal-body{flex:1;overflow:hidden;padding:1rem;display:flex;flex-direction:column;min-height:0}.modal-footer{flex-shrink:0;border-top:1px solid #dee2e6;padding:1rem}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;font-size:15px;gap:10px;width:100%;border:var(--table-border);border-top:0;background:var(--table-bg);color:var(--font-color);padding:12px 4px}.page-input::placeholder{color:var(--font-color)}.pagination-btn{background:none;border:none;color:var(--font-color, #444);border-radius:5px;transition:background .15s,color .15s;font-size:1.14rem;display:inline-flex;align-items:center;justify-content:center}.pagination-btn[disabled]{color:#c3c3c3!important;cursor:not-allowed}.pagination-btn:not([disabled]):hover,.pagination-btn:not([disabled]):focus{background:#e6f0ff!important;color:#1976d2!important;outline:none}.page-input{width:45px;text-align:center;font-size:15px;border:var(--table-border);height:32px;background:var(--table-bg);color:var(--font-color)}.popup-body-for-scroll{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0;max-height:90%;gap:.5rem}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:0;flex-shrink:0}.table-wrapper{background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);box-shadow:0 0 8px #0000000f;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-bottom:0}.table-responsive{width:100%;overflow:auto;flex:1;min-height:0}table{width:100%;background-color:var(--background-color, #ffffff);margin-bottom:0}table th,table td{vertical-align:middle;white-space:nowrap;background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);border:var(--border, 1px solid #dee2e6);padding:8px 12px}thead th{background-color:var(--bs-tertiary-bg, #f8f9fa);color:var(--bs-body-color, #212529);font-weight:600;position:sticky;top:0;z-index:2}.table-responsive::-webkit-scrollbar{width:6px;height:6px}.table-responsive::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.sort-icons{margin-left:5px;color:var(--bs-body-color, #212529)}.textalign-left{text-align:left}.textalign-right{text-align:right}.textalign-center{text-align:center}.last-column-color{color:var(--link-menu, #2b6ecf)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-bold{font-weight:700}.pagination-section{flex-shrink:0;background-color:var(--background-color, #ffffff);border:1px solid #dee2e6;border-radius:8px;margin-top:0;margin-bottom:0;padding:.5rem;min-height:60px;max-height:70px;overflow:visible;position:relative;z-index:1}@media (max-width: 575.98px){.modal-dialog{margin:0;max-height:100vh;height:100vh;width:100%;max-width:100%}.modal-content{max-height:100vh;border-radius:0;height:100vh}.modal-body{padding:.75rem}table th,table td{padding:6px 8px;font-size:.875rem}.pagination-section{margin-top:.25rem;padding:.5rem;max-height:118px}}@media (min-width: 576px) and (max-width: 767.98px){.modal-dialog{max-width:95%;margin:2.5vh auto;max-height:95vh;height:95vh}.modal-content{max-height:95vh;height:100%}}@media (min-width: 768px) and (max-width: 991.98px){.modal-dialog{max-width:90%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 992px){.modal-dialog{max-width:85%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 1200px){.modal-dialog{max-width:1140px}}.custom-input{max-width:300px;margin-left:auto}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:.5rem;flex-shrink:0}.modal-backdrop{z-index:1040}.modal{z-index:1050}.modal.show .modal-dialog{transform:none}.modal-dialog{position:relative;width:auto;pointer-events:none}.modal-dialog .modal-content{pointer-events:auto}.pagination-section .btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.2}.page-gap{gap:5px}.pagination-section .form-control{height:30px;font-size:.875rem}.pagination-section span{font-size:.875rem;line-height:1.2}@media (max-width: 480px){.table-responsive{font-size:.8rem}table th,table td{min-width:80px;padding:4px 6px}.pagination-section .btn{padding:.25rem .5rem;font-size:.8rem}.page-gap{gap:0}}@media (max-width: 576px){.page-gap{gap:0}}@media print{.modal-dialog{max-height:none;height:auto}.table-responsive{overflow:visible}.pagination-section{display:none}}@media screen and (max-width: 768px) and (max-height: 900px){.popup-body-for-scroll{max-height:85%}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1{background-color:#2e3640}.lib-chart-wrapper:hover .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.HeaderAltComponent, selector: "lib-header-alt", inputs: ["title"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }] }); }
|
|
244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AxTableComponent, selector: "lib-ax-table", inputs: { tableData: "tableData", customChartConfiguration: "customChartConfiguration" }, outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<!-- <div class=\"header-alt lib-display-flex lib-justify-content-space-between\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\" class=\"float-right padding-5 input-style\"\r\n id=\"exampleInputEmail1\" autocomplete=\"off\" placeholder=\" Search \" aria-describedby=\"emailHelp\"\r\n (keyup)=\"onEnter($event)\" />\r\n</div>\r\n<div class=\"table-header\"></div>\r\n<div class=\"table-wrapper\">\r\n <table class=\"table table-bordered table-hover\">\r\n <thead class=\"table-thead\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" class=\"header-cell\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div class=\"pagination-container\" *ngIf=\"itemList && itemList.length && !tableData.metaData.isPaginationHidden\">\r\n <div class=\"results-summary\">\r\n Showing <b>{{ (currentPage - 1) * pageSize + 1 }}</b> to\r\n <b>{{ currentPage * pageSize > totalItems ? totalItems : currentPage * pageSize }}</b>\r\n of <b>{{ totalItems }}</b> entries\r\n </div>\r\n\r\n <ngb-pagination \r\n [collectionSize]=\"totalItems\" \r\n [(page)]=\"currentPage\" \r\n [pageSize]=\"pageSize\" \r\n [maxSize]=\"5\"\r\n [rotate]=\"true\" \r\n [boundaryLinks]=\"true\" \r\n (pageChange)=\"onPaginationChange()\" \r\n class=\"sb-pagination\">\r\n </ngb-pagination>\r\n\r\n <div class=\"go-to-page\">\r\n <label for=\"gotoPageInput\">Go to page</label>\r\n <input \r\n id=\"gotoPageInput\" \r\n type=\"number\" \r\n [min]=\"1\" \r\n [max]=\"totalPages\" \r\n [ngModel]=\"goToPageValue\"\r\n (ngModelChange)=\"goToPageValue = $event; goToPage()\"\r\n (keypress)=\"validateNumberInput($event)\">\r\n </div>\r\n</div> -->\r\n\r\n\r\n\r\n<div class=\"d-flex align-items-center justify-content-between w-100\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n </div>\r\n\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\"\r\n class=\"form-control custom-input medium-font-size textbox-ax-common\" id=\"exampleInputEmail1\" autocomplete=\"off\"\r\n placeholder=\" Search \" aria-describedby=\"emailHelp\" (keyup)=\"onEnter($event)\" />\r\n</div>\r\n\r\n<div class=\"popup-body-for-scroll\">\r\n <div class=\"table-wrapper\">\r\n\r\n <div class=\"table-responsive border\">\r\n <table class=\"table table-bordered table-hover align-middle mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"pagination-bar mt-0\">\r\n <span>Go To</span>\r\n <input type=\"number\" class=\"page-input\" min=\"1\" [max]=\"totalPages\" (keyup.enter)=\"goToSpecificPage()\" [(ngModel)]=\"goToPageNumber\">\r\n\r\n <span> {{ (currentList.length > 0 ? ((currentPage - 1) * pageSize + 1) : 0) }} -\r\n {{ ((currentPage - 1) * pageSize + currentList.length) }} of\r\n {{ totalItems | number }}</span>\r\n\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToFirstPage()\" class=\"pagination-btn\" title=\"First Page\">\r\n <i class=\"bi bi-chevron-double-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToPreviousPage()\" class=\"pagination-btn\" title=\"Previous Page\">\r\n <i class=\"bi bi-chevron-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToNextPage()\" class=\"pagination-btn\" title=\"Next Page\">\r\n <i class=\"bi bi-chevron-right\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToLastPage()\" class=\"pagination-btn\" title=\"Last Page\">\r\n <i class=\"bi bi-chevron-double-right\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".modal-dialog{max-height:90vh;height:90vh;margin:5vh auto;display:flex;flex-direction:column}.modal-content{height:100%;display:flex;flex-direction:column;max-height:100%;overflow:hidden}.modal-header{flex-shrink:0;border-bottom:1px solid #dee2e6;padding:1rem}.modal-body{flex:1;overflow:hidden;padding:1rem;display:flex;flex-direction:column;min-height:0}.modal-footer{flex-shrink:0;border-top:1px solid #dee2e6;padding:1rem}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;font-size:15px;gap:10px;width:100%;border:var(--table-border);border-top:0;background:var(--table-bg);color:var(--font-color);padding:12px 4px}.page-input::placeholder{color:var(--font-color)}.pagination-btn{background:none;border:none;color:var(--font-color, #444);border-radius:5px;transition:background .15s,color .15s;font-size:1.14rem;display:inline-flex;align-items:center;justify-content:center}.pagination-btn[disabled]{color:#c3c3c3!important;cursor:not-allowed}.pagination-btn:not([disabled]):hover,.pagination-btn:not([disabled]):focus{background:#e6f0ff!important;color:#1976d2!important;outline:none}.page-input{width:45px;text-align:center;font-size:15px;border:var(--table-border);height:32px;background:var(--table-bg);color:var(--font-color)}.popup-body-for-scroll{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0;max-height:90%;gap:.5rem}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:0;flex-shrink:0}.table-wrapper{background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);box-shadow:0 0 8px #0000000f;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-bottom:0}.table-responsive{width:100%;overflow:auto;flex:1;min-height:0}table{width:100%;background-color:var(--background-color, #ffffff);margin-bottom:0}table th,table td{vertical-align:middle;white-space:nowrap;background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);border:var(--border, 1px solid #dee2e6);padding:8px 12px}thead th{background-color:var(--bs-tertiary-bg, #f8f9fa);color:var(--bs-body-color, #212529);font-weight:600;position:sticky;top:0;z-index:2}.table-responsive::-webkit-scrollbar{width:6px;height:6px}.table-responsive::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.sort-icons{margin-left:5px;color:var(--bs-body-color, #212529)}.textalign-left{text-align:left}.textalign-right{text-align:right}.textalign-center{text-align:center}.last-column-color{color:var(--link-menu, #2b6ecf)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-bold{font-weight:700}.pagination-section{flex-shrink:0;background-color:var(--background-color, #ffffff);border:1px solid #dee2e6;border-radius:8px;margin-top:0;margin-bottom:0;padding:.5rem;min-height:60px;max-height:70px;overflow:visible;position:relative;z-index:1}@media (max-width: 575.98px){.modal-dialog{margin:0;max-height:100vh;height:100vh;width:100%;max-width:100%}.modal-content{max-height:100vh;border-radius:0;height:100vh}.modal-body{padding:.75rem}table th,table td{padding:6px 8px;font-size:.875rem}.pagination-section{margin-top:.25rem;padding:.5rem;max-height:118px}}@media (min-width: 576px) and (max-width: 767.98px){.modal-dialog{max-width:95%;margin:2.5vh auto;max-height:95vh;height:95vh}.modal-content{max-height:95vh;height:100%}}@media (min-width: 768px) and (max-width: 991.98px){.modal-dialog{max-width:90%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 992px){.modal-dialog{max-width:85%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 1200px){.modal-dialog{max-width:1140px}}.custom-input{max-width:300px;margin-left:auto}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:.5rem;flex-shrink:0}.modal-backdrop{z-index:1040}.modal{z-index:1050}.modal.show .modal-dialog{transform:none}.modal-dialog{position:relative;width:auto;pointer-events:none}.modal-dialog .modal-content{pointer-events:auto}.pagination-section .btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.2}.page-gap{gap:5px}.pagination-section .form-control{height:30px;font-size:.875rem}.pagination-section span{font-size:.875rem;line-height:1.2}@media (max-width: 480px){.table-responsive{font-size:.8rem}table th,table td{min-width:80px;padding:4px 6px}.pagination-section .btn{padding:.25rem .5rem;font-size:.8rem}.page-gap{gap:0}}@media (max-width: 576px){.page-gap{gap:0}}@media print{.modal-dialog{max-height:none;height:auto}.table-responsive{overflow:visible}.pagination-section{display:none}}@media screen and (max-width: 768px) and (max-height: 900px){.popup-body-for-scroll{max-height:85%}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1{background-color:#2e3640}.lib-chart-wrapper:hover .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.HeaderAltComponent, selector: "lib-header-alt", inputs: ["title"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }] }); }
|
|
245
245
|
}
|
|
246
246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AxTableComponent, decorators: [{
|
|
247
247
|
type: Component,
|
|
248
|
-
args: [{ selector: 'lib-ax-table', template: "<!-- <div class=\"header-alt lib-display-flex lib-justify-content-space-between\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\" class=\"float-right padding-5 input-style\"\r\n id=\"exampleInputEmail1\" autocomplete=\"off\" placeholder=\" Search \" aria-describedby=\"emailHelp\"\r\n (keyup)=\"onEnter($event)\" />\r\n</div>\r\n<div class=\"table-header\"></div>\r\n<div class=\"table-wrapper\">\r\n <table class=\"table table-bordered table-hover\">\r\n <thead class=\"table-thead\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" class=\"header-cell\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div class=\"pagination-container\" *ngIf=\"itemList && itemList.length && !tableData.metaData.isPaginationHidden\">\r\n <div class=\"results-summary\">\r\n Showing <b>{{ (currentPage - 1) * pageSize + 1 }}</b> to\r\n <b>{{ currentPage * pageSize > totalItems ? totalItems : currentPage * pageSize }}</b>\r\n of <b>{{ totalItems }}</b> entries\r\n </div>\r\n\r\n <ngb-pagination \r\n [collectionSize]=\"totalItems\" \r\n [(page)]=\"currentPage\" \r\n [pageSize]=\"pageSize\" \r\n [maxSize]=\"5\"\r\n [rotate]=\"true\" \r\n [boundaryLinks]=\"true\" \r\n (pageChange)=\"onPaginationChange()\" \r\n class=\"sb-pagination\">\r\n </ngb-pagination>\r\n\r\n <div class=\"go-to-page\">\r\n <label for=\"gotoPageInput\">Go to page</label>\r\n <input \r\n id=\"gotoPageInput\" \r\n type=\"number\" \r\n [min]=\"1\" \r\n [max]=\"totalPages\" \r\n [ngModel]=\"goToPageValue\"\r\n (ngModelChange)=\"goToPageValue = $event; goToPage()\"\r\n (keypress)=\"validateNumberInput($event)\">\r\n </div>\r\n</div> -->\r\n\r\n\r\n\r\n<div class=\"d-flex align-items-center justify-content-between w-100\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n </div>\r\n\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\"\r\n class=\"form-control custom-input medium-font-size textbox-ax-common\" id=\"exampleInputEmail1\" autocomplete=\"off\"\r\n placeholder=\" Search \" aria-describedby=\"emailHelp\" (keyup)=\"onEnter($event)\" />\r\n</div>\r\n\r\n<div class=\"popup-body-for-scroll\">\r\n <div class=\"table-wrapper\">\r\n\r\n <div class=\"table-responsive border\">\r\n <table class=\"table table-bordered table-hover align-middle mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"pagination-bar mt-0\">\r\n <span>Go To</span>\r\n <input type=\"number\" class=\"page-input\" min=\"1\" [max]=\"totalPages\" (keyup.enter)=\"goToSpecificPage()\" [(ngModel)]=\"goToPageNumber\"\r\n placeholder=\"page\">\r\n\r\n <span> {{ (currentList.length > 0 ? ((currentPage - 1) * pageSize + 1) : 0) }} -\r\n {{ ((currentPage - 1) * pageSize + currentList.length) }} of\r\n {{ totalItems | number }}</span>\r\n\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToFirstPage()\" class=\"pagination-btn\" title=\"First Page\">\r\n <i class=\"bi bi-chevron-double-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToPreviousPage()\" class=\"pagination-btn\" title=\"Previous Page\">\r\n <i class=\"bi bi-chevron-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToNextPage()\" class=\"pagination-btn\" title=\"Next Page\">\r\n <i class=\"bi bi-chevron-right\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToLastPage()\" class=\"pagination-btn\" title=\"Last Page\">\r\n <i class=\"bi bi-chevron-double-right\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".modal-dialog{max-height:90vh;height:90vh;margin:5vh auto;display:flex;flex-direction:column}.modal-content{height:100%;display:flex;flex-direction:column;max-height:100%;overflow:hidden}.modal-header{flex-shrink:0;border-bottom:1px solid #dee2e6;padding:1rem}.modal-body{flex:1;overflow:hidden;padding:1rem;display:flex;flex-direction:column;min-height:0}.modal-footer{flex-shrink:0;border-top:1px solid #dee2e6;padding:1rem}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;font-size:15px;gap:10px;width:100%;border:var(--table-border);border-top:0;background:var(--table-bg);color:var(--font-color);padding:12px 4px}.page-input::placeholder{color:var(--font-color)}.pagination-btn{background:none;border:none;color:var(--font-color, #444);border-radius:5px;transition:background .15s,color .15s;font-size:1.14rem;display:inline-flex;align-items:center;justify-content:center}.pagination-btn[disabled]{color:#c3c3c3!important;cursor:not-allowed}.pagination-btn:not([disabled]):hover,.pagination-btn:not([disabled]):focus{background:#e6f0ff!important;color:#1976d2!important;outline:none}.page-input{width:45px;text-align:center;font-size:15px;border:var(--table-border);height:32px;background:var(--table-bg);color:var(--font-color)}.popup-body-for-scroll{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0;max-height:90%;gap:.5rem}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:0;flex-shrink:0}.table-wrapper{background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);box-shadow:0 0 8px #0000000f;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-bottom:0}.table-responsive{width:100%;overflow:auto;flex:1;min-height:0}table{width:100%;background-color:var(--background-color, #ffffff);margin-bottom:0}table th,table td{vertical-align:middle;white-space:nowrap;background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);border:var(--border, 1px solid #dee2e6);padding:8px 12px}thead th{background-color:var(--bs-tertiary-bg, #f8f9fa);color:var(--bs-body-color, #212529);font-weight:600;position:sticky;top:0;z-index:2}.table-responsive::-webkit-scrollbar{width:6px;height:6px}.table-responsive::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.sort-icons{margin-left:5px;color:var(--bs-body-color, #212529)}.textalign-left{text-align:left}.textalign-right{text-align:right}.textalign-center{text-align:center}.last-column-color{color:var(--link-menu, #2b6ecf)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-bold{font-weight:700}.pagination-section{flex-shrink:0;background-color:var(--background-color, #ffffff);border:1px solid #dee2e6;border-radius:8px;margin-top:0;margin-bottom:0;padding:.5rem;min-height:60px;max-height:70px;overflow:visible;position:relative;z-index:1}@media (max-width: 575.98px){.modal-dialog{margin:0;max-height:100vh;height:100vh;width:100%;max-width:100%}.modal-content{max-height:100vh;border-radius:0;height:100vh}.modal-body{padding:.75rem}table th,table td{padding:6px 8px;font-size:.875rem}.pagination-section{margin-top:.25rem;padding:.5rem;max-height:118px}}@media (min-width: 576px) and (max-width: 767.98px){.modal-dialog{max-width:95%;margin:2.5vh auto;max-height:95vh;height:95vh}.modal-content{max-height:95vh;height:100%}}@media (min-width: 768px) and (max-width: 991.98px){.modal-dialog{max-width:90%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 992px){.modal-dialog{max-width:85%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 1200px){.modal-dialog{max-width:1140px}}.custom-input{max-width:300px;margin-left:auto}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:.5rem;flex-shrink:0}.modal-backdrop{z-index:1040}.modal{z-index:1050}.modal.show .modal-dialog{transform:none}.modal-dialog{position:relative;width:auto;pointer-events:none}.modal-dialog .modal-content{pointer-events:auto}.pagination-section .btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.2}.page-gap{gap:5px}.pagination-section .form-control{height:30px;font-size:.875rem}.pagination-section span{font-size:.875rem;line-height:1.2}@media (max-width: 480px){.table-responsive{font-size:.8rem}table th,table td{min-width:80px;padding:4px 6px}.pagination-section .btn{padding:.25rem .5rem;font-size:.8rem}.page-gap{gap:0}}@media (max-width: 576px){.page-gap{gap:0}}@media print{.modal-dialog{max-height:none;height:auto}.table-responsive{overflow:visible}.pagination-section{display:none}}@media screen and (max-width: 768px) and (max-height: 900px){.popup-body-for-scroll{max-height:85%}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1{background-color:#2e3640}.lib-chart-wrapper:hover .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"] }]
|
|
248
|
+
args: [{ selector: 'lib-ax-table', template: "<!-- <div class=\"header-alt lib-display-flex lib-justify-content-space-between\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\" class=\"float-right padding-5 input-style\"\r\n id=\"exampleInputEmail1\" autocomplete=\"off\" placeholder=\" Search \" aria-describedby=\"emailHelp\"\r\n (keyup)=\"onEnter($event)\" />\r\n</div>\r\n<div class=\"table-header\"></div>\r\n<div class=\"table-wrapper\">\r\n <table class=\"table table-bordered table-hover\">\r\n <thead class=\"table-thead\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" class=\"header-cell\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div class=\"pagination-container\" *ngIf=\"itemList && itemList.length && !tableData.metaData.isPaginationHidden\">\r\n <div class=\"results-summary\">\r\n Showing <b>{{ (currentPage - 1) * pageSize + 1 }}</b> to\r\n <b>{{ currentPage * pageSize > totalItems ? totalItems : currentPage * pageSize }}</b>\r\n of <b>{{ totalItems }}</b> entries\r\n </div>\r\n\r\n <ngb-pagination \r\n [collectionSize]=\"totalItems\" \r\n [(page)]=\"currentPage\" \r\n [pageSize]=\"pageSize\" \r\n [maxSize]=\"5\"\r\n [rotate]=\"true\" \r\n [boundaryLinks]=\"true\" \r\n (pageChange)=\"onPaginationChange()\" \r\n class=\"sb-pagination\">\r\n </ngb-pagination>\r\n\r\n <div class=\"go-to-page\">\r\n <label for=\"gotoPageInput\">Go to page</label>\r\n <input \r\n id=\"gotoPageInput\" \r\n type=\"number\" \r\n [min]=\"1\" \r\n [max]=\"totalPages\" \r\n [ngModel]=\"goToPageValue\"\r\n (ngModelChange)=\"goToPageValue = $event; goToPage()\"\r\n (keypress)=\"validateNumberInput($event)\">\r\n </div>\r\n</div> -->\r\n\r\n\r\n\r\n<div class=\"d-flex align-items-center justify-content-between w-100\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <lib-header-alt [title]=\"tableData.metaData.title\" *ngIf=\"!isHeaderVisible\"></lib-header-alt>\r\n </div>\r\n\r\n <input type=\"text\" *ngIf=\"!tableData.metaData.isSearchHidden\"\r\n class=\"form-control custom-input medium-font-size textbox-ax-common\" id=\"exampleInputEmail1\" autocomplete=\"off\"\r\n placeholder=\" Search \" aria-describedby=\"emailHelp\" (keyup)=\"onEnter($event)\" />\r\n</div>\r\n\r\n<div class=\"popup-body-for-scroll\">\r\n <div class=\"table-wrapper\">\r\n\r\n <div class=\"table-responsive border\">\r\n <table class=\"table table-bordered table-hover align-middle mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr class=\"table-header\">\r\n <th *ngFor=\"let header of tableHeadList; index as i\" [ngClass]=\"\r\n !tableData.metaData.isHeaderAlignedToCenter\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right'\r\n : 'textalign-left'\r\n : 'textalign-center'\r\n \" [style.width]=\"getWidthById(header, i)\" [style.backgroundColor]=\"tableData.metaData.headerColor\"\r\n [style.color]=\"tableData.metaData.headerTextColor\" (click)=\"sortByColumn(header)\">\r\n <span *ngIf=\"\r\n (!tableData.metaData.isFirstColumnHeaderHidden && i == 0) || i > 0\r\n \" [ngClass]=\"\r\n !tableData.metaData.isHeaderSortHidden\r\n ? 'cursor-pointer'\r\n : 'cursor-default'\r\n \">{{ header }}</span>\r\n <i *ngIf=\"\r\n (!isUserSort || checkIfColumnCurrentlyBeingSorted(header)) &&\r\n !tableData.metaData.isHeaderSortHidden\r\n \" class=\"sort-icons fa\" [ngClass]=\"\r\n !isUserSort\r\n ? 'fa-sort'\r\n : sortDirection == 'asc'\r\n ? 'fa-sort-asc'\r\n : 'fa-sort-desc'\r\n \"></i>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let store of currentList\" [ngClass]=\"\r\n tableData?.highlightedTexts?.includes(store[tableHeadList[0]])\r\n ? 'font-weight-bold'\r\n : ''\r\n \">\r\n <td (click)=\"handleClick(store)\" class=\"table-cell\" *ngFor=\"let header of tableHeadList; index as i\"\r\n [style.width]=\"getWidthById(header, i)\" [ngClass]=\"\r\n !tableData.metaData.isAllAlignedToRight\r\n ? i == tableHeadList.length - 1\r\n ? 'textalign-right last-column-color'\r\n : 'textalign-left'\r\n : 'textalign-right'\r\n \" [style.cursor]=\"\r\n tableData.metaData.hasDrillDown ? 'pointer' : 'default'\r\n \">\r\n <span>{{ store[header] }}</span>\r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"pagination-bar mt-0\">\r\n <span>Go To</span>\r\n <input type=\"number\" class=\"page-input\" min=\"1\" [max]=\"totalPages\" (keyup.enter)=\"goToSpecificPage()\" [(ngModel)]=\"goToPageNumber\">\r\n\r\n <span> {{ (currentList.length > 0 ? ((currentPage - 1) * pageSize + 1) : 0) }} -\r\n {{ ((currentPage - 1) * pageSize + currentList.length) }} of\r\n {{ totalItems | number }}</span>\r\n\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToFirstPage()\" class=\"pagination-btn\" title=\"First Page\">\r\n <i class=\"bi bi-chevron-double-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === 1\" (click)=\"goToPreviousPage()\" class=\"pagination-btn\" title=\"Previous Page\">\r\n <i class=\"bi bi-chevron-left\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToNextPage()\" class=\"pagination-btn\" title=\"Next Page\">\r\n <i class=\"bi bi-chevron-right\"></i>\r\n </button>\r\n <button [disabled]=\"currentPage === totalPages\" (click)=\"goToLastPage()\" class=\"pagination-btn\" title=\"Last Page\">\r\n <i class=\"bi bi-chevron-double-right\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".modal-dialog{max-height:90vh;height:90vh;margin:5vh auto;display:flex;flex-direction:column}.modal-content{height:100%;display:flex;flex-direction:column;max-height:100%;overflow:hidden}.modal-header{flex-shrink:0;border-bottom:1px solid #dee2e6;padding:1rem}.modal-body{flex:1;overflow:hidden;padding:1rem;display:flex;flex-direction:column;min-height:0}.modal-footer{flex-shrink:0;border-top:1px solid #dee2e6;padding:1rem}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;font-size:15px;gap:10px;width:100%;border:var(--table-border);border-top:0;background:var(--table-bg);color:var(--font-color);padding:12px 4px}.page-input::placeholder{color:var(--font-color)}.pagination-btn{background:none;border:none;color:var(--font-color, #444);border-radius:5px;transition:background .15s,color .15s;font-size:1.14rem;display:inline-flex;align-items:center;justify-content:center}.pagination-btn[disabled]{color:#c3c3c3!important;cursor:not-allowed}.pagination-btn:not([disabled]):hover,.pagination-btn:not([disabled]):focus{background:#e6f0ff!important;color:#1976d2!important;outline:none}.page-input{width:45px;text-align:center;font-size:15px;border:var(--table-border);height:32px;background:var(--table-bg);color:var(--font-color)}.popup-body-for-scroll{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0;max-height:90%;gap:.5rem}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:0;flex-shrink:0}.table-wrapper{background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);box-shadow:0 0 8px #0000000f;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-bottom:0}.table-responsive{width:100%;overflow:auto;flex:1;min-height:0}table{width:100%;background-color:var(--background-color, #ffffff);margin-bottom:0}table th,table td{vertical-align:middle;white-space:nowrap;background-color:var(--background-color, #ffffff);color:var(--bs-body-color, #212529);border:var(--border, 1px solid #dee2e6);padding:8px 12px}thead th{background-color:var(--bs-tertiary-bg, #f8f9fa);color:var(--bs-body-color, #212529);font-weight:600;position:sticky;top:0;z-index:2}.table-responsive::-webkit-scrollbar{width:6px;height:6px}.table-responsive::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.sort-icons{margin-left:5px;color:var(--bs-body-color, #212529)}.textalign-left{text-align:left}.textalign-right{text-align:right}.textalign-center{text-align:center}.last-column-color{color:var(--link-menu, #2b6ecf)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-bold{font-weight:700}.pagination-section{flex-shrink:0;background-color:var(--background-color, #ffffff);border:1px solid #dee2e6;border-radius:8px;margin-top:0;margin-bottom:0;padding:.5rem;min-height:60px;max-height:70px;overflow:visible;position:relative;z-index:1}@media (max-width: 575.98px){.modal-dialog{margin:0;max-height:100vh;height:100vh;width:100%;max-width:100%}.modal-content{max-height:100vh;border-radius:0;height:100vh}.modal-body{padding:.75rem}table th,table td{padding:6px 8px;font-size:.875rem}.pagination-section{margin-top:.25rem;padding:.5rem;max-height:118px}}@media (min-width: 576px) and (max-width: 767.98px){.modal-dialog{max-width:95%;margin:2.5vh auto;max-height:95vh;height:95vh}.modal-content{max-height:95vh;height:100%}}@media (min-width: 768px) and (max-width: 991.98px){.modal-dialog{max-width:90%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 992px){.modal-dialog{max-width:85%;margin:5vh auto;max-height:90vh;height:90vh}.modal-content{max-height:90vh;height:100%}}@media (min-width: 1200px){.modal-dialog{max-width:1140px}}.custom-input{max-width:300px;margin-left:auto}.d-flex.align-items-center.justify-content-between.w-100{margin-bottom:.5rem;flex-shrink:0}.modal-backdrop{z-index:1040}.modal{z-index:1050}.modal.show .modal-dialog{transform:none}.modal-dialog{position:relative;width:auto;pointer-events:none}.modal-dialog .modal-content{pointer-events:auto}.pagination-section .btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.2}.page-gap{gap:5px}.pagination-section .form-control{height:30px;font-size:.875rem}.pagination-section span{font-size:.875rem;line-height:1.2}@media (max-width: 480px){.table-responsive{font-size:.8rem}table th,table td{min-width:80px;padding:4px 6px}.pagination-section .btn{padding:.25rem .5rem;font-size:.8rem}.page-gap{gap:0}}@media (max-width: 576px){.page-gap{gap:0}}@media print{.modal-dialog{max-height:none;height:auto}.table-responsive{overflow:visible}.pagination-section{display:none}}@media screen and (max-width: 768px) and (max-height: 900px){.popup-body-for-scroll{max-height:85%}}\n", ".lib-chart-wrapper{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;background:#fff 0% 0% no-repeat padding-box;position:relative}.lib-chart-wrapper-wo-shadow{width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}.lib-chart-wrapper:hover .chart-header-v1{background-color:#2e3640}.lib-chart-wrapper:hover .chart-title{color:#fff}.lib-chart-svg{width:100%}.lib-chart-header{text-align:center;background-color:#052340;color:#fff;width:100%;height:17%;word-spacing:.5px;line-height:1.8;font-weight:700;padding-top:2%;letter-spacing:0;font-size:1.2em}.lib-donut-chart-footer{width:100%;text-align:right}.lib-donut-label-text{font-size:.9em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-weight:400;letter-spacing:0px;color:#000;opacity:1}.lib-donut-label-icon{display:inline-block;width:10px;height:10px;margin-right:20px;border-radius:3px}.lib-donut-label-item{font-weight:400;font-size:.85em;color:#2f2f2f}.lib-donut-justified-label-wrapper{width:100%;display:inline-block;text-align:center;list-style-type:none}.lib-donut-justified-label-item{font-weight:400;font-size:.85em;color:#2f2f2f;display:inline-block;text-align:left;padding:0 10px}.lib-donut-justified-label-icon{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.lib-no-background{background:none!important}.lib-display-hidden{display:none}.lib-ylabel-weeklyCharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.07px;text-transform:capitalize;color:#000}.lib-data-labels-weeklycharts{font-style:normal;font-variant:normal;font-weight:400;font-size:12px;line-height:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:-.06px;color:#000}.lib-data-labels-angled-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:9.5px;line-height:11px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:.4px;text-anchor:start}.lib-xaxis-labels-texts-weeklycharts{font-style:normal;font-variant:normal;font-weight:800;font-size:10px;line-height:11px;letter-spacing:-.05px;fill:#000}.lib-xaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:-1px;color:#000;opacity:1;text-transform:capitalize}.lib-white-space-nowrap{white-space:nowrap}.lib-xaxis-labels-texts-drilldown-alt{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:10px;letter-spacing:0px;color:#000;opacity:1;text-transform:capitalize}.lib-yaxis-labels-texts-drilldown{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:14px;letter-spacing:0px;color:#000!important;opacity:1}.lib-ylabel-drilldowncharts,.lib-xlabel-drilldowncharts{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;font-size:16px;letter-spacing:-.1px;color:#000!important;opacity:1}.lib-donut-justified-label-icon-drilldown{display:inline-block;width:14px;height:14px;margin-right:10px;border-radius:50%}.marginright-2{margin-right:2%}.margintop-5{margin-top:5%}.width-100{width:100%}.float-right{float:right}.marginBottom-10{margin-bottom:10px}.header-alt{align-items:center;margin-bottom:10px}input::placeholder{font-size:20px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto;letter-spacing:0px;color:#000;opacity:1}.padding-5{padding:5px}.hidden{visibility:hidden}.font-weight-bold{font-weight:900}.textalign-center{text-align:center}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.font-weight-600{font-weight:600}.marginRight-15{margin-right:15px}.marginRight-20{margin-right:20px}.switch{position:relative;display:inline-block;width:46px;height:24px;margin-left:5px;margin-right:5px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#2d5ca0;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:\"\";height:18px;width:18px;right:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider.round{border-radius:18px}.slider.round:before{border-radius:50%}.slider1{position:absolute;cursor:pointer;inset:0;background-color:#015ba2cf;-webkit-transition:.4s;transition:.4s}.slider1:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.slider1.round1{border-radius:18px}.slider1.round1:before{border-radius:50%}.lib-display-flex{display:flex}.lib-align-items-center{align-items:center}.lib-flex-direction-column{flex-direction:column}.lib-justify-content-space-between{justify-content:space-between}.lib-justify-content-space-around{justify-content:space-around}.lib-justify-content-center{justify-content:center}.lib-justify-content-start{justify-content:start}.lib-justify-content-end{justify-content:end}.lib-ml-20{margin-left:20px}.lib-position-absolute{position:absolute}.lib-z-index-9{z-index:9}.marginright-3{margin-right:3px}@media (min-height: 900px){.lib-chart-wrapper{border-radius:8px}.header-font-size-1{font-size:18px!important}.font-size-1{font-size:14px!important}.font-size-2{font-size:16px!important}.font-size-3{font-size:14px!important}.font-size-4{font-size:22px!important}.font-size-5{font-size:24px!important}}\n"] }]
|
|
249
249
|
}], ctorParameters: () => [], propDecorators: { tableData: [{
|
|
250
250
|
type: Input
|
|
251
251
|
}], customChartConfiguration: [{
|
|
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
253
253
|
}], clickEvent: [{
|
|
254
254
|
type: Output
|
|
255
255
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQU8xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBMEQzQjtRQXZEVSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUVoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBUzVCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBS3pCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBUSxDQUFDLENBQUM7UUFDckI7O1dBRUc7UUFDSCxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBS25COztXQUVHO1FBQ0gsa0JBQWEsR0FBUSxLQUFLLENBQUM7UUFDM0I7O1dBRUc7UUFDSCxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBS3JCOztXQUVHO1FBQ0gsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQix1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFFN0IseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBVyxDQUFDLENBQUMsQ0FBQyxzREFBc0Q7UUFFbEYsa0RBQWtEO1FBQ2xELGdCQUFXLEdBQWEsRUFBRSxDQUFDO0lBRVgsQ0FBQztJQUVqQixRQUFR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QUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFNO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBbFNVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHFMQ1I3Qixzc1FBNExNOzs0RkRwTE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7d0RBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IENoYXJ0SGVscGVyIGZyb20gJy4uL2NoYXJ0LWhlbHBlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1heC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F4LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9heC10YWJsZS5jb21wb25lbnQubGVzcycsICcuLi9jb21tb24tc3R5bGVzLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF4VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvbjogYW55O1xyXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgaXNIZWFkZXJWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgaXNVc2VyU29ydDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB0YWJsZUhlYWRMaXN0OiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc3RvcmVzIGluZm9ybWF0aW9uIGZvciB0aGUgc2VsZWN0ZWQgc3RhdGVcclxuICAgKi9cclxuICBpdGVtTGlzdDogYW55O1xyXG5cclxuICBpdGVtc1BlclBhZ2U6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIHN0b3JlcyBpbiBzZWxlY3RlZCBzdGF0ZVxyXG4gICAqL1xyXG4gIHRvdGFsSXRlbXM6IGFueTtcclxuICAvKipcclxuICAgKiBDdXJyZW50IHBhZ2UgZGlzcGxheWVkIGluIHBhZ2luYXRpb25cclxuICAgKi9cclxuICBjdXJyZW50UGFnZTogYW55ID0gMTtcclxuICAvKipcclxuICAgKiBOdW1iZXIgb2Ygc3RvcmVzIHRoYXQgY2FuIGJlIGRpc3BsYXllZCBpbiBlYWNoIHBhZ2VcclxuICAgKi9cclxuICBwYWdlU2l6ZTogYW55ID0gMTA7XHJcbiAgLyoqXHJcbiAgICogU2VsZWN0ZWQgcGFnZSBzdG9yZSBsaXN0XHJcbiAgICovXHJcbiAgY3VycmVudExpc3Q6IGFueTtcclxuICAvKipcclxuICAgKiBTb3J0IGRpcmVjdGlvbiBvZiBzZWxlY3RlZCBjb2x1bW4gIGluIHRoZSB0YWJsZVxyXG4gICAqL1xyXG4gIHNvcnREaXJlY3Rpb246IGFueSA9ICdhc2MnO1xyXG4gIC8qKlxyXG4gICAqIFNlbGVjdGVkIGNvbHVtbiBmb3Igc29ydGluZ1xyXG4gICAqL1xyXG4gIHNvcnRDb2x1bW46IGFueSA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIFNlbGVjdG9yIGZvciBsaXN0ZW5pbmcgdG8gdGhlIGNoYW5nZXMgb2Ygc2VhcmNoIHRleHQgZW50ZXJlZCBpbiB0aGUgaGVhZGVyXHJcbiAgICovXHJcbiAgc2VhcmNoVGV4dEZlYXR1cmUkOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogTWFzdGVyIHN0b3JlIGxpc3QgZm9yIHRoZSBzZWxlY3RlZCBzdGF0ZVxyXG4gICAqL1xyXG4gIG1hc3Rlckxpc3Q6IGFueSA9IFtdO1xyXG4gIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcblxyXG4gIGRlZmF1bHRDb25maWd1cmF0aW9uOiBhbnkgPSB7fTtcclxuXHJcbiAgdG90YWxQYWdlczogbnVtYmVyID0gMTtcclxuICBnb1RvUGFnZU51bWJlcjogbnVtYmVyID0gMTsgLy8gRml4ZWQ6IHJlbmFtZWQgZnJvbSBnb1RvUGFnZVZhbHVlIHRvIG1hdGNoIHRlbXBsYXRlXHJcblxyXG4gIC8vIEFkZCBwYWdlc1RvU2hvdyBwcm9wZXJ0eSBmb3IgcGFnaW5hdGlvbiBkaXNwbGF5XHJcbiAgcGFnZXNUb1Nob3c6IG51bWJlcltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuICAgIHRoaXMudGFibGVIZWFkTGlzdCA9IE9iamVjdC5rZXlzKHRoaXMudGFibGVEYXRhLmRhdGFbMF0pO1xyXG4gICAgZm9yICh2YXIgaSBpbiB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uW2ldID0gQ2hhcnRIZWxwZXIuZ2V0VmFsdWVCeUNvbmZpZ3VyYXRpb25UeXBlKFxyXG4gICAgICAgIGksXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbixcclxuICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYXN0ZXJMaXN0ID0gWy4uLnNlbGYudGFibGVEYXRhLmRhdGFdO1xyXG4gICAgdGhpcy5pdGVtTGlzdCA9IFsuLi50aGlzLm1hc3Rlckxpc3RdO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpOyAvLyBHZW5lcmF0ZSBwYWdlcyB0byBzaG93XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzUGFnaW5hdGlvbkhpZGRlbikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclZpc2libGUgIT0gdW5kZWZpbmVkKVxyXG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIGxvYWRQYWdlKCkge1xyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgdGhpcy5wYWdlU2l6ZTtcclxuICAgIHRoaXMuY3VycmVudExpc3QgPSB0aGlzLml0ZW1MaXN0LnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuICB9XHJcblxyXG4gIGNhbGN1bGF0ZVRvdGFsUGFnZXMoKSB7XHJcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIC8vIEdlbmVyYXRlIGFycmF5IG9mIHBhZ2UgbnVtYmVycyB0byBzaG93IGluIHBhZ2luYXRpb25cclxuICBnZW5lcmF0ZVBhZ2VzVG9TaG93KCkge1xyXG4gICAgdGhpcy5wYWdlc1RvU2hvdyA9IFtdO1xyXG4gICAgY29uc3QgbWF4UGFnZXNUb1Nob3cgPSA1O1xyXG4gICAgbGV0IHN0YXJ0UGFnZSA9IE1hdGgubWF4KDEsIHRoaXMuY3VycmVudFBhZ2UgLSBNYXRoLmZsb29yKG1heFBhZ2VzVG9TaG93IC8gMikpO1xyXG4gICAgbGV0IGVuZFBhZ2UgPSBNYXRoLm1pbih0aGlzLnRvdGFsUGFnZXMsIHN0YXJ0UGFnZSArIG1heFBhZ2VzVG9TaG93IC0gMSk7XHJcbiAgICBcclxuICAgIC8vIEFkanVzdCBzdGFydCBwYWdlIGlmIHdlJ3JlIG5lYXIgdGhlIGVuZFxyXG4gICAgaWYgKGVuZFBhZ2UgLSBzdGFydFBhZ2UgKyAxIDwgbWF4UGFnZXNUb1Nob3cpIHtcclxuICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoMSwgZW5kUGFnZSAtIG1heFBhZ2VzVG9TaG93ICsgMSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGZvciAobGV0IGkgPSBzdGFydFBhZ2U7IGkgPD0gZW5kUGFnZTsgaSsrKSB7XHJcbiAgICAgIHRoaXMucGFnZXNUb1Nob3cucHVzaChpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUGFnaW5hdGlvbkNoYW5nZSgpIHtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgfVxyXG5cclxuICAvLyBOYXZpZ2F0aW9uIG1ldGhvZHMgZm9yIHBhZ2luYXRpb24gYnV0dG9uc1xyXG4gIGdvVG9GaXJzdFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9QcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS0tO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub05leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSsrO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub0xhc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgIT09IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzICYmIHBhZ2UgIT09IHRoaXMuY3VycmVudFBhZ2UpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGaXhlZDogcmVuYW1lZCBtZXRob2QgdG8gbWF0Y2ggdGVtcGxhdGVcclxuICBnb1RvU3BlY2lmaWNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPT09IG51bGwgfHwgdGhpcy5nb1RvUGFnZU51bWJlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHRoaXMuZ29Ub1BhZ2VOdW1iZXIudG9TdHJpbmcoKSwgMTApO1xyXG4gICAgXHJcbiAgICBpZiAoaXNOYU4ocGFnZU51bSkgfHwgcGFnZU51bSA8IDEpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IDE7XHJcbiAgICB9IGVsc2UgaWYgKHBhZ2VOdW0gPiB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMudG90YWxQYWdlcztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gVXBkYXRlIGN1cnJlbnQgcGFnZSBhbmQgbG9hZCBkYXRhXHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5nb1RvUGFnZU51bWJlcjtcclxuICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU51bWJlcklucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFyQ29kZSA9IGV2ZW50LndoaWNoID8gZXZlbnQud2hpY2ggOiBldmVudC5rZXlDb2RlO1xyXG4gICAgaWYgKGNoYXJDb2RlID4gMzEgJiYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uXHJcbiAgICogQHBhcmFtIGlkIC0gY29sdW1uIGlkXHJcbiAgICovXHJcbiAgZ2V0V2lkdGhCeUlkKGlkLCBpbmRleCkge1xyXG4gICAgaWYgKHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGggPT0gMykge1xyXG4gICAgICBpZiAoaW5kZXggPT0gMSkgcmV0dXJuICc2MCUnO1xyXG4gICAgICBlbHNlIHJldHVybiAnMjAlJztcclxuICAgIH1cclxuICAgIHZhciB3aWR0aCA9IDEwMCAvIHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGg7XHJcbiAgICByZXR1cm4gd2lkdGggKyAnJSc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb3J0cyB0aGUgY29sdW1uIHRoYXQgaXMgYmVpbmcgcGFzc2VkIGFzIHRoZSBwYXJhbVxyXG4gICAqIEBwYXJhbSBpZCAtIENvbHVtbiBpZFxyXG4gICAqL1xyXG4gIHNvcnRCeUNvbHVtbihpZCkge1xyXG4gICAgaWYgKGlkID09PSAndmlld0RldGFpbHMnIHx8IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaXNVc2VyU29ydCkgdGhpcy5pc1VzZXJTb3J0ID0gdHJ1ZTtcclxuICAgIGlmIChpZCAhPT0gdGhpcy5zb3J0Q29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydENvbHVtbiA9IGlkO1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnYXNjJzsgLy8gUmVzZXQgdG8gYXNjZW5kaW5nIHdoZW4gY2hhbmdpbmcgY29sdW1uc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcclxuICAgICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gJ2FzYyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBjb21wYXJlKHYxLCB2Mikge1xyXG4gICAgICBjb25zdCBudW0xID0gcGFyc2VGbG9hdCh2MSk7XHJcbiAgICAgIGNvbnN0IG51bTIgPSBwYXJzZUZsb2F0KHYyKTtcclxuICAgICAgaWYgKCFpc05hTihudW0xKSAmJiAhaXNOYU4obnVtMikpIHtcclxuICAgICAgICByZXR1cm4gbnVtMSAtIG51bTI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHYxIDwgdjIgPyAtMSA6IHYxID4gdjIgPyAxIDogMDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGNvbXBhcmUoYVtpZF0sIGJbaWRdKTtcclxuICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyByZXMgOiAtcmVzO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIC8vIFJlc2V0IHRvIGZpcnN0IHBhZ2UgYWZ0ZXIgc29ydGluZ1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgY29sdW1uIGJlaW5nIHBhc3NlZCBhcyB0aGUgcGFyYW0gaXMgY3VycmVudGx5IGJlaW5nIHNvcnRlZCBvciBub3RcclxuICAgKiBAcGFyYW0gaWQgY29sdW1uIGlkXHJcbiAgICovXHJcbiAgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGlkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29sdW1uID09PSBpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHNvcnQgZGlyZWN0aW9uIHRoYXQgaXMgYmVpbmcgY3VycmVudGx5IHNvcnRlZFxyXG4gICAqL1xyXG4gIGdldFNvcnREaXJlY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bic7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuaXRlbUxpc3QgPSB0aGlzLm1hc3Rlckxpc3Q7XHJcbiAgICBsZXQgc2VhcmNoVGV4dCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuaXRlbUxpc3QpIHtcclxuICAgICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgICB0aGlzLml0ZW1MaXN0ID0gdGhpcy5pdGVtTGlzdC5maWx0ZXIoZnVuY3Rpb24gbWF0Y2hlcyhzdG9yZTogYW55KSB7XHJcbiAgICAgICAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcclxuICAgICAgICAgIHNlbGYudGFibGVIZWFkTGlzdC5tYXAoZnVuY3Rpb24gKHRhYmxlSGVhZCkge1xyXG4gICAgICAgICAgICBpZiAoc3RvcmVbdGFibGVIZWFkXSkge1xyXG4gICAgICAgICAgICAgIGxldCBzZWFyY2hhYmxlU3RyaW5nID0gc3RvcmVbdGFibGVIZWFkXSArICcnO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGVTdHJpbmdcclxuICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIG1hdGNoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvLyBSZXNldCBwYWdpbmF0aW9uIGFmdGVyIHNlYXJjaFxyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuICAgICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2soZDogYW55KSB7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdChkKTtcclxuICB9XHJcbn0iLCI8IS0tIDxkaXYgY2xhc3M9XCJoZWFkZXItYWx0IGxpYi1kaXNwbGF5LWZsZXggbGliLWp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuXCI+XHJcbiAgPGxpYi1oZWFkZXItYWx0IFt0aXRsZV09XCJ0YWJsZURhdGEubWV0YURhdGEudGl0bGVcIiAqbmdJZj1cIiFpc0hlYWRlclZpc2libGVcIj48L2xpYi1oZWFkZXItYWx0PlxyXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXRhYmxlRGF0YS5tZXRhRGF0YS5pc1NlYXJjaEhpZGRlblwiIGNsYXNzPVwiZmxvYXQtcmlnaHQgcGFkZGluZy01IGlucHV0LXN0eWxlXCJcclxuICAgIGlkPVwiZXhhbXBsZUlucHV0RW1haWwxXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcGxhY2Vob2xkZXI9XCIgIFNlYXJjaCAgXCIgYXJpYS1kZXNjcmliZWRieT1cImVtYWlsSGVscFwiXHJcbiAgICAoa2V5dXApPVwib25FbnRlcigkZXZlbnQpXCIgLz5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXJcIj5cclxuICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1ob3ZlclwiPlxyXG4gICAgPHRoZWFkIGNsYXNzPVwidGFibGUtdGhlYWRcIj5cclxuICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkTGlzdDsgaW5kZXggYXMgaVwiIGNsYXNzPVwiaGVhZGVyLWNlbGxcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlckFsaWduZWRUb0NlbnRlclxyXG4gICAgICAgICAgICAgID8gaSA9PSB0YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgID8gJ3RleHRhbGlnbi1yaWdodCdcclxuICAgICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1sZWZ0J1xyXG4gICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1jZW50ZXInXHJcbiAgICAgICAgICBcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJDb2xvclwiXHJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlclRleHRDb2xvclwiIChjbGljayk9XCJzb3J0QnlDb2x1bW4oaGVhZGVyKVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0ZpcnN0Q29sdW1uSGVhZGVySGlkZGVuICYmIGkgPT0gMCkgfHwgaSA+IDBcclxuICAgICAgICAgICAgXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW5cclxuICAgICAgICAgICAgICAgID8gJ2N1cnNvci1wb2ludGVyJ1xyXG4gICAgICAgICAgICAgICAgOiAnY3Vyc29yLWRlZmF1bHQnXHJcbiAgICAgICAgICAgIFwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxpICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCFpc1VzZXJTb3J0IHx8IGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChoZWFkZXIpKSAmJlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgIFwiIGNsYXNzPVwic29ydC1pY29ucyBmYVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICFpc1VzZXJTb3J0XHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0J1xyXG4gICAgICAgICAgICAgICAgOiBzb3J0RGlyZWN0aW9uID09ICdhc2MnXHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0LWFzYydcclxuICAgICAgICAgICAgICAgIDogJ2ZhLXNvcnQtZGVzYydcclxuICAgICAgICAgICAgXCI+PC9pPlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RoZWFkPlxyXG4gICAgPHRib2R5IGNsYXNzPVwidGFibGUtYm9keVwiPlxyXG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGN1cnJlbnRMaXN0XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICB0YWJsZURhdGE/LmhpZ2hsaWdodGVkVGV4dHM/LmluY2x1ZGVzKHN0b3JlW3RhYmxlSGVhZExpc3RbMF1dKVxyXG4gICAgICAgICAgICA/ICdmb250LXdlaWdodC1ib2xkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgPHRkIChjbGljayk9XCJoYW5kbGVDbGljayhzdG9yZSlcIiBjbGFzcz1cInRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImdldFdpZHRoQnlJZChoZWFkZXIsIGkpXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNBbGxBbGlnbmVkVG9SaWdodFxyXG4gICAgICAgICAgICAgID8gaSA9PSB0YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgID8gJ3RleHRhbGlnbi1yaWdodCBsYXN0LWNvbHVtbi1jb2xvcidcclxuICAgICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1sZWZ0J1xyXG4gICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1yaWdodCdcclxuICAgICAgICAgIFwiIFtzdHlsZS5jdXJzb3JdPVwiXHJcbiAgICAgICAgICAgIHRhYmxlRGF0YS5tZXRhRGF0YS5oYXNEcmlsbERvd24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCdcclxuICAgICAgICAgIFwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgc3RvcmVbaGVhZGVyXSB9fTwvc3Bhbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90Ym9keT5cclxuICA8L3RhYmxlPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbUxpc3QgJiYgaXRlbUxpc3QubGVuZ3RoICYmICF0YWJsZURhdGEubWV0YURhdGEuaXNQYWdpbmF0aW9uSGlkZGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJlc3VsdHMtc3VtbWFyeVwiPlxyXG4gICAgU2hvd2luZyA8Yj57eyAoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgMSB9fTwvYj4gdG9cclxuICAgIDxiPnt7IGN1cnJlbnRQYWdlICogcGFnZVNpemUgPiB0b3RhbEl0ZW1zID8gdG90YWxJdGVtcyA6IGN1cnJlbnRQYWdlICogcGFnZVNpemUgfX08L2I+XHJcbiAgICBvZiA8Yj57eyB0b3RhbEl0ZW1zIH19PC9iPiBlbnRyaWVzXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZ2ItcGFnaW5hdGlvbiBcclxuICAgIFtjb2xsZWN0aW9uU2l6ZV09XCJ0b3RhbEl0ZW1zXCIgXHJcbiAgICBbKHBhZ2UpXT1cImN1cnJlbnRQYWdlXCIgXHJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBcclxuICAgIFttYXhTaXplXT1cIjVcIlxyXG4gICAgW3JvdGF0ZV09XCJ0cnVlXCIgXHJcbiAgICBbYm91bmRhcnlMaW5rc109XCJ0cnVlXCIgXHJcbiAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2luYXRpb25DaGFuZ2UoKVwiIFxyXG4gICAgY2xhc3M9XCJzYi1wYWdpbmF0aW9uXCI+XHJcbiAgPC9uZ2ItcGFnaW5hdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImdvLXRvLXBhZ2VcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJnb3RvUGFnZUlucHV0XCI+R28gdG8gcGFnZTwvbGFiZWw+XHJcbiAgICA8aW5wdXQgXHJcbiAgICAgIGlkPVwiZ290b1BhZ2VJbnB1dFwiIFxyXG4gICAgICB0eXBlPVwibnVtYmVyXCIgXHJcbiAgICAgIFttaW5dPVwiMVwiIFxyXG4gICAgICBbbWF4XT1cInRvdGFsUGFnZXNcIiBcclxuICAgICAgW25nTW9kZWxdPVwiZ29Ub1BhZ2VWYWx1ZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImdvVG9QYWdlVmFsdWUgPSAkZXZlbnQ7IGdvVG9QYWdlKClcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwidmFsaWRhdGVOdW1iZXJJbnB1dCgkZXZlbnQpXCI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiAtLT5cclxuXHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgPGxpYi1oZWFkZXItYWx0IFt0aXRsZV09XCJ0YWJsZURhdGEubWV0YURhdGEudGl0bGVcIiAqbmdJZj1cIiFpc0hlYWRlclZpc2libGVcIj48L2xpYi1oZWFkZXItYWx0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiF0YWJsZURhdGEubWV0YURhdGEuaXNTZWFyY2hIaWRkZW5cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY3VzdG9tLWlucHV0IG1lZGl1bS1mb250LXNpemUgdGV4dGJveC1heC1jb21tb25cIiBpZD1cImV4YW1wbGVJbnB1dEVtYWlsMVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBwbGFjZWhvbGRlcj1cIiAgU2VhcmNoICBcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWxIZWxwXCIgKGtleXVwKT1cIm9uRW50ZXIoJGV2ZW50KVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBvcHVwLWJvZHktZm9yLXNjcm9sbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgYm9yZGVyXCI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIGFsaWduLW1pZGRsZSBtYi0wXCI+XHJcbiAgICAgICAgPHRoZWFkIGNsYXNzPVwidGFibGUtZGFya1wiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlckFsaWduZWRUb0NlbnRlclxyXG4gICAgICAgICAgICAgID8gaSA9PSB0YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgID8gJ3RleHRhbGlnbi1yaWdodCdcclxuICAgICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1sZWZ0J1xyXG4gICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1jZW50ZXInXHJcbiAgICAgICAgICBcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJDb2xvclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJUZXh0Q29sb3JcIiAoY2xpY2spPVwic29ydEJ5Q29sdW1uKGhlYWRlcilcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICghdGFibGVEYXRhLm1ldGFEYXRhLmlzRmlyc3RDb2x1bW5IZWFkZXJIaWRkZW4gJiYgaSA9PSAwKSB8fCBpID4gMFxyXG4gICAgICAgICAgICBcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAhdGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlblxyXG4gICAgICAgICAgICAgICAgPyAnY3Vyc29yLXBvaW50ZXInXHJcbiAgICAgICAgICAgICAgICA6ICdjdXJzb3ItZGVmYXVsdCdcclxuICAgICAgICAgICAgXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCFpc1VzZXJTb3J0IHx8IGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChoZWFkZXIpKSAmJlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgIFwiIGNsYXNzPVwic29ydC1pY29ucyBmYVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICFpc1VzZXJTb3J0XHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0J1xyXG4gICAgICAgICAgICAgICAgOiBzb3J0RGlyZWN0aW9uID09ICdhc2MnXHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0LWFzYydcclxuICAgICAgICAgICAgICAgIDogJ2ZhLXNvcnQtZGVzYydcclxuICAgICAgICAgICAgXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGN1cnJlbnRMaXN0XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICB0YWJsZURhdGE/LmhpZ2hsaWdodGVkVGV4dHM/LmluY2x1ZGVzKHN0b3JlW3RhYmxlSGVhZExpc3RbMF1dKVxyXG4gICAgICAgICAgICA/ICdmb250LXdlaWdodC1ib2xkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgICAgIDx0ZCAoY2xpY2spPVwiaGFuZGxlQ2xpY2soc3RvcmUpXCIgY2xhc3M9XCJ0YWJsZS1jZWxsXCIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRMaXN0OyBpbmRleCBhcyBpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0FsbEFsaWduZWRUb1JpZ2h0XHJcbiAgICAgICAgICAgICAgPyBpID09IHRhYmxlSGVhZExpc3QubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgICAgPyAndGV4dGFsaWduLXJpZ2h0IGxhc3QtY29sdW1uLWNvbG9yJ1xyXG4gICAgICAgICAgICAgICAgOiAndGV4dGFsaWduLWxlZnQnXHJcbiAgICAgICAgICAgICAgOiAndGV4dGFsaWduLXJpZ2h0J1xyXG4gICAgICAgICAgXCIgW3N0eWxlLmN1cnNvcl09XCJcclxuICAgICAgICAgICAgdGFibGVEYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93biA/ICdwb2ludGVyJyA6ICdkZWZhdWx0J1xyXG4gICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgc3RvcmVbaGVhZGVyXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWJhciBtdC0wXCI+XHJcbiAgICAgIDxzcGFuPkdvIFRvPC9zcGFuPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwicGFnZS1pbnB1dFwiIG1pbj1cIjFcIiBbbWF4XT1cInRvdGFsUGFnZXNcIiAoa2V5dXAuZW50ZXIpPVwiZ29Ub1NwZWNpZmljUGFnZSgpXCIgWyhuZ01vZGVsKV09XCJnb1RvUGFnZU51bWJlclwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJwYWdlXCI+XHJcblxyXG4gICAgICA8c3Bhbj4ge3sgKGN1cnJlbnRMaXN0Lmxlbmd0aCA+IDAgPyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIDEpIDogMCkgfX0gLVxyXG4gICAgICAgIHt7ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgY3VycmVudExpc3QubGVuZ3RoKSB9fSBvZlxyXG4gICAgICAgIHt7IHRvdGFsSXRlbXMgfCBudW1iZXIgfX08L3NwYW4+XHJcblxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJGaXJzdCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWRvdWJsZS1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiUHJldmlvdXMgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJOZXh0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJnb1RvTGFzdFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIkxhc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQU8xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBMEQzQjtRQXZEVSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUVoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBUzVCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBS3pCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBUSxDQUFDLENBQUM7UUFDckI7O1dBRUc7UUFDSCxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBS25COztXQUVHO1FBQ0gsa0JBQWEsR0FBUSxLQUFLLENBQUM7UUFDM0I7O1dBRUc7UUFDSCxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBS3JCOztXQUVHO1FBQ0gsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQix1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFFN0IseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBVyxDQUFDLENBQUMsQ0FBQyxzREFBc0Q7UUFFbEYsa0RBQWtEO1FBQ2xELGdCQUFXLEdBQWEsRUFBRSxDQUFDO0lBRVgsQ0FBQztJQUVqQixRQUFR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QUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFNO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBbFNVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHFMQ1I3QixzcVFBMkxNOzs0RkRuTE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7d0RBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IENoYXJ0SGVscGVyIGZyb20gJy4uL2NoYXJ0LWhlbHBlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1heC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F4LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9heC10YWJsZS5jb21wb25lbnQubGVzcycsICcuLi9jb21tb24tc3R5bGVzLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF4VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvbjogYW55O1xyXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgaXNIZWFkZXJWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgaXNVc2VyU29ydDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB0YWJsZUhlYWRMaXN0OiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc3RvcmVzIGluZm9ybWF0aW9uIGZvciB0aGUgc2VsZWN0ZWQgc3RhdGVcclxuICAgKi9cclxuICBpdGVtTGlzdDogYW55O1xyXG5cclxuICBpdGVtc1BlclBhZ2U6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIHN0b3JlcyBpbiBzZWxlY3RlZCBzdGF0ZVxyXG4gICAqL1xyXG4gIHRvdGFsSXRlbXM6IGFueTtcclxuICAvKipcclxuICAgKiBDdXJyZW50IHBhZ2UgZGlzcGxheWVkIGluIHBhZ2luYXRpb25cclxuICAgKi9cclxuICBjdXJyZW50UGFnZTogYW55ID0gMTtcclxuICAvKipcclxuICAgKiBOdW1iZXIgb2Ygc3RvcmVzIHRoYXQgY2FuIGJlIGRpc3BsYXllZCBpbiBlYWNoIHBhZ2VcclxuICAgKi9cclxuICBwYWdlU2l6ZTogYW55ID0gMTA7XHJcbiAgLyoqXHJcbiAgICogU2VsZWN0ZWQgcGFnZSBzdG9yZSBsaXN0XHJcbiAgICovXHJcbiAgY3VycmVudExpc3Q6IGFueTtcclxuICAvKipcclxuICAgKiBTb3J0IGRpcmVjdGlvbiBvZiBzZWxlY3RlZCBjb2x1bW4gIGluIHRoZSB0YWJsZVxyXG4gICAqL1xyXG4gIHNvcnREaXJlY3Rpb246IGFueSA9ICdhc2MnO1xyXG4gIC8qKlxyXG4gICAqIFNlbGVjdGVkIGNvbHVtbiBmb3Igc29ydGluZ1xyXG4gICAqL1xyXG4gIHNvcnRDb2x1bW46IGFueSA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIFNlbGVjdG9yIGZvciBsaXN0ZW5pbmcgdG8gdGhlIGNoYW5nZXMgb2Ygc2VhcmNoIHRleHQgZW50ZXJlZCBpbiB0aGUgaGVhZGVyXHJcbiAgICovXHJcbiAgc2VhcmNoVGV4dEZlYXR1cmUkOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogTWFzdGVyIHN0b3JlIGxpc3QgZm9yIHRoZSBzZWxlY3RlZCBzdGF0ZVxyXG4gICAqL1xyXG4gIG1hc3Rlckxpc3Q6IGFueSA9IFtdO1xyXG4gIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcblxyXG4gIGRlZmF1bHRDb25maWd1cmF0aW9uOiBhbnkgPSB7fTtcclxuXHJcbiAgdG90YWxQYWdlczogbnVtYmVyID0gMTtcclxuICBnb1RvUGFnZU51bWJlcjogbnVtYmVyID0gMTsgLy8gRml4ZWQ6IHJlbmFtZWQgZnJvbSBnb1RvUGFnZVZhbHVlIHRvIG1hdGNoIHRlbXBsYXRlXHJcblxyXG4gIC8vIEFkZCBwYWdlc1RvU2hvdyBwcm9wZXJ0eSBmb3IgcGFnaW5hdGlvbiBkaXNwbGF5XHJcbiAgcGFnZXNUb1Nob3c6IG51bWJlcltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuICAgIHRoaXMudGFibGVIZWFkTGlzdCA9IE9iamVjdC5rZXlzKHRoaXMudGFibGVEYXRhLmRhdGFbMF0pO1xyXG4gICAgZm9yICh2YXIgaSBpbiB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uW2ldID0gQ2hhcnRIZWxwZXIuZ2V0VmFsdWVCeUNvbmZpZ3VyYXRpb25UeXBlKFxyXG4gICAgICAgIGksXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbixcclxuICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYXN0ZXJMaXN0ID0gWy4uLnNlbGYudGFibGVEYXRhLmRhdGFdO1xyXG4gICAgdGhpcy5pdGVtTGlzdCA9IFsuLi50aGlzLm1hc3Rlckxpc3RdO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpOyAvLyBHZW5lcmF0ZSBwYWdlcyB0byBzaG93XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzUGFnaW5hdGlvbkhpZGRlbikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclZpc2libGUgIT0gdW5kZWZpbmVkKVxyXG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIGxvYWRQYWdlKCkge1xyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgdGhpcy5wYWdlU2l6ZTtcclxuICAgIHRoaXMuY3VycmVudExpc3QgPSB0aGlzLml0ZW1MaXN0LnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuICB9XHJcblxyXG4gIGNhbGN1bGF0ZVRvdGFsUGFnZXMoKSB7XHJcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIC8vIEdlbmVyYXRlIGFycmF5IG9mIHBhZ2UgbnVtYmVycyB0byBzaG93IGluIHBhZ2luYXRpb25cclxuICBnZW5lcmF0ZVBhZ2VzVG9TaG93KCkge1xyXG4gICAgdGhpcy5wYWdlc1RvU2hvdyA9IFtdO1xyXG4gICAgY29uc3QgbWF4UGFnZXNUb1Nob3cgPSA1O1xyXG4gICAgbGV0IHN0YXJ0UGFnZSA9IE1hdGgubWF4KDEsIHRoaXMuY3VycmVudFBhZ2UgLSBNYXRoLmZsb29yKG1heFBhZ2VzVG9TaG93IC8gMikpO1xyXG4gICAgbGV0IGVuZFBhZ2UgPSBNYXRoLm1pbih0aGlzLnRvdGFsUGFnZXMsIHN0YXJ0UGFnZSArIG1heFBhZ2VzVG9TaG93IC0gMSk7XHJcbiAgICBcclxuICAgIC8vIEFkanVzdCBzdGFydCBwYWdlIGlmIHdlJ3JlIG5lYXIgdGhlIGVuZFxyXG4gICAgaWYgKGVuZFBhZ2UgLSBzdGFydFBhZ2UgKyAxIDwgbWF4UGFnZXNUb1Nob3cpIHtcclxuICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoMSwgZW5kUGFnZSAtIG1heFBhZ2VzVG9TaG93ICsgMSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGZvciAobGV0IGkgPSBzdGFydFBhZ2U7IGkgPD0gZW5kUGFnZTsgaSsrKSB7XHJcbiAgICAgIHRoaXMucGFnZXNUb1Nob3cucHVzaChpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUGFnaW5hdGlvbkNoYW5nZSgpIHtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgfVxyXG5cclxuICAvLyBOYXZpZ2F0aW9uIG1ldGhvZHMgZm9yIHBhZ2luYXRpb24gYnV0dG9uc1xyXG4gIGdvVG9GaXJzdFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9QcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS0tO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub05leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSsrO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub0xhc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgIT09IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzICYmIHBhZ2UgIT09IHRoaXMuY3VycmVudFBhZ2UpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGaXhlZDogcmVuYW1lZCBtZXRob2QgdG8gbWF0Y2ggdGVtcGxhdGVcclxuICBnb1RvU3BlY2lmaWNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPT09IG51bGwgfHwgdGhpcy5nb1RvUGFnZU51bWJlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHRoaXMuZ29Ub1BhZ2VOdW1iZXIudG9TdHJpbmcoKSwgMTApO1xyXG4gICAgXHJcbiAgICBpZiAoaXNOYU4ocGFnZU51bSkgfHwgcGFnZU51bSA8IDEpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IDE7XHJcbiAgICB9IGVsc2UgaWYgKHBhZ2VOdW0gPiB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMudG90YWxQYWdlcztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gVXBkYXRlIGN1cnJlbnQgcGFnZSBhbmQgbG9hZCBkYXRhXHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5nb1RvUGFnZU51bWJlcjtcclxuICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU51bWJlcklucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFyQ29kZSA9IGV2ZW50LndoaWNoID8gZXZlbnQud2hpY2ggOiBldmVudC5rZXlDb2RlO1xyXG4gICAgaWYgKGNoYXJDb2RlID4gMzEgJiYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uXHJcbiAgICogQHBhcmFtIGlkIC0gY29sdW1uIGlkXHJcbiAgICovXHJcbiAgZ2V0V2lkdGhCeUlkKGlkLCBpbmRleCkge1xyXG4gICAgaWYgKHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGggPT0gMykge1xyXG4gICAgICBpZiAoaW5kZXggPT0gMSkgcmV0dXJuICc2MCUnO1xyXG4gICAgICBlbHNlIHJldHVybiAnMjAlJztcclxuICAgIH1cclxuICAgIHZhciB3aWR0aCA9IDEwMCAvIHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGg7XHJcbiAgICByZXR1cm4gd2lkdGggKyAnJSc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb3J0cyB0aGUgY29sdW1uIHRoYXQgaXMgYmVpbmcgcGFzc2VkIGFzIHRoZSBwYXJhbVxyXG4gICAqIEBwYXJhbSBpZCAtIENvbHVtbiBpZFxyXG4gICAqL1xyXG4gIHNvcnRCeUNvbHVtbihpZCkge1xyXG4gICAgaWYgKGlkID09PSAndmlld0RldGFpbHMnIHx8IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaXNVc2VyU29ydCkgdGhpcy5pc1VzZXJTb3J0ID0gdHJ1ZTtcclxuICAgIGlmIChpZCAhPT0gdGhpcy5zb3J0Q29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydENvbHVtbiA9IGlkO1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnYXNjJzsgLy8gUmVzZXQgdG8gYXNjZW5kaW5nIHdoZW4gY2hhbmdpbmcgY29sdW1uc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcclxuICAgICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gJ2FzYyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBjb21wYXJlKHYxLCB2Mikge1xyXG4gICAgICBjb25zdCBudW0xID0gcGFyc2VGbG9hdCh2MSk7XHJcbiAgICAgIGNvbnN0IG51bTIgPSBwYXJzZUZsb2F0KHYyKTtcclxuICAgICAgaWYgKCFpc05hTihudW0xKSAmJiAhaXNOYU4obnVtMikpIHtcclxuICAgICAgICByZXR1cm4gbnVtMSAtIG51bTI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHYxIDwgdjIgPyAtMSA6IHYxID4gdjIgPyAxIDogMDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGNvbXBhcmUoYVtpZF0sIGJbaWRdKTtcclxuICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyByZXMgOiAtcmVzO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIC8vIFJlc2V0IHRvIGZpcnN0IHBhZ2UgYWZ0ZXIgc29ydGluZ1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgY29sdW1uIGJlaW5nIHBhc3NlZCBhcyB0aGUgcGFyYW0gaXMgY3VycmVudGx5IGJlaW5nIHNvcnRlZCBvciBub3RcclxuICAgKiBAcGFyYW0gaWQgY29sdW1uIGlkXHJcbiAgICovXHJcbiAgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGlkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29sdW1uID09PSBpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHNvcnQgZGlyZWN0aW9uIHRoYXQgaXMgYmVpbmcgY3VycmVudGx5IHNvcnRlZFxyXG4gICAqL1xyXG4gIGdldFNvcnREaXJlY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bic7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuaXRlbUxpc3QgPSB0aGlzLm1hc3Rlckxpc3Q7XHJcbiAgICBsZXQgc2VhcmNoVGV4dCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuaXRlbUxpc3QpIHtcclxuICAgICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgICB0aGlzLml0ZW1MaXN0ID0gdGhpcy5pdGVtTGlzdC5maWx0ZXIoZnVuY3Rpb24gbWF0Y2hlcyhzdG9yZTogYW55KSB7XHJcbiAgICAgICAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcclxuICAgICAgICAgIHNlbGYudGFibGVIZWFkTGlzdC5tYXAoZnVuY3Rpb24gKHRhYmxlSGVhZCkge1xyXG4gICAgICAgICAgICBpZiAoc3RvcmVbdGFibGVIZWFkXSkge1xyXG4gICAgICAgICAgICAgIGxldCBzZWFyY2hhYmxlU3RyaW5nID0gc3RvcmVbdGFibGVIZWFkXSArICcnO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGVTdHJpbmdcclxuICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIG1hdGNoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvLyBSZXNldCBwYWdpbmF0aW9uIGFmdGVyIHNlYXJjaFxyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuICAgICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2soZDogYW55KSB7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdChkKTtcclxuICB9XHJcbn0iLCI8IS0tIDxkaXYgY2xhc3M9XCJoZWFkZXItYWx0IGxpYi1kaXNwbGF5LWZsZXggbGliLWp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuXCI+XHJcbiAgPGxpYi1oZWFkZXItYWx0IFt0aXRsZV09XCJ0YWJsZURhdGEubWV0YURhdGEudGl0bGVcIiAqbmdJZj1cIiFpc0hlYWRlclZpc2libGVcIj48L2xpYi1oZWFkZXItYWx0PlxyXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXRhYmxlRGF0YS5tZXRhRGF0YS5pc1NlYXJjaEhpZGRlblwiIGNsYXNzPVwiZmxvYXQtcmlnaHQgcGFkZGluZy01IGlucHV0LXN0eWxlXCJcclxuICAgIGlkPVwiZXhhbXBsZUlucHV0RW1haWwxXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcGxhY2Vob2xkZXI9XCIgIFNlYXJjaCAgXCIgYXJpYS1kZXNjcmliZWRieT1cImVtYWlsSGVscFwiXHJcbiAgICAoa2V5dXApPVwib25FbnRlcigkZXZlbnQpXCIgLz5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXJcIj5cclxuICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1ob3ZlclwiPlxyXG4gICAgPHRoZWFkIGNsYXNzPVwidGFibGUtdGhlYWRcIj5cclxuICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkTGlzdDsgaW5kZXggYXMgaVwiIGNsYXNzPVwiaGVhZGVyLWNlbGxcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlckFsaWduZWRUb0NlbnRlclxyXG4gICAgICAgICAgICAgID8gaSA9PSB0YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgID8gJ3RleHRhbGlnbi1yaWdodCdcclxuICAgICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1sZWZ0J1xyXG4gICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1jZW50ZXInXHJcbiAgICAgICAgICBcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJDb2xvclwiXHJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlclRleHRDb2xvclwiIChjbGljayk9XCJzb3J0QnlDb2x1bW4oaGVhZGVyKVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0ZpcnN0Q29sdW1uSGVhZGVySGlkZGVuICYmIGkgPT0gMCkgfHwgaSA+IDBcclxuICAgICAgICAgICAgXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW5cclxuICAgICAgICAgICAgICAgID8gJ2N1cnNvci1wb2ludGVyJ1xyXG4gICAgICAgICAgICAgICAgOiAnY3Vyc29yLWRlZmF1bHQnXHJcbiAgICAgICAgICAgIFwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxpICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCFpc1VzZXJTb3J0IHx8IGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChoZWFkZXIpKSAmJlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgIFwiIGNsYXNzPVwic29ydC1pY29ucyBmYVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICFpc1VzZXJTb3J0XHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0J1xyXG4gICAgICAgICAgICAgICAgOiBzb3J0RGlyZWN0aW9uID09ICdhc2MnXHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0LWFzYydcclxuICAgICAgICAgICAgICAgIDogJ2ZhLXNvcnQtZGVzYydcclxuICAgICAgICAgICAgXCI+PC9pPlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RoZWFkPlxyXG4gICAgPHRib2R5IGNsYXNzPVwidGFibGUtYm9keVwiPlxyXG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGN1cnJlbnRMaXN0XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICB0YWJsZURhdGE/LmhpZ2hsaWdodGVkVGV4dHM/LmluY2x1ZGVzKHN0b3JlW3RhYmxlSGVhZExpc3RbMF1dKVxyXG4gICAgICAgICAgICA/ICdmb250LXdlaWdodC1ib2xkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgPHRkIChjbGljayk9XCJoYW5kbGVDbGljayhzdG9yZSlcIiBjbGFzcz1cInRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImdldFdpZHRoQnlJZChoZWFkZXIsIGkpXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNBbGxBbGlnbmVkVG9SaWdodFxyXG4gICAgICAgICAgICAgID8gaSA9PSB0YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgID8gJ3RleHRhbGlnbi1yaWdodCBsYXN0LWNvbHVtbi1jb2xvcidcclxuICAgICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1sZWZ0J1xyXG4gICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1yaWdodCdcclxuICAgICAgICAgIFwiIFtzdHlsZS5jdXJzb3JdPVwiXHJcbiAgICAgICAgICAgIHRhYmxlRGF0YS5tZXRhRGF0YS5oYXNEcmlsbERvd24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCdcclxuICAgICAgICAgIFwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgc3RvcmVbaGVhZGVyXSB9fTwvc3Bhbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90Ym9keT5cclxuICA8L3RhYmxlPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbUxpc3QgJiYgaXRlbUxpc3QubGVuZ3RoICYmICF0YWJsZURhdGEubWV0YURhdGEuaXNQYWdpbmF0aW9uSGlkZGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJlc3VsdHMtc3VtbWFyeVwiPlxyXG4gICAgU2hvd2luZyA8Yj57eyAoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgMSB9fTwvYj4gdG9cclxuICAgIDxiPnt7IGN1cnJlbnRQYWdlICogcGFnZVNpemUgPiB0b3RhbEl0ZW1zID8gdG90YWxJdGVtcyA6IGN1cnJlbnRQYWdlICogcGFnZVNpemUgfX08L2I+XHJcbiAgICBvZiA8Yj57eyB0b3RhbEl0ZW1zIH19PC9iPiBlbnRyaWVzXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZ2ItcGFnaW5hdGlvbiBcclxuICAgIFtjb2xsZWN0aW9uU2l6ZV09XCJ0b3RhbEl0ZW1zXCIgXHJcbiAgICBbKHBhZ2UpXT1cImN1cnJlbnRQYWdlXCIgXHJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBcclxuICAgIFttYXhTaXplXT1cIjVcIlxyXG4gICAgW3JvdGF0ZV09XCJ0cnVlXCIgXHJcbiAgICBbYm91bmRhcnlMaW5rc109XCJ0cnVlXCIgXHJcbiAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2luYXRpb25DaGFuZ2UoKVwiIFxyXG4gICAgY2xhc3M9XCJzYi1wYWdpbmF0aW9uXCI+XHJcbiAgPC9uZ2ItcGFnaW5hdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImdvLXRvLXBhZ2VcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJnb3RvUGFnZUlucHV0XCI+R28gdG8gcGFnZTwvbGFiZWw+XHJcbiAgICA8aW5wdXQgXHJcbiAgICAgIGlkPVwiZ290b1BhZ2VJbnB1dFwiIFxyXG4gICAgICB0eXBlPVwibnVtYmVyXCIgXHJcbiAgICAgIFttaW5dPVwiMVwiIFxyXG4gICAgICBbbWF4XT1cInRvdGFsUGFnZXNcIiBcclxuICAgICAgW25nTW9kZWxdPVwiZ29Ub1BhZ2VWYWx1ZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImdvVG9QYWdlVmFsdWUgPSAkZXZlbnQ7IGdvVG9QYWdlKClcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwidmFsaWRhdGVOdW1iZXJJbnB1dCgkZXZlbnQpXCI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiAtLT5cclxuXHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgPGxpYi1oZWFkZXItYWx0IFt0aXRsZV09XCJ0YWJsZURhdGEubWV0YURhdGEudGl0bGVcIiAqbmdJZj1cIiFpc0hlYWRlclZpc2libGVcIj48L2xpYi1oZWFkZXItYWx0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiF0YWJsZURhdGEubWV0YURhdGEuaXNTZWFyY2hIaWRkZW5cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY3VzdG9tLWlucHV0IG1lZGl1bS1mb250LXNpemUgdGV4dGJveC1heC1jb21tb25cIiBpZD1cImV4YW1wbGVJbnB1dEVtYWlsMVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBwbGFjZWhvbGRlcj1cIiAgU2VhcmNoICBcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWxIZWxwXCIgKGtleXVwKT1cIm9uRW50ZXIoJGV2ZW50KVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBvcHVwLWJvZHktZm9yLXNjcm9sbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgYm9yZGVyXCI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIGFsaWduLW1pZGRsZSBtYi0wXCI+XHJcbiAgICAgICAgPHRoZWFkIGNsYXNzPVwidGFibGUtZGFya1wiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlckFsaWduZWRUb0NlbnRlclxyXG4gICAgICAgICAgICAgID8gaSA9PSB0YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgID8gJ3RleHRhbGlnbi1yaWdodCdcclxuICAgICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1sZWZ0J1xyXG4gICAgICAgICAgICAgIDogJ3RleHRhbGlnbi1jZW50ZXInXHJcbiAgICAgICAgICBcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJDb2xvclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJUZXh0Q29sb3JcIiAoY2xpY2spPVwic29ydEJ5Q29sdW1uKGhlYWRlcilcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICghdGFibGVEYXRhLm1ldGFEYXRhLmlzRmlyc3RDb2x1bW5IZWFkZXJIaWRkZW4gJiYgaSA9PSAwKSB8fCBpID4gMFxyXG4gICAgICAgICAgICBcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAhdGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlblxyXG4gICAgICAgICAgICAgICAgPyAnY3Vyc29yLXBvaW50ZXInXHJcbiAgICAgICAgICAgICAgICA6ICdjdXJzb3ItZGVmYXVsdCdcclxuICAgICAgICAgICAgXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCFpc1VzZXJTb3J0IHx8IGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChoZWFkZXIpKSAmJlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgIFwiIGNsYXNzPVwic29ydC1pY29ucyBmYVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICFpc1VzZXJTb3J0XHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0J1xyXG4gICAgICAgICAgICAgICAgOiBzb3J0RGlyZWN0aW9uID09ICdhc2MnXHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0LWFzYydcclxuICAgICAgICAgICAgICAgIDogJ2ZhLXNvcnQtZGVzYydcclxuICAgICAgICAgICAgXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGN1cnJlbnRMaXN0XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICB0YWJsZURhdGE/LmhpZ2hsaWdodGVkVGV4dHM/LmluY2x1ZGVzKHN0b3JlW3RhYmxlSGVhZExpc3RbMF1dKVxyXG4gICAgICAgICAgICA/ICdmb250LXdlaWdodC1ib2xkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgICAgIDx0ZCAoY2xpY2spPVwiaGFuZGxlQ2xpY2soc3RvcmUpXCIgY2xhc3M9XCJ0YWJsZS1jZWxsXCIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRMaXN0OyBpbmRleCBhcyBpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0FsbEFsaWduZWRUb1JpZ2h0XHJcbiAgICAgICAgICAgICAgPyBpID09IHRhYmxlSGVhZExpc3QubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgICAgPyAndGV4dGFsaWduLXJpZ2h0IGxhc3QtY29sdW1uLWNvbG9yJ1xyXG4gICAgICAgICAgICAgICAgOiAndGV4dGFsaWduLWxlZnQnXHJcbiAgICAgICAgICAgICAgOiAndGV4dGFsaWduLXJpZ2h0J1xyXG4gICAgICAgICAgXCIgW3N0eWxlLmN1cnNvcl09XCJcclxuICAgICAgICAgICAgdGFibGVEYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93biA/ICdwb2ludGVyJyA6ICdkZWZhdWx0J1xyXG4gICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgc3RvcmVbaGVhZGVyXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWJhciBtdC0wXCI+XHJcbiAgICAgIDxzcGFuPkdvIFRvPC9zcGFuPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwicGFnZS1pbnB1dFwiIG1pbj1cIjFcIiBbbWF4XT1cInRvdGFsUGFnZXNcIiAoa2V5dXAuZW50ZXIpPVwiZ29Ub1NwZWNpZmljUGFnZSgpXCIgWyhuZ01vZGVsKV09XCJnb1RvUGFnZU51bWJlclwiPlxyXG5cclxuICAgICAgPHNwYW4+IHt7IChjdXJyZW50TGlzdC5sZW5ndGggPiAwID8gKChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxKSA6IDApIH19IC1cclxuICAgICAgICB7eyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIGN1cnJlbnRMaXN0Lmxlbmd0aCkgfX0gb2ZcclxuICAgICAgICB7eyB0b3RhbEl0ZW1zIHwgbnVtYmVyIH19PC9zcGFuPlxyXG5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub0ZpcnN0UGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiRmlyc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtbGVmdFwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCIgKGNsaWNrKT1cImdvVG9QcmV2aW91c1BhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIlByZXZpb3VzIFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tbGVmdFwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSB0b3RhbFBhZ2VzXCIgKGNsaWNrKT1cImdvVG9OZXh0UGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiTmV4dCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub0xhc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJMYXN0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tZG91YmxlLXJpZ2h0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../dropdown/dropdown.component";
|
|
5
4
|
export class ChartHeaderV3Component {
|
|
6
5
|
constructor() {
|
|
7
6
|
this.compareByFilterSelection = new EventEmitter();
|
|
@@ -37,11 +36,11 @@ export class ChartHeaderV3Component {
|
|
|
37
36
|
this.zoomInZoomOutClick.emit({ isZoomOut: this.isZoomedOut, event: event });
|
|
38
37
|
}
|
|
39
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChartHeaderV3Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChartHeaderV3Component, selector: "lib-chart-header-v3", inputs: { chartData: "chartData", chartConfiguration: "chartConfiguration" }, outputs: { compareByFilterSelection: "compareByFilterSelection", zoomInZoomOutClick: "zoomInZoomOutClick" }, ngImport: i0, template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChartHeaderV3Component, selector: "lib-chart-header-v3", inputs: { chartData: "chartData", chartConfiguration: "chartConfiguration" }, outputs: { compareByFilterSelection: "compareByFilterSelection", zoomInZoomOutClick: "zoomInZoomOutClick" }, ngImport: i0, template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span>\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] }); }
|
|
41
40
|
}
|
|
42
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChartHeaderV3Component, decorators: [{
|
|
43
42
|
type: Component,
|
|
44
|
-
args: [{ selector: 'lib-chart-header-v3', template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span
|
|
43
|
+
args: [{ selector: 'lib-chart-header-v3', template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span>\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"] }]
|
|
45
44
|
}], propDecorators: { chartData: [{
|
|
46
45
|
type: Input
|
|
47
46
|
}], chartConfiguration: [{
|
|
@@ -51,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
51
50
|
}], zoomInZoomOutClick: [{
|
|
52
51
|
type: Output
|
|
53
52
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjMvY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjMvY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBUVksNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXZELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQTJCNUIsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO0tBQ0g7SUE1QkMsZUFBZTtRQUNiLElBQ0UsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDdEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCw4QkFBOEIsQ0FBQyxLQUFLO1FBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQWxDVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixzUENQbkMsc2dIQWlFTTs7NEZEMURPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hhcnQtaGVhZGVyLXYzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5sZXNzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0SGVhZGVyVjNDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNoYXJ0RGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55O1xyXG4gIEBPdXRwdXQoKSBjb21wYXJlQnlGaWx0ZXJTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgem9vbUluWm9vbU91dENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGlzREQxT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzREQyT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzWm9vbWVkT3V0OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgaXNMZWdlbmRWaXNpYmxlKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNoYXJ0RGF0YSAmJlxyXG4gICAgICB0aGlzLmNoYXJ0RGF0YS5tZXRhRGF0YS5jb2xvcnMgJiZcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5jaGFydERhdGEubWV0YURhdGEuY29sb3JzKS5sZW5ndGggPiAxXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGhhbmRsZUREMUNsaWNrKCkge1xyXG4gICAgdGhpcy5pc0REMU9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy5pc0REMk9wZW4gPSBmYWxzZTtcclxuICB9XHJcbiAgaGFuZGxlREQyQ2xpY2soKSB7XHJcbiAgICB0aGlzLmlzREQyT3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLmlzREQxT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuICBoYW5kbGVDb21wYXJlQnlGaWx0ZXJTZWxlY3Rpb24oZXZlbnQpIHtcclxuICAgIHRoaXMuY29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBpc1pvb21PdXRTZWxlY3RlZChpc1pvb21PdXQsIGV2ZW50KSB7XHJcbiAgICB0aGlzLmlzWm9vbWVkT3V0ID0gaXNab29tT3V0OyBcclxuICAgIHRoaXMuem9vbUluWm9vbU91dENsaWNrLmVtaXQoeyBpc1pvb21PdXQ6IHRoaXMuaXNab29tZWRPdXQsIGV2ZW50OiBldmVudCB9KTtcclxuICB9XHJcbiAga2VlcE9yZGVyID0gKGEsIGIpID0+IHtcclxuICAgIHJldHVybiBhO1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxpYi1kaXNwbGF5LWZsZXggaGVhZGVyLXRpdGxlLXN0eWxlc1wiIFtuZ0NsYXNzXT1cIlxyXG4gICAgIWNoYXJ0RGF0YS5kcm9wZG93bkRhdGEyICYmXHJcbiAgICAhY2hhcnREYXRhLmRyb3Bkb3duRGF0YTEgJiZcclxuICAgIGNoYXJ0RGF0YS5kYXRhLmxlbmd0aCA8PSA4XHJcbiAgICAgID8gJ2xpYi1qdXN0aWZ5LWNvbnRlbnQtc3RhcnQnXHJcbiAgICAgIDogJ2xpYi1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbidcclxuICBcIj5cclxuICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXRlc3QtaG9sZGVyXCIgKm5nSWY9XCJcclxuICAgICAgY2hhcnREYXRhLmRhdGEgJiZcclxuICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdCAmJlxyXG4gICAgICAoY2hhcnRDb25maWd1cmF0aW9uLmlzVG9nZ2xlVmlzaWJsZSB8fCBjaGFydERhdGEubWV0YURhdGEuaXNUb2dnbGVWaXNpYmxlKVxyXG4gICAgXCI+XHJcbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjaGFydERhdGEubWV0YURhdGEuY29sb3JzIHwga2V5dmFsdWUgOiBrZWVwT3JkZXJcIj48c3BhbiBjbGFzcz1cImxlZ2VuZHMtbGF0ZXN0XCJcclxuICAgICAgICAqbmdJZj1cImNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHQgPT0gaXRlbS5rZXlcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpdGVtLnZhbHVlXCI+PC9zcGFuPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWFyZ2luUmlnaHQtMzAgbGVnZW5kLXN0eWxlIGZvbnQtc2l6ZS0yXCIgKm5nSWY9XCJjaGFydERhdGEubWV0YURhdGEuZGVmYXVsdF9kZXB0XCI+XHJcbiAgICAgIERlZmF1bHQgRGVwdDoge3sgY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdCB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hhcnREYXRhLm1ldGFEYXRhLmNvbG9ycyB8IGtleXZhbHVlIDoga2VlcE9yZGVyXCI+PHNwYW4gKm5nSWY9XCJcclxuICAgICAgICAgIGl0ZW0ua2V5ICE9IGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHQgJiZcclxuICAgICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHRcclxuICAgICAgICBcIiBjbGFzcz1cImxlZ2VuZHMtbGF0ZXN0XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS52YWx1ZVwiPjwvc3Bhbj48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1zdHlsZSBmb250LXNpemUtMlwiICpuZ0lmPVwiaXNMZWdlbmRWaXNpYmxlKCkgJiYgY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdFwiPkNyb3NzIFRyYWluXHJcbiAgICAgIERlcHQ8L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwibGVnZW5kLWxhdGVzdC1ob2xkZXIgbGVnZW5kLXdpZHRoXCJcclxuICAgIFtuZ0NsYXNzXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS5jb2xvckxlZ2VuZFZpc2libGVPblRvcExlZnQgPyAnJyA6ICdpbnZpc2libGUnXCJcclxuICAgICpuZ0lmPVwiY2hhcnREYXRhLmRhdGEgJiYgIWNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHRcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwibGliLWRpc3BsYXktZmxleCBsaWItYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hhcnREYXRhLm1ldGFEYXRhLmNvbG9ycyB8IGtleXZhbHVlIDoga2VlcE9yZGVyXCI+PHNwYW4gY2xhc3M9XCJsZWdlbmRzLWxhdGVzdFwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS52YWx1ZVwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXJnaW5SaWdodC0yMCBsZWdlbmQtc3R5bGUgZm9udC1zaXplLTEgbGliLXdoaXRlLXNwYWNlLW5vd3JhcFwiPlxyXG4gICAgICAgIHt7IGl0ZW0ua2V5IH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXNwbGF5LWZsZXhcIj5cclxuICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJcclxuICAgICAgICBjaGFydERhdGEuZHJvcGRvd25EYXRhMSAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoICYmXHJcbiAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmJyZWFkY3J1bWJMZW5ndGggPT0gMVxyXG4gICAgICBcIj5cclxuICAgICAgPGxpYi1kcm9wZG93biBbZHJvcGRvd25EYXRhXT1cImNoYXJ0RGF0YS5kcm9wZG93bkRhdGExXCIgW2lzRHJvcGRvd25PcGVuXT1cInRoaXMuaXNERDFPcGVuXCJcclxuICAgICAgICAoZGRDbGlja2VkKT1cImhhbmRsZUREMUNsaWNrKClcIiAoc2VsZWN0ZWRGcm9tRHJvcGRvd24pPVwiaGFuZGxlQ29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uKCRldmVudClcIj48L2xpYi1kcm9wZG93bj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgY2hhcnREYXRhLmRyb3Bkb3duRGF0YTIgJiZcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEuYnJlYWRjcnVtYkxlbmd0aCAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoID09IDFcclxuICAgICAgXCI+XHJcbiAgICAgIDxsaWItZHJvcGRvd24gW2Ryb3Bkb3duRGF0YV09XCJjaGFydERhdGEuZHJvcGRvd25EYXRhMlwiIFtpc0Ryb3Bkb3duT3Blbl09XCJ0aGlzLmlzREQyT3BlblwiXHJcbiAgICAgICAgKGRkQ2xpY2tlZCk9XCJoYW5kbGVERDJDbGljaygpXCIgKHNlbGVjdGVkRnJvbURyb3Bkb3duKT1cImhhbmRsZUNvbXBhcmVCeUZpbHRlclNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICBbaXNDaGVja2JveFZpc2libGVdPVwiY2hhcnREYXRhLm1ldGFEYXRhLmlzQ2hlY2tib3hWaXNpYmxlXCJcclxuICAgICAgICBbZHJvcGRvd25IZWFkZXJOYW1lXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS5kcm9wZG93bkhlYWRlck5hbWVcIj48L2xpYi1kcm9wZG93bj5cclxuICAgIDwvc3Bhbj4gLS0+XHJcbiAgICA8c3BhbiBjbGFzcz1cInpvb21JY29ucy1ob2xkZXJcIiAqbmdJZj1cImNoYXJ0RGF0YS5kYXRhICYmIGNoYXJ0RGF0YS5kYXRhLmxlbmd0aCA+IDhcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ6b29tSWNvbnNcIiB0aXRsZT1cIlpvb20gSW5cIiBbbmdDbGFzc109XCIhaXNab29tZWRPdXQgPyAnem9vbS1hY3RpdmUnIDogJ3pvb20taW5hY3RpdmUnXCJcclxuICAgICAgICAoY2xpY2spPVwiaXNab29tT3V0U2VsZWN0ZWQoZmFsc2UsICRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaC1wbHVzXCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiem9vbUljb25zXCIgdGl0bGU9XCJab29tIE91dFwiIFtuZ0NsYXNzXT1cImlzWm9vbWVkT3V0ID8gJ3pvb20tYWN0aXZlJyA6ICd6b29tLWluYWN0aXZlJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImlzWm9vbU91dFNlbGVjdGVkKHRydWUsICRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaC1taW51c1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+Il19
|