@tetacom/ng-components 1.0.74 → 1.0.75
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/component/tree/tree/tree.component.d.ts +6 -2
- package/component/tree/tree.service.d.ts +3 -0
- package/esm2020/component/tree/tree/tree.component.mjs +20 -7
- package/esm2020/component/tree/tree.service.mjs +6 -1
- package/fesm2015/tetacom-ng-components.mjs +22 -5
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +22 -5
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ITreeData } from '../../../common/contract/i-tree-data';
|
|
3
3
|
import { TreeService } from '../tree.service';
|
|
4
4
|
import { TetaTemplateDirective } from '../../../directive/teta-template/teta-template.directive';
|
|
5
|
+
import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class TreeComponent implements OnInit, OnChanges, OnDestroy {
|
|
7
8
|
private _service;
|
|
8
9
|
private _cdr;
|
|
10
|
+
private _zone;
|
|
9
11
|
set data(data: ITreeData[]);
|
|
10
12
|
get data(): ITreeData[];
|
|
11
13
|
padding: number;
|
|
@@ -15,19 +17,21 @@ export declare class TreeComponent implements OnInit, OnChanges, OnDestroy {
|
|
|
15
17
|
set openItems(items: ITreeData[]);
|
|
16
18
|
service: EventEmitter<TreeService>;
|
|
17
19
|
openItemsChange: EventEmitter<any>;
|
|
20
|
+
virtualScroll: CdkVirtualScrollViewport;
|
|
18
21
|
template: TetaTemplateDirective;
|
|
19
22
|
childPadding: boolean;
|
|
20
23
|
displayData: ITreeData[];
|
|
21
24
|
private _data;
|
|
22
25
|
private _openItems;
|
|
23
26
|
private _alive;
|
|
24
|
-
constructor(_service: TreeService, _cdr: ChangeDetectorRef);
|
|
27
|
+
constructor(_service: TreeService, _cdr: ChangeDetectorRef, _zone: NgZone);
|
|
25
28
|
set compareItems(func: (item: ITreeData) => any);
|
|
26
29
|
get compareItems(): (item: ITreeData) => any;
|
|
27
30
|
private readonly treeClass;
|
|
28
31
|
ngOnInit(): void;
|
|
29
32
|
ngOnChanges(changes: SimpleChanges): void;
|
|
30
33
|
ngOnDestroy(): void;
|
|
34
|
+
ngAfterViewInit(): void;
|
|
31
35
|
trackRow: (index: number, item: ITreeData) => any;
|
|
32
36
|
private hasChildren;
|
|
33
37
|
private getDisplayData;
|
|
@@ -3,11 +3,14 @@ import { Observable } from 'rxjs';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class TreeService {
|
|
5
5
|
openItems: Observable<ITreeData[]>;
|
|
6
|
+
scrollToIndex: Observable<number>;
|
|
6
7
|
private _openItems;
|
|
8
|
+
private _scrollToIndex;
|
|
7
9
|
constructor();
|
|
8
10
|
compareItems: (item: ITreeData) => any;
|
|
9
11
|
openItem(item: ITreeData): void;
|
|
10
12
|
setOpenItems(items: ITreeData[]): void;
|
|
13
|
+
scrollTo(index: number): void;
|
|
11
14
|
private addOrRemove;
|
|
12
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<TreeService, never>;
|
|
13
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<TreeService>;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import { TreeService } from '../tree.service';
|
|
3
3
|
import { TetaTemplateDirective } from '../../../directive/teta-template/teta-template.directive';
|
|
4
4
|
import { filter, takeWhile } from 'rxjs/operators';
|
|
5
|
+
import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../tree.service";
|
|
7
8
|
import * as i2 from "@angular/common";
|
|
8
9
|
import * as i3 from "@angular/cdk/scrolling";
|
|
9
10
|
import * as i4 from "../tree-item/tree-item.component";
|
|
10
11
|
export class TreeComponent {
|
|
11
|
-
constructor(_service, _cdr) {
|
|
12
|
+
constructor(_service, _cdr, _zone) {
|
|
12
13
|
this._service = _service;
|
|
13
14
|
this._cdr = _cdr;
|
|
15
|
+
this._zone = _zone;
|
|
14
16
|
this.padding = 8;
|
|
15
17
|
this.childNodeName = 'children';
|
|
16
18
|
this.height = 28;
|
|
@@ -54,11 +56,19 @@ export class TreeComponent {
|
|
|
54
56
|
ngOnChanges(changes) {
|
|
55
57
|
this.displayData = this.getDisplayData(this._data, 0);
|
|
56
58
|
this.childPadding = this.hasChildren(this._data);
|
|
57
|
-
//this._cdr.detectChanges();
|
|
58
59
|
}
|
|
59
60
|
ngOnDestroy() {
|
|
60
61
|
this._alive = false;
|
|
61
62
|
}
|
|
63
|
+
ngAfterViewInit() {
|
|
64
|
+
this._service.scrollToIndex.pipe(takeWhile(() => this._alive)).subscribe((index) => {
|
|
65
|
+
this._zone.runOutsideAngular(() => {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
this.virtualScroll.scrollToIndex(index, 'smooth');
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
62
72
|
hasChildren(data) {
|
|
63
73
|
return data.some((_) => _[this.childNodeName]?.length > 0);
|
|
64
74
|
}
|
|
@@ -75,12 +85,12 @@ export class TreeComponent {
|
|
|
75
85
|
return result;
|
|
76
86
|
}
|
|
77
87
|
}
|
|
78
|
-
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, deps: [{ token: i1.TreeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
-
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TreeComponent, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual; else default\"\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</cdk-virtual-scroll-viewport>\n<ng-template #default>\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</ng-template>\n", styles: [""], dependencies: [{ 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: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i4.TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
88
|
+
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, deps: [{ token: i1.TreeService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TreeComponent, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "virtualScroll", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual; else default\"\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</cdk-virtual-scroll-viewport>\n<ng-template #default>\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</ng-template>\n", styles: [""], dependencies: [{ 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: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i4.TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
80
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, decorators: [{
|
|
81
91
|
type: Component,
|
|
82
92
|
args: [{ selector: 'teta-tree', providers: [TreeService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual; else default\"\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</cdk-virtual-scroll-viewport>\n<ng-template #default>\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</ng-template>\n" }]
|
|
83
|
-
}], ctorParameters: function () { return [{ type: i1.TreeService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
93
|
+
}], ctorParameters: function () { return [{ type: i1.TreeService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { data: [{
|
|
84
94
|
type: Input
|
|
85
95
|
}], padding: [{
|
|
86
96
|
type: Input
|
|
@@ -96,6 +106,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
96
106
|
type: Output
|
|
97
107
|
}], openItemsChange: [{
|
|
98
108
|
type: Output
|
|
109
|
+
}], virtualScroll: [{
|
|
110
|
+
type: ViewChild,
|
|
111
|
+
args: [CdkVirtualScrollViewport, { static: false }]
|
|
99
112
|
}], template: [{
|
|
100
113
|
type: ContentChild,
|
|
101
114
|
args: [TetaTemplateDirective, { static: true }]
|
|
@@ -105,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
105
118
|
type: HostBinding,
|
|
106
119
|
args: ['class.tree']
|
|
107
120
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RyZWUvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdHJlZS90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDL0YsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU2pELE1BQU0sT0FBTyxhQUFhO0lBa0N4QixZQUFvQixRQUFxQixFQUFVLElBQXVCO1FBQXRELGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXhCakUsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGtCQUFhLEdBQUcsVUFBVSxDQUFDO1FBRTNCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFRWCxZQUFPLEdBQ2YsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUN4QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTdkMsV0FBTSxHQUFHLElBQUksQ0FBQztRQXlCc0IsY0FBUyxHQUFHLElBQUksQ0FBQztRQWdCN0QsYUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLElBQWUsRUFBTyxFQUFFO1lBQ2pELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hDO1lB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QyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzswR0FsR1UsYUFBYTs4RkFBYixhQUFhLDZVQUhiLENBQUMsV0FBVyxDQUFDLGdFQTRCVixxQkFBcUIsbUZDbkRyQywwbENBc0JBOzJGRElhLGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWLENBQUMsV0FBVyxDQUFDLG1CQUNQLHVCQUF1QixDQUFDLE1BQU07a0lBSTNDLElBQUk7c0JBRFAsS0FBSztnQkFTRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSztnQkFNSSxPQUFPO3NCQUFoQixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBR1AsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkF3Qi9DLFlBQVk7c0JBRGYsS0FBSztnQkFTc0MsU0FBUztzQkFBcEQsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lUcmVlRGF0YX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktdHJlZS1kYXRhJztcbmltcG9ydCB7VHJlZVNlcnZpY2V9IGZyb20gJy4uL3RyZWUuc2VydmljZSc7XG5pbXBvcnQge1RldGFUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3RldGEtdGVtcGxhdGUvdGV0YS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaWx0ZXIsIHRha2VXaGlsZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVHJlZVNlcnZpY2VdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBzZXQgZGF0YShkYXRhOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBASW5wdXQoKSBwYWRkaW5nID0gODtcbiAgQElucHV0KCkgY2hpbGROb2RlTmFtZSA9ICdjaGlsZHJlbic7XG4gIEBJbnB1dCgpIHZpcnR1YWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlaWdodCA9IDI4O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBvcGVuSXRlbXMoaXRlbXM6IElUcmVlRGF0YVtdKSB7XG4gICAgdGhpcy5fb3Blbkl0ZW1zID0gaXRlbXM7XG4gICAgdGhpcy5fc2VydmljZS5zZXRPcGVuSXRlbXMoaXRlbXMpO1xuICB9XG5cbiAgQE91dHB1dCgpIHNlcnZpY2U6IEV2ZW50RW1pdHRlcjxUcmVlU2VydmljZT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8VHJlZVNlcnZpY2U+KCk7XG4gIEBPdXRwdXQoKSBvcGVuSXRlbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQENvbnRlbnRDaGlsZChUZXRhVGVtcGxhdGVEaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KVxuICB0ZW1wbGF0ZTogVGV0YVRlbXBsYXRlRGlyZWN0aXZlO1xuICBjaGlsZFBhZGRpbmc6IGJvb2xlYW47XG4gIGRpc3BsYXlEYXRhOiBJVHJlZURhdGFbXTtcblxuICBwcml2YXRlIF9kYXRhOiBJVHJlZURhdGFbXTtcbiAgcHJpdmF0ZSBfb3Blbkl0ZW1zOiBJVHJlZURhdGFbXTtcbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2U6IFRyZWVTZXJ2aWNlLCBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5fc2VydmljZS5vcGVuSXRlbXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgZmlsdGVyKChfKSA9PiB0aGlzLl9vcGVuSXRlbXMgIT09IF8pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgIHRoaXMuX29wZW5JdGVtcyA9IF87XG4gICAgICAgIHRoaXMuZGlzcGxheURhdGEgPSB0aGlzLmdldERpc3BsYXlEYXRhKHRoaXMuX2RhdGEsIDApO1xuXG4gICAgICAgIHRoaXMub3Blbkl0ZW1zQ2hhbmdlLmVtaXQoXyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjb21wYXJlSXRlbXMoZnVuYzogKGl0ZW06IElUcmVlRGF0YSkgPT4gYW55KSB7XG4gICAgdGhpcy5fc2VydmljZS5jb21wYXJlSXRlbXMgPSBmdW5jO1xuICB9XG5cbiAgZ2V0IGNvbXBhcmVJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZS5jb21wYXJlSXRlbXM7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRyZWUnKSBwcml2YXRlIHJlYWRvbmx5IHRyZWVDbGFzcyA9IHRydWU7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmVtaXQodGhpcy5fc2VydmljZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5RGF0YSA9IHRoaXMuZ2V0RGlzcGxheURhdGEodGhpcy5fZGF0YSwgMCk7XG4gICAgdGhpcy5jaGlsZFBhZGRpbmcgPSB0aGlzLmhhc0NoaWxkcmVuKHRoaXMuX2RhdGEpO1xuICAgIC8vdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICB0cmFja1JvdyA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBJVHJlZURhdGEpOiBhbnkgPT4ge1xuICAgIGlmICh0aGlzLmNvbXBhcmVJdGVtcykge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUl0ZW1zKGl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXg7XG4gIH07XG5cblxuICBwcml2YXRlIGhhc0NoaWxkcmVuKGRhdGE6IElUcmVlRGF0YVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGEuc29tZShcbiAgICAgIChfKSA9PiBfW3RoaXMuY2hpbGROb2RlTmFtZV0/Lmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5RGF0YShkYXRhOiBJVHJlZURhdGFbXSwgbGV2ZWw6IG51bWJlcikge1xuICAgIGNvbnN0IHJlc3VsdDogSVRyZWVEYXRhW10gPSBbXTtcbiAgICBkYXRhPy5mb3JFYWNoKChpdGVtOiBJVHJlZURhdGEpID0+IHtcbiAgICAgIGl0ZW1bJ2xldmVsJ10gPSBsZXZlbDtcbiAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZE5vZGVOYW1lXT8ubGVuZ3RoID4gMFxuICAgICAgICAmJiB0aGlzLl9vcGVuSXRlbXM/LmZpbmQoKG9wZW5JdGVtKSA9PiB0aGlzLmNvbXBhcmVJdGVtcyhvcGVuSXRlbSkgPT09IHRoaXMuY29tcGFyZUl0ZW1zKGl0ZW0pKSkge1xuICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLmdldERpc3BsYXlEYXRhKGl0ZW1bdGhpcy5jaGlsZE5vZGVOYW1lXSwgbGV2ZWwgKyAxKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIiwiPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCAqbmdJZj1cInZpcnR1YWw7IGVsc2UgZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtYm9keS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVNpemVdPVwiaGVpZ2h0XCI+XG4gIDx0ZXRhLXRyZWUtaXRlbSAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhO3RlbXBsYXRlQ2FjaGVTaXplOiAwOyB0cmFja0J5OiB0cmFja1JvdztcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBbZGVwdGhdPVwiaXRlbVsnbGV2ZWwnXVwiXG4gICAgICAgICAgICAgICAgICBbcGFkZGluZ109XCJwYWRkaW5nXCJcbiAgICAgICAgICAgICAgICAgIFtjaGlsZE5vZGVOYW1lXT1cImNoaWxkTm9kZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkUGFkZGluZ109XCJjaGlsZFBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlPy50ZW1wbGF0ZVwiPjwvdGV0YS10cmVlLWl0ZW0+XG48L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgPHRldGEtdHJlZS1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhOyB0cmFja0J5OiB0cmFja1Jvd1wiXG4gICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIFtkZXB0aF09XCJpdGVtWydsZXZlbCddXCJcbiAgICAgICAgICAgICAgICAgIFtwYWRkaW5nXT1cInBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkTm9kZU5hbWVdPVwiY2hpbGROb2RlTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbY2hpbGRQYWRkaW5nXT1cImNoaWxkUGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGU/LnRlbXBsYXRlXCI+PC90ZXRhLXRyZWUtaXRlbT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RyZWUvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdHJlZS90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFDUyxTQUFTLEdBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMvRixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFVaEUsTUFBTSxPQUFPLGFBQWE7SUFvQ3hCLFlBQW9CLFFBQXFCLEVBQVUsSUFBdUIsRUFBVSxLQUFhO1FBQTdFLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQVE7UUExQnhGLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixrQkFBYSxHQUFHLFVBQVUsQ0FBQztRQUUzQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBUVgsWUFBTyxHQUNmLElBQUksWUFBWSxFQUFlLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBV3ZDLFdBQU0sR0FBRyxJQUFJLENBQUM7UUF3QnNCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUE0QjdELGFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFlLEVBQU8s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QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBR3BELFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBdUIvQyxZQUFZO3NCQURmLEtBQUs7Z0JBU3NDLFNBQVM7c0JBQXBELFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LCBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVRyZWVEYXRhfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS10cmVlLWRhdGEnO1xuaW1wb3J0IHtUcmVlU2VydmljZX0gZnJvbSAnLi4vdHJlZS5zZXJ2aWNlJztcbmltcG9ydCB7VGV0YVRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvdGV0YS10ZW1wbGF0ZS90ZXRhLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Nka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9zY3JvbGxpbmdcIjtcbmltcG9ydCB7Y29tYmluZUxhdGVzdH0gZnJvbSBcInJ4anNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1RyZWVTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgc2V0IGRhdGEoZGF0YTogSVRyZWVEYXRhW10pIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgQElucHV0KCkgcGFkZGluZyA9IDg7XG4gIEBJbnB1dCgpIGNoaWxkTm9kZU5hbWUgPSAnY2hpbGRyZW4nO1xuICBASW5wdXQoKSB2aXJ0dWFsOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWlnaHQgPSAyODtcblxuICBASW5wdXQoKVxuICBzZXQgb3Blbkl0ZW1zKGl0ZW1zOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX29wZW5JdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMuX3NlcnZpY2Uuc2V0T3Blbkl0ZW1zKGl0ZW1zKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBzZXJ2aWNlOiBFdmVudEVtaXR0ZXI8VHJlZVNlcnZpY2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFRyZWVTZXJ2aWNlPigpO1xuICBAT3V0cHV0KCkgb3Blbkl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCB7c3RhdGljOiBmYWxzZX0pIHZpcnR1YWxTY3JvbGw6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICBAQ29udGVudENoaWxkKFRldGFUZW1wbGF0ZURpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pXG4gIHRlbXBsYXRlOiBUZXRhVGVtcGxhdGVEaXJlY3RpdmU7XG4gIGNoaWxkUGFkZGluZzogYm9vbGVhbjtcbiAgZGlzcGxheURhdGE6IElUcmVlRGF0YVtdO1xuXG4gIHByaXZhdGUgX2RhdGE6IElUcmVlRGF0YVtdO1xuICBwcml2YXRlIF9vcGVuSXRlbXM6IElUcmVlRGF0YVtdO1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogVHJlZVNlcnZpY2UsIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge1xuICAgdGhpcy5fc2VydmljZS5vcGVuSXRlbXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgZmlsdGVyKChfKSA9PiB0aGlzLl9vcGVuSXRlbXMgIT09IF8pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChfOiBJVHJlZURhdGFbXSkgPT4ge1xuICAgICAgICB0aGlzLl9vcGVuSXRlbXMgPSBfO1xuICAgICAgICB0aGlzLmRpc3BsYXlEYXRhID0gdGhpcy5nZXREaXNwbGF5RGF0YSh0aGlzLl9kYXRhLCAwKTtcbiAgICAgICAgdGhpcy5vcGVuSXRlbXNDaGFuZ2UuZW1pdChfKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbXBhcmVJdGVtcyhmdW5jOiAoaXRlbTogSVRyZWVEYXRhKSA9PiBhbnkpIHtcbiAgICB0aGlzLl9zZXJ2aWNlLmNvbXBhcmVJdGVtcyA9IGZ1bmM7XG4gIH1cblxuICBnZXQgY29tcGFyZUl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLmNvbXBhcmVJdGVtcztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudHJlZScpIHByaXZhdGUgcmVhZG9ubHkgdHJlZUNsYXNzID0gdHJ1ZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZW1pdCh0aGlzLl9zZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlEYXRhID0gdGhpcy5nZXREaXNwbGF5RGF0YSh0aGlzLl9kYXRhLCAwKTtcbiAgICB0aGlzLmNoaWxkUGFkZGluZyA9IHRoaXMuaGFzQ2hpbGRyZW4odGhpcy5fZGF0YSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3NlcnZpY2Uuc2Nyb2xsVG9JbmRleC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKVxuICAgICkuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuXG4gICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsLnNjcm9sbFRvSW5kZXgoaW5kZXgsICdzbW9vdGgnKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgdHJhY2tSb3cgPSAoaW5kZXg6IG51bWJlciwgaXRlbTogSVRyZWVEYXRhKTogYW55ID0+IHtcbiAgICBpZiAodGhpcy5jb21wYXJlSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVJdGVtcyhpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG5cbiAgcHJpdmF0ZSBoYXNDaGlsZHJlbihkYXRhOiBJVHJlZURhdGFbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRhLnNvbWUoXG4gICAgICAoXykgPT4gX1t0aGlzLmNoaWxkTm9kZU5hbWVdPy5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheURhdGEoZGF0YTogSVRyZWVEYXRhW10sIGxldmVsOiBudW1iZXIpIHtcbiAgICBjb25zdCByZXN1bHQ6IElUcmVlRGF0YVtdID0gW107XG4gICAgZGF0YT8uZm9yRWFjaCgoaXRlbTogSVRyZWVEYXRhKSA9PiB7XG4gICAgICBpdGVtWydsZXZlbCddID0gbGV2ZWw7XG4gICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGROb2RlTmFtZV0/Lmxlbmd0aCA+IDBcbiAgICAgICAgJiYgdGhpcy5fb3Blbkl0ZW1zPy5maW5kKChvcGVuSXRlbSkgPT4gdGhpcy5jb21wYXJlSXRlbXMob3Blbkl0ZW0pID09PSB0aGlzLmNvbXBhcmVJdGVtcyhpdGVtKSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4udGhpcy5nZXREaXNwbGF5RGF0YShpdGVtW3RoaXMuY2hpbGROb2RlTmFtZV0sIGxldmVsICsgMSkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiIsIjxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgKm5nSWY9XCJ2aXJ0dWFsOyBlbHNlIGRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWJvZHktY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1TaXplXT1cImhlaWdodFwiPlxuICA8dGV0YS10cmVlLWl0ZW0gKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5RGF0YTt0ZW1wbGF0ZUNhY2hlU2l6ZTogMDsgdHJhY2tCeTogdHJhY2tSb3c7XCJcbiAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgW2RlcHRoXT1cIml0ZW1bJ2xldmVsJ11cIlxuICAgICAgICAgICAgICAgICAgW3BhZGRpbmddPVwicGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgICBbY2hpbGROb2RlTmFtZV09XCJjaGlsZE5vZGVOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtjaGlsZFBhZGRpbmddPVwiY2hpbGRQYWRkaW5nXCJcbiAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZT8udGVtcGxhdGVcIj48L3RldGEtdHJlZS1pdGVtPlxuPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG48bmctdGVtcGxhdGUgI2RlZmF1bHQ+XG4gIDx0ZXRhLXRyZWUtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5RGF0YTsgdHJhY2tCeTogdHJhY2tSb3dcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBbZGVwdGhdPVwiaXRlbVsnbGV2ZWwnXVwiXG4gICAgICAgICAgICAgICAgICBbcGFkZGluZ109XCJwYWRkaW5nXCJcbiAgICAgICAgICAgICAgICAgIFtjaGlsZE5vZGVOYW1lXT1cImNoaWxkTm9kZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkUGFkZGluZ109XCJjaGlsZFBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlPy50ZW1wbGF0ZVwiPjwvdGV0YS10cmVlLWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export class TreeService {
|
|
5
5
|
constructor() {
|
|
6
6
|
this._openItems = new BehaviorSubject([]);
|
|
7
|
+
this._scrollToIndex = new BehaviorSubject(0);
|
|
7
8
|
this.compareItems = (item) => item;
|
|
8
9
|
this.openItems = this._openItems.asObservable();
|
|
10
|
+
this.scrollToIndex = this._scrollToIndex.asObservable();
|
|
9
11
|
}
|
|
10
12
|
openItem(item) {
|
|
11
13
|
const newValue = this.addOrRemove(item, this._openItems.value);
|
|
@@ -14,6 +16,9 @@ export class TreeService {
|
|
|
14
16
|
setOpenItems(items) {
|
|
15
17
|
this._openItems.next(items);
|
|
16
18
|
}
|
|
19
|
+
scrollTo(index) {
|
|
20
|
+
this._scrollToIndex.next(index);
|
|
21
|
+
}
|
|
17
22
|
addOrRemove(needle, list) {
|
|
18
23
|
const found = list?.find((x) => this.compareItems(x) === this.compareItems(needle));
|
|
19
24
|
if (found) {
|
|
@@ -32,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
32
37
|
providedIn: 'root',
|
|
33
38
|
}]
|
|
34
39
|
}], ctorParameters: function () { return []; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90cmVlL3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxlQUFlLEVBQXNCLE1BQU0sTUFBTSxDQUFDOztBQUsxRCxNQUFNLE9BQU8sV0FBVztJQVN0QjtRQUxRLGVBQVUsR0FBaUMsSUFBSSxlQUFlLENBRXBFLEVBQUUsQ0FBQyxDQUFDO1FBQ0UsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQU94RCxpQkFBWSxHQUE2QixDQUFDLElBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBSmpFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUlELFFBQVEsQ0FBQyxJQUFlO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWtCO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRU8sV0FBVyxDQUFJLE1BQVMsRUFBRSxJQUFTO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxJQUFJLENBQ3RCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQzFELENBQUM7UUFDRixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FDMUQsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzt3R0F4Q1UsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUcmVlRGF0YSB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLXRyZWUtZGF0YSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XG4gIG9wZW5JdGVtczogT2JzZXJ2YWJsZTxJVHJlZURhdGFbXT47XG4gIHNjcm9sbFRvSW5kZXg6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBwcml2YXRlIF9vcGVuSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxJVHJlZURhdGFbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIElUcmVlRGF0YVtdXG4gID4oW10pO1xuICBwcml2YXRlIF9zY3JvbGxUb0luZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMub3Blbkl0ZW1zID0gdGhpcy5fb3Blbkl0ZW1zLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuc2Nyb2xsVG9JbmRleCA9IHRoaXMuX3Njcm9sbFRvSW5kZXguYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb21wYXJlSXRlbXM6IChpdGVtOiBJVHJlZURhdGEpID0+IGFueSA9IChpdGVtOiBJVHJlZURhdGEpID0+IGl0ZW07XG5cbiAgb3Blbkl0ZW0oaXRlbTogSVRyZWVEYXRhKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmFkZE9yUmVtb3ZlKGl0ZW0sIHRoaXMuX29wZW5JdGVtcy52YWx1ZSk7XG4gICAgdGhpcy5zZXRPcGVuSXRlbXMobmV3VmFsdWUpO1xuICB9XG5cbiAgc2V0T3Blbkl0ZW1zKGl0ZW1zOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX29wZW5JdGVtcy5uZXh0KGl0ZW1zKTtcbiAgfVxuXG4gIHNjcm9sbFRvKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9zY3JvbGxUb0luZGV4Lm5leHQoaW5kZXgpXG4gIH1cblxuICBwcml2YXRlIGFkZE9yUmVtb3ZlPEc+KG5lZWRsZTogRywgbGlzdDogR1tdKTogR1tdIHtcbiAgICBjb25zdCBmb3VuZCA9IGxpc3Q/LmZpbmQoXG4gICAgICAoeCkgPT4gdGhpcy5jb21wYXJlSXRlbXMoeCkgPT09IHRoaXMuY29tcGFyZUl0ZW1zKG5lZWRsZSlcbiAgICApO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgcmV0dXJuIGxpc3QuZmlsdGVyKFxuICAgICAgICAoeCkgPT4gdGhpcy5jb21wYXJlSXRlbXMoeCkgIT09IHRoaXMuY29tcGFyZUl0ZW1zKG5lZWRsZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbLi4ubGlzdCwgbmVlZGxlXTtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -8608,8 +8608,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
8608
8608
|
class TreeService {
|
|
8609
8609
|
constructor() {
|
|
8610
8610
|
this._openItems = new BehaviorSubject([]);
|
|
8611
|
+
this._scrollToIndex = new BehaviorSubject(0);
|
|
8611
8612
|
this.compareItems = (item) => item;
|
|
8612
8613
|
this.openItems = this._openItems.asObservable();
|
|
8614
|
+
this.scrollToIndex = this._scrollToIndex.asObservable();
|
|
8613
8615
|
}
|
|
8614
8616
|
openItem(item) {
|
|
8615
8617
|
const newValue = this.addOrRemove(item, this._openItems.value);
|
|
@@ -8618,6 +8620,9 @@ class TreeService {
|
|
|
8618
8620
|
setOpenItems(items) {
|
|
8619
8621
|
this._openItems.next(items);
|
|
8620
8622
|
}
|
|
8623
|
+
scrollTo(index) {
|
|
8624
|
+
this._scrollToIndex.next(index);
|
|
8625
|
+
}
|
|
8621
8626
|
addOrRemove(needle, list) {
|
|
8622
8627
|
const found = list === null || list === void 0 ? void 0 : list.find((x) => this.compareItems(x) === this.compareItems(needle));
|
|
8623
8628
|
if (found) {
|
|
@@ -8738,9 +8743,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
8738
8743
|
}] } });
|
|
8739
8744
|
|
|
8740
8745
|
class TreeComponent {
|
|
8741
|
-
constructor(_service, _cdr) {
|
|
8746
|
+
constructor(_service, _cdr, _zone) {
|
|
8742
8747
|
this._service = _service;
|
|
8743
8748
|
this._cdr = _cdr;
|
|
8749
|
+
this._zone = _zone;
|
|
8744
8750
|
this.padding = 8;
|
|
8745
8751
|
this.childNodeName = 'children';
|
|
8746
8752
|
this.height = 28;
|
|
@@ -8784,11 +8790,19 @@ class TreeComponent {
|
|
|
8784
8790
|
ngOnChanges(changes) {
|
|
8785
8791
|
this.displayData = this.getDisplayData(this._data, 0);
|
|
8786
8792
|
this.childPadding = this.hasChildren(this._data);
|
|
8787
|
-
//this._cdr.detectChanges();
|
|
8788
8793
|
}
|
|
8789
8794
|
ngOnDestroy() {
|
|
8790
8795
|
this._alive = false;
|
|
8791
8796
|
}
|
|
8797
|
+
ngAfterViewInit() {
|
|
8798
|
+
this._service.scrollToIndex.pipe(takeWhile(() => this._alive)).subscribe((index) => {
|
|
8799
|
+
this._zone.runOutsideAngular(() => {
|
|
8800
|
+
setTimeout(() => {
|
|
8801
|
+
this.virtualScroll.scrollToIndex(index, 'smooth');
|
|
8802
|
+
});
|
|
8803
|
+
});
|
|
8804
|
+
});
|
|
8805
|
+
}
|
|
8792
8806
|
hasChildren(data) {
|
|
8793
8807
|
return data.some((_) => { var _a; return ((_a = _[this.childNodeName]) === null || _a === void 0 ? void 0 : _a.length) > 0; });
|
|
8794
8808
|
}
|
|
@@ -8806,12 +8820,12 @@ class TreeComponent {
|
|
|
8806
8820
|
return result;
|
|
8807
8821
|
}
|
|
8808
8822
|
}
|
|
8809
|
-
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, deps: [{ token: TreeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
8810
|
-
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TreeComponent, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual; else default\"\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</cdk-virtual-scroll-viewport>\n<ng-template #default>\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</ng-template>\n", styles: [""], dependencies: [{ 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: 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: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8823
|
+
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, deps: [{ token: TreeService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
8824
|
+
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TreeComponent, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "virtualScroll", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual; else default\"\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</cdk-virtual-scroll-viewport>\n<ng-template #default>\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</ng-template>\n", styles: [""], dependencies: [{ 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: 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: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8811
8825
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, decorators: [{
|
|
8812
8826
|
type: Component,
|
|
8813
8827
|
args: [{ selector: 'teta-tree', providers: [TreeService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual; else default\"\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</cdk-virtual-scroll-viewport>\n<ng-template #default>\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n</ng-template>\n" }]
|
|
8814
|
-
}], ctorParameters: function () { return [{ type: TreeService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
8828
|
+
}], ctorParameters: function () { return [{ type: TreeService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { data: [{
|
|
8815
8829
|
type: Input
|
|
8816
8830
|
}], padding: [{
|
|
8817
8831
|
type: Input
|
|
@@ -8827,6 +8841,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
8827
8841
|
type: Output
|
|
8828
8842
|
}], openItemsChange: [{
|
|
8829
8843
|
type: Output
|
|
8844
|
+
}], virtualScroll: [{
|
|
8845
|
+
type: ViewChild,
|
|
8846
|
+
args: [CdkVirtualScrollViewport, { static: false }]
|
|
8830
8847
|
}], template: [{
|
|
8831
8848
|
type: ContentChild,
|
|
8832
8849
|
args: [TetaTemplateDirective, { static: true }]
|