@tetacom/ng-components 1.0.101 → 1.0.103
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/assets/icons.svg +7 -5
- package/esm2020/component/table/table-body/table-body.component.mjs +3 -3
- package/fesm2015/tetacom-ng-components.mjs +2 -2
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +2 -2
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
package/assets/icons.svg
CHANGED
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
8
8
|
d="M6 10.7935C5.06351 10.5934 4.24175 10.2591 3.59101 9.8408C2.49764 9.13792 2 8.28703 2 7.5C2 6.71297 2.49764 5.86208 3.59101 5.1592C4.67368 4.46319 6.22975 4 8 4C9.77025 4 11.3263 4.46319 12.409 5.1592C12.4773 5.20313 12.5433 5.24764 12.607 5.29267C13.5626 5.96819 14 6.76216 14 7.5C14 8.04357 13.7626 8.6176 13.2555 9.15229C13.0284 9.39178 12.7472 9.62337 12.409 9.8408C12.2793 9.92417 12.1428 10.0042 12 10.0805V11.1934C12.2384 11.0865 12.4659 10.9703 12.6813 10.8457C12.7729 10.7927 12.8624 10.7382 12.9497 10.682C12.9666 10.6712 12.9833 10.6603 13 10.6493C14.2407 9.83545 15 8.72302 15 7.5C15 6.28352 14.2488 5.17645 13.0199 4.36373C12.9967 4.34839 12.9733 4.33315 12.9497 4.31802C11.6831 3.50373 9.9331 3 8 3C6.0669 3 4.31693 3.50373 3.05025 4.31802C1.77988 5.13469 1 6.26055 1 7.5C1 8.14098 1.20847 8.75067 1.5842 9.30256C1.93688 9.82058 2.43692 10.2877 3.05025 10.682C3.86153 11.2035 4.87107 11.5977 6 11.8137C6.3032 11.8717 6.61502 11.9168 6.93392 11.9481C6.95591 11.9503 6.97794 11.9524 7 11.9544V14L10 11.5L7 9V10.9498C6.65472 10.9148 6.32064 10.862 6 10.7935Z"></path>
|
|
9
9
|
</symbol>
|
|
10
|
-
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
11
|
-
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
12
|
-
d="M7.5 7.5V2.5H8.5V7.5H13.5V8.5H8.5V13.5H7.5V8.5H2.5V7.5H7.5Z"></path>
|
|
10
|
+
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" id="add">
|
|
11
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 7.5V2.5H8.5V7.5H13.5V8.5H8.5V13.5H7.5V8.5H2.5V7.5H7.5Z" />
|
|
13
12
|
</symbol>
|
|
14
13
|
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="addArea">
|
|
15
14
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
@@ -141,7 +140,7 @@
|
|
|
141
140
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
142
141
|
d="M8 2.5C4.96243 2.5 2.5 4.96243 2.5 8C2.5 11.0376 4.96243 13.5 8 13.5C11.0376 13.5 13.5 11.0376 13.5 8C13.5 4.96243 11.0376 2.5 8 2.5ZM1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8ZM7.08154 9.30868L10.4049 6.13822L11.0951 6.86178L7.42639 10.3618C7.23308 10.5462 6.92895 10.5461 6.73581 10.3615L4.90456 8.61148L5.59544 7.88852L7.08154 9.30868Z"></path>
|
|
143
142
|
</symbol>
|
|
144
|
-
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
143
|
+
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="chart">
|
|
145
144
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
146
145
|
d="M3.5 13L3.5 7L4.5 7L4.5 13L3.5 13ZM7.5 13L7.5 3L8.5 3L8.5 13L7.5 13ZM11.5 5L11.5 13L12.5 13L12.5 5L11.5 5Z"></path>
|
|
147
146
|
</symbol>
|
|
@@ -264,6 +263,9 @@
|
|
|
264
263
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 6.5H1V5.5H15V6.5Z"></path>
|
|
265
264
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 10.5H1V9.5H15V10.5Z"></path>
|
|
266
265
|
</symbol>
|
|
266
|
+
<symbol width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" id="layers">
|
|
267
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 6.9409L7.99997 10.4409L1 6.94093V8.05896L7.77637 11.4471L7.99997 11.5589L8.22358 11.4471L15 8.05893V6.9409ZM15 9.9409L7.99997 13.4409L1 9.94093V11.059L7.77637 14.4471L7.99997 14.5589L8.22358 14.4471L15 11.0589V9.9409ZM1.87178 5.45773L1 5.01636V5.01039L1.87038 4.56628L7.77272 1.55456L7.99998 1.4386L8.22723 1.55456L14.1218 4.56237L14.9968 5.0089L14.1208 5.45359L8.2263 8.44578L8.00027 8.56051L7.77413 8.44602L1.87178 5.45773ZM3.20113 5.00991L7.99968 7.43935L12.7922 5.00658L7.99997 2.56126L3.20113 5.00991Z" />
|
|
268
|
+
</symbol>
|
|
267
269
|
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="drop">
|
|
268
270
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
269
271
|
d="M8.00203 2.00195C11.334 5.31097 13 6.96593 13 9.02229C13.0031 10.2971 12.515 11.573 11.5356 12.5456C9.58296 14.4848 6.41717 14.4848 4.46458 12.5456C3.48515 11.573 2.99687 10.2971 3.00002 9.02225L3.00011 9.02225L3.00002 9.02225C3.00001 6.96586 4.66616 5.31093 7.99822 2.00183C7.99865 2.0014 7.99908 2.00097 7.99952 2.00055L8.00006 2C8.00072 2.00065 8.00137 2.0013 8.00203 2.00195ZM8.00006 3.41026C6.67995 4.72627 5.71204 5.71969 5.04304 6.59045C4.27772 7.58658 4.00002 8.30257 4.00002 9.02225V9.02472C3.99751 10.0421 4.38631 11.0586 5.16924 11.8361C6.73187 13.388 9.26826 13.388 10.8309 11.8361C11.6138 11.0586 12.0025 10.0422 12 9.02476L12 9.02229C12 8.30259 11.7223 7.58658 10.957 6.59045C10.288 5.7197 9.32016 4.72627 8.00006 3.41026Z"></path>
|
|
@@ -719,7 +721,7 @@
|
|
|
719
721
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 3H10V6H13V3ZM9 2V7H14V2H9Z"></path>
|
|
720
722
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 10H10V13H13V10ZM9 9V14H14V9H9Z"></path>
|
|
721
723
|
</symbol>
|
|
722
|
-
<symbol width="16" height="16" viewBox="0 0
|
|
724
|
+
<symbol width="16" height="16" viewBox="0 0 15 16" xmlns="http://www.w3.org/2000/svg" id="timePeriod">
|
|
723
725
|
<path
|
|
724
726
|
d="M9.39186 12.3919C8.68138 12.7796 7.86643 13 7 13C4.23858 13 2 10.7614 2 8C2 5.23858 4.23858 3 7 3C7.86643 3 8.68138 3.22038 9.39186 3.60814L10.1237 2.87627C9.21384 2.32035 8.14433 2 7 2C3.68629 2 1 4.68629 1 8C1 11.3137 3.68629 14 7 14C8.14433 14 9.21384 13.6796 10.1237 13.1237L9.39186 12.3919Z"
|
|
725
727
|
/>
|
|
@@ -150,10 +150,10 @@ export class TableBodyComponent {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
TableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TableBodyComponent, deps: [{ token: i1.TableService }, { token: i0.ElementRef }, { token: i2.TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
-
TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ?
|
|
153
|
+
TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 2 : 1\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i6.CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: i7.SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
155
155
|
type: Component,
|
|
156
|
-
args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ?
|
|
156
|
+
args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 2 : 1\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n" }]
|
|
157
157
|
}], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ElementRef }, { type: i2.TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { virtual: [{
|
|
158
158
|
type: Input
|
|
159
159
|
}], activeRow: [{
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
175
175
|
type: HostBinding,
|
|
176
176
|
args: ['class.table-body']
|
|
177
177
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLWJvZHkvdGFibGUtYm9keS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLWJvZHkvdGFibGUtYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVVoRSxNQUFNLE9BQU8sa0JBQWtCO0lBb0Q3QixZQUFvQixJQUFxQixFQUNyQixXQUF1QixFQUN2QixPQUEwQixFQUMxQixJQUF1QjtRQUh2QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXBEbEMsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFRa0IsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFXeEUsV0FBTSxHQUFrQixFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsbUJBQWMs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c0JBQTdELFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVGLGNBQWM7c0JBQS9ELFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtUYWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQge0RldGFpbENvbXBvbmVudEJhc2V9IGZyb20gJy4uL2Jhc2UvZGV0YWlsLWNvbXBvbmVudC1iYXNlJztcbmltcG9ydCB7dGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NlbGVjdFR5cGV9IGZyb20gJy4uL2VudW0vc2VsZWN0LXR5cGUuZW51bSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcnJheVV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHtJRGljdGlvbmFyeX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQge0lJZE5hbWV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHtBZ2dyZWdhdGlvblR5cGV9IGZyb20gJy4uL2VudW0vYWdncmVnYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7VGV0YUxvY2FsaXNhdGlvbn0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uJztcbmltcG9ydCB7VGV0YUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWNvbmZpZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10YWJsZS1ib2R5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1ib2R5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHZpcnR1YWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFjdGl2ZVJvdzogVDtcbiAgQElucHV0KCkgc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcbiAgQElucHV0KCkgYWRkaXRpb25hbENvbXBvbmVudDogVHlwZTxEZXRhaWxDb21wb25lbnRCYXNlPFQ+PjtcbiAgQElucHV0KCkgYWdncmVnYXRlOiBib29sZWFuO1xuICBASW5wdXQoKSBzZWxlY3RUeXBlOiBTZWxlY3RUeXBlO1xuICBASW5wdXQoKSByb3dDbGFzczogKHJvdzogVCwgaW5kZXg/OiBudW1iZXIpID0+IHN0cmluZztcblxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwge3N0YXRpYzogZmFsc2V9KSB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtYm9keScpIHByaXZhdGUgcmVhZG9ubHkgdGFibGVCb2R5Q2xhc3MgPSB0cnVlO1xuXG4gIHNldCBkYXRhKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIGxvY2tlZDogVGFibGVDb2x1bW5bXSA9IFtdO1xuICB1bmxvY2tlZDogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBzZWxlY3RUeXBlRW51bSA9IFNlbGVjdFR5cGU7XG4gIGxvY2tlZEZsZXg6IG51bWJlcjtcbiAgbG9ja2VkV2lkdGg6IG51bWJlcjtcbiAgdG90YWxGbGV4OiBudW1iZXI7XG4gIHRvdGFsV2lkdGg6IG51bWJlcjtcblxuICBwcml2YXRlIF9jb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZGF0YTogVFtdO1xuICBwcml2YXRlIF9oaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHNldCBjb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucztcbiAgICB0aGlzLmxvY2tlZCA9IHRoaXMuX2NvbHVtbnM/LmZpbHRlcigoXykgPT4gXy5sb2NrZWQgPT09IHRydWUpO1xuICAgIHRoaXMudW5sb2NrZWQgPSB0aGlzLl9jb2x1bW5zPy5maWx0ZXIoKF8pID0+IF8ubG9ja2VkID09PSBmYWxzZSk7XG4gICAgY29uc3Qgc3RhcnRXaWR0aCA9IHRoaXMuc2VsZWN0VHlwZSA9PT0gU2VsZWN0VHlwZS5jaGVja0JveCA/IDI4IDogMDtcbiAgICB0aGlzLmxvY2tlZEZsZXggPSB0aGlzLmxvY2tlZC5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycjogVGFibGVDb2x1bW4pID0+IHByZXYgKyBjdXJyLmZsZXgsIDApO1xuICAgIHRoaXMubG9ja2VkV2lkdGggPSB0aGlzLmxvY2tlZC5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycjogVGFibGVDb2x1bW4pID0+IHByZXYgKyBjdXJyLndpZHRoLCBzdGFydFdpZHRoKTtcbiAgICB0aGlzLnRvdGFsRmxleCA9IHRoaXMuX2NvbHVtbnMucmVkdWNlKChwcmV2OiBudW1iZXIsIGN1cnI6IFRhYmxlQ29sdW1uKSA9PiBwcmV2ICsgY3Vyci5mbGV4LCAwKTtcbiAgICB0aGlzLnRvdGFsV2lkdGggPSB0aGlzLl9jb2x1bW5zLnJlZHVjZSgocHJldjogbnVtYmVyLCBjdXJyOiBUYWJsZUNvbHVtbikgPT4gcHJldiArIGN1cnIud2lkdGgsIHN0YXJ0V2lkdGgpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gIH1cblxuICBsb2NhbGU6IE9ic2VydmFibGU8VGV0YUxvY2FsaXNhdGlvbj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NvbmZpZzogVGV0YUNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcblxuICB9XG5cbiAgc2V0QWN0aXZlUm93KHJvdzogVCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmICFldmVudC5jdHJsS2V5KSB7XG4gICAgICB0aGlzLl9zdmMuc2V0QWN0aXZlUm93KHJvdyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLl9jb25maWcubG9jYWxlO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3N2Yy5jb2x1bW5zLCB0aGlzLl9zdmMuaGlkZGVuQ29sdW1uc10pXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogW1RhYmxlQ29sdW1uW10sIHN0cmluZ1tdXSkgPT4ge1xuICAgICAgICBjb25zdCBbY29sdW1ucywgaGlkZGVuQ29sdW1uc10gPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMuX2hpZGRlbkNvbHVtbnMgPSBoaWRkZW5Db2x1bW5zO1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycsIHRydWUpLmZpbHRlcihcbiAgICAgICAgICAoXykgPT4gdGhpcy5faGlkZGVuQ29sdW1ucy5pbmRleE9mKF8ubmFtZSkgPCAwXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc3ZjLmRpc3BsYXlEYXRhLnBpcGUoXG4gICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKVxuICAgICkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSBfO1xuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy52aWV3cG9ydD8uY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5kaWN0LnBpcGUodGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSkpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5kaWN0ID0gXztcbiAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5zY3JvbGxJbmRleFxuICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdwb3J0KSB7XG4gICAgICAgICAgdGhpcy52aWV3cG9ydC5zY3JvbGxUb0luZGV4KGluZGV4LCAnYXV0bycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAudGFibGUtcm93W2RhdGEtcm93PVwiJHtpbmRleH1cIl1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICByb3c/LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdmMuYWN0aXZlUm93XG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKF8pID0+IHtcbiAgICAgICAgdGhpcy5hY3RpdmVSb3cgPSBfO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICBnZXRBZ2dyZWdhdGVWYWx1ZShjb2x1bW46IFRhYmxlQ29sdW1uKTogbnVtYmVyIHtcbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLnN1bSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U3VtKGNvbHVtbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5hZ2dyZWdhdGUgPT09IEFnZ3JlZ2F0aW9uVHlwZS5hdmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFN1bShjb2x1bW4ubmFtZSkgLyB0aGlzLmRhdGEubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLm1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWluKGNvbHVtbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5hZ2dyZWdhdGUgPT09IEFnZ3JlZ2F0aW9uVHlwZS5tYXgpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1heChjb2x1bW4ubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWdncmVnYXRlVGV4dChjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLnN1bSkge1xuICAgICAgcmV0dXJuICdzdW0nO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLmF2Zykge1xuICAgICAgcmV0dXJuICdhdmcnO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLm1pbikge1xuICAgICAgcmV0dXJuICdtaW4nO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLm1heCkge1xuICAgICAgcmV0dXJuICdtYXgnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0cmFja1JvdyhpbmRleDogbnVtYmVyLCByb3c6IFQpOiBhbnkge1xuICAgIGlmIChyb3dbJ2lkJ10pIHtcbiAgICAgIHJldHVybiByb3dbJ2lkJ107XG4gICAgfVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHRyYWNrQ29sdW1ucyhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogYW55IHtcbiAgICByZXR1cm4gY29sdW1uLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGdldFN1bShjb2x1bW5OYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucmVkdWNlKChhY2N1bSwgY3VycmVudCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gcGFyc2VGbG9hdChjdXJyZW50W2NvbHVtbk5hbWVdKTtcbiAgICAgIHJldHVybiBhY2N1bSArIChpc05hTih2YWwpID8gMCA6IHZhbCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1pbihjb2x1bW5OYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucmVkdWNlKFxuICAgICAgKGFjY3VtLCBjdXJyZW50KSA9PlxuICAgICAgICBhY2N1bSAhPSBudWxsICYmIGFjY3VtIDw9IGN1cnJlbnRbY29sdW1uTmFtZV1cbiAgICAgICAgICA/IGFjY3VtXG4gICAgICAgICAgOiBjdXJyZW50W2NvbHVtbk5hbWVdLFxuICAgICAgbnVsbFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldE1heChjb2x1bW5OYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucmVkdWNlKFxuICAgICAgKGFjY3VtLCBjdXJyZW50KSA9PlxuICAgICAgICBhY2N1bSAhPSBudWxsICYmIGFjY3VtID49IGN1cnJlbnRbY29sdW1uTmFtZV1cbiAgICAgICAgICA/IGFjY3VtXG4gICAgICAgICAgOiBjdXJyZW50W2NvbHVtbk5hbWVdLFxuICAgICAgbnVsbFxuICAgICk7XG4gIH1cbn1cbiIsIjxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgKm5nSWY9XCJ2aXJ0dWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1ib2R5LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtU2l6ZV09XCIyOFwiPlxuICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJvdyBvZiBkYXRhO3RlbXBsYXRlQ2FjaGVTaXplOiAwOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tSb3c7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZTsgY29udGV4dDoge3Jvdzogcm93LCByb3dJbmRleDogcm93SW5kZXh9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG48ZGl2ICpuZ0lmPVwiIXZpcnR1YWxcIlxuICAgICBjbGFzcz1cInRhYmxlLWJvZHktY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tSb3c7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZTsgY29udGV4dDoge3Jvdzogcm93LCByb3dJbmRleDogcm93SW5kZXh9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFnZ1RlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZVJvdyhyb3csICRldmVudClcIlxuICAgICAgIFthdHRyLmRhdGEtcm93XT1cInJvd0luZGV4XCJcbiAgICAgICBbY2xhc3MudGFibGUtcm93X29kZF09XCJyb3dJbmRleCAlIDIgPT09IDFcIlxuICAgICAgIFtuZ0NsYXNzXT1cInJvd0NsYXNzID8gcm93Q2xhc3Mocm93LCByb3dJbmRleCkgOiAnJ1wiXG4gICAgICAgW2NsYXNzLnRhYmxlLXJvd19zZWxlY3RlZF09XCJzZWxlY3RlZFJvd3MgJiYgc2VsZWN0ZWRSb3dzLmluZGV4T2Yocm93KSA+PSAwXCJcbiAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cInRvdGFsRmxleFwiXG4gICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwidG90YWxXaWR0aFwiXG4gICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJ0b3RhbFdpZHRoXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd19sb2NrZWRcIlxuICAgICAgICAgKm5nSWY9XCJsb2NrZWQubGVuZ3RoID4gMFwiXG4gICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cImxvY2tlZEZsZXhcIlxuICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwibG9ja2VkV2lkdGhcIlxuICAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJsb2NrZWRXaWR0aFwiXG4gICAgICAgICBbc3R5bGUuekluZGV4XT1cInJvdyA9PT0gYWN0aXZlUm93ID8gMSA6ICd1bnNldCdcIj5cbiAgICAgIDx0ZXRhLXNlbGVjdGlvbi1jZWxsICpuZ0lmPVwic2VsZWN0VHlwZSA9PT0gc2VsZWN0VHlwZUVudW0uY2hlY2tCb3ggJiYgbG9ja2VkLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyOHB4O1wiPjwvdGV0YS1zZWxlY3Rpb24tY2VsbD5cbiAgICAgIDx0ZXRhLWNlbGxcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBsb2NrZWQ7IGxldCBjb2xJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0NvbHVtbnM7XCJcbiAgICAgICAgW2F0dHIuZGF0YS1yb3ddPVwicm93SW5kZXhcIlxuICAgICAgICBbYXR0ci5kYXRhLWNvbHVtbl09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2ZpbHRlck9wdGlvbnNdPVwiZGljdD9kaWN0W2NvbHVtbi5uYW1lXTpbXVwiXG4gICAgICAgIFtkaWN0XT1cImRpY3RcIlxuICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5jZWxsQ2xhc3NcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJjb2x1bW4uZmxleFwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzLnB4XT1cImNvbHVtbi53aWR0aFwiXG4gICAgICA+PC90ZXRhLWNlbGw+XG4gICAgPC9kaXY+XG4gICAgPHRldGEtc2VsZWN0aW9uLWNlbGwgKm5nSWY9XCJzZWxlY3RUeXBlID09PSBzZWxlY3RUeXBlRW51bS5jaGVja0JveCAmJiBsb2NrZWQubGVuZ3RoIDwgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI4cHg7XCI+PC90ZXRhLXNlbGVjdGlvbi1jZWxsPlxuICAgIDx0ZXRhLWNlbGxcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdW5sb2NrZWQ7IGxldCBjb2xJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0NvbHVtbnM7XCJcbiAgICAgIFthdHRyLmRhdGEtcm93XT1cInJvd0luZGV4XCJcbiAgICAgIFthdHRyLmRhdGEtY29sdW1uXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgIFtmaWx0ZXJPcHRpb25zXT1cImRpY3Q/ZGljdFtjb2x1bW4ubmFtZV06W11cIlxuICAgICAgW2RpY3RdPVwiZGljdFwiXG4gICAgICBbcm93XT1cInJvd1wiXG4gICAgICBbbmdDbGFzc109XCJjb2x1bW4uY2VsbENsYXNzXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJjb2x1bW4uZmxleFwiXG4gICAgICBbc3R5bGUuZmxleC1iYXNpcy5weF09XCJjb2x1bW4ud2lkdGhcIlxuICAgID48L3RldGEtY2VsbD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FnZ1RlbXBsYXRlPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9jYWxlIHwgYXN5bmMgYXMgbG9jXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAqbmdJZj1cImFnZ3JlZ2F0ZVwiXG4gICAgICAgICBbY2xhc3MudGFibGUtcm93X3ZpcnR1YWxdPVwidmlydHVhbFwiXG4gICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cInZpcnR1YWwgPyB0b3RhbEZsZXggOiAnJ1wiXG4gICAgICAgICBbc3R5bGUuZmxleC1iYXNpcy5weF09XCJ2aXJ0dWFsID8gdG90YWxXaWR0aCA6ICcnXCJcbiAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwidmlydHVhbCA/IHRvdGFsV2lkdGggOiAnJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd19sb2NrZWRcIlxuICAgICAgICAgICAqbmdJZj1cImxvY2tlZC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJsb2NrZWRGbGV4XCJcbiAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwibG9ja2VkV2lkdGhcIlxuICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoLnB4XT1cImxvY2tlZFdpZHRoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsIGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyOHB4O1wiPlxuICAgICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ3N1bUNvbG9yJ1wiPjwvdGV0YS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwgY2VsbC1jb21wb25lbnQganVzdGlmeS1jb250ZW50LWVuZFwiXG4gICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBsb2NrZWQ7IGxldCBjb2xJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0NvbHVtbnM7XCJcbiAgICAgICAgICAgICBbYXR0ci5kYXRhLWNvbHVtbl09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmNlbGxDbGFzc1wiXG4gICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiMFwiXG4gICAgICAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJjb2x1bW4uZmxleFwiXG4gICAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwiY29sdW1uLndpZHRoXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2VsbC10ZXh0IGNlbGwtdGV4dF9udW1lcmljIGZvbnQtdGl0bGUtM1wiPlxuICAgICAgICAgIHt7bG9jW2dldEFnZ3JlZ2F0ZVRleHQoY29sdW1uKV19fTpcbiAgICAgICAgICB7e2dldEFnZ3JlZ2F0ZVZhbHVlKGNvbHVtbikgfCB0ZXRhTnVtYmVyIDogMn19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjZWxsIGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjhweDtcIlxuICAgICAgICAgICAqbmdJZj1cInNlbGVjdFR5cGUgPT09IHNlbGVjdFR5cGVFbnVtLmNoZWNrQm94ICYmIGxvY2tlZC5sZW5ndGggPCAxXCI+XG4gICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ3N1bUNvbG9yJ1wiPjwvdGV0YS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2VsbCBjZWxsLWNvbXBvbmVudCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcbiAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB1bmxvY2tlZDsgbGV0IGNvbEluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQ29sdW1ucztcIlxuICAgICAgICAgICBbYXR0ci5kYXRhLWNvbHVtbl09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5jZWxsQ2xhc3NcIlxuICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJjb2x1bW4uZmxleFwiXG4gICAgICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzLnB4XT1cImNvbHVtbi53aWR0aFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjZWxsLXRleHQgY2VsbC10ZXh0X251bWVyaWMgZm9udC10aXRsZS0zXCI+XG4gICAgICAgIHt7bG9jW2dldEFnZ3JlZ2F0ZVRleHQoY29sdW1uKV19fTpcbiAgICAgICAge3tnZXRBZ2dyZWdhdGVWYWx1ZShjb2x1bW4pIHwgdGV0YU51bWJlciA6IDJ9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLWJvZHkvdGFibGUtYm9keS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3RhYmxlLWJvZHkvdGFibGUtYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVVoRSxNQUFNLE9BQU8sa0JBQWtCO0lBb0Q3QixZQUFvQixJQUFxQixFQUNyQixXQUF1QixFQUN2QixPQUEwQixFQUMxQixJQUF1QjtRQUh2QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXBEbEMsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFRa0IsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFXeEUsV0FBTSxHQUFrQixFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsbUJBQWMs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c0JBQTdELFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVGLGNBQWM7c0JBQS9ELFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtUYWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQge0RldGFpbENvbXBvbmVudEJhc2V9IGZyb20gJy4uL2Jhc2UvZGV0YWlsLWNvbXBvbmVudC1iYXNlJztcbmltcG9ydCB7dGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NlbGVjdFR5cGV9IGZyb20gJy4uL2VudW0vc2VsZWN0LXR5cGUuZW51bSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcnJheVV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHtJRGljdGlvbmFyeX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQge0lJZE5hbWV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHtBZ2dyZWdhdGlvblR5cGV9IGZyb20gJy4uL2VudW0vYWdncmVnYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7VGV0YUxvY2FsaXNhdGlvbn0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uJztcbmltcG9ydCB7VGV0YUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWNvbmZpZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10YWJsZS1ib2R5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1ib2R5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHZpcnR1YWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFjdGl2ZVJvdzogVDtcbiAgQElucHV0KCkgc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcbiAgQElucHV0KCkgYWRkaXRpb25hbENvbXBvbmVudDogVHlwZTxEZXRhaWxDb21wb25lbnRCYXNlPFQ+PjtcbiAgQElucHV0KCkgYWdncmVnYXRlOiBib29sZWFuO1xuICBASW5wdXQoKSBzZWxlY3RUeXBlOiBTZWxlY3RUeXBlO1xuICBASW5wdXQoKSByb3dDbGFzczogKHJvdzogVCwgaW5kZXg/OiBudW1iZXIpID0+IHN0cmluZztcblxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwge3N0YXRpYzogZmFsc2V9KSB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtYm9keScpIHByaXZhdGUgcmVhZG9ubHkgdGFibGVCb2R5Q2xhc3MgPSB0cnVlO1xuXG4gIHNldCBkYXRhKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIGxvY2tlZDogVGFibGVDb2x1bW5bXSA9IFtdO1xuICB1bmxvY2tlZDogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBzZWxlY3RUeXBlRW51bSA9IFNlbGVjdFR5cGU7XG4gIGxvY2tlZEZsZXg6IG51bWJlcjtcbiAgbG9ja2VkV2lkdGg6IG51bWJlcjtcbiAgdG90YWxGbGV4OiBudW1iZXI7XG4gIHRvdGFsV2lkdGg6IG51bWJlcjtcblxuICBwcml2YXRlIF9jb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZGF0YTogVFtdO1xuICBwcml2YXRlIF9oaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHNldCBjb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucztcbiAgICB0aGlzLmxvY2tlZCA9IHRoaXMuX2NvbHVtbnM/LmZpbHRlcigoXykgPT4gXy5sb2NrZWQgPT09IHRydWUpO1xuICAgIHRoaXMudW5sb2NrZWQgPSB0aGlzLl9jb2x1bW5zPy5maWx0ZXIoKF8pID0+IF8ubG9ja2VkID09PSBmYWxzZSk7XG4gICAgY29uc3Qgc3RhcnRXaWR0aCA9IHRoaXMuc2VsZWN0VHlwZSA9PT0gU2VsZWN0VHlwZS5jaGVja0JveCA/IDI4IDogMDtcbiAgICB0aGlzLmxvY2tlZEZsZXggPSB0aGlzLmxvY2tlZC5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycjogVGFibGVDb2x1bW4pID0+IHByZXYgKyBjdXJyLmZsZXgsIDApO1xuICAgIHRoaXMubG9ja2VkV2lkdGggPSB0aGlzLmxvY2tlZC5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycjogVGFibGVDb2x1bW4pID0+IHByZXYgKyBjdXJyLndpZHRoLCBzdGFydFdpZHRoKTtcbiAgICB0aGlzLnRvdGFsRmxleCA9IHRoaXMuX2NvbHVtbnMucmVkdWNlKChwcmV2OiBudW1iZXIsIGN1cnI6IFRhYmxlQ29sdW1uKSA9PiBwcmV2ICsgY3Vyci5mbGV4LCAwKTtcbiAgICB0aGlzLnRvdGFsV2lkdGggPSB0aGlzLl9jb2x1bW5zLnJlZHVjZSgocHJldjogbnVtYmVyLCBjdXJyOiBUYWJsZUNvbHVtbikgPT4gcHJldiArIGN1cnIud2lkdGgsIHN0YXJ0V2lkdGgpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gIH1cblxuICBsb2NhbGU6IE9ic2VydmFibGU8VGV0YUxvY2FsaXNhdGlvbj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NvbmZpZzogVGV0YUNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcblxuICB9XG5cbiAgc2V0QWN0aXZlUm93KHJvdzogVCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmICFldmVudC5jdHJsS2V5KSB7XG4gICAgICB0aGlzLl9zdmMuc2V0QWN0aXZlUm93KHJvdyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLl9jb25maWcubG9jYWxlO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3N2Yy5jb2x1bW5zLCB0aGlzLl9zdmMuaGlkZGVuQ29sdW1uc10pXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczogW1RhYmxlQ29sdW1uW10sIHN0cmluZ1tdXSkgPT4ge1xuICAgICAgICBjb25zdCBbY29sdW1ucywgaGlkZGVuQ29sdW1uc10gPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMuX2hpZGRlbkNvbHVtbnMgPSBoaWRkZW5Db2x1bW5zO1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycsIHRydWUpLmZpbHRlcihcbiAgICAgICAgICAoXykgPT4gdGhpcy5faGlkZGVuQ29sdW1ucy5pbmRleE9mKF8ubmFtZSkgPCAwXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc3ZjLmRpc3BsYXlEYXRhLnBpcGUoXG4gICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKVxuICAgICkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSBfO1xuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy52aWV3cG9ydD8uY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5kaWN0LnBpcGUodGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSkpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5kaWN0ID0gXztcbiAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N2Yy5zY3JvbGxJbmRleFxuICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdwb3J0KSB7XG4gICAgICAgICAgdGhpcy52aWV3cG9ydC5zY3JvbGxUb0luZGV4KGluZGV4LCAnYXV0bycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAudGFibGUtcm93W2RhdGEtcm93PVwiJHtpbmRleH1cIl1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICByb3c/LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdmMuYWN0aXZlUm93XG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKF8pID0+IHtcbiAgICAgICAgdGhpcy5hY3RpdmVSb3cgPSBfO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICBnZXRBZ2dyZWdhdGVWYWx1ZShjb2x1bW46IFRhYmxlQ29sdW1uKTogbnVtYmVyIHtcbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLnN1bSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U3VtKGNvbHVtbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5hZ2dyZWdhdGUgPT09IEFnZ3JlZ2F0aW9uVHlwZS5hdmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFN1bShjb2x1bW4ubmFtZSkgLyB0aGlzLmRhdGEubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLm1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWluKGNvbHVtbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5hZ2dyZWdhdGUgPT09IEFnZ3JlZ2F0aW9uVHlwZS5tYXgpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1heChjb2x1bW4ubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWdncmVnYXRlVGV4dChjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLnN1bSkge1xuICAgICAgcmV0dXJuICdzdW0nO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLmF2Zykge1xuICAgICAgcmV0dXJuICdhdmcnO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLm1pbikge1xuICAgICAgcmV0dXJuICdtaW4nO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFnZ3JlZ2F0ZSA9PT0gQWdncmVnYXRpb25UeXBlLm1heCkge1xuICAgICAgcmV0dXJuICdtYXgnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0cmFja1JvdyhpbmRleDogbnVtYmVyLCByb3c6IFQpOiBhbnkge1xuICAgIGlmIChyb3dbJ2lkJ10pIHtcbiAgICAgIHJldHVybiByb3dbJ2lkJ107XG4gICAgfVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHRyYWNrQ29sdW1ucyhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogYW55IHtcbiAgICByZXR1cm4gY29sdW1uLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGdldFN1bShjb2x1bW5OYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucmVkdWNlKChhY2N1bSwgY3VycmVudCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gcGFyc2VGbG9hdChjdXJyZW50W2NvbHVtbk5hbWVdKTtcbiAgICAgIHJldHVybiBhY2N1bSArIChpc05hTih2YWwpID8gMCA6IHZhbCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1pbihjb2x1bW5OYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucmVkdWNlKFxuICAgICAgKGFjY3VtLCBjdXJyZW50KSA9PlxuICAgICAgICBhY2N1bSAhPSBudWxsICYmIGFjY3VtIDw9IGN1cnJlbnRbY29sdW1uTmFtZV1cbiAgICAgICAgICA/IGFjY3VtXG4gICAgICAgICAgOiBjdXJyZW50W2NvbHVtbk5hbWVdLFxuICAgICAgbnVsbFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldE1heChjb2x1bW5OYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucmVkdWNlKFxuICAgICAgKGFjY3VtLCBjdXJyZW50KSA9PlxuICAgICAgICBhY2N1bSAhPSBudWxsICYmIGFjY3VtID49IGN1cnJlbnRbY29sdW1uTmFtZV1cbiAgICAgICAgICA/IGFjY3VtXG4gICAgICAgICAgOiBjdXJyZW50W2NvbHVtbk5hbWVdLFxuICAgICAgbnVsbFxuICAgICk7XG4gIH1cbn1cbiIsIjxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgKm5nSWY9XCJ2aXJ0dWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1ib2R5LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtU2l6ZV09XCIyOFwiPlxuICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJvdyBvZiBkYXRhO3RlbXBsYXRlQ2FjaGVTaXplOiAwOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tSb3c7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZTsgY29udGV4dDoge3Jvdzogcm93LCByb3dJbmRleDogcm93SW5kZXh9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG48ZGl2ICpuZ0lmPVwiIXZpcnR1YWxcIlxuICAgICBjbGFzcz1cInRhYmxlLWJvZHktY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tSb3c7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZTsgY29udGV4dDoge3Jvdzogcm93LCByb3dJbmRleDogcm93SW5kZXh9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFnZ1RlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZVJvdyhyb3csICRldmVudClcIlxuICAgICAgIFthdHRyLmRhdGEtcm93XT1cInJvd0luZGV4XCJcbiAgICAgICBbY2xhc3MudGFibGUtcm93X29kZF09XCJyb3dJbmRleCAlIDIgPT09IDFcIlxuICAgICAgIFtuZ0NsYXNzXT1cInJvd0NsYXNzID8gcm93Q2xhc3Mocm93LCByb3dJbmRleCkgOiAnJ1wiXG4gICAgICAgW2NsYXNzLnRhYmxlLXJvd19zZWxlY3RlZF09XCJzZWxlY3RlZFJvd3MgJiYgc2VsZWN0ZWRSb3dzLmluZGV4T2Yocm93KSA+PSAwXCJcbiAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cInRvdGFsRmxleFwiXG4gICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwidG90YWxXaWR0aFwiXG4gICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJ0b3RhbFdpZHRoXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd19sb2NrZWRcIlxuICAgICAgICAgKm5nSWY9XCJsb2NrZWQubGVuZ3RoID4gMFwiXG4gICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cImxvY2tlZEZsZXhcIlxuICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwibG9ja2VkV2lkdGhcIlxuICAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJsb2NrZWRXaWR0aFwiXG4gICAgICAgICBbc3R5bGUuekluZGV4XT1cInJvdyA9PT0gYWN0aXZlUm93ID8gMiA6IDFcIj5cbiAgICAgIDx0ZXRhLXNlbGVjdGlvbi1jZWxsICpuZ0lmPVwic2VsZWN0VHlwZSA9PT0gc2VsZWN0VHlwZUVudW0uY2hlY2tCb3ggJiYgbG9ja2VkLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyOHB4O1wiPjwvdGV0YS1zZWxlY3Rpb24tY2VsbD5cbiAgICAgIDx0ZXRhLWNlbGxcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBsb2NrZWQ7IGxldCBjb2xJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0NvbHVtbnM7XCJcbiAgICAgICAgW2F0dHIuZGF0YS1yb3ddPVwicm93SW5kZXhcIlxuICAgICAgICBbYXR0ci5kYXRhLWNvbHVtbl09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2ZpbHRlck9wdGlvbnNdPVwiZGljdD9kaWN0W2NvbHVtbi5uYW1lXTpbXVwiXG4gICAgICAgIFtkaWN0XT1cImRpY3RcIlxuICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5jZWxsQ2xhc3NcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJjb2x1bW4uZmxleFwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzLnB4XT1cImNvbHVtbi53aWR0aFwiXG4gICAgICA+PC90ZXRhLWNlbGw+XG4gICAgPC9kaXY+XG4gICAgPHRldGEtc2VsZWN0aW9uLWNlbGwgKm5nSWY9XCJzZWxlY3RUeXBlID09PSBzZWxlY3RUeXBlRW51bS5jaGVja0JveCAmJiBsb2NrZWQubGVuZ3RoIDwgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI4cHg7XCI+PC90ZXRhLXNlbGVjdGlvbi1jZWxsPlxuICAgIDx0ZXRhLWNlbGxcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdW5sb2NrZWQ7IGxldCBjb2xJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0NvbHVtbnM7XCJcbiAgICAgIFthdHRyLmRhdGEtcm93XT1cInJvd0luZGV4XCJcbiAgICAgIFthdHRyLmRhdGEtY29sdW1uXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgIFtmaWx0ZXJPcHRpb25zXT1cImRpY3Q/ZGljdFtjb2x1bW4ubmFtZV06W11cIlxuICAgICAgW2RpY3RdPVwiZGljdFwiXG4gICAgICBbcm93XT1cInJvd1wiXG4gICAgICBbbmdDbGFzc109XCJjb2x1bW4uY2VsbENsYXNzXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJjb2x1bW4uZmxleFwiXG4gICAgICBbc3R5bGUuZmxleC1iYXNpcy5weF09XCJjb2x1bW4ud2lkdGhcIlxuICAgID48L3RldGEtY2VsbD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FnZ1RlbXBsYXRlPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9jYWxlIHwgYXN5bmMgYXMgbG9jXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAqbmdJZj1cImFnZ3JlZ2F0ZVwiXG4gICAgICAgICBbY2xhc3MudGFibGUtcm93X3ZpcnR1YWxdPVwidmlydHVhbFwiXG4gICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cInRvdGFsRmxleFwiXG4gICAgICAgICBbc3R5bGUuZmxleC1iYXNpcy5weF09XCJ0b3RhbFdpZHRoXCJcbiAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwidG90YWxXaWR0aFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd19sb2NrZWRcIlxuICAgICAgICAgICAqbmdJZj1cImxvY2tlZC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJsb2NrZWRGbGV4XCJcbiAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwibG9ja2VkV2lkdGhcIlxuICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoLnB4XT1cImxvY2tlZFdpZHRoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsIGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyOHB4O1wiXG4gICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RUeXBlID09PSBzZWxlY3RUeXBlRW51bS5jaGVja0JveCAmJiBsb2NrZWQubGVuZ3RoIDwgMVwiPlxuICAgICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ3N1bUNvbG9yJ1wiPjwvdGV0YS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwgY2VsbC1jb21wb25lbnRcIlxuICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbG9ja2VkOyBsZXQgY29sSW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tDb2x1bW5zO1wiXG4gICAgICAgICAgICAgW2F0dHIuZGF0YS1jb2x1bW5dPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5jZWxsQ2xhc3NcIlxuICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICAgICAgICAgICAgIFtzdHlsZS5mbGV4LWdyb3ddPVwiY29sdW1uLmZsZXhcIlxuICAgICAgICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzLnB4XT1cImNvbHVtbi53aWR0aFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNlbGwtdGV4dCBjZWxsLXRleHRfbnVtZXJpYyBmb250LXRpdGxlLTNcIj5cbiAgICAgICAgICB7e2xvY1tnZXRBZ2dyZWdhdGVUZXh0KGNvbHVtbildfX06XG4gICAgICAgICAge3tnZXRBZ2dyZWdhdGVWYWx1ZShjb2x1bW4pIHwgdGV0YU51bWJlciA6IDJ9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2VsbCBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI4cHg7XCJcbiAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RUeXBlID09PSBzZWxlY3RUeXBlRW51bS5jaGVja0JveCAmJiBsb2NrZWQubGVuZ3RoIDwgMVwiPlxuICAgICAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidzdW1Db2xvcidcIj48L3RldGEtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNlbGwgY2VsbC1jb21wb25lbnRcIlxuICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHVubG9ja2VkOyBsZXQgY29sSW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tDb2x1bW5zO1wiXG4gICAgICAgICAgIFthdHRyLmRhdGEtY29sdW1uXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmNlbGxDbGFzc1wiXG4gICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICAgICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cImNvbHVtbi5mbGV4XCJcbiAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXMucHhdPVwiY29sdW1uLndpZHRoXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNlbGwtdGV4dCBjZWxsLXRleHRfbnVtZXJpYyBmb250LXRpdGxlLTNcIj5cbiAgICAgICAge3tsb2NbZ2V0QWdncmVnYXRlVGV4dChjb2x1bW4pXX19OlxuICAgICAgICB7e2dldEFnZ3JlZ2F0ZVZhbHVlKGNvbHVtbikgfCB0ZXRhTnVtYmVyIDogMn19XG4gICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -10103,10 +10103,10 @@ class TableBodyComponent {
|
|
|
10103
10103
|
}
|
|
10104
10104
|
}
|
|
10105
10105
|
TableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TableBodyComponent, deps: [{ token: TableService }, { token: i0.ElementRef }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
10106
|
-
TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ?
|
|
10106
|
+
TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 2 : 1\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: i6.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i6.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i6.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10107
10107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
10108
10108
|
type: Component,
|
|
10109
|
-
args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ?
|
|
10109
|
+
args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 2 : 1\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n" }]
|
|
10110
10110
|
}], ctorParameters: function () { return [{ type: TableService }, { type: i0.ElementRef }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { virtual: [{
|
|
10111
10111
|
type: Input
|
|
10112
10112
|
}], activeRow: [{
|