@tetacom/ng-components 1.0.73 → 1.0.76

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.
@@ -0,0 +1,21 @@
1
+ import { ChangeDetectorRef, ElementRef } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ColorInputComponent implements ControlValueAccessor {
5
+ private _cdr;
6
+ disabled: boolean;
7
+ input: ElementRef;
8
+ value: string;
9
+ constructor(_cdr: ChangeDetectorRef);
10
+ onFocus(): void;
11
+ emitBlur(): void;
12
+ registerOnChange(fn: any): void;
13
+ registerOnTouched(fn: any): void;
14
+ setDisabledState?(isDisabled: boolean): void;
15
+ writeValue(input: string): void;
16
+ onChange(input: string): void;
17
+ onTouched(): void;
18
+ getHexColor(color: string): string;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColorInputComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColorInputComponent, "teta-color-input", never, { "disabled": "disabled"; }, {}, never, never, false>;
21
+ }
@@ -2,13 +2,14 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./input/input.component";
3
3
  import * as i2 from "./text-field/text-field.component";
4
4
  import * as i3 from "./form-group-title/form-group-title.component";
5
- import * as i4 from "@angular/common";
6
- import * as i5 from "../icon/icon.module";
7
- import * as i6 from "@angular/forms";
8
- import * as i7 from "../../directive/only-number/only-number.module";
9
- import * as i8 from "../../directive/hint/hint.module";
5
+ import * as i4 from "./color-input/color-input.component";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "../icon/icon.module";
8
+ import * as i7 from "@angular/forms";
9
+ import * as i8 from "../../directive/only-number/only-number.module";
10
+ import * as i9 from "../../directive/hint/hint.module";
10
11
  export declare class InputModule {
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<InputModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<InputModule, [typeof i1.InputComponent, typeof i2.TextFieldComponent, typeof i3.FormGroupTitleComponent], [typeof i4.CommonModule, typeof i5.IconModule, typeof i6.FormsModule, typeof i7.OnlyNumberModule, typeof i8.HintModule], [typeof i1.InputComponent, typeof i2.TextFieldComponent, typeof i3.FormGroupTitleComponent]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<InputModule, [typeof i1.InputComponent, typeof i2.TextFieldComponent, typeof i3.FormGroupTitleComponent, typeof i4.ColorInputComponent], [typeof i5.CommonModule, typeof i6.IconModule, typeof i7.FormsModule, typeof i8.OnlyNumberModule, typeof i9.HintModule], [typeof i1.InputComponent, typeof i2.TextFieldComponent, typeof i3.FormGroupTitleComponent, typeof i4.ColorInputComponent]>;
13
14
  static ɵinj: i0.ɵɵInjectorDeclaration<InputModule>;
14
15
  }
@@ -1,4 +1,5 @@
1
1
  export * from './input.module';
2
+ export * from './color-input/color-input.component';
2
3
  export * from './input/input.component';
3
4
  export * from './text-field/text-field.component';
4
5
  export * from './form-group-title/form-group-title.component';
@@ -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>;
@@ -0,0 +1,73 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, HostListener, Input, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ export class ColorInputComponent {
6
+ constructor(_cdr) {
7
+ this._cdr = _cdr;
8
+ this.disabled = false;
9
+ this.value = '';
10
+ }
11
+ onFocus() {
12
+ if (this.disabled) {
13
+ return;
14
+ }
15
+ this.input.nativeElement.focus();
16
+ }
17
+ emitBlur() {
18
+ this.onTouched();
19
+ }
20
+ registerOnChange(fn) {
21
+ this.onChange = fn;
22
+ }
23
+ registerOnTouched(fn) {
24
+ this.onTouched = fn;
25
+ }
26
+ setDisabledState(isDisabled) {
27
+ this.disabled = isDisabled;
28
+ this._cdr.markForCheck();
29
+ }
30
+ writeValue(input) {
31
+ this.value = input;
32
+ this._cdr.detectChanges();
33
+ }
34
+ onChange(input) {
35
+ }
36
+ onTouched() {
37
+ }
38
+ getHexColor(color) {
39
+ if (color?.startsWith('rgb')) {
40
+ const value = color.substring(color.indexOf('(') + 1, color.lastIndexOf(')'));
41
+ const colorArray = value.split(',');
42
+ return `#${parseInt(colorArray[0], 10).toString(16)}${parseInt(colorArray[1], 10).toString(16)}${parseInt(colorArray[2], 10).toString(16)}`;
43
+ }
44
+ return color;
45
+ }
46
+ }
47
+ ColorInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
48
+ ColorInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ColorInputComponent, selector: "teta-color-input", inputs: { disabled: "disabled" }, host: { listeners: { "click": "onFocus()" } }, providers: [
49
+ {
50
+ provide: NG_VALUE_ACCESSOR,
51
+ useExisting: forwardRef(() => ColorInputComponent),
52
+ multi: true,
53
+ },
54
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input type='color'\n #input\n [disabled]='disabled'\n (blur)='emitBlur();'\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event;onChange($event)\"\n [ngModelOptions]='{updateOn: \"blur\"}'/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorInputComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'teta-color-input', providers: [
58
+ {
59
+ provide: NG_VALUE_ACCESSOR,
60
+ useExisting: forwardRef(() => ColorInputComponent),
61
+ multi: true,
62
+ },
63
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<input type='color'\n #input\n [disabled]='disabled'\n (blur)='emitBlur();'\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event;onChange($event)\"\n [ngModelOptions]='{updateOn: \"blur\"}'/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"] }]
64
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
65
+ type: Input
66
+ }], input: [{
67
+ type: ViewChild,
68
+ args: ['input', { static: false }]
69
+ }], onFocus: [{
70
+ type: HostListener,
71
+ args: ['click']
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9pbnB1dC9jb2xvci1pbnB1dC9jb2xvci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2lucHV0L2NvbG9yLWlucHV0L2NvbG9yLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDRyxZQUFZLEVBQ3pCLEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFldkUsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFvQixJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUpsQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBRyxFQUFFLENBQUM7SUFHWCxDQUFDO0lBRXNCLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtJQUN0QixDQUFDO0lBRUQsU0FBUztJQUNULENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FDM0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ3RCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQ3ZCLENBQUM7WUFDRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQzVELFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDYixFQUFFLENBQ0gsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUM3RDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Z0hBeERVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDRIQVRuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwSEN0Qkgsd1BBT0E7MkZEa0JhLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUMrQixLQUFLO3NCQUF6QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTVosT0FBTztzQkFBN0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtY29sb3ItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2xvci1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9ySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbG9ySW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogZmFsc2V9KSBpbnB1dDogRWxlbWVudFJlZjtcbiAgdmFsdWUgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIG9uRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBlbWl0Qmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShpbnB1dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IGlucHV0O1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkNoYW5nZShpbnB1dDogc3RyaW5nKTogdm9pZCB7XG4gIH1cblxuICBvblRvdWNoZWQoKTogdm9pZCB7XG4gIH1cblxuICBnZXRIZXhDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgaWYgKGNvbG9yPy5zdGFydHNXaXRoKCdyZ2InKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBjb2xvci5zdWJzdHJpbmcoXG4gICAgICAgIGNvbG9yLmluZGV4T2YoJygnKSArIDEsXG4gICAgICAgIGNvbG9yLmxhc3RJbmRleE9mKCcpJylcbiAgICAgICk7XG4gICAgICBjb25zdCBjb2xvckFycmF5ID0gdmFsdWUuc3BsaXQoJywnKTtcbiAgICAgIHJldHVybiBgIyR7cGFyc2VJbnQoY29sb3JBcnJheVswXSwgMTApLnRvU3RyaW5nKDE2KX0ke3BhcnNlSW50KFxuICAgICAgICBjb2xvckFycmF5WzFdLFxuICAgICAgICAxMFxuICAgICAgKS50b1N0cmluZygxNil9JHtwYXJzZUludChjb2xvckFycmF5WzJdLCAxMCkudG9TdHJpbmcoMTYpfWA7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxufVxuIiwiPGlucHV0IHR5cGU9J2NvbG9yJ1xuICAgICAgICNpbnB1dFxuICAgICAgIFtkaXNhYmxlZF09J2Rpc2FibGVkJ1xuICAgICAgIChibHVyKT0nZW1pdEJsdXIoKTsnXG4gICAgICAgW25nTW9kZWxdPVwiZ2V0SGV4Q29sb3IodmFsdWUpXCJcbiAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZSA9ICRldmVudDtvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICBbbmdNb2RlbE9wdGlvbnNdPSd7dXBkYXRlT246IFwiYmx1clwifScvPlxuIl19
@@ -7,18 +7,19 @@ import { FormsModule } from '@angular/forms';
7
7
  import { OnlyNumberModule } from '../../directive/only-number/only-number.module';
8
8
  import { FormGroupTitleComponent } from './form-group-title/form-group-title.component';
9
9
  import { HintModule } from '../../directive/hint/hint.module';
10
+ import { ColorInputComponent } from './color-input/color-input.component';
10
11
  import * as i0 from "@angular/core";
11
12
  export class InputModule {
12
13
  }
13
14
  InputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: InputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- InputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: InputModule, declarations: [InputComponent, TextFieldComponent, FormGroupTitleComponent], imports: [CommonModule, IconModule, FormsModule, OnlyNumberModule, HintModule], exports: [InputComponent, TextFieldComponent, FormGroupTitleComponent] });
15
+ InputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: InputModule, declarations: [InputComponent, TextFieldComponent, FormGroupTitleComponent, ColorInputComponent], imports: [CommonModule, IconModule, FormsModule, OnlyNumberModule, HintModule], exports: [InputComponent, TextFieldComponent, FormGroupTitleComponent, ColorInputComponent] });
15
16
  InputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: InputModule, imports: [CommonModule, IconModule, FormsModule, OnlyNumberModule, HintModule] });
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: InputModule, decorators: [{
17
18
  type: NgModule,
18
19
  args: [{
19
- declarations: [InputComponent, TextFieldComponent, FormGroupTitleComponent],
20
- exports: [InputComponent, TextFieldComponent, FormGroupTitleComponent],
20
+ declarations: [InputComponent, TextFieldComponent, FormGroupTitleComponent, ColorInputComponent],
21
+ exports: [InputComponent, TextFieldComponent, FormGroupTitleComponent, ColorInputComponent],
21
22
  imports: [CommonModule, IconModule, FormsModule, OnlyNumberModule, HintModule],
22
23
  }]
23
24
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9pbnB1dC9pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOztBQU81RCxNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQUpQLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsYUFFaEUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxhQURuRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCO3lHQUcxRCxXQUFXLFlBRlosWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVTsyRkFFbEUsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLENBQUM7b0JBQzNFLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDO2lCQUMvRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPbmx5TnVtYmVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL29ubHktbnVtYmVyL29ubHktbnVtYmVyLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1ncm91cC10aXRsZS9mb3JtLWdyb3VwLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQge0hpbnRNb2R1bGV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9oaW50L2hpbnQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbSW5wdXRDb21wb25lbnQsIFRleHRGaWVsZENvbXBvbmVudCwgRm9ybUdyb3VwVGl0bGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbSW5wdXRDb21wb25lbnQsIFRleHRGaWVsZENvbXBvbmVudCwgRm9ybUdyb3VwVGl0bGVDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uTW9kdWxlLCBGb3Jtc01vZHVsZSwgT25seU51bWJlck1vZHVsZSwgSGludE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0TW9kdWxlIHt9XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9pbnB1dC9pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQU8xRSxNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQUpQLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsYUFFckYsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxhQURuRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CO3lHQUcvRSxXQUFXLFlBRlosWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVTsyRkFFbEUsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7b0JBQ2hHLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDM0YsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDO2lCQUMvRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPbmx5TnVtYmVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL29ubHktbnVtYmVyL29ubHktbnVtYmVyLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1ncm91cC10aXRsZS9mb3JtLWdyb3VwLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQge0hpbnRNb2R1bGV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9oaW50L2hpbnQubW9kdWxlJztcbmltcG9ydCB7IENvbG9ySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLWlucHV0L2NvbG9yLWlucHV0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0lucHV0Q29tcG9uZW50LCBUZXh0RmllbGRDb21wb25lbnQsIEZvcm1Hcm91cFRpdGxlQ29tcG9uZW50LCBDb2xvcklucHV0Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW0lucHV0Q29tcG9uZW50LCBUZXh0RmllbGRDb21wb25lbnQsIEZvcm1Hcm91cFRpdGxlQ29tcG9uZW50LCBDb2xvcklucHV0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE9ubHlOdW1iZXJNb2R1bGUsIEhpbnRNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dE1vZHVsZSB7fVxuIl19
@@ -1,5 +1,6 @@
1
1
  export * from './input.module';
2
+ export * from './color-input/color-input.component';
2
3
  export * from './input/input.component';
3
4
  export * from './text-field/text-field.component';
4
5
  export * from './form-group-title/form-group-title.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvaW5wdXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1ncm91cC10aXRsZS9mb3JtLWdyb3VwLXRpdGxlLmNvbXBvbmVudCc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvaW5wdXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lucHV0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWlucHV0L2NvbG9yLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWdyb3VwLXRpdGxlL2Zvcm0tZ3JvdXAtdGl0bGUuY29tcG9uZW50JztcbiJdfQ==
@@ -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;
@@ -28,6 +30,7 @@ export class TreeComponent {
28
30
  .pipe(takeWhile((_) => this._alive), filter((_) => this._openItems !== _))
29
31
  .subscribe((_) => {
30
32
  this._openItems = _;
33
+ this.displayData = this.getDisplayData(this._data, 0);
31
34
  this.openItemsChange.emit(_);
32
35
  });
33
36
  }
@@ -53,13 +56,21 @@ export class TreeComponent {
53
56
  ngOnChanges(changes) {
54
57
  this.displayData = this.getDisplayData(this._data, 0);
55
58
  this.childPadding = this.hasChildren(this._data);
56
- this._cdr.detectChanges();
57
59
  }
58
60
  ngOnDestroy() {
59
61
  this._alive = false;
60
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
+ }
61
72
  hasChildren(data) {
62
- return data.some((_) => _[this.childNodeName]?.length > 0);
73
+ return data?.some((_) => _[this.childNodeName]?.length > 0);
63
74
  }
64
75
  getDisplayData(data, level) {
65
76
  const result = [];
@@ -74,12 +85,12 @@ export class TreeComponent {
74
85
  return result;
75
86
  }
76
87
  }
77
- 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 });
78
- 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\"\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 });
79
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TreeComponent, decorators: [{
80
91
  type: Component,
81
- 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\"\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" }]
82
- }], ctorParameters: function () { return [{ type: i1.TreeService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
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" }]
93
+ }], ctorParameters: function () { return [{ type: i1.TreeService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { data: [{
83
94
  type: Input
84
95
  }], padding: [{
85
96
  type: Input
@@ -95,6 +106,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
95
106
  type: Output
96
107
  }], openItemsChange: [{
97
108
  type: Output
109
+ }], virtualScroll: [{
110
+ type: ViewChild,
111
+ args: [CdkVirtualScrollViewport, { static: false }]
98
112
  }], template: [{
99
113
  type: ContentChild,
100
114
  args: [TetaTemplateDirective, { static: true }]
@@ -104,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
104
118
  type: HostBinding,
105
119
  args: ['class.tree']
106
120
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RyZWUvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdHJlZS90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDL0YsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU2pELE1BQU0sT0FBTyxhQUFhO0lBa0N4QixZQUFvQixRQUFxQixFQUFVLElBQXVCO1FBQXRELGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXhCakUsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGtCQUFhLEdBQUcsVUFBVSxDQUFDO1FBRTNCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFRWCxZQUFPLEdBQ2YsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUN4QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTdkMsV0FBTSxHQUFHLElBQUksQ0FBQztRQXVCc0IsY0FBUyxHQUFHLElBQUksQ0FBQztRQWdCN0QsYUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLElBQWUsRUFBTyxFQUFFO1lBQ2pELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hDO1lB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Q0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MEdBaEdVLGFBQWE7OEZBQWIsYUFBYSw2VUFIYixDQUFDLFdBQVcsQ0FBQyxnRUE0QlYscUJBQXFCLG1GQ25EckMsdWtDQXNCQTsyRkRJYSxhQUFhO2tCQVB6QixTQUFTOytCQUNFLFdBQVcsYUFHVixDQUFDLFdBQVcsQ0FBQyxtQkFDUCx1QkFBdUIsQ0FBQyxNQUFNO2tJQUkzQyxJQUFJO3NCQURQLEtBQUs7Z0JBU0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHRixTQUFTO3NCQURaLEtBQUs7Z0JBTUksT0FBTztzQkFBaEIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUdQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBc0IvQyxZQUFZO3NCQURmLEtBQUs7Z0JBU3NDLFNBQVM7c0JBQXBELFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJVHJlZURhdGF9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLXRyZWUtZGF0YSc7XG5pbXBvcnQge1RyZWVTZXJ2aWNlfSBmcm9tICcuLi90cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHtUZXRhVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS90ZXRhLXRlbXBsYXRlL3RldGEtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlV2hpbGV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1RyZWVTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgc2V0IGRhdGEoZGF0YTogSVRyZWVEYXRhW10pIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgQElucHV0KCkgcGFkZGluZyA9IDg7XG4gIEBJbnB1dCgpIGNoaWxkTm9kZU5hbWUgPSAnY2hpbGRyZW4nO1xuICBASW5wdXQoKSB2aXJ0dWFsOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWlnaHQgPSAyODtcblxuICBASW5wdXQoKVxuICBzZXQgb3Blbkl0ZW1zKGl0ZW1zOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX29wZW5JdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMuX3NlcnZpY2Uuc2V0T3Blbkl0ZW1zKGl0ZW1zKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBzZXJ2aWNlOiBFdmVudEVtaXR0ZXI8VHJlZVNlcnZpY2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFRyZWVTZXJ2aWNlPigpO1xuICBAT3V0cHV0KCkgb3Blbkl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBDb250ZW50Q2hpbGQoVGV0YVRlbXBsYXRlRGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSlcbiAgdGVtcGxhdGU6IFRldGFUZW1wbGF0ZURpcmVjdGl2ZTtcbiAgY2hpbGRQYWRkaW5nOiBib29sZWFuO1xuICBkaXNwbGF5RGF0YTogSVRyZWVEYXRhW107XG5cbiAgcHJpdmF0ZSBfZGF0YTogSVRyZWVEYXRhW107XG4gIHByaXZhdGUgX29wZW5JdGVtczogSVRyZWVEYXRhW107XG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlOiBUcmVlU2VydmljZSwgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuX3NlcnZpY2Uub3Blbkl0ZW1zXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIGZpbHRlcigoXykgPT4gdGhpcy5fb3Blbkl0ZW1zICE9PSBfKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICB0aGlzLl9vcGVuSXRlbXMgPSBfO1xuICAgICAgICB0aGlzLm9wZW5JdGVtc0NoYW5nZS5lbWl0KF8pO1xuICAgICAgfSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgY29tcGFyZUl0ZW1zKGZ1bmM6IChpdGVtOiBJVHJlZURhdGEpID0+IGFueSkge1xuICAgIHRoaXMuX3NlcnZpY2UuY29tcGFyZUl0ZW1zID0gZnVuYztcbiAgfVxuXG4gIGdldCBjb21wYXJlSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2UuY29tcGFyZUl0ZW1zO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50cmVlJykgcHJpdmF0ZSByZWFkb25seSB0cmVlQ2xhc3MgPSB0cnVlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5lbWl0KHRoaXMuX3NlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheURhdGEgPSB0aGlzLmdldERpc3BsYXlEYXRhKHRoaXMuX2RhdGEsIDApO1xuICAgIHRoaXMuY2hpbGRQYWRkaW5nID0gdGhpcy5oYXNDaGlsZHJlbih0aGlzLl9kYXRhKTtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHRyYWNrUm93ID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IElUcmVlRGF0YSk6IGFueSA9PiB7XG4gICAgaWYgKHRoaXMuY29tcGFyZUl0ZW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSXRlbXMoaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiBpbmRleDtcbiAgfTtcblxuXG4gIHByaXZhdGUgaGFzQ2hpbGRyZW4oZGF0YTogSVRyZWVEYXRhW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0YS5zb21lKFxuICAgICAgKF8pID0+IF9bdGhpcy5jaGlsZE5vZGVOYW1lXT8ubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldERpc3BsYXlEYXRhKGRhdGE6IElUcmVlRGF0YVtdLCBsZXZlbDogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVzdWx0OiBJVHJlZURhdGFbXSA9IFtdO1xuICAgIGRhdGE/LmZvckVhY2goKGl0ZW06IElUcmVlRGF0YSkgPT4ge1xuICAgICAgaXRlbVsnbGV2ZWwnXSA9IGxldmVsO1xuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICBpZiAoaXRlbVt0aGlzLmNoaWxkTm9kZU5hbWVdPy5sZW5ndGggPiAwXG4gICAgICAgICYmIHRoaXMuX29wZW5JdGVtcz8uZmluZCgob3Blbkl0ZW0pID0+IHRoaXMuY29tcGFyZUl0ZW1zKG9wZW5JdGVtKSA9PT0gdGhpcy5jb21wYXJlSXRlbXMoaXRlbSkpKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuZ2V0RGlzcGxheURhdGEoaXRlbVt0aGlzLmNoaWxkTm9kZU5hbWVdLCBsZXZlbCArIDEpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iLCI8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICpuZ0lmPVwidmlydHVhbDsgZWxzZSBkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1ib2R5LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtU2l6ZV09XCJoZWlnaHRcIj5cbiAgPHRldGEtdHJlZS1pdGVtICpjZGtWaXJ0dWFsRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheURhdGE7dGVtcGxhdGVDYWNoZVNpemU6IDA7IHRyYWNrQnk6IHRyYWNrUm93O1wiXG4gICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIFtkZXB0aF09XCJpdGVtWydsZXZlbCddXCJcbiAgICAgICAgICAgICAgICAgIFtwYWRkaW5nXT1cInBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkTm9kZU5hbWVdPVwiY2hpbGROb2RlTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbY2hpbGRQYWRkaW5nXT1cImNoaWxkUGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGU/LnRlbXBsYXRlXCI+PC90ZXRhLXRyZWUtaXRlbT5cbjwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0PlxuICA8dGV0YS10cmVlLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheURhdGFcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBbZGVwdGhdPVwiaXRlbVsnbGV2ZWwnXVwiXG4gICAgICAgICAgICAgICAgICBbcGFkZGluZ109XCJwYWRkaW5nXCJcbiAgICAgICAgICAgICAgICAgIFtjaGlsZE5vZGVOYW1lXT1cImNoaWxkTm9kZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkUGFkZGluZ109XCJjaGlsZFBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlPy50ZW1wbGF0ZVwiPjwvdGV0YS10cmVlLWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RyZWUvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdHJlZS90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFDUyxTQUFTLEdBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMvRixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFVaEUsTUFBTSxPQUFPLGFBQWE7SUFvQ3hCLFlBQW9CLFFBQXFCLEVBQVUsSUFBdUIsRUFBVSxLQUFhO1FBQTdFLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQVE7UUExQnhGLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixrQkFBYSxHQUFHLFVBQVUsQ0FBQztRQUUzQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBUVgsWUFBTyxHQUNmLElBQUksWUFBWSxFQUFlLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBV3ZDLFdBQU0sR0FBRyxJQUFJLENBQUM7UUF3QnNCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUE0QjdELGFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFlLEVBQU8s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QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBR3BELFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBdUIvQyxZQUFZO3NCQURmLEtBQUs7Z0JBU3NDLFNBQVM7c0JBQXBELFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LCBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVRyZWVEYXRhfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS10cmVlLWRhdGEnO1xuaW1wb3J0IHtUcmVlU2VydmljZX0gZnJvbSAnLi4vdHJlZS5zZXJ2aWNlJztcbmltcG9ydCB7VGV0YVRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvdGV0YS10ZW1wbGF0ZS90ZXRhLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Nka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9zY3JvbGxpbmdcIjtcbmltcG9ydCB7Y29tYmluZUxhdGVzdH0gZnJvbSBcInJ4anNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1RyZWVTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgc2V0IGRhdGEoZGF0YTogSVRyZWVEYXRhW10pIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgQElucHV0KCkgcGFkZGluZyA9IDg7XG4gIEBJbnB1dCgpIGNoaWxkTm9kZU5hbWUgPSAnY2hpbGRyZW4nO1xuICBASW5wdXQoKSB2aXJ0dWFsOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWlnaHQgPSAyODtcblxuICBASW5wdXQoKVxuICBzZXQgb3Blbkl0ZW1zKGl0ZW1zOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX29wZW5JdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMuX3NlcnZpY2Uuc2V0T3Blbkl0ZW1zKGl0ZW1zKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBzZXJ2aWNlOiBFdmVudEVtaXR0ZXI8VHJlZVNlcnZpY2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFRyZWVTZXJ2aWNlPigpO1xuICBAT3V0cHV0KCkgb3Blbkl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCB7c3RhdGljOiBmYWxzZX0pIHZpcnR1YWxTY3JvbGw6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICBAQ29udGVudENoaWxkKFRldGFUZW1wbGF0ZURpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pXG4gIHRlbXBsYXRlOiBUZXRhVGVtcGxhdGVEaXJlY3RpdmU7XG4gIGNoaWxkUGFkZGluZzogYm9vbGVhbjtcbiAgZGlzcGxheURhdGE6IElUcmVlRGF0YVtdO1xuXG4gIHByaXZhdGUgX2RhdGE6IElUcmVlRGF0YVtdO1xuICBwcml2YXRlIF9vcGVuSXRlbXM6IElUcmVlRGF0YVtdO1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogVHJlZVNlcnZpY2UsIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge1xuICAgdGhpcy5fc2VydmljZS5vcGVuSXRlbXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgZmlsdGVyKChfKSA9PiB0aGlzLl9vcGVuSXRlbXMgIT09IF8pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChfOiBJVHJlZURhdGFbXSkgPT4ge1xuICAgICAgICB0aGlzLl9vcGVuSXRlbXMgPSBfO1xuICAgICAgICB0aGlzLmRpc3BsYXlEYXRhID0gdGhpcy5nZXREaXNwbGF5RGF0YSh0aGlzLl9kYXRhLCAwKTtcbiAgICAgICAgdGhpcy5vcGVuSXRlbXNDaGFuZ2UuZW1pdChfKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbXBhcmVJdGVtcyhmdW5jOiAoaXRlbTogSVRyZWVEYXRhKSA9PiBhbnkpIHtcbiAgICB0aGlzLl9zZXJ2aWNlLmNvbXBhcmVJdGVtcyA9IGZ1bmM7XG4gIH1cblxuICBnZXQgY29tcGFyZUl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLmNvbXBhcmVJdGVtcztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudHJlZScpIHByaXZhdGUgcmVhZG9ubHkgdHJlZUNsYXNzID0gdHJ1ZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZW1pdCh0aGlzLl9zZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlEYXRhID0gdGhpcy5nZXREaXNwbGF5RGF0YSh0aGlzLl9kYXRhLCAwKTtcbiAgICB0aGlzLmNoaWxkUGFkZGluZyA9IHRoaXMuaGFzQ2hpbGRyZW4odGhpcy5fZGF0YSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3NlcnZpY2Uuc2Nyb2xsVG9JbmRleC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKVxuICAgICkuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuXG4gICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsPy5zY3JvbGxUb0luZGV4KGluZGV4LCAnc21vb3RoJylcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHRyYWNrUm93ID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IElUcmVlRGF0YSk6IGFueSA9PiB7XG4gICAgaWYgKHRoaXMuY29tcGFyZUl0ZW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSXRlbXMoaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiBpbmRleDtcbiAgfTtcblxuXG4gIHByaXZhdGUgaGFzQ2hpbGRyZW4oZGF0YTogSVRyZWVEYXRhW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0YT8uc29tZShcbiAgICAgIChfKSA9PiBfW3RoaXMuY2hpbGROb2RlTmFtZV0/Lmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5RGF0YShkYXRhOiBJVHJlZURhdGFbXSwgbGV2ZWw6IG51bWJlcikge1xuICAgIGNvbnN0IHJlc3VsdDogSVRyZWVEYXRhW10gPSBbXTtcbiAgICBkYXRhPy5mb3JFYWNoKChpdGVtOiBJVHJlZURhdGEpID0+IHtcbiAgICAgIGl0ZW1bJ2xldmVsJ10gPSBsZXZlbDtcbiAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZE5vZGVOYW1lXT8ubGVuZ3RoID4gMFxuICAgICAgICAmJiB0aGlzLl9vcGVuSXRlbXM/LmZpbmQoKG9wZW5JdGVtKSA9PiB0aGlzLmNvbXBhcmVJdGVtcyhvcGVuSXRlbSkgPT09IHRoaXMuY29tcGFyZUl0ZW1zKGl0ZW0pKSkge1xuICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLmdldERpc3BsYXlEYXRhKGl0ZW1bdGhpcy5jaGlsZE5vZGVOYW1lXSwgbGV2ZWwgKyAxKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIiwiPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCAqbmdJZj1cInZpcnR1YWw7IGVsc2UgZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtYm9keS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVNpemVdPVwiaGVpZ2h0XCI+XG4gIDx0ZXRhLXRyZWUtaXRlbSAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhO3RlbXBsYXRlQ2FjaGVTaXplOiAwOyB0cmFja0J5OiB0cmFja1JvdztcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBbZGVwdGhdPVwiaXRlbVsnbGV2ZWwnXVwiXG4gICAgICAgICAgICAgICAgICBbcGFkZGluZ109XCJwYWRkaW5nXCJcbiAgICAgICAgICAgICAgICAgIFtjaGlsZE5vZGVOYW1lXT1cImNoaWxkTm9kZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkUGFkZGluZ109XCJjaGlsZFBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlPy50ZW1wbGF0ZVwiPjwvdGV0YS10cmVlLWl0ZW0+XG48L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgPHRldGEtdHJlZS1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlEYXRhOyB0cmFja0J5OiB0cmFja1Jvd1wiXG4gICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIFtkZXB0aF09XCJpdGVtWydsZXZlbCddXCJcbiAgICAgICAgICAgICAgICAgIFtwYWRkaW5nXT1cInBhZGRpbmdcIlxuICAgICAgICAgICAgICAgICAgW2NoaWxkTm9kZU5hbWVdPVwiY2hpbGROb2RlTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbY2hpbGRQYWRkaW5nXT1cImNoaWxkUGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGU/LnRlbXBsYXRlXCI+PC90ZXRhLXRyZWUtaXRlbT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90cmVlL3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxXQUFXO0lBTXRCO1FBSlEsZUFBVSxHQUFpQyxJQUFJLGVBQWUsQ0FFcEUsRUFBRSxDQUFDLENBQUM7UUFNTixpQkFBWSxHQUE2QixDQUFDLElBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBSGpFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBSUQsUUFBUSxDQUFDLElBQWU7UUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBa0I7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFdBQVcsQ0FBSSxNQUFTLEVBQUUsSUFBUztRQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUN0QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUMxRCxDQUFDO1FBQ0YsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQzFELENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7d0dBaENVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVHJlZURhdGEgfSBmcm9tICcuLi8uLi9jb21tb24vY29udHJhY3QvaS10cmVlLWRhdGEnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XG4gIG9wZW5JdGVtczogT2JzZXJ2YWJsZTxJVHJlZURhdGFbXT47XG4gIHByaXZhdGUgX29wZW5JdGVtczogQmVoYXZpb3JTdWJqZWN0PElUcmVlRGF0YVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgSVRyZWVEYXRhW11cbiAgPihbXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5vcGVuSXRlbXMgPSB0aGlzLl9vcGVuSXRlbXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb21wYXJlSXRlbXM6IChpdGVtOiBJVHJlZURhdGEpID0+IGFueSA9IChpdGVtOiBJVHJlZURhdGEpID0+IGl0ZW07XG5cbiAgb3Blbkl0ZW0oaXRlbTogSVRyZWVEYXRhKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmFkZE9yUmVtb3ZlKGl0ZW0sIHRoaXMuX29wZW5JdGVtcy52YWx1ZSk7XG4gICAgdGhpcy5zZXRPcGVuSXRlbXMobmV3VmFsdWUpO1xuICB9XG5cbiAgc2V0T3Blbkl0ZW1zKGl0ZW1zOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX29wZW5JdGVtcy5uZXh0KGl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkT3JSZW1vdmU8Rz4obmVlZGxlOiBHLCBsaXN0OiBHW10pOiBHW10ge1xuICAgIGNvbnN0IGZvdW5kID0gbGlzdD8uZmluZChcbiAgICAgICh4KSA9PiB0aGlzLmNvbXBhcmVJdGVtcyh4KSA9PT0gdGhpcy5jb21wYXJlSXRlbXMobmVlZGxlKVxuICAgICk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICByZXR1cm4gbGlzdC5maWx0ZXIoXG4gICAgICAgICh4KSA9PiB0aGlzLmNvbXBhcmVJdGVtcyh4KSAhPT0gdGhpcy5jb21wYXJlSXRlbXMobmVlZGxlKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFsuLi5saXN0LCBuZWVkbGVdO1xuICAgIH1cbiAgfVxufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90cmVlL3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxlQUFlLEVBQXNCLE1BQU0sTUFBTSxDQUFDOztBQUsxRCxNQUFNLE9BQU8sV0FBVztJQVN0QjtRQUxRLGVBQVUsR0FBaUMsSUFBSSxlQUFlLENBRXBFLEVBQUUsQ0FBQyxDQUFDO1FBQ0UsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQU94RCxpQkFBWSxHQUE2QixDQUFDLElBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBSmpFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUlELFFBQVEsQ0FBQyxJQUFlO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWtCO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRU8sV0FBVyxDQUFJLE1BQVMsRUFBRSxJQUFTO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxJQUFJLENBQ3RCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQzFELENBQUM7UUFDRixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FDMUQsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzt3R0F4Q1UsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUcmVlRGF0YSB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLXRyZWUtZGF0YSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XG4gIG9wZW5JdGVtczogT2JzZXJ2YWJsZTxJVHJlZURhdGFbXT47XG4gIHNjcm9sbFRvSW5kZXg6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBwcml2YXRlIF9vcGVuSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxJVHJlZURhdGFbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIElUcmVlRGF0YVtdXG4gID4oW10pO1xuICBwcml2YXRlIF9zY3JvbGxUb0luZGV4ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMub3Blbkl0ZW1zID0gdGhpcy5fb3Blbkl0ZW1zLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuc2Nyb2xsVG9JbmRleCA9IHRoaXMuX3Njcm9sbFRvSW5kZXguYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb21wYXJlSXRlbXM6IChpdGVtOiBJVHJlZURhdGEpID0+IGFueSA9IChpdGVtOiBJVHJlZURhdGEpID0+IGl0ZW07XG5cbiAgb3Blbkl0ZW0oaXRlbTogSVRyZWVEYXRhKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmFkZE9yUmVtb3ZlKGl0ZW0sIHRoaXMuX29wZW5JdGVtcy52YWx1ZSk7XG4gICAgdGhpcy5zZXRPcGVuSXRlbXMobmV3VmFsdWUpO1xuICB9XG5cbiAgc2V0T3Blbkl0ZW1zKGl0ZW1zOiBJVHJlZURhdGFbXSkge1xuICAgIHRoaXMuX29wZW5JdGVtcy5uZXh0KGl0ZW1zKTtcbiAgfVxuXG4gIHNjcm9sbFRvKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9zY3JvbGxUb0luZGV4Lm5leHQoaW5kZXgpXG4gIH1cblxuICBwcml2YXRlIGFkZE9yUmVtb3ZlPEc+KG5lZWRsZTogRywgbGlzdDogR1tdKTogR1tdIHtcbiAgICBjb25zdCBmb3VuZCA9IGxpc3Q/LmZpbmQoXG4gICAgICAoeCkgPT4gdGhpcy5jb21wYXJlSXRlbXMoeCkgPT09IHRoaXMuY29tcGFyZUl0ZW1zKG5lZWRsZSlcbiAgICApO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgcmV0dXJuIGxpc3QuZmlsdGVyKFxuICAgICAgICAoeCkgPT4gdGhpcy5jb21wYXJlSXRlbXMoeCkgIT09IHRoaXMuY29tcGFyZUl0ZW1zKG5lZWRsZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbLi4ubGlzdCwgbmVlZGxlXTtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=