@tetacom/ng-components 1.1.36 → 1.1.38

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.
@@ -1,7 +1,13 @@
1
- import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterContentChecked, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { Observable } from 'rxjs';
2
3
  import * as i0 from "@angular/core";
3
- export declare class ScrollableComponent implements OnInit, OnDestroy {
4
- private _cdr;
4
+ type ScrollDimensions = {
5
+ clientHeight: number;
6
+ clientWidth: number;
7
+ scrollHeight: number;
8
+ scrollWidth: number;
9
+ };
10
+ export declare class ScrollableComponent implements OnInit, OnDestroy, AfterContentChecked {
5
11
  private _scrollDirective;
6
12
  private _scrollableWrapper;
7
13
  private _scrollbarVertical;
@@ -10,21 +16,19 @@ export declare class ScrollableComponent implements OnInit, OnDestroy {
10
16
  showScrollbars: boolean;
11
17
  contentClass: string | string[];
12
18
  scroll: EventEmitter<Event>;
13
- scrollSize: {
14
- clientHeight: number;
15
- clientWidth: number;
16
- scrollHeight: number;
17
- scrollWidth: number;
18
- };
19
+ private _scrollSize;
20
+ scrollSize: Observable<ScrollDimensions>;
19
21
  private _container;
20
22
  private _alive;
21
23
  private _observer;
22
- constructor(_cdr: ChangeDetectorRef);
24
+ constructor();
23
25
  private _observe;
24
26
  scrollVertical(event: any): void;
25
27
  scrollHorizontal(event: any): void;
26
28
  ngOnInit(): void;
27
29
  ngOnDestroy(): void;
30
+ ngAfterContentChecked(): void;
28
31
  static ɵfac: i0.ɵɵFactoryDeclaration<ScrollableComponent, never>;
29
32
  static ɵcmp: i0.ɵɵComponentDeclaration<ScrollableComponent, "teta-scrollable", never, { "direction": { "alias": "direction"; "required": false; }; "showScrollbars": { "alias": "showScrollbars"; "required": false; }; "contentClass": { "alias": "contentClass"; "required": false; }; }, { "scroll": "scroll"; }, ["_scrollDirective"], ["*"], false, never>;
30
33
  }
34
+ export {};
@@ -26,15 +26,19 @@ export class CellHostComponent {
26
26
  this._init = true;
27
27
  }
28
28
  ngOnChanges(changes) {
29
- if (this._init &&
30
- (Object.prototype.hasOwnProperty.call(changes, 'row') ||
31
- Object.prototype.hasOwnProperty.call(changes, 'column') ||
32
- Object.prototype.hasOwnProperty.call(changes, 'filterOptions') ||
33
- Object.prototype.hasOwnProperty.call(changes, 'dict'))) {
34
- this._componentRef.instance.row = this.row;
35
- this._componentRef.instance.column = this.column;
36
- this._componentRef.instance.filterOptions = this.filterOptions;
37
- this._componentRef.instance.dict = this.dict;
29
+ if (this._init) {
30
+ if (Object.prototype.hasOwnProperty.call(changes, 'row')) {
31
+ this._componentRef.instance.row = this.row;
32
+ }
33
+ if (Object.prototype.hasOwnProperty.call(changes, 'column')) {
34
+ this._componentRef.instance.column = this.column;
35
+ }
36
+ if (Object.prototype.hasOwnProperty.call(changes, 'filterOptions')) {
37
+ this._componentRef.instance.filterOptions = this.filterOptions;
38
+ }
39
+ if (Object.prototype.hasOwnProperty.call(changes, 'dict')) {
40
+ this._componentRef.instance.dict = this.dict;
41
+ }
38
42
  this._componentRef.injector.get(ChangeDetectorRef).markForCheck();
39
43
  }
40
44
  }
@@ -53,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
53
57
  }], dict: [{
54
58
  type: Input
55
59
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1ob3N0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvY2VsbC1ob3N0L2NlbGwtaG9zdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULEtBQUssR0FNTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBV25FLE1BQU0sT0FBTyxpQkFBaUI7SUFRUjtJQVBYLE1BQU0sQ0FBYztJQUNwQixHQUFHLENBQWM7SUFDakIsYUFBYSxDQUFpQjtJQUM5QixJQUFJLENBQThCO0lBQ25DLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxhQUFhLENBQXFDO0lBRTFELFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFDRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbEMsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUMxQixFQUNEO1lBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FDMUIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxJQUFJLENBQUMsS0FBSztZQUNWLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7Z0JBQ25ELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQztnQkFDOUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUN4RDtZQUNBLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ25FO0lBQ0gsQ0FBQzt1R0EzQ1UsaUJBQWlCOzJGQUFqQixpQkFBaUIsbUtBTGxCLEVBQUUsK0NBR0csQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDOzsyRkFFNUIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLGdCQUFnQixZQUNoQixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzt1R0FHOUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSURpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IElJZE5hbWUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7IEZvcm1zVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvZm9ybXMtdXRpbCc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2Jhc2UvY2VsbC1jb21wb25lbnQtYmFzZSc7XG5pbXBvcnQgeyBnZXRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udHJhY3QvY2VsbC1jb21wb25lbnRzLW1hcCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBUYWJsZVJvdyB9IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLXJvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtY2VsbC1ob3N0JyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWhvc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtGb3Jtc1V0aWwuZm9ybVByb3ZpZGVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbEhvc3RDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHJvdzogVGFibGVSb3c8VD47XG4gIEBJbnB1dCgpIGZpbHRlck9wdGlvbnM6IElJZE5hbWU8YW55PltdO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIHByaXZhdGUgX2luaXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Q2VsbENvbXBvbmVudEJhc2U8VD4+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIENlbGxDb21wb25lbnRCYXNlLFxuICAgICAgICB0aGlzLmNvbHVtbi5jZWxsQ29tcG9uZW50XG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbHVtbi5jZWxsQ29tcG9uZW50ID0gZ2V0Q2VsbENvbXBvbmVudCh0aGlzLmNvbHVtbik7XG4gICAgfVxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICB0aGlzLmNvbHVtbi5jZWxsQ29tcG9uZW50XG4gICAgKTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnJvdyA9IHRoaXMucm93O1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5maWx0ZXJPcHRpb25zID0gdGhpcy5maWx0ZXJPcHRpb25zO1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kaWN0ID0gdGhpcy5kaWN0O1xuICAgIHRoaXMuX2luaXQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuX2luaXQgJiZcbiAgICAgIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ3JvdycpIHx8XG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnY29sdW1uJykgfHxcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdmaWx0ZXJPcHRpb25zJykgfHxcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdkaWN0JykpXG4gICAgKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uucm93ID0gdGhpcy5yb3c7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyT3B0aW9ucyA9IHRoaXMuZmlsdGVyT3B0aW9ucztcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kaWN0ID0gdGhpcy5kaWN0O1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZikubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1ob3N0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvY2VsbC1ob3N0L2NlbGwtaG9zdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBV25FLE1BQU0sT0FBTyxpQkFBaUI7SUFRUjtJQVBYLE1BQU0sQ0FBYztJQUNwQixHQUFHLENBQWM7SUFDakIsYUFBYSxDQUFpQjtJQUM5QixJQUFJLENBQThCO0lBQ25DLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxhQUFhLENBQXFDO0lBRTFELFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFDRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbEMsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUMxQixFQUNEO1lBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FDMUIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUM1QztZQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDbEQ7WUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ2hFO1lBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUM5QztZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ25FO0lBQ0gsQ0FBQzt1R0E3Q1UsaUJBQWlCOzJGQUFqQixpQkFBaUIsbUtBTGxCLEVBQUUsK0NBR0csQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDOzsyRkFFNUIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLGdCQUFnQixZQUNoQixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzt1R0FHOUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9iYXNlL2NlbGwtY29tcG9uZW50LWJhc2UnO1xuaW1wb3J0IHsgZ2V0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRyYWN0L2NlbGwtY29tcG9uZW50cy1tYXAnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgVGFibGVSb3cgfSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1yb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWNlbGwtaG9zdCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1ob3N0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB2aWV3UHJvdmlkZXJzOiBbRm9ybXNVdGlsLmZvcm1Qcm92aWRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIENlbGxIb3N0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSByb3c6IFRhYmxlUm93PFQ+O1xuICBASW5wdXQoKSBmaWx0ZXJPcHRpb25zOiBJSWROYW1lPGFueT5bXTtcbiAgQElucHV0KCkgZGljdDogSURpY3Rpb25hcnk8SUlkTmFtZTxhbnk+W10+O1xuICBwcml2YXRlIF9pbml0ID0gZmFsc2U7XG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPENlbGxDb21wb25lbnRCYXNlPFQ+PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIU9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFxuICAgICAgICBDZWxsQ29tcG9uZW50QmFzZSxcbiAgICAgICAgdGhpcy5jb2x1bW4uY2VsbENvbXBvbmVudFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5jb2x1bW4uY2VsbENvbXBvbmVudCA9IGdldENlbGxDb21wb25lbnQodGhpcy5jb2x1bW4pO1xuICAgIH1cbiAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgdGhpcy5jb2x1bW4uY2VsbENvbXBvbmVudFxuICAgICk7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3cgPSB0aGlzLnJvdztcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyT3B0aW9ucyA9IHRoaXMuZmlsdGVyT3B0aW9ucztcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuZGljdCA9IHRoaXMuZGljdDtcbiAgICB0aGlzLl9pbml0ID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5pdCkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAncm93JykpIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnJvdyA9IHRoaXMucm93O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnY29sdW1uJykpIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnZmlsdGVyT3B0aW9ucycpKSB7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5maWx0ZXJPcHRpb25zID0gdGhpcy5maWx0ZXJPcHRpb25zO1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnZGljdCcpKSB7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kaWN0ID0gdGhpcy5kaWN0O1xuICAgICAgfVxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZikubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, } from '@angular/core';
2
- import { fromEvent, tap } from 'rxjs';
3
- import { takeWhile } from 'rxjs/operators';
2
+ import { animationFrameScheduler, fromEvent, shareReplay, Subject, tap, } from 'rxjs';
3
+ import { map, takeWhile, throttleTime } from 'rxjs/operators';
4
4
  import { ScrollableDirective } from '../scrollable.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
+ import * as i2 from "../../let/let.directive";
7
8
  export class ScrollableComponent {
8
- _cdr;
9
9
  _scrollDirective;
10
10
  _scrollableWrapper;
11
11
  _scrollbarVertical;
@@ -14,22 +14,27 @@ export class ScrollableComponent {
14
14
  showScrollbars = false;
15
15
  contentClass;
16
16
  scroll = new EventEmitter();
17
+ _scrollSize = new Subject();
17
18
  scrollSize;
18
19
  _container;
19
20
  _alive = true;
20
21
  _observer;
21
- constructor(_cdr) {
22
- this._cdr = _cdr;
22
+ constructor() {
23
+ this.scrollSize = this._scrollSize.asObservable().pipe(throttleTime(100, animationFrameScheduler), map(() => {
24
+ return {
25
+ scrollHeight: this._container.nativeElement.scrollHeight,
26
+ scrollWidth: this._container.nativeElement.scrollWidth,
27
+ clientHeight: this._container.nativeElement.clientHeight,
28
+ clientWidth: this._container.nativeElement.clientWidth,
29
+ };
30
+ }), shareReplay({
31
+ refCount: true,
32
+ bufferSize: 1,
33
+ }));
23
34
  this._observer = new ResizeObserver(this._observe);
24
35
  }
25
36
  _observe = () => {
26
- this.scrollSize = {
27
- scrollHeight: this._container.nativeElement.scrollHeight,
28
- scrollWidth: this._container.nativeElement.scrollWidth,
29
- clientHeight: this._container.nativeElement.clientHeight,
30
- clientWidth: this._container.nativeElement.clientWidth,
31
- };
32
- this._cdr.detectChanges();
37
+ this._scrollSize.next();
33
38
  };
34
39
  scrollVertical(event) {
35
40
  this._container.nativeElement.scrollTop = event.target.scrollTop;
@@ -58,13 +63,16 @@ export class ScrollableComponent {
58
63
  this._observer.unobserve(this._container.nativeElement);
59
64
  this._observer.disconnect();
60
65
  }
61
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: ScrollableComponent, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\">\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
66
+ ngAfterContentChecked() {
67
+ this._observe();
68
+ }
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: ScrollableComponent, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
71
  }
64
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ScrollableComponent, decorators: [{
65
73
  type: Component,
66
- args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scroll-controls\">\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
67
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _scrollDirective: [{
74
+ args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
75
+ }], ctorParameters: function () { return []; }, propDecorators: { _scrollDirective: [{
68
76
  type: ContentChild,
69
77
  args: [ScrollableDirective, {
70
78
  static: true,
@@ -97,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
97
105
  }], scroll: [{
98
106
  type: Output
99
107
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS9zY3JvbGxhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvc2Nyb2xsYWJsZS9zY3JvbGxhYmxlL3Njcm9sbGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBUTlELE1BQU0sT0FBTyxtQkFBbUI7SUEwQ1Y7SUFyQ1osZ0JBQWdCLENBQWE7SUFLN0Isa0JBQWtCLENBQWE7SUFLL0Isa0JBQWtCLENBQWE7SUFLL0Isb0JBQW9CLENBQWE7SUFFaEMsU0FBUyxHQUFxQixLQUFLLENBQUM7SUFHN0MsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUVkLFlBQVksQ0FBb0I7SUFFL0IsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFFN0MsVUFBVSxDQUtSO0lBRU0sVUFBVSxDQUFhO0lBQ3ZCLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDZCxTQUFTLENBQWlCO0lBRWxDLFlBQW9CLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVk7WUFDeEQsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDdEQsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVk7WUFDeEQsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVc7U0FDdkQsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0lBRUYsY0FBYyxDQUFDLEtBQUs7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ25FLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ3pDO1FBRUQsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzthQUMvQyxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDNUIsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxVQUFVO2dCQUNoRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFNBQVM7Z0JBQzdDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7dUdBekZVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLGtUQUNoQixtQkFBbUIsMkJBRXpCLFVBQVUsc2FDNUJwQix1b0NBNEJBOzsyRkRIYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07d0dBT3ZDLGdCQUFnQjtzQkFKdkIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRTt3QkFDakMsTUFBTSxFQUFFLElBQUk7d0JBQ1osSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO2dCQU1PLGtCQUFrQjtzQkFIekIsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRTt3QkFDOUIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBTU8sa0JBQWtCO3NCQUh6QixTQUFTO3VCQUFDLG1CQUFtQixFQUFFO3dCQUM5QixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFNTyxvQkFBb0I7c0JBSDNCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUU7d0JBQ2hDLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR04sY0FBYztzQkFGYixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFHM0IsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNjcm9sbGFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi9zY3JvbGxhYmxlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtc2Nyb2xsYWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZChTY3JvbGxhYmxlRGlyZWN0aXZlLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gIH0pXG4gIHByaXZhdGUgX3Njcm9sbERpcmVjdGl2ZTogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxhYmxlV3JhcHBlcicsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgX3Njcm9sbGFibGVXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGJhclZlcnRpY2FsJywge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBfc2Nyb2xsYmFyVmVydGljYWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2Nyb2xsYmFySG9yaXpvbnRhbCcsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgX3Njcm9sbGJhckhvcml6b250YWw6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZGlyZWN0aW9uOiAncm93JyB8ICdjb2x1bW4nID0gJ3Jvdyc7XG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdy1zY3JvbGxiYXJzJylcbiAgc2hvd1Njcm9sbGJhcnMgPSBmYWxzZTtcblxuICBASW5wdXQoKSBjb250ZW50Q2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIEBPdXRwdXQoKSBzY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gIHNjcm9sbFNpemU6IHtcbiAgICBjbGllbnRIZWlnaHQ6IG51bWJlcjtcbiAgICBjbGllbnRXaWR0aDogbnVtYmVyO1xuICAgIHNjcm9sbEhlaWdodDogbnVtYmVyO1xuICAgIHNjcm9sbFdpZHRoOiBudW1iZXI7XG4gIH07XG5cbiAgcHJpdmF0ZSBfY29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgX29ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5fb2JzZXJ2ZSk7XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlID0gKCkgPT4ge1xuICAgIHRoaXMuc2Nyb2xsU2l6ZSA9IHtcbiAgICAgIHNjcm9sbEhlaWdodDogdGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgc2Nyb2xsV2lkdGg6IHRoaXMuX2NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoLFxuICAgICAgY2xpZW50SGVpZ2h0OiB0aGlzLl9jb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQsXG4gICAgICBjbGllbnRXaWR0aDogdGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsXG4gICAgfTtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9O1xuXG4gIHNjcm9sbFZlcnRpY2FsKGV2ZW50KSB7XG4gICAgdGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gZXZlbnQudGFyZ2V0LnNjcm9sbFRvcDtcbiAgfVxuXG4gIHNjcm9sbEhvcml6b250YWwoZXZlbnQpIHtcbiAgICB0aGlzLl9jb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gZXZlbnQudGFyZ2V0LnNjcm9sbExlZnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLl9zY3JvbGxhYmxlV3JhcHBlcjtcbiAgICBpZiAodGhpcy5fc2Nyb2xsRGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLl9zY3JvbGxEaXJlY3RpdmU7XG4gICAgfVxuXG4gICAgZnJvbUV2ZW50KHRoaXMuX2NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICB0YXAoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLl9zY3JvbGxiYXJIb3Jpem9udGFsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgICB0aGlzLl9zY3JvbGxiYXJWZXJ0aWNhbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsLmVtaXQoZXZlbnQpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgICB0aGlzLl9vYnNlcnZlci51bm9ic2VydmUodGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjcm9sbC1jb250cm9sc1wiPlxuICA8ZGl2ICNzY3JvbGxiYXJWZXJ0aWNhbFxuICAgICAgIFtjbGFzcy5kaXNwbGF5LW5vbmVdPVwic2Nyb2xsU2l6ZT8uc2Nyb2xsSGVpZ2h0IDw9IHNjcm9sbFNpemU/LmNsaWVudEhlaWdodFwiXG4gICAgICAgY2xhc3M9XCJzY3JvbGwtc2Nyb2xsYmFyIHNjcm9sbC1zY3JvbGxiYXItdmVydGljYWxcIlxuICAgICAgIChzY3JvbGwpPVwic2Nyb2xsVmVydGljYWwoJGV2ZW50KVwiPlxuICAgIDxkaXYgW3N0eWxlLmhlaWdodC5weF09XCJzY3JvbGxTaXplPy5zY3JvbGxIZWlnaHRcIiBzdHlsZT1cIndpZHRoOiAxcHg7XCI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICNzY3JvbGxiYXJIb3Jpem9udGFsXG4gICAgICAgW2NsYXNzLmRpc3BsYXktbm9uZV09XCJzY3JvbGxTaXplPy5zY3JvbGxXaWR0aCA8PSBzY3JvbGxTaXplPy5jbGllbnRXaWR0aFwiXG4gICAgICAgY2xhc3M9XCJzY3JvbGwtc2Nyb2xsYmFyIHNjcm9sbC1zY3JvbGxiYXItaG9yaXpvbnRhbFwiXG4gICAgICAgKHNjcm9sbCk9XCJzY3JvbGxIb3Jpem9udGFsKCRldmVudClcIj5cbiAgICA8ZGl2IFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxTaXplPy5zY3JvbGxXaWR0aFwiIHN0eWxlPVwiaGVpZ2h0OiAxcHg7XCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuPCEtLTxkaXYgI3Njcm9sbGFibGVXcmFwcGVyIGNsYXNzPVwic2Nyb2xsLWNvbnRlbnQtd3JhcHBlclwiPi0tPlxuPCEtLSAgPGRpdiBjbGFzcz1cInNjcm9sbC1jb250ZW50XCItLT5cbjwhLS0gICAgICAgW2NsYXNzLmNvbHVtbl09XCJkaXJlY3Rpb24gPT09ICdjb2x1bW4nXCI+LS0+XG48IS0tICAgICZsdDshJm5kYXNoOyAgPGRpdiBjbGFzcz1cInNjcm9sbC1jb250ZW50XCI+Jm5kYXNoOyZndDstLT5cbjwhLS0gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pi0tPlxuPCEtLSAgPC9kaXY+LS0+XG48IS0tPC9kaXY+LS0+XG48ZGl2ICNzY3JvbGxhYmxlV3JhcHBlciBjbGFzcz1cInNjcm9sbC1jb250ZW50LXdyYXBwZXJcIlxuICAgICBbbmdDbGFzc109XCJjb250ZW50Q2xhc3NcIlxuICAgICBbY2xhc3MuY29sdW1uXT1cImRpcmVjdGlvbiA9PT0gJ2NvbHVtbidcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS9zY3JvbGxhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvc2Nyb2xsYWJsZS9zY3JvbGxhYmxlL3Njcm9sbGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxPQUFPLEVBQ1AsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFlOUQsTUFBTSxPQUFPLG1CQUFtQjtJQU90QixnQkFBZ0IsQ0FBYTtJQUs3QixrQkFBa0IsQ0FBYTtJQUsvQixrQkFBa0IsQ0FBYTtJQUsvQixvQkFBb0IsQ0FBYTtJQUVoQyxTQUFTLEdBQXFCLEtBQUssQ0FBQztJQUc3QyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRWQsWUFBWSxDQUFvQjtJQUUvQixNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUVyQyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUMxQyxVQUFVLENBQStCO0lBRWpDLFVBQVUsQ0FBYTtJQUN2QixNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2QsU0FBUyxDQUFpQjtJQUVsQztRQUNFLElBQUksQ0FB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QUFnQjtzQkFKdkIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRTt3QkFDakMsTUFBTSxFQUFFLElBQUk7d0JBQ1osSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO2dCQU1PLGtCQUFrQjtzQkFIekIsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRTt3QkFDOUIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBTU8sa0JBQWtCO3NCQUh6QixTQUFTO3VCQUFDLG1CQUFtQixFQUFFO3dCQUM5QixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFNTyxvQkFBb0I7c0JBSDNCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUU7d0JBQ2hDLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR04sY0FBYztzQkFGYixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFHM0IsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsXG4gIGZyb21FdmVudCxcbiAgT2JzZXJ2YWJsZSxcbiAgc2hhcmVSZXBsYXksXG4gIFN1YmplY3QsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VXaGlsZSwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTY3JvbGxhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xuXG50eXBlIFNjcm9sbERpbWVuc2lvbnMgPSB7XG4gIGNsaWVudEhlaWdodDogbnVtYmVyO1xuICBjbGllbnRXaWR0aDogbnVtYmVyO1xuICBzY3JvbGxIZWlnaHQ6IG51bWJlcjtcbiAgc2Nyb2xsV2lkdGg6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtc2Nyb2xsYWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsYWJsZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRDaGVja2VkXG57XG4gIEBDb250ZW50Q2hpbGQoU2Nyb2xsYWJsZURpcmVjdGl2ZSwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwcml2YXRlIF9zY3JvbGxEaXJlY3RpdmU6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2Nyb2xsYWJsZVdyYXBwZXInLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIF9zY3JvbGxhYmxlV3JhcHBlcjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxiYXJWZXJ0aWNhbCcsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgX3Njcm9sbGJhclZlcnRpY2FsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGJhckhvcml6b250YWwnLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIF9zY3JvbGxiYXJIb3Jpem9udGFsOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ3JvdycgfCAnY29sdW1uJyA9ICdyb3cnO1xuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3ctc2Nyb2xsYmFycycpXG4gIHNob3dTY3JvbGxiYXJzID0gZmFsc2U7XG5cbiAgQElucHV0KCkgY29udGVudENsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBAT3V0cHV0KCkgc2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwcml2YXRlIF9zY3JvbGxTaXplID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgc2Nyb2xsU2l6ZTogT2JzZXJ2YWJsZTxTY3JvbGxEaW1lbnNpb25zPjtcblxuICBwcml2YXRlIF9jb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2Nyb2xsU2l6ZSA9IHRoaXMuX3Njcm9sbFNpemUuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHRocm90dGxlVGltZSgxMDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2Nyb2xsSGVpZ2h0OiB0aGlzLl9jb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgc2Nyb2xsV2lkdGg6IHRoaXMuX2NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoLFxuICAgICAgICAgIGNsaWVudEhlaWdodDogdGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgIGNsaWVudFdpZHRoOiB0aGlzLl9jb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcih0aGlzLl9vYnNlcnZlKTtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmUgPSAoKSA9PiB7XG4gICAgdGhpcy5fc2Nyb2xsU2l6ZS5uZXh0KCk7XG4gIH07XG5cbiAgc2Nyb2xsVmVydGljYWwoZXZlbnQpIHtcbiAgICB0aGlzLl9jb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuICB9XG5cbiAgc2Nyb2xsSG9yaXpvbnRhbChldmVudCkge1xuICAgIHRoaXMuX2NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSBldmVudC50YXJnZXQuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMuX3Njcm9sbGFibGVXcmFwcGVyO1xuICAgIGlmICh0aGlzLl9zY3JvbGxEaXJlY3RpdmUpIHtcbiAgICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMuX3Njcm9sbERpcmVjdGl2ZTtcbiAgICB9XG5cbiAgICBmcm9tRXZlbnQodGhpcy5fY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIHRhcCgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3Njcm9sbGJhckhvcml6b250YWwubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID1cbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0O1xuICAgICAgICAgIHRoaXMuX3Njcm9sbGJhclZlcnRpY2FsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zY3JvbGxUb3A7XG4gICAgICAgICAgdGhpcy5zY3JvbGwuZW1pdChldmVudCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX2NvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gICAgdGhpcy5fb2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuX2NvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgdGhpcy5fb2JzZXJ2ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Nyb2xsLWNvbnRyb2xzXCIgKnRldGFMZXQ9J3Njcm9sbFNpemUgfCBhc3luYyBhcyBzY3JvbGxTaXplJz5cbiAgPGRpdiAjc2Nyb2xsYmFyVmVydGljYWxcbiAgICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cInNjcm9sbFNpemU/LnNjcm9sbEhlaWdodCA8PSBzY3JvbGxTaXplPy5jbGllbnRIZWlnaHRcIlxuICAgICAgIGNsYXNzPVwic2Nyb2xsLXNjcm9sbGJhciBzY3JvbGwtc2Nyb2xsYmFyLXZlcnRpY2FsXCJcbiAgICAgICAoc2Nyb2xsKT1cInNjcm9sbFZlcnRpY2FsKCRldmVudClcIj5cbiAgICA8ZGl2IFtzdHlsZS5oZWlnaHQucHhdPVwic2Nyb2xsU2l6ZT8uc2Nyb2xsSGVpZ2h0XCIgc3R5bGU9XCJ3aWR0aDogMXB4O1wiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAjc2Nyb2xsYmFySG9yaXpvbnRhbFxuICAgICAgIFtjbGFzcy5kaXNwbGF5LW5vbmVdPVwic2Nyb2xsU2l6ZT8uc2Nyb2xsV2lkdGggPD0gc2Nyb2xsU2l6ZT8uY2xpZW50V2lkdGhcIlxuICAgICAgIGNsYXNzPVwic2Nyb2xsLXNjcm9sbGJhciBzY3JvbGwtc2Nyb2xsYmFyLWhvcml6b250YWxcIlxuICAgICAgIChzY3JvbGwpPVwic2Nyb2xsSG9yaXpvbnRhbCgkZXZlbnQpXCI+XG4gICAgPGRpdiBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsU2l6ZT8uc2Nyb2xsV2lkdGhcIiBzdHlsZT1cImhlaWdodDogMXB4O1wiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbjwhLS08ZGl2ICNzY3JvbGxhYmxlV3JhcHBlciBjbGFzcz1cInNjcm9sbC1jb250ZW50LXdyYXBwZXJcIj4tLT5cbjwhLS0gIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGVudFwiLS0+XG48IS0tICAgICAgIFtjbGFzcy5jb2x1bW5dPVwiZGlyZWN0aW9uID09PSAnY29sdW1uJ1wiPi0tPlxuPCEtLSAgICAmbHQ7ISZuZGFzaDsgIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGVudFwiPiZuZGFzaDsmZ3Q7LS0+XG48IS0tICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4tLT5cbjwhLS0gIDwvZGl2Pi0tPlxuPCEtLTwvZGl2Pi0tPlxuPGRpdiAjc2Nyb2xsYWJsZVdyYXBwZXIgY2xhc3M9XCJzY3JvbGwtY29udGVudC13cmFwcGVyXCJcbiAgICAgW25nQ2xhc3NdPVwiY29udGVudENsYXNzXCJcbiAgICAgW2NsYXNzLmNvbHVtbl09XCJkaXJlY3Rpb24gPT09ICdjb2x1bW4nXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, HostBinding, Directive, Optional, Inject, ContentChild, Input, Host, HostListener, Injectable, NgModule, forwardRef, EventEmitter, Output, PLATFORM_ID, ElementRef, TemplateRef, Injector, Pipe, ViewChild, ViewEncapsulation, ChangeDetectorRef, ViewContainerRef, ContentChildren, inject, CUSTOM_ELEMENTS_SCHEMA, SkipSelf, InjectionToken } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, HostBinding, Directive, Optional, Inject, ContentChild, Input, Host, HostListener, Injectable, NgModule, forwardRef, EventEmitter, Output, PLATFORM_ID, ElementRef, TemplateRef, Injector, Pipe, ViewChild, ViewContainerRef, ViewEncapsulation, ChangeDetectorRef, ContentChildren, inject, CUSTOM_ELEMENTS_SCHEMA, SkipSelf, InjectionToken } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { DOCUMENT, CommonModule, isPlatformBrowser, DatePipe } from '@angular/common';
5
5
  import * as i1$1 from '@angular/common/http';
@@ -12,7 +12,7 @@ import { MaskitoModule } from '@maskito/angular';
12
12
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
13
13
  import { trigger, transition, style, animate } from '@angular/animations';
14
14
  import dayjs from 'dayjs';
15
- import { ReplaySubject, BehaviorSubject, combineLatest, takeWhile as takeWhile$1, filter as filter$1, map as map$1, lastValueFrom, take, shareReplay, fromEvent, tap, Subject, merge, Observable, pipe, share } from 'rxjs';
15
+ import { ReplaySubject, BehaviorSubject, combineLatest, takeWhile as takeWhile$1, filter as filter$1, map as map$1, lastValueFrom, take, shareReplay, Subject, animationFrameScheduler, fromEvent, tap, merge, Observable, pipe, share } from 'rxjs';
16
16
  import { maskitoDateTimeOptionsGenerator, maskitoDateOptionsGenerator, maskitoDateRangeOptionsGenerator } from '@maskito/kit';
17
17
  import * as i1$2 from '@ngneat/transloco';
18
18
  import { TranslocoModule, TRANSLOCO_SCOPE } from '@ngneat/transloco';
@@ -4373,8 +4373,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
4373
4373
  args: ['class.scrollable_hide_scroll']
4374
4374
  }] } });
4375
4375
 
4376
+ class LetDirective {
4377
+ tetaLet;
4378
+ constructor(viewContainer, templateRef) {
4379
+ viewContainer.createEmbeddedView(templateRef, new LetContext(this));
4380
+ }
4381
+ static ngTemplateContextGuard(_dir, _ctx) {
4382
+ return true;
4383
+ }
4384
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: LetDirective, deps: [{ token: ViewContainerRef }, { token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
4385
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: LetDirective, selector: "[tetaLet]", inputs: { tetaLet: "tetaLet" }, ngImport: i0 });
4386
+ }
4387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: LetDirective, decorators: [{
4388
+ type: Directive,
4389
+ args: [{
4390
+ selector: '[tetaLet]'
4391
+ }]
4392
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef, decorators: [{
4393
+ type: Inject,
4394
+ args: [ViewContainerRef]
4395
+ }] }, { type: i0.TemplateRef, decorators: [{
4396
+ type: Inject,
4397
+ args: [TemplateRef]
4398
+ }] }]; }, propDecorators: { tetaLet: [{
4399
+ type: Input
4400
+ }] } });
4401
+ class LetContext {
4402
+ internalDirectiveInstance;
4403
+ constructor(internalDirectiveInstance) {
4404
+ this.internalDirectiveInstance = internalDirectiveInstance;
4405
+ }
4406
+ get $implicit() {
4407
+ return this.internalDirectiveInstance.tetaLet;
4408
+ }
4409
+ get tetaLet() {
4410
+ return this.internalDirectiveInstance.tetaLet;
4411
+ }
4412
+ }
4413
+
4376
4414
  class ScrollableComponent {
4377
- _cdr;
4378
4415
  _scrollDirective;
4379
4416
  _scrollableWrapper;
4380
4417
  _scrollbarVertical;
@@ -4383,22 +4420,27 @@ class ScrollableComponent {
4383
4420
  showScrollbars = false;
4384
4421
  contentClass;
4385
4422
  scroll = new EventEmitter();
4423
+ _scrollSize = new Subject();
4386
4424
  scrollSize;
4387
4425
  _container;
4388
4426
  _alive = true;
4389
4427
  _observer;
4390
- constructor(_cdr) {
4391
- this._cdr = _cdr;
4428
+ constructor() {
4429
+ this.scrollSize = this._scrollSize.asObservable().pipe(throttleTime(100, animationFrameScheduler), map(() => {
4430
+ return {
4431
+ scrollHeight: this._container.nativeElement.scrollHeight,
4432
+ scrollWidth: this._container.nativeElement.scrollWidth,
4433
+ clientHeight: this._container.nativeElement.clientHeight,
4434
+ clientWidth: this._container.nativeElement.clientWidth,
4435
+ };
4436
+ }), shareReplay({
4437
+ refCount: true,
4438
+ bufferSize: 1,
4439
+ }));
4392
4440
  this._observer = new ResizeObserver(this._observe);
4393
4441
  }
4394
4442
  _observe = () => {
4395
- this.scrollSize = {
4396
- scrollHeight: this._container.nativeElement.scrollHeight,
4397
- scrollWidth: this._container.nativeElement.scrollWidth,
4398
- clientHeight: this._container.nativeElement.clientHeight,
4399
- clientWidth: this._container.nativeElement.clientWidth,
4400
- };
4401
- this._cdr.detectChanges();
4443
+ this._scrollSize.next();
4402
4444
  };
4403
4445
  scrollVertical(event) {
4404
4446
  this._container.nativeElement.scrollTop = event.target.scrollTop;
@@ -4427,13 +4469,16 @@ class ScrollableComponent {
4427
4469
  this._observer.unobserve(this._container.nativeElement);
4428
4470
  this._observer.disconnect();
4429
4471
  }
4430
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4431
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: ScrollableComponent, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\">\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4472
+ ngAfterContentChecked() {
4473
+ this._observe();
4474
+ }
4475
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4476
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: ScrollableComponent, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4432
4477
  }
4433
4478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ScrollableComponent, decorators: [{
4434
4479
  type: Component,
4435
- args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scroll-controls\">\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
4436
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _scrollDirective: [{
4480
+ args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
4481
+ }], ctorParameters: function () { return []; }, propDecorators: { _scrollDirective: [{
4437
4482
  type: ContentChild,
4438
4483
  args: [ScrollableDirective, {
4439
4484
  static: true,
@@ -5221,44 +5266,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
5221
5266
  type: Input
5222
5267
  }] } });
5223
5268
 
5224
- class LetDirective {
5225
- tetaLet;
5226
- constructor(viewContainer, templateRef) {
5227
- viewContainer.createEmbeddedView(templateRef, new LetContext(this));
5228
- }
5229
- static ngTemplateContextGuard(_dir, _ctx) {
5230
- return true;
5231
- }
5232
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: LetDirective, deps: [{ token: ViewContainerRef }, { token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
5233
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: LetDirective, selector: "[tetaLet]", inputs: { tetaLet: "tetaLet" }, ngImport: i0 });
5234
- }
5235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: LetDirective, decorators: [{
5236
- type: Directive,
5237
- args: [{
5238
- selector: '[tetaLet]'
5239
- }]
5240
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef, decorators: [{
5241
- type: Inject,
5242
- args: [ViewContainerRef]
5243
- }] }, { type: i0.TemplateRef, decorators: [{
5244
- type: Inject,
5245
- args: [TemplateRef]
5246
- }] }]; }, propDecorators: { tetaLet: [{
5247
- type: Input
5248
- }] } });
5249
- class LetContext {
5250
- internalDirectiveInstance;
5251
- constructor(internalDirectiveInstance) {
5252
- this.internalDirectiveInstance = internalDirectiveInstance;
5253
- }
5254
- get $implicit() {
5255
- return this.internalDirectiveInstance.tetaLet;
5256
- }
5257
- get tetaLet() {
5258
- return this.internalDirectiveInstance.tetaLet;
5259
- }
5260
- }
5261
-
5262
5269
  class SelectComponent {
5263
5270
  _cdr;
5264
5271
  _elementRef;
@@ -10967,15 +10974,19 @@ class CellHostComponent {
10967
10974
  this._init = true;
10968
10975
  }
10969
10976
  ngOnChanges(changes) {
10970
- if (this._init &&
10971
- (Object.prototype.hasOwnProperty.call(changes, 'row') ||
10972
- Object.prototype.hasOwnProperty.call(changes, 'column') ||
10973
- Object.prototype.hasOwnProperty.call(changes, 'filterOptions') ||
10974
- Object.prototype.hasOwnProperty.call(changes, 'dict'))) {
10975
- this._componentRef.instance.row = this.row;
10976
- this._componentRef.instance.column = this.column;
10977
- this._componentRef.instance.filterOptions = this.filterOptions;
10978
- this._componentRef.instance.dict = this.dict;
10977
+ if (this._init) {
10978
+ if (Object.prototype.hasOwnProperty.call(changes, 'row')) {
10979
+ this._componentRef.instance.row = this.row;
10980
+ }
10981
+ if (Object.prototype.hasOwnProperty.call(changes, 'column')) {
10982
+ this._componentRef.instance.column = this.column;
10983
+ }
10984
+ if (Object.prototype.hasOwnProperty.call(changes, 'filterOptions')) {
10985
+ this._componentRef.instance.filterOptions = this.filterOptions;
10986
+ }
10987
+ if (Object.prototype.hasOwnProperty.call(changes, 'dict')) {
10988
+ this._componentRef.instance.dict = this.dict;
10989
+ }
10979
10990
  this._componentRef.injector.get(ChangeDetectorRef).markForCheck();
10980
10991
  }
10981
10992
  }