ngx-st-sap-installed-instruments 17.0.8 → 17.0.9

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.
@@ -12,12 +12,13 @@ import * as i2 from "../../../services/sap-installed-instruments.service";
12
12
  import * as i3 from "@angular/common";
13
13
  import * as i4 from "@angular/material/button";
14
14
  import * as i5 from "@angular/material/menu";
15
- import * as i6 from "@angular/material/table";
16
- import * as i7 from "@angular/material/paginator";
17
- import * as i8 from "@angular/material/checkbox";
18
- import * as i9 from "@angular/material/sort";
19
- import * as i10 from "@ngx-translate/core";
20
- import * as i11 from "ngx-st-date-format";
15
+ import * as i6 from "@angular/material/icon";
16
+ import * as i7 from "@angular/material/table";
17
+ import * as i8 from "@angular/material/paginator";
18
+ import * as i9 from "@angular/material/checkbox";
19
+ import * as i10 from "@angular/material/sort";
20
+ import * as i11 from "@ngx-translate/core";
21
+ import * as i12 from "ngx-st-date-format";
21
22
  export class SapInstalledInstrumentListTableComponent extends StSubscribeDestroyComponent {
22
23
  set tableData(data) {
23
24
  this.dataSource.data = data;
@@ -115,11 +116,11 @@ export class SapInstalledInstrumentListTableComponent extends StSubscribeDestroy
115
116
  };
116
117
  }
117
118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SapInstalledInstrumentListTableComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.SapInstalledInstrumentsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SapInstalledInstrumentListTableComponent, selector: "app-sap-installed-instrument-list-table", inputs: { tableData: "tableData", useMapButton: "useMapButton" }, outputs: { sortChanged: "sortChanged" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end show-on-map-actions\" *ngIf=\"useMapButton\">\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\">\r\n Selected: {{ showOnMapSelection.selected.length }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (\r\n instrument of showOnMapSelection.selected;\r\n track instrument.equipmentCardNo\r\n ) {\r\n <button mat-menu-item>{{ instrument.equipmentCardNo }}</button>\r\n }\r\n </mat-menu>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"redirectToShowOnMap()\"\r\n [disabled]=\"showOnMapSelection.selected.length === 0\"\r\n >\r\n Show On Map\r\n </button>\r\n</div>\r\n\r\n<table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n style=\"width: 100%\"\r\n class=\"no-hover\"\r\n matSort\r\n>\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of tableColumns\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n @if (column !== 'selectToMap') {\r\n {{ mapTableColumns[column] | translate }}\r\n } @else {}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (column === 'selectToMap') {\r\n <mat-checkbox\r\n [checked]=\"showOnMapSelection.isSelected(element)\"\r\n (click)=\"changeRowSelection($event, element)\"\r\n [disabled]=\"!element.sfId\"\r\n ></mat-checkbox>\r\n } @else if (column === 'installationDate') {\r\n {{ element[column] | stDateFormatPipe }}\r\n } @else {\r\n {{ element[column] }}\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n</table>\r\n<mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n [showFirstLastButtons]=\"true\"\r\n></mat-paginator>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%;box-shadow:none}table th.mat-mdc-header-cell,table td.mat-mdc-cell,table td.mat-mdc-footer-cell{padding:0}table th.mat-mdc-header-cell:first-of-type,table td.mat-mdc-cell:first-of-type,table td.mat-mdc-footer-cell:first-of-type{padding-left:12px}table th.mat-mdc-header-cell:last-of-type,table td.mat-mdc-cell:last-of-type,table td.mat-mdc-footer-cell:last-of-type{padding-right:12px}table::ng-deep thead tr{background-color:#fff9c4;height:40px!important}table::ng-deep thead tr th{border-color:#fdd835;color:#0000008a;font-size:12px}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr.active td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr:hover{background-color:#a5d6a7!important}table::ng-deep tbody>tr:hover td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit!important}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent!important}table.no-hover::ng-deep tbody tr.active td{border-bottom-color:#0000001f!important}table.no-hover::ng-deep tbody tr:hover{background-color:transparent!important}table.no-hover::ng-deep tbody tr:hover td{border-bottom-color:#0000001f!important}table.admin-table::ng-deep .actions-cell{width:100px}.show-on-map-actions{justify-content:end;margin-bottom:5px;margin-top:-45px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i7.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.DateFormatPipe, name: "stDateFormatPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SapInstalledInstrumentListTableComponent, selector: "app-sap-installed-instrument-list-table", inputs: { tableData: "tableData", useMapButton: "useMapButton" }, outputs: { sortChanged: "sortChanged" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end show-on-map-actions\" *ngIf=\"useMapButton\">\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\">\r\n Selected: {{ showOnMapSelection.selected.length }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (\r\n instrument of showOnMapSelection.selected;\r\n track instrument.instrumentNo\r\n ) {\r\n <button mat-menu-item>{{ instrument.instrumentNo }}</button>\r\n <div mat-menu-item (click)=\"showOnMapSelection.deselect(instrument)\">\r\n {{ instrument.instrumentNo }}\r\n <mat-icon\r\n class=\"material-icons\"\r\n style=\"font-size: 20px; width: 20px; height: 20px\"\r\n >delete</mat-icon\r\n >\r\n </div>\r\n }\r\n </mat-menu>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"redirectToShowOnMap()\"\r\n [disabled]=\"showOnMapSelection.selected.length === 0\"\r\n >\r\n Show On Map\r\n </button>\r\n</div>\r\n\r\n<table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n style=\"width: 100%\"\r\n class=\"no-hover\"\r\n matSort\r\n>\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of tableColumns\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n @if (column !== 'selectToMap') {\r\n {{ mapTableColumns[column] | translate }}\r\n } @else {}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (column === 'selectToMap') {\r\n <mat-checkbox\r\n color=\"primary\"\r\n [checked]=\"showOnMapSelection.isSelected(element)\"\r\n (click)=\"changeRowSelection($event, element)\"\r\n [disabled]=\"!element.sfId\"\r\n ></mat-checkbox>\r\n } @else if (column === 'installationDate') {\r\n {{ element[column] | stDateFormatPipe }}\r\n } @else {\r\n {{ element[column] }}\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n</table>\r\n<mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n [showFirstLastButtons]=\"true\"\r\n></mat-paginator>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%;box-shadow:none}table th.mat-mdc-header-cell,table td.mat-mdc-cell,table td.mat-mdc-footer-cell{padding:0}table th.mat-mdc-header-cell:first-of-type,table td.mat-mdc-cell:first-of-type,table td.mat-mdc-footer-cell:first-of-type{padding-left:12px}table th.mat-mdc-header-cell:last-of-type,table td.mat-mdc-cell:last-of-type,table td.mat-mdc-footer-cell:last-of-type{padding-right:12px}table::ng-deep thead tr{background-color:#fff9c4;height:40px!important}table::ng-deep thead tr th{border-color:#fdd835;color:#0000008a;font-size:12px}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr.active td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr:hover{background-color:#a5d6a7!important}table::ng-deep tbody>tr:hover td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit!important}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent!important}table.no-hover::ng-deep tbody tr.active td{border-bottom-color:#0000001f!important}table.no-hover::ng-deep tbody tr:hover{background-color:transparent!important}table.no-hover::ng-deep tbody tr:hover td{border-bottom-color:#0000001f!important}table.admin-table::ng-deep .actions-cell{width:100px}.show-on-map-actions{justify-content:end;margin-bottom:5px;margin-top:-45px;gap:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i10.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i10.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.DateFormatPipe, name: "stDateFormatPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
120
  }
120
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SapInstalledInstrumentListTableComponent, decorators: [{
121
122
  type: Component,
122
- args: [{ selector: 'app-sap-installed-instrument-list-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row justify-content-end show-on-map-actions\" *ngIf=\"useMapButton\">\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\">\r\n Selected: {{ showOnMapSelection.selected.length }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (\r\n instrument of showOnMapSelection.selected;\r\n track instrument.equipmentCardNo\r\n ) {\r\n <button mat-menu-item>{{ instrument.equipmentCardNo }}</button>\r\n }\r\n </mat-menu>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"redirectToShowOnMap()\"\r\n [disabled]=\"showOnMapSelection.selected.length === 0\"\r\n >\r\n Show On Map\r\n </button>\r\n</div>\r\n\r\n<table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n style=\"width: 100%\"\r\n class=\"no-hover\"\r\n matSort\r\n>\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of tableColumns\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n @if (column !== 'selectToMap') {\r\n {{ mapTableColumns[column] | translate }}\r\n } @else {}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (column === 'selectToMap') {\r\n <mat-checkbox\r\n [checked]=\"showOnMapSelection.isSelected(element)\"\r\n (click)=\"changeRowSelection($event, element)\"\r\n [disabled]=\"!element.sfId\"\r\n ></mat-checkbox>\r\n } @else if (column === 'installationDate') {\r\n {{ element[column] | stDateFormatPipe }}\r\n } @else {\r\n {{ element[column] }}\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n</table>\r\n<mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n [showFirstLastButtons]=\"true\"\r\n></mat-paginator>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%;box-shadow:none}table th.mat-mdc-header-cell,table td.mat-mdc-cell,table td.mat-mdc-footer-cell{padding:0}table th.mat-mdc-header-cell:first-of-type,table td.mat-mdc-cell:first-of-type,table td.mat-mdc-footer-cell:first-of-type{padding-left:12px}table th.mat-mdc-header-cell:last-of-type,table td.mat-mdc-cell:last-of-type,table td.mat-mdc-footer-cell:last-of-type{padding-right:12px}table::ng-deep thead tr{background-color:#fff9c4;height:40px!important}table::ng-deep thead tr th{border-color:#fdd835;color:#0000008a;font-size:12px}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr.active td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr:hover{background-color:#a5d6a7!important}table::ng-deep tbody>tr:hover td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit!important}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent!important}table.no-hover::ng-deep tbody tr.active td{border-bottom-color:#0000001f!important}table.no-hover::ng-deep tbody tr:hover{background-color:transparent!important}table.no-hover::ng-deep tbody tr:hover td{border-bottom-color:#0000001f!important}table.admin-table::ng-deep .actions-cell{width:100px}.show-on-map-actions{justify-content:end;margin-bottom:5px;margin-top:-45px}\n"] }]
123
+ args: [{ selector: 'app-sap-installed-instrument-list-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row justify-content-end show-on-map-actions\" *ngIf=\"useMapButton\">\r\n <button mat-raised-button [matMenuTriggerFor]=\"menu\">\r\n Selected: {{ showOnMapSelection.selected.length }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (\r\n instrument of showOnMapSelection.selected;\r\n track instrument.instrumentNo\r\n ) {\r\n <button mat-menu-item>{{ instrument.instrumentNo }}</button>\r\n <div mat-menu-item (click)=\"showOnMapSelection.deselect(instrument)\">\r\n {{ instrument.instrumentNo }}\r\n <mat-icon\r\n class=\"material-icons\"\r\n style=\"font-size: 20px; width: 20px; height: 20px\"\r\n >delete</mat-icon\r\n >\r\n </div>\r\n }\r\n </mat-menu>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"redirectToShowOnMap()\"\r\n [disabled]=\"showOnMapSelection.selected.length === 0\"\r\n >\r\n Show On Map\r\n </button>\r\n</div>\r\n\r\n<table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n style=\"width: 100%\"\r\n class=\"no-hover\"\r\n matSort\r\n>\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of tableColumns\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n @if (column !== 'selectToMap') {\r\n {{ mapTableColumns[column] | translate }}\r\n } @else {}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (column === 'selectToMap') {\r\n <mat-checkbox\r\n color=\"primary\"\r\n [checked]=\"showOnMapSelection.isSelected(element)\"\r\n (click)=\"changeRowSelection($event, element)\"\r\n [disabled]=\"!element.sfId\"\r\n ></mat-checkbox>\r\n } @else if (column === 'installationDate') {\r\n {{ element[column] | stDateFormatPipe }}\r\n } @else {\r\n {{ element[column] }}\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n</table>\r\n<mat-paginator\r\n [pageSizeOptions]=\"[10, 20]\"\r\n [showFirstLastButtons]=\"true\"\r\n></mat-paginator>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%;box-shadow:none}table th.mat-mdc-header-cell,table td.mat-mdc-cell,table td.mat-mdc-footer-cell{padding:0}table th.mat-mdc-header-cell:first-of-type,table td.mat-mdc-cell:first-of-type,table td.mat-mdc-footer-cell:first-of-type{padding-left:12px}table th.mat-mdc-header-cell:last-of-type,table td.mat-mdc-cell:last-of-type,table td.mat-mdc-footer-cell:last-of-type{padding-right:12px}table::ng-deep thead tr{background-color:#fff9c4;height:40px!important}table::ng-deep thead tr th{border-color:#fdd835;color:#0000008a;font-size:12px}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr.active td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr:hover{background-color:#a5d6a7!important}table::ng-deep tbody>tr:hover td{border-bottom-color:#81c784!important}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit!important}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent!important}table.no-hover::ng-deep tbody tr.active td{border-bottom-color:#0000001f!important}table.no-hover::ng-deep tbody tr:hover{background-color:transparent!important}table.no-hover::ng-deep tbody tr:hover td{border-bottom-color:#0000001f!important}table.admin-table::ng-deep .actions-cell{width:100px}.show-on-map-actions{justify-content:end;margin-bottom:5px;margin-top:-45px;gap:5px}\n"] }]
123
124
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SapInstalledInstrumentsService }, { type: i0.ChangeDetectorRef }], propDecorators: { paginator: [{
124
125
  type: ViewChild,
125
126
  args: [MatPaginator, { static: true }]
@@ -133,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
133
134
  }], sortChanged: [{
134
135
  type: Output
135
136
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0L3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFsRCxNQUFNLE9BQU8sd0NBQ1gsU0FBUSwyQkFBMkI7SUFNbkMsSUFDSSxTQUFTLENBQUMsSUFBdUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUE4QkQsWUFDVSxNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsdUJBQXVELEVBQ3ZELGlCQUFvQztRQUU1QyxLQUFLLEVBQUUsQ0FBQztRQUxBLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFnQztRQUN2RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBL0I5QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkMsZUFBVSxHQUNSLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUUzQixpQkFBWSxHQUEyQztZQUNyRCxjQUFjO1lBQ2QsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxZQUFZO1lBQ1oscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixNQUFNO1lBQ04sYUFBYTtZQUNiLFNBQVM7WUFDVCxrQkFBa0I7WUFDbEIsUUFBUTtTQUNULENBQUM7UUFHRix1QkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FDckMsSUFBSSxDQUNMLENBQUM7SUFTRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQzFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FDbkMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQy9DLENBQUM7UUFFRixJQUNFLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFDckQsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNiLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztnQkFDNUQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBb0M7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVSxFQUFFLEdBQW9DO1FBQ2pFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7YUFDNUIsR0FBRyxDQUNGLFdBQVcsRUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUTthQUM3QixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDYjthQUNBLEdBQUcsQ0FBQyxjQUFjLEVBQUUsb0JBQW9CLENBQUM7YUFDekMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQzthQUN2QyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQzthQUNoQixHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sb0JBQW9CLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUNoRSxRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHO1lBQ3JCLFlBQVksRUFBRSwwQ0FBMEM7WUFDeEQscUJBQXFCLEVBQ25CLG1EQUFtRDtZQUNyRCxZQUFZLEVBQUUsMENBQTBDO1lBQ3hELFVBQVUsRUFBRSx1Q0FBdUM7WUFDbkQsbUJBQW1CLEVBQUUseUNBQXlDO1lBQzlELFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELE9BQU8sRUFBRSxxQ0FBcUM7WUFDOUMsTUFBTSxFQUFFLG9DQUFvQztZQUM1QyxnQkFBZ0IsRUFBRSw4Q0FBOEM7WUFDaEUsV0FBVyxFQUFFLEVBQUU7U0FDaEIsQ0FBQztJQUNKLENBQUM7K0dBM0lVLHdDQUF3QzttR0FBeEMsd0NBQXdDLHFPQUl4QyxZQUFZLHFGQUNaLE9BQU8sdUVDbENwQix5NERBNkRBOzs0RkRoQ2Esd0NBQXdDO2tCQU5wRCxTQUFTOytCQUNFLHlDQUF5QyxtQkFHbEMsdUJBQXVCLENBQUMsTUFBTTtxTEFNSixTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3JCLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTztnQkFHZCxTQUFTO3NCQURaLEtBQUs7Z0JBTU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdFN1YnNjcmliZURlc3Ryb3lDb21wb25lbnQgfSBmcm9tICduZ3gtc3QtYmFzZS1mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luc3RhbGxlZC1pbnN0cnVtZW50LXRhYmxlLWNvbHVtbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0VGFibGVDb21wb25lbnRcclxuICBleHRlbmRzIFN0U3Vic2NyaWJlRGVzdHJveUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0YWJsZURhdGEoZGF0YTogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZU1hcEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzb3J0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcclxuXHJcbiAgZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWw+ID1cclxuICAgIG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuXHJcbiAgdGFibGVDb2x1bW5zOiBJbnN0YWxsZWRJbnN0cnVtZW50VGFibGVDb2x1bW5zTW9kZWxbXSA9IFtcclxuICAgICdpbnN0cnVtZW50Tm8nLFxyXG4gICAgJ2luc3RydW1lbnREZXNjcmlwdGlvbicsXHJcbiAgICAnc2VyaWFsTnVtYmVyJyxcclxuICAgICdjdXN0b21lck5vJyxcclxuICAgICdidXNpbmVzc1BhcnRuZXJOYW1lJyxcclxuICAgICdlbmRVc2VyTmFtZScsXHJcbiAgICAnY2l0eScsXHJcbiAgICAndGVycml0b3J5SWQnLFxyXG4gICAgJ2NvdW50cnknLFxyXG4gICAgJ2luc3RhbGxhdGlvbkRhdGUnLFxyXG4gICAgJ3N0YXR1cycsXHJcbiAgXTtcclxuICBtYXBUYWJsZUNvbHVtbnM6IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgc2hvd09uTWFwU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWw+KFxyXG4gICAgdHJ1ZVxyXG4gICk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzYXBJbnN0YWxsZWRJbnN0cnVtZW50czogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VGFibGVDb2x1bW5zKCk7XHJcbiAgICBpZiAoIXRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudHMudGVycml0b3J5RmlsdGVyKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAgIGNvbHVtbiA9PiBjb2x1bW4gIT09ICd0ZXJyaXRvcnlJZCdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG5cclxuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMubmdEZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdChyZXMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcXVlcnlQYXJhbXNLZXlzID0gT2JqZWN0LmtleXMoXHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgfHwge31cclxuICAgICk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBxdWVyeVBhcmFtc0tleXMubGVuZ3RoID4gMCAmJlxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydhY3RpdmUnXSAmJlxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydkaXJlY3Rpb24nXVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc29ydC5zb3J0KHtcclxuICAgICAgICBpZDogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snYWN0aXZlJ10sXHJcbiAgICAgICAgc3RhcnQ6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2RpcmVjdGlvbiddLFxyXG4gICAgICAgIGRpc2FibGVDbGVhcjogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcm93Q2xpY2tlZChyb3c6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGV0YWlscycsIHJvdy5lcXVpcG1lbnRDYXJkTm9dLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJvd1NlbGVjdGlvbihldmVudDogYW55LCByb3c6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSkge1xyXG4gICAgICB0aGlzLnNob3dPbk1hcFNlbGVjdGlvbi5kZXNlbGVjdChyb3cpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0KHJvdyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9TaG93T25NYXAoKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXHJcbiAgICAgICAgJ3JlY29yZElkcycsXHJcbiAgICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0ZWRcclxuICAgICAgICAgIC5tYXAoaW5zdHJ1bWVudCA9PiBpbnN0cnVtZW50LnNmSWQpXHJcbiAgICAgICAgICAuam9pbignLCcpXHJcbiAgICAgIClcclxuICAgICAgLnNldCgnYmFzZU9iamVjdElkJywgJ2Ewa1FvMDAwMDAybk5hRElBVScpXHJcbiAgICAgIC5zZXQoJ3Rvb2x0aXBGaWVsZCcsICdJbnRydW1lbnROYW1lX19jJylcclxuICAgICAgLnNldCgnem9vbScsICc4JylcclxuICAgICAgLnNldCgnY29sb3InLCAnIzY2RkYwMCcpO1xyXG5cclxuICAgIHdpbmRvdy5vcGVuKFxyXG4gICAgICBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9hcGV4L21hcHNfX01hcHM/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxyXG4gICAgICAnX2JsYW5rJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGFibGVDb2x1bW5zKCkge1xyXG4gICAgaWYgKHRoaXMudXNlTWFwQnV0dG9uKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zLnVuc2hpZnQoJ3NlbGVjdFRvTWFwJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tYXBUYWJsZUNvbHVtbnMgPSB7XHJcbiAgICAgIGluc3RydW1lbnRObzogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50Tm8nLFxyXG4gICAgICBpbnN0cnVtZW50RGVzY3JpcHRpb246XHJcbiAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50RGVzY3JpcHRpb24nLFxyXG4gICAgICBzZXJpYWxOdW1iZXI6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc2VyaWFsTnVtYmVyJyxcclxuICAgICAgY3VzdG9tZXJObzogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5hY2NvdW50Tm8nLFxyXG4gICAgICBidXNpbmVzc1BhcnRuZXJOYW1lOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmFjY291bnROYW1lJyxcclxuICAgICAgZW5kVXNlck5hbWU6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuZW5kQ3VzdG9tZXInLFxyXG4gICAgICBjaXR5OiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmNpdHknLFxyXG4gICAgICB0ZXJyaXRvcnlJZDogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC50ZXJyaXRvcnknLFxyXG4gICAgICBjb3VudHJ5OiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmNvdW50cnknLFxyXG4gICAgICBzdGF0dXM6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc3RhdHVzJyxcclxuICAgICAgaW5zdGFsbGF0aW9uRGF0ZTogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0YWxsYXRpb25EYXRlJyxcclxuICAgICAgc2VsZWN0VG9NYXA6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIHNob3ctb24tbWFwLWFjdGlvbnNcIiAqbmdJZj1cInVzZU1hcEJ1dHRvblwiPlxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgIFNlbGVjdGVkOiB7eyBzaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgQGZvciAoXHJcbiAgICAgIGluc3RydW1lbnQgb2Ygc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkO1xyXG4gICAgICB0cmFjayBpbnN0cnVtZW50LmVxdWlwbWVudENhcmROb1xyXG4gICAgKSB7XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT57eyBpbnN0cnVtZW50LmVxdWlwbWVudENhcmRObyB9fTwvYnV0dG9uPlxyXG4gICAgfVxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAoY2xpY2spPVwicmVkaXJlY3RUb1Nob3dPbk1hcCgpXCJcclxuICAgIFtkaXNhYmxlZF09XCJzaG93T25NYXBTZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSAwXCJcclxuICA+XHJcbiAgICBTaG93IE9uIE1hcFxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjx0YWJsZVxyXG4gIG1hdC10YWJsZVxyXG4gIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gIGNsYXNzPVwibm8taG92ZXJcIlxyXG4gIG1hdFNvcnRcclxuPlxyXG4gIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW5cIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uc1wiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgIEBpZiAoY29sdW1uICE9PSAnc2VsZWN0VG9NYXAnKSB7XHJcbiAgICAgICAge3sgbWFwVGFibGVDb2x1bW5zW2NvbHVtbl0gfCB0cmFuc2xhdGUgfX1cclxuICAgICAgfSBAZWxzZSB7fVxyXG4gICAgPC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgIEBpZiAoY29sdW1uID09PSAnc2VsZWN0VG9NYXAnKSB7XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2hvd09uTWFwU2VsZWN0aW9uLmlzU2VsZWN0ZWQoZWxlbWVudClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVJvd1NlbGVjdGlvbigkZXZlbnQsIGVsZW1lbnQpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWxlbWVudC5zZklkXCJcclxuICAgICAgICA+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIH0gQGVsc2UgaWYgKGNvbHVtbiA9PT0gJ2luc3RhbGxhdGlvbkRhdGUnKSB7XHJcbiAgICAgICAge3sgZWxlbWVudFtjb2x1bW5dIHwgc3REYXRlRm9ybWF0UGlwZSB9fVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICB7eyBlbGVtZW50W2NvbHVtbl0gfX1cclxuICAgICAgfVxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJ0YWJsZUNvbHVtbnNcIj48L3RyPlxyXG4gIDx0clxyXG4gICAgbWF0LXJvd1xyXG4gICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IHRhYmxlQ29sdW1uc1wiXHJcbiAgICAoY2xpY2spPVwicm93Q2xpY2tlZChyb3cpXCJcclxuICA+PC90cj5cclxuPC90YWJsZT5cclxuPG1hdC1wYWdpbmF0b3JcclxuICBbcGFnZVNpemVPcHRpb25zXT1cIlsxMCwgMjBdXCJcclxuICBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXHJcbj48L21hdC1wYWdpbmF0b3I+XHJcbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0L3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVB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QUFDLGVBQWUsR0FBRztZQUNyQixZQUFZLEVBQUUsMENBQTBDO1lBQ3hELHFCQUFxQixFQUNuQixtREFBbUQ7WUFDckQsWUFBWSxFQUFFLDBDQUEwQztZQUN4RCxVQUFVLEVBQUUsdUNBQXVDO1lBQ25ELG1CQUFtQixFQUFFLHlDQUF5QztZQUM5RCxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELElBQUksRUFBRSxrQ0FBa0M7WUFDeEMsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxPQUFPLEVBQUUscUNBQXFDO1lBQzlDLE1BQU0sRUFBRSxvQ0FBb0M7WUFDNUMsZ0JBQWdCLEVBQUUsOENBQThDO1lBQ2hFLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7SUFDSixDQUFDOytHQTNJVSx3Q0FBd0M7bUdBQXhDLHdDQUF3QyxxT0FJeEMsWUFBWSxxRkFDWixPQUFPLHVFQ2xDcEIscXRFQXNFQTs7NEZEekNhLHdDQUF3QztrQkFOcEQsU0FBUzsrQkFDRSx5Q0FBeUMsbUJBR2xDLHVCQUF1QixDQUFDLE1BQU07cUxBTUosU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNyQixJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBR2QsU0FBUztzQkFEWixLQUFLO2dCQU1OLFlBQVk7c0JBRFgsS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RTdWJzY3JpYmVEZXN0cm95Q29tcG9uZW50IH0gZnJvbSAnbmd4LXN0LWJhc2UtZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IEluc3RhbGxlZEluc3RydW1lbnRUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbnN0YWxsZWQtaW5zdHJ1bWVudC10YWJsZS1jb2x1bW5zLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdFRhYmxlQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBTdFN1YnNjcmliZURlc3Ryb3lDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdGFibGVEYXRhKGRhdGE6IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWxbXSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICB1c2VNYXBCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc29ydENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KCk7XHJcblxyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsPiA9XHJcbiAgICBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XHJcblxyXG4gIHRhYmxlQ29sdW1uczogSW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01vZGVsW10gPSBbXHJcbiAgICAnaW5zdHJ1bWVudE5vJyxcclxuICAgICdpbnN0cnVtZW50RGVzY3JpcHRpb24nLFxyXG4gICAgJ3NlcmlhbE51bWJlcicsXHJcbiAgICAnY3VzdG9tZXJObycsXHJcbiAgICAnYnVzaW5lc3NQYXJ0bmVyTmFtZScsXHJcbiAgICAnZW5kVXNlck5hbWUnLFxyXG4gICAgJ2NpdHknLFxyXG4gICAgJ3RlcnJpdG9yeUlkJyxcclxuICAgICdjb3VudHJ5JyxcclxuICAgICdpbnN0YWxsYXRpb25EYXRlJyxcclxuICAgICdzdGF0dXMnLFxyXG4gIF07XHJcbiAgbWFwVGFibGVDb2x1bW5zOiB7IFtmaWVsZDogc3RyaW5nXTogc3RyaW5nIH07XHJcblxyXG4gIHNob3dPbk1hcFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsPihcclxuICAgIHRydWVcclxuICApO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc2FwSW5zdGFsbGVkSW5zdHJ1bWVudHM6IFNhcEluc3RhbGxlZEluc3RydW1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFRhYmxlQ29sdW1ucygpO1xyXG4gICAgaWYgKCF0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRzLnRlcnJpdG9yeUZpbHRlcikge1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMudGFibGVDb2x1bW5zLmZpbHRlcihcclxuICAgICAgICBjb2x1bW4gPT4gY29sdW1uICE9PSAndGVycml0b3J5SWQnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuXHJcbiAgICB0aGlzLnNvcnQuc29ydENoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLm5nRGVzdHJveWVkJCkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNvcnRDaGFuZ2VkLmVtaXQocmVzKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zS2V5cyA9IE9iamVjdC5rZXlzKFxyXG4gICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zIHx8IHt9XHJcbiAgICApO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgcXVlcnlQYXJhbXNLZXlzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snYWN0aXZlJ10gJiZcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snZGlyZWN0aW9uJ11cclxuICAgICkge1xyXG4gICAgICB0aGlzLnNvcnQuc29ydCh7XHJcbiAgICAgICAgaWQ6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2FjdGl2ZSddLFxyXG4gICAgICAgIHN0YXJ0OiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydkaXJlY3Rpb24nXSxcclxuICAgICAgICBkaXNhYmxlQ2xlYXI6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd0NsaWNrZWQocm93OiBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2RldGFpbHMnLCByb3cuZXF1aXBtZW50Q2FyZE5vXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VSb3dTZWxlY3Rpb24oZXZlbnQ6IGFueSwgcm93OiBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsKSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLnNob3dPbk1hcFNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdykpIHtcclxuICAgICAgdGhpcy5zaG93T25NYXBTZWxlY3Rpb24uZGVzZWxlY3Qocm93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdChyb3cpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFRvU2hvd09uTWFwKCkge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFxyXG4gICAgICAgICdyZWNvcmRJZHMnLFxyXG4gICAgICAgIHRoaXMuc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkXHJcbiAgICAgICAgICAubWFwKGluc3RydW1lbnQgPT4gaW5zdHJ1bWVudC5zZklkKVxyXG4gICAgICAgICAgLmpvaW4oJywnKVxyXG4gICAgICApXHJcbiAgICAgIC5zZXQoJ2Jhc2VPYmplY3RJZCcsICdhMGtRbzAwMDAwMm5OYURJQVUnKVxyXG4gICAgICAuc2V0KCd0b29sdGlwRmllbGQnLCAnSW50cnVtZW50TmFtZV9fYycpXHJcbiAgICAgIC5zZXQoJ3pvb20nLCAnOCcpXHJcbiAgICAgIC5zZXQoJ2NvbG9yJywgJyM2NkZGMDAnKTtcclxuXHJcbiAgICB3aW5kb3cub3BlbihcclxuICAgICAgYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYXBleC9tYXBzX19NYXBzPyR7cGFyYW1zLnRvU3RyaW5nKCl9YCxcclxuICAgICAgJ19ibGFuaydcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRhYmxlQ29sdW1ucygpIHtcclxuICAgIGlmICh0aGlzLnVzZU1hcEJ1dHRvbikge1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucy51bnNoaWZ0KCdzZWxlY3RUb01hcCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWFwVGFibGVDb2x1bW5zID0ge1xyXG4gICAgICBpbnN0cnVtZW50Tm86ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaW5zdHJ1bWVudE5vJyxcclxuICAgICAgaW5zdHJ1bWVudERlc2NyaXB0aW9uOlxyXG4gICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaW5zdHJ1bWVudERlc2NyaXB0aW9uJyxcclxuICAgICAgc2VyaWFsTnVtYmVyOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnNlcmlhbE51bWJlcicsXHJcbiAgICAgIGN1c3RvbWVyTm86ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYWNjb3VudE5vJyxcclxuICAgICAgYnVzaW5lc3NQYXJ0bmVyTmFtZTogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5hY2NvdW50TmFtZScsXHJcbiAgICAgIGVuZFVzZXJOYW1lOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmVuZEN1c3RvbWVyJyxcclxuICAgICAgY2l0eTogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5jaXR5JyxcclxuICAgICAgdGVycml0b3J5SWQ6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQudGVycml0b3J5JyxcclxuICAgICAgY291bnRyeTogJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5jb3VudHJ5JyxcclxuICAgICAgc3RhdHVzOiAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnN0YXR1cycsXHJcbiAgICAgIGluc3RhbGxhdGlvbkRhdGU6ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaW5zdGFsbGF0aW9uRGF0ZScsXHJcbiAgICAgIHNlbGVjdFRvTWFwOiAnJyxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWVuZCBzaG93LW9uLW1hcC1hY3Rpb25zXCIgKm5nSWY9XCJ1c2VNYXBCdXR0b25cIj5cclxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICBTZWxlY3RlZDoge3sgc2hvd09uTWFwU2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCB9fVxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgIEBmb3IgKFxyXG4gICAgICBpbnN0cnVtZW50IG9mIHNob3dPbk1hcFNlbGVjdGlvbi5zZWxlY3RlZDtcclxuICAgICAgdHJhY2sgaW5zdHJ1bWVudC5pbnN0cnVtZW50Tm9cclxuICAgICkge1xyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+e3sgaW5zdHJ1bWVudC5pbnN0cnVtZW50Tm8gfX08L2J1dHRvbj5cclxuICAgICAgPGRpdiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93T25NYXBTZWxlY3Rpb24uZGVzZWxlY3QoaW5zdHJ1bWVudClcIj5cclxuICAgICAgICB7eyBpbnN0cnVtZW50Lmluc3RydW1lbnRObyB9fVxyXG4gICAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiXHJcbiAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweFwiXHJcbiAgICAgICAgICA+ZGVsZXRlPC9tYXQtaWNvblxyXG4gICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgIChjbGljayk9XCJyZWRpcmVjdFRvU2hvd09uTWFwKClcIlxyXG4gICAgW2Rpc2FibGVkXT1cInNob3dPbk1hcFNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPT09IDBcIlxyXG4gID5cclxuICAgIFNob3cgT24gTWFwXHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPHRhYmxlXHJcbiAgbWF0LXRhYmxlXHJcbiAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgc3R5bGU9XCJ3aWR0aDogMTAwJVwiXHJcbiAgY2xhc3M9XCJuby1ob3ZlclwiXHJcbiAgbWF0U29ydFxyXG4+XHJcbiAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdGFibGVDb2x1bW5zXCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgQGlmIChjb2x1bW4gIT09ICdzZWxlY3RUb01hcCcpIHtcclxuICAgICAgICB7eyBtYXBUYWJsZUNvbHVtbnNbY29sdW1uXSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICB9IEBlbHNlIHt9XHJcbiAgICA8L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgQGlmIChjb2x1bW4gPT09ICdzZWxlY3RUb01hcCcpIHtcclxuICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2hvd09uTWFwU2VsZWN0aW9uLmlzU2VsZWN0ZWQoZWxlbWVudClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVJvd1NlbGVjdGlvbigkZXZlbnQsIGVsZW1lbnQpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWxlbWVudC5zZklkXCJcclxuICAgICAgICA+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIH0gQGVsc2UgaWYgKGNvbHVtbiA9PT0gJ2luc3RhbGxhdGlvbkRhdGUnKSB7XHJcbiAgICAgICAge3sgZWxlbWVudFtjb2x1bW5dIHwgc3REYXRlRm9ybWF0UGlwZSB9fVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICB7eyBlbGVtZW50W2NvbHVtbl0gfX1cclxuICAgICAgfVxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJ0YWJsZUNvbHVtbnNcIj48L3RyPlxyXG4gIDx0clxyXG4gICAgbWF0LXJvd1xyXG4gICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IHRhYmxlQ29sdW1uc1wiXHJcbiAgICAoY2xpY2spPVwicm93Q2xpY2tlZChyb3cpXCJcclxuICA+PC90cj5cclxuPC90YWJsZT5cclxuPG1hdC1wYWdpbmF0b3JcclxuICBbcGFnZVNpemVPcHRpb25zXT1cIlsxMCwgMjBdXCJcclxuICBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXHJcbj48L21hdC1wYWdpbmF0b3I+XHJcbiJdfQ==