@tetacom/ng-components 1.0.14 → 1.0.18

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.
Files changed (36) hide show
  1. package/component/chart/chart/chart.component.d.ts +1 -0
  2. package/component/chart/model/enum/public-api.d.ts +1 -0
  3. package/component/chart/model/point/marker-options.d.ts +1 -1
  4. package/component/chart/model/point/public-api.d.ts +1 -0
  5. package/component/table/contract/table-context-menu-config.d.ts +2 -0
  6. package/component/table/public-api.d.ts +4 -0
  7. package/component/table/service/table.service.d.ts +1 -0
  8. package/component/table/table-body/table-body.component.d.ts +3 -2
  9. package/component/table/table.module.d.ts +2 -1
  10. package/component/table/util/public-api.d.ts +2 -0
  11. package/esm2020/component/chart/chart/chart.component.mjs +7 -3
  12. package/esm2020/component/chart/core/chart.mjs +3 -1
  13. package/esm2020/component/chart/drawer/line-drawer.mjs +2 -2
  14. package/esm2020/component/chart/model/enum/public-api.mjs +2 -1
  15. package/esm2020/component/chart/model/point/marker-options.mjs +1 -1
  16. package/esm2020/component/chart/model/point/public-api.mjs +2 -1
  17. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +2 -2
  18. package/esm2020/component/date-picker/day-select/day-select.component.mjs +3 -1
  19. package/esm2020/component/filter/contarct/filter-item.mjs +15 -23
  20. package/esm2020/component/table/base/cell-component-base.mjs +1 -2
  21. package/esm2020/component/table/cell-host/cell-host.component.mjs +1 -1
  22. package/esm2020/component/table/contract/table-column.mjs +21 -39
  23. package/esm2020/component/table/contract/table-context-menu-config.mjs +3 -1
  24. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +2 -1
  25. package/esm2020/component/table/public-api.mjs +5 -1
  26. package/esm2020/component/table/service/table.service.mjs +5 -4
  27. package/esm2020/component/table/table/table.component.mjs +3 -3
  28. package/esm2020/component/table/table-body/table-body.component.mjs +21 -16
  29. package/esm2020/component/table/table.module.mjs +6 -2
  30. package/esm2020/component/table/util/public-api.mjs +3 -0
  31. package/esm2020/component/table/util/table-util.mjs +1 -1
  32. package/fesm2015/tetacom-ng-components.mjs +77 -84
  33. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  34. package/fesm2020/tetacom-ng-components.mjs +74 -84
  35. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  36. package/package.json +1 -1
@@ -10,12 +10,11 @@ import { NG_VALUE_ACCESSOR, FormsModule, FormControl, FormGroup, Validators, Rea
10
10
  import { BehaviorSubject, Subject, fromEvent, ReplaySubject, combineLatest, of, merge } from 'rxjs';
11
11
  import { trigger, transition, style, animate } from '@angular/animations';
12
12
  import * as i4 from '@angular/cdk/scrolling';
13
- import { ScrollingModule } from '@angular/cdk/scrolling';
13
+ import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
14
14
  import * as i1$1 from '@ngneat/transloco';
15
15
  import { TranslocoModule, TRANSLOCO_SCOPE } from '@ngneat/transloco';
16
16
  import { __awaiter } from 'tslib';
17
17
  import * as hash from 'object-hash';
18
- import * as i6 from 'ngx-ui-scroll';
19
18
  import { SizeStrategy, Datasource, UiScrollModule } from 'ngx-ui-scroll';
20
19
  import * as d3 from 'd3';
21
20
  import { zoomIdentity } from 'd3';
@@ -1790,6 +1789,8 @@ class DaySelectComponent {
1790
1789
  this.preventEvent(event);
1791
1790
  }
1792
1791
  this.currentValue = DatePickerUtil.scrollMonth(deltaY, this.currentValue);
1792
+ this.monthSelected.emit(this.currentValue.getMonth());
1793
+ this.yearSelected.emit(this.currentValue.getFullYear());
1793
1794
  this._cdr.detectChanges();
1794
1795
  }
1795
1796
  createWeekDays() {
@@ -2023,11 +2024,11 @@ class DatePickerComponent {
2023
2024
  this.applyValue(this.currentValue);
2024
2025
  }
2025
2026
  this.open = show;
2026
- this.onTouched();
2027
2027
  this._cdr.markForCheck();
2028
2028
  };
2029
2029
  this.closePicker = () => {
2030
2030
  this.openPicker(false);
2031
+ this.onTouched();
2031
2032
  };
2032
2033
  this.preventEvent = (event) => {
2033
2034
  event.stopPropagation();
@@ -4718,6 +4719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
4718
4719
 
4719
4720
  class FilterItem {
4720
4721
  constructor(options) {
4722
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
4721
4723
  /**
4722
4724
  * Порядковый номер
4723
4725
  */
@@ -4730,28 +4732,20 @@ class FilterItem {
4730
4732
  * Возможность фильтровать поле
4731
4733
  */
4732
4734
  this.filterable = true;
4733
- if (options) {
4734
- this.sortOrder = options.sortOrder || Number.MAX_VALUE;
4735
- this.name = options.name || '';
4736
- this.caption = options.caption === null || options.caption === undefined ? this.name : options.caption;
4737
- this.hint = options.hint === null || options.hint === undefined ? '' : options.hint;
4738
- this.sortable = options.sortable === null || options.sortable === undefined ? true : options.sortable;
4739
- this.filterable = options.filterable === null || options.filterable === undefined ? true : options.filterable;
4740
- this.sortField = options.sortField === null || options.sortField === undefined ? this.name : options.sortField;
4741
- this.filterField = options.filterField === null || options.filterField === undefined ? this.name : options.filterField;
4742
- this.filterType = options.filterType === null || options.filterType === undefined ? null : options.filterType;
4743
- this.stringFilterType = options.stringFilterType === null || options.stringFilterType === undefined
4744
- ? StringFilterType.Contains
4745
- : options.stringFilterType;
4746
- this.listFilterType = options.listFilterType === null || options.listFilterType === undefined
4747
- ? ListFilterType.None
4748
- : options.listFilterType;
4749
- this.strict = options.strict || false;
4750
- this.filterComponent = options.filterComponent;
4751
- if (options.columns && options.columns.length) {
4752
- this.columns = options.columns.map(_ => new FilterItem(_));
4753
- }
4754
- }
4735
+ this.sortOrder = (_a = options === null || options === void 0 ? void 0 : options.sortOrder) !== null && _a !== void 0 ? _a : Number.MAX_VALUE;
4736
+ this.name = (_b = options === null || options === void 0 ? void 0 : options.name) !== null && _b !== void 0 ? _b : '';
4737
+ this.caption = (_c = options === null || options === void 0 ? void 0 : options.caption) !== null && _c !== void 0 ? _c : this.name;
4738
+ this.hint = (_d = options === null || options === void 0 ? void 0 : options.hint) !== null && _d !== void 0 ? _d : '';
4739
+ this.sortable = (_e = options === null || options === void 0 ? void 0 : options.sortable) !== null && _e !== void 0 ? _e : true;
4740
+ this.filterable = (_f = options === null || options === void 0 ? void 0 : options.filterable) !== null && _f !== void 0 ? _f : true;
4741
+ this.sortField = (_g = options === null || options === void 0 ? void 0 : options.sortField) !== null && _g !== void 0 ? _g : this.name;
4742
+ this.filterField = (_h = options === null || options === void 0 ? void 0 : options.filterField) !== null && _h !== void 0 ? _h : this.name;
4743
+ this.filterType = options === null || options === void 0 ? void 0 : options.filterType;
4744
+ this.stringFilterType = (_j = options === null || options === void 0 ? void 0 : options.stringFilterType) !== null && _j !== void 0 ? _j : StringFilterType.Contains;
4745
+ this.listFilterType = (_k = options === null || options === void 0 ? void 0 : options.listFilterType) !== null && _k !== void 0 ? _k : ListFilterType.None;
4746
+ this.strict = (_l = options === null || options === void 0 ? void 0 : options.strict) !== null && _l !== void 0 ? _l : false;
4747
+ this.filterComponent = options === null || options === void 0 ? void 0 : options.filterComponent;
4748
+ this.columns = (_o = (_m = options === null || options === void 0 ? void 0 : options.columns) === null || _m === void 0 ? void 0 : _m.map(_ => new FilterItem(_))) !== null && _o !== void 0 ? _o : [];
4755
4749
  }
4756
4750
  }
4757
4751
 
@@ -6614,6 +6608,7 @@ class TableColumn extends FilterItem {
6614
6608
  * Инициализация из анонимного объекта
6615
6609
  */
6616
6610
  constructor(options) {
6611
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
6617
6612
  super(options);
6618
6613
  /**
6619
6614
  * Ширина
@@ -6627,44 +6622,26 @@ class TableColumn extends FilterItem {
6627
6622
  * Порядок группировки
6628
6623
  */
6629
6624
  this.groupingOrder = 0;
6630
- if (options) {
6631
- if (options.width && options.width > 0) {
6632
- this.width = options.width;
6633
- }
6634
- if (options.flex) {
6635
- this.flex = options.flex;
6636
- }
6637
- this.sortOrder = options.sortOrder || Number.MAX_VALUE;
6638
- this.headCellClass = !options.headCellClass ? [] : options.headCellClass;
6639
- this.cellClass = !options.cellClass ? [] : options.cellClass;
6640
- this.locked = options.locked || false;
6641
- this.name = options.name || '';
6642
- this.parentName = options.parentName;
6643
- this.caption =
6644
- options.caption === null || options.caption === undefined
6645
- ? this.name
6646
- : options.caption;
6647
- this.unit = options.unit || '';
6648
- this.data = options.data;
6649
- this.editable =
6650
- options.editable === null || options.editable === undefined
6651
- ? true
6652
- : options.editable;
6653
- if (options.columns && options.columns.length) {
6654
- this.columns = [];
6655
- this.columns = options.columns.map((x) => new TableColumn(x));
6656
- }
6657
- this.groupBy = options.groupBy ? options.groupBy : false;
6658
- this.groupingOrder = options.groupingOrder ? options.groupingOrder : 0;
6659
- this.groupByFn = options.groupByFn;
6660
- this.headCellComponent = options.headCellComponent;
6661
- this.cellComponent = options.cellComponent;
6662
- this.aggregate = options.aggregate;
6663
- this.defaultValue = options.defaultValue;
6664
- this.maxValue = options.maxValue;
6665
- this.minValue = options.minValue;
6666
- this.required = options.required;
6667
- }
6625
+ this.width = (_a = options === null || options === void 0 ? void 0 : options.width) !== null && _a !== void 0 ? _a : 150;
6626
+ this.flex = (_b = options === null || options === void 0 ? void 0 : options.flex) !== null && _b !== void 0 ? _b : 0;
6627
+ this.headCellClass = (_c = options === null || options === void 0 ? void 0 : options.headCellClass) !== null && _c !== void 0 ? _c : [];
6628
+ this.cellClass = (_d = options === null || options === void 0 ? void 0 : options.cellClass) !== null && _d !== void 0 ? _d : [];
6629
+ this.locked = (_e = options === null || options === void 0 ? void 0 : options.locked) !== null && _e !== void 0 ? _e : false;
6630
+ this.parentName = options === null || options === void 0 ? void 0 : options.parentName;
6631
+ this.unit = (_f = options === null || options === void 0 ? void 0 : options.unit) !== null && _f !== void 0 ? _f : '';
6632
+ this.data = options === null || options === void 0 ? void 0 : options.data;
6633
+ this.editable = (_g = options === null || options === void 0 ? void 0 : options.editable) !== null && _g !== void 0 ? _g : true;
6634
+ this.groupBy = (_h = options === null || options === void 0 ? void 0 : options.groupBy) !== null && _h !== void 0 ? _h : false;
6635
+ this.groupingOrder = (_j = options === null || options === void 0 ? void 0 : options.groupingOrder) !== null && _j !== void 0 ? _j : 0;
6636
+ this.groupByFn = options === null || options === void 0 ? void 0 : options.groupByFn;
6637
+ this.headCellComponent = options === null || options === void 0 ? void 0 : options.headCellComponent;
6638
+ this.cellComponent = options === null || options === void 0 ? void 0 : options.cellComponent;
6639
+ this.aggregate = options === null || options === void 0 ? void 0 : options.aggregate;
6640
+ this.defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;
6641
+ this.maxValue = options === null || options === void 0 ? void 0 : options.maxValue;
6642
+ this.minValue = options === null || options === void 0 ? void 0 : options.minValue;
6643
+ this.required = options === null || options === void 0 ? void 0 : options.required;
6644
+ this.columns = (_l = (_k = options === null || options === void 0 ? void 0 : options.columns) === null || _k === void 0 ? void 0 : _k.map((x) => new TableColumn(x))) !== null && _l !== void 0 ? _l : [];
6668
6645
  }
6669
6646
  }
6670
6647
 
@@ -6883,6 +6860,7 @@ class TableService {
6883
6860
  }
6884
6861
  setColumns(columns) {
6885
6862
  this.initialColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
6863
+ this.initialColumnsHash = hash.sha1(this.initialColumns);
6886
6864
  const restored = this.restoreColumns();
6887
6865
  if (restored) {
6888
6866
  this.setDisplayColumns(restored);
@@ -6902,7 +6880,7 @@ class TableService {
6902
6880
  saveColumnsState() {
6903
6881
  if (this._cookieName) {
6904
6882
  localStorage.setItem(this._columnsCookieName, JSON.stringify({
6905
- hash: hash.sha1(this.initialColumns),
6883
+ hash: this.initialColumnsHash,
6906
6884
  columns: this.displayColumns.map((_) => new TableColumnStore(_)),
6907
6885
  }));
6908
6886
  }
@@ -6916,7 +6894,7 @@ class TableService {
6916
6894
  }
6917
6895
  restoreColumns() {
6918
6896
  const savedColumns = JSON.parse(localStorage.getItem(this._columnsCookieName));
6919
- if (savedColumns && savedColumns.hash === hash.sha1(this.initialColumns)) {
6897
+ if (savedColumns && savedColumns.hash === this.initialColumnsHash) {
6920
6898
  return this.restoreColumnsState(savedColumns.columns);
6921
6899
  }
6922
6900
  return null;
@@ -7231,7 +7209,7 @@ class TableService {
7231
7209
  }
7232
7210
  });
7233
7211
  column.flex = 0;
7234
- column.width = maxWidth > 50 ? maxWidth + 10 : 50;
7212
+ column.width = maxWidth + 20;
7235
7213
  }
7236
7214
  }
7237
7215
  TableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -7282,11 +7260,13 @@ class TableContextMenuConfig {
7282
7260
  this.copy = true;
7283
7261
  this.delete = true;
7284
7262
  this.add = true;
7263
+ this.paste = true;
7285
7264
  if (options) {
7286
7265
  this.contextMenu = options === null || options === void 0 ? void 0 : options.contextMenu;
7287
7266
  this.copy = options === null || options === void 0 ? void 0 : options.copy;
7288
7267
  this.delete = options === null || options === void 0 ? void 0 : options.delete;
7289
7268
  this.add = options === null || options === void 0 ? void 0 : options.add;
7269
+ this.paste = options === null || options === void 0 ? void 0 : options.paste;
7290
7270
  }
7291
7271
  }
7292
7272
  }
@@ -8613,7 +8593,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
8613
8593
  args: ['class.cell']
8614
8594
  }] } });
8615
8595
 
8616
- // eslint-disable-next-line @angular-eslint/component-class-suffix
8617
8596
  class CellComponentBase {
8618
8597
  constructor(svc, cdr) {
8619
8598
  this.svc = svc;
@@ -8755,6 +8734,7 @@ class DateCellComponent extends CellComponentBase {
8755
8734
  setValue(value) {
8756
8735
  this.row.data[this.column.name] = value ? new Date(value) : value;
8757
8736
  this.valueChanged();
8737
+ this.cdr.detectChanges();
8758
8738
  }
8759
8739
  startEdit(initiator, type) {
8760
8740
  if ((initiator === null || initiator === void 0 ? void 0 : initiator.column.name) === this.column.name) {
@@ -9049,11 +9029,14 @@ class TableBodyComponent {
9049
9029
  this._svc.scrollIndex
9050
9030
  .pipe(takeWhile((_) => this._alive))
9051
9031
  .subscribe((_) => __awaiter(this, void 0, void 0, function* () {
9052
- if (this.viewport && this.dataSource && _ !== null) {
9053
- yield this.dataSource.adapter.relax();
9054
- yield this.dataSource.adapter.fix({
9055
- scrollPosition: (_ + 1) * 24,
9056
- });
9032
+ // if (this.viewport && this.dataSource && _ !== null) {
9033
+ // await this.dataSource.adapter.relax();
9034
+ // await this.dataSource.adapter.fix({
9035
+ // scrollPosition: (_ + 1) * 24,
9036
+ // });
9037
+ // }
9038
+ if (this.viewport) {
9039
+ this.viewport.scrollToIndex(_, 'smooth');
9057
9040
  }
9058
9041
  this._cdr.markForCheck();
9059
9042
  }));
@@ -9086,7 +9069,8 @@ class TableBodyComponent {
9086
9069
  setActiveRow(row) {
9087
9070
  this._svc.setActiveRow(row);
9088
9071
  }
9089
- ngOnInit() { }
9072
+ ngOnInit() {
9073
+ }
9090
9074
  ngOnDestroy() {
9091
9075
  this._alive = false;
9092
9076
  }
@@ -9145,7 +9129,7 @@ class TableBodyComponent {
9145
9129
  return template;
9146
9130
  }
9147
9131
  trackRow(index, row) {
9148
- return row.hash;
9132
+ return index;
9149
9133
  }
9150
9134
  trackColumns(index, column) {
9151
9135
  return column.name;
@@ -9199,10 +9183,10 @@ class TableBodyComponent {
9199
9183
  }
9200
9184
  }
9201
9185
  TableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableBodyComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
9202
- TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", rowHeight: "rowHeight", additionalComponent: "additionalComponent", tree: "tree", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", selectType: "selectType", rowClass: "rowClass" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: ["viewport"], descendants: true }], ngImport: i0, template: "<div #viewport class=\"table-body-container table-body-container-virtual\"\n *ngIf=\"virtual\"\n [style.grid-template-columns]=\"gridTemplateColumns\"\n style=\"height: 100%;\">\n <ng-container\n *uiScroll=\"let row of dataSource; let rowIndex = index; let last = last;\" style=\"display: flex;flex-grow: 1\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\"\n [style.grid-template-rows]=\"rowHeight + 'px'\"\n [style.grid-auto-rows]=\"rowHeight + 'px'\"\n [style.grid-template-columns]=\"getTemplateColumns()\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\"\n [class.table-row_active]=\"row === activeRow || selectedRows.indexOf(row) >= 0\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\"\n [style.grid-column-end]=\"getSpan()\">\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.grid-column-end]=\"getSpan()\">\n <div class=\"cell align-center justify-content-center\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n</ng-template>\n", styles: [""], components: [{ type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.UiScrollDirective, selector: "[uiScroll][uiScrollOf]", inputs: ["uiScrollOf"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "tetaNumber": NumberPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
9186
+ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", rowHeight: "rowHeight", additionalComponent: "additionalComponent", tree: "tree", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", selectType: "selectType", rowClass: "rowClass" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<!--<div #viewport class=\"table-body-container table-body-container-virtual\"-->\n<!-- *ngIf=\"virtual\"-->\n<!-- [style.grid-template-columns]=\"getTemplateColumns()\"-->\n<!-- style=\"height: 100%;\">-->\n<!-- <ng-container-->\n<!-- *uiScroll=\"let row of dataSource; let rowIndex = index; let last = last;\" style=\"display: flex;flex-grow: 1\">-->\n<!-- <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngIf=\"aggregate\">-->\n<!-- <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>-->\n<!-- </ng-container>-->\n<!--</div>-->\n\n<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [maxBufferPx]=\"600\"\n [minBufferPx]=\"240\"\n [itemSize]=\"24\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n\n\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\"\n [style.grid-template-rows]=\"rowHeight + 'px'\"\n [style.grid-auto-rows]=\"rowHeight + 'px'\"\n [style.grid-template-columns]=\"getTemplateColumns()\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\"\n [class.table-row_active]=\"row === activeRow || selectedRows.indexOf(row) >= 0\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\"\n [style.grid-column-end]=\"getSpan()\">\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.grid-column-end]=\"getSpan()\">\n <div class=\"cell align-center justify-content-center\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n</ng-template>\n", styles: [""], components: [{ type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "tetaNumber": NumberPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
9203
9187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableBodyComponent, decorators: [{
9204
9188
  type: Component,
9205
- args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #viewport class=\"table-body-container table-body-container-virtual\"\n *ngIf=\"virtual\"\n [style.grid-template-columns]=\"gridTemplateColumns\"\n style=\"height: 100%;\">\n <ng-container\n *uiScroll=\"let row of dataSource; let rowIndex = index; let last = last;\" style=\"display: flex;flex-grow: 1\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\"\n [style.grid-template-rows]=\"rowHeight + 'px'\"\n [style.grid-auto-rows]=\"rowHeight + 'px'\"\n [style.grid-template-columns]=\"getTemplateColumns()\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\"\n [class.table-row_active]=\"row === activeRow || selectedRows.indexOf(row) >= 0\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\"\n [style.grid-column-end]=\"getSpan()\">\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.grid-column-end]=\"getSpan()\">\n <div class=\"cell align-center justify-content-center\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n</ng-template>\n", styles: [""] }]
9189
+ args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--<div #viewport class=\"table-body-container table-body-container-virtual\"-->\n<!-- *ngIf=\"virtual\"-->\n<!-- [style.grid-template-columns]=\"getTemplateColumns()\"-->\n<!-- style=\"height: 100%;\">-->\n<!-- <ng-container-->\n<!-- *uiScroll=\"let row of dataSource; let rowIndex = index; let last = last;\" style=\"display: flex;flex-grow: 1\">-->\n<!-- <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>-->\n<!-- </ng-container>-->\n<!-- <ng-container *ngIf=\"aggregate\">-->\n<!-- <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>-->\n<!-- </ng-container>-->\n<!--</div>-->\n\n<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [maxBufferPx]=\"600\"\n [minBufferPx]=\"240\"\n [itemSize]=\"24\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n\n\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\"\n [style.grid-template-rows]=\"rowHeight + 'px'\"\n [style.grid-auto-rows]=\"rowHeight + 'px'\"\n [style.grid-template-columns]=\"getTemplateColumns()\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\"\n [class.table-row_active]=\"row === activeRow || selectedRows.indexOf(row) >= 0\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\"\n [style.grid-column-end]=\"getSpan()\">\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\"\n [row]=\"row\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict[column.name]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.grid-template-columns]=\"virtual ? getTemplateColumns() : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.grid-template-columns]=\"getLockedGridTemplateColumns(locked)\"\n [style.grid-column-end]=\"getSpan()\">\n <div class=\"cell align-center justify-content-center\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component justify-content-end\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{getAggregateText(column)}}\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n</ng-template>\n", styles: [""] }]
9206
9190
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { virtual: [{
9207
9191
  type: Input
9208
9192
  }], activeRow: [{
@@ -9227,7 +9211,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9227
9211
  type: Input
9228
9212
  }], viewport: [{
9229
9213
  type: ViewChild,
9230
- args: ['viewport', { static: false }]
9214
+ args: [CdkVirtualScrollViewport, { static: false }]
9231
9215
  }], tableBodyClass: [{
9232
9216
  type: HostBinding,
9233
9217
  args: ['class.table-body']
@@ -9525,10 +9509,10 @@ class TableComponent {
9525
9509
  }
9526
9510
  }
9527
9511
  TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, deps: [{ token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9528
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableComponent, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", state: "state", rowHeight: "rowHeight", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", tree: "tree", trackBy: "trackBy", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", cellEditable: "cellEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", contextMenuConfig: "contextMenuConfig", showHeadCellMenu: "showHeadCellMenu" }, outputs: { stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", cellKeyUp: "cellKeyUp", pasteRows: "pasteRows", addRow: "addRow", deleteRows: "deleteRows", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "window:keyup": "keyup($event)", "mousedown": "mousedown($event)", "contextmenu": "contextMenu($event)" }, properties: { "class.table": "this.tableClass" } }, providers: [TableService], viewQueries: [{ propertyName: "menu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""], components: [{ type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "rowHeight", "additionalComponent", "tree", "aggregate", "grouping", "groupRowComponent", "openLevels", "selectType", "rowClass"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: ClickOutsideDirective, selector: "[tetaClickOutside]", inputs: ["rightClick", "tetaClickOutside"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9512
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableComponent, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", state: "state", rowHeight: "rowHeight", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", tree: "tree", trackBy: "trackBy", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", cellEditable: "cellEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", contextMenuConfig: "contextMenuConfig", showHeadCellMenu: "showHeadCellMenu" }, outputs: { stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", cellKeyUp: "cellKeyUp", pasteRows: "pasteRows", addRow: "addRow", deleteRows: "deleteRows", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "window:keyup": "keyup($event)", "mousedown": "mousedown($event)", "contextmenu": "contextMenu($event)" }, properties: { "class.table": "this.tableClass" } }, providers: [TableService], viewQueries: [{ propertyName: "menu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.paste\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""], components: [{ type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "rowHeight", "additionalComponent", "tree", "aggregate", "grouping", "groupRowComponent", "openLevels", "selectType", "rowClass"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: ClickOutsideDirective, selector: "[tetaClickOutside]", inputs: ["rightClick", "tetaClickOutside"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9529
9513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, decorators: [{
9530
9514
  type: Component,
9531
- args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""] }]
9515
+ args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.paste\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""] }]
9532
9516
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ElementRef }]; }, propDecorators: { data: [{
9533
9517
  type: Input
9534
9518
  }], columns: [{
@@ -9823,7 +9807,8 @@ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
9823
9807
  UiScrollModule,
9824
9808
  ToolbarModule,
9825
9809
  ClickOutsideModule,
9826
- ResizeDragModule], exports: [TableComponent,
9810
+ ResizeDragModule,
9811
+ ScrollingModule], exports: [TableComponent,
9827
9812
  NumericCellComponent,
9828
9813
  ListCellComponent,
9829
9814
  DateCellComponent,
@@ -9855,6 +9840,7 @@ TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "1
9855
9840
  ToolbarModule,
9856
9841
  ClickOutsideModule,
9857
9842
  ResizeDragModule,
9843
+ ScrollingModule,
9858
9844
  ]] });
9859
9845
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableModule, decorators: [{
9860
9846
  type: NgModule,
@@ -9914,6 +9900,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9914
9900
  ToolbarModule,
9915
9901
  ClickOutsideModule,
9916
9902
  ResizeDragModule,
9903
+ ScrollingModule,
9917
9904
  ],
9918
9905
  }]
9919
9906
  }] });
@@ -10198,7 +10185,7 @@ class LineDrawer {
10198
10185
  return scaleY(d.y);
10199
10186
  })
10200
10187
  .style('cursor', 'pointer')
10201
- .style('fill', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.color) || 'red'; })
10188
+ .style('fill', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.color) || 'none'; })
10202
10189
  .attr('stroke', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.stroke) || 'none'; })
10203
10190
  .attr('stroke-width', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.strokeWidth) || 0; });
10204
10191
  context.selectAll(`.draggable-marker-${seriesIndex}`).call(d3.drag().on('drag start end', function dragged(event, d) {
@@ -11117,6 +11104,7 @@ class TetaChart {
11117
11104
  .attr('y2', this._height -
11118
11105
  this._options.bounds.top -
11119
11106
  this._options.bounds.bottom)
11107
+ .style('display', (d) => ((d === null || d === void 0 ? void 0 : d.resizable) ? 'unset' : 'none'))
11120
11108
  .attr('transform', `translate(0, ${this._options.bounds.top})`)
11121
11109
  .style('stroke-width', 8)
11122
11110
  .style('stroke', 'rgba(0, 0, 0, 0)')
@@ -11171,6 +11159,7 @@ class TetaChart {
11171
11159
  .data(axis.options.plotBands)
11172
11160
  .join('line')
11173
11161
  .attr('class', 'drag-right')
11162
+ .style('display', (d) => ((d === null || d === void 0 ? void 0 : d.resizable) ? 'unset' : 'none'))
11174
11163
  .attr('x1', (d) => x(d.to))
11175
11164
  .attr('x2', (d) => x(d.to))
11176
11165
  .attr('y1', 0)
@@ -11999,6 +11988,10 @@ class ChartComponent {
11999
11988
  }))
12000
11989
  .subscribe();
12001
11990
  }
11991
+ get showLegend() {
11992
+ var _a, _b;
11993
+ return (_b = (_a = this._config) === null || _a === void 0 ? void 0 : _a.legend) === null || _b === void 0 ? void 0 : _b.visible;
11994
+ }
12002
11995
  ngOnDestroy() {
12003
11996
  var _a;
12004
11997
  this._alive = false;
@@ -12054,10 +12047,10 @@ class ChartComponent {
12054
12047
  }
12055
12048
  }
12056
12049
  ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
12057
- ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", pointMove: "pointMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12050
+ ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", pointMove: "pointMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div *ngIf=\"showLegend\" class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12058
12051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, decorators: [{
12059
12052
  type: Component,
12060
- args: [{ selector: 'teta-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"] }]
12053
+ args: [{ selector: 'teta-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div *ngIf=\"showLegend\" class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"] }]
12061
12054
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { zoom: [{
12062
12055
  type: Input
12063
12056
  }], config: [{
@@ -13301,5 +13294,5 @@ class StringUtil {
13301
13294
  * Generated bundle index. Do not edit.
13302
13295
  */
13303
13296
 
13304
- export { AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, Annotation, AreaDrawer, ArrayUtil, Axis, AxisOptions, AxisType, BarDrawer, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, ChartBounds, ChartComponent, ChartModule, ChartOptions, CheckboxComponent, CheckboxModule, ClickOutsideDirective, ClickOutsideModule, ClickService, ColumnReorderEvent, ColumnResizeEvent, ContextMenuDirective, ContextMenuModule, CurrentModal, DATE_PICKER_CONTROL_VALUE_ACCESSOR, DAY_SELECT_CONTROL_VALUE_ACCESSOR, DateCellComponent, DateFilter, DateFilterComponent, DateFilterValue, DatePeriod, DatePickerComponent, DatePickerModule, DateTimeCellComponent, DateUtil, DaySelectComponent, DelimiterComponent, DelimiterModule, DetailComponentBase, DialogComponent, DialogService, DisableControlDirective, DisableControlModule, DomUtil, DragSortContainerDirective, DragSortItemDirective, DragSortModule, DropdownComponent, DropdownContentDirective, DropdownDirective, DropdownHeadDirective, DropdownModule, DynamicComponentModule, DynamicComponentService, DynamicContentBaseDirective, DynamicData, EditEvent, EditType, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExpandPanelModule, FileItemComponent, FileUploadAreaComponent, FileUploadModule, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterModule, FilterPanelComponent, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, GroupRowComponent, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HighlightModule, HintDirective, HintModule, IconComponent, IconModule, IconService, IconSpriteDirective, InputComponent, InputModule, LegendType, LineDrawer, ListCellComponent, ListFilter, ListFilterComponent, ListFilterType, LoaderDirective, LoaderModule, MONTH_PICKER_CONTROL_VALUE_ACCESSOR, Message, MessageComponent, MessageHostComponent, MessageModule, MessageService, ModalCloseReason, ModalContainerComponent, ModalInstance, ModalModule, ModalService, MonthPickerComponent, NoAutofillDirective, NoAutofillModule, NumberPipe, NumberPipeModule, NumericCellComponent, NumericFilter, NumericFilterComponent, NumericFilterValue, OnlyNumberDirective, OnlyNumberModule, OverlayContainerService, PagerComponent, PagerModule, PagerState, PagerUtil, PanelComponent, PanelModule, PieDrawer, PlotBand, PlotLine, PopupContentComponent, PositionUtil, ProgressBarComponent, ProgressBarModule, PropertyGridComponent, PropertyGridModule, RadioButtonComponent, RadioComponent, RadioModule, ResizeDragDirective, ResizeDragModule, ResizePanelComponent, ResizePanelModule, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, Scale, ScaleType, ScatterDrawer, SelectComponent, SelectModule, SelectOptionDirective, SelectType, SelectValueDirective, Series, SeriesType, SidebarComponent, SidebarModule, SidebarPosition, SortEvent, SortParam, SplineDrawer, StringCellComponent, StringFilter, StringFilterComponent, StringFilterType, StringUtil, SwitchButtonComponent, SwitchComponent, SwitchModule, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabContentDirective, TabTitleDirective, TableBodyComponent, TableColumn, TableColumnStore, TableComponent, TableContextMenuConfig, TableHeadComponent, TableModule, TableRow, TableService, TabsComponent, TabsModule, TetaChart, TetaContentRef, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TooltipOptions, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, ZoomType, getCellComponent };
13297
+ export { AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, Annotation, AreaDrawer, ArrayUtil, Axis, AxisOptions, AxisType, BarDrawer, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, ChartBounds, ChartComponent, ChartModule, ChartOptions, CheckboxComponent, CheckboxModule, ClickOutsideDirective, ClickOutsideModule, ClickService, ColumnReorderEvent, ColumnResizeEvent, ContextMenuDirective, ContextMenuModule, CurrentModal, DATE_PICKER_CONTROL_VALUE_ACCESSOR, DAY_SELECT_CONTROL_VALUE_ACCESSOR, DateCellComponent, DateFilter, DateFilterComponent, DateFilterValue, DatePeriod, DatePickerComponent, DatePickerModule, DateTimeCellComponent, DateUtil, DaySelectComponent, DelimiterComponent, DelimiterModule, DetailComponentBase, DialogComponent, DialogService, DisableControlDirective, DisableControlModule, DomUtil, DragPointType, DragSortContainerDirective, DragSortItemDirective, DragSortModule, DropdownComponent, DropdownContentDirective, DropdownDirective, DropdownHeadDirective, DropdownModule, DynamicComponentModule, DynamicComponentService, DynamicContentBaseDirective, DynamicData, EditEvent, EditType, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExpandPanelModule, FileItemComponent, FileUploadAreaComponent, FileUploadModule, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterModule, FilterPanelComponent, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, GroupRowComponent, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HighlightModule, HintDirective, HintModule, IconComponent, IconModule, IconService, IconSpriteDirective, InputComponent, InputModule, LegendType, LineDrawer, ListCellComponent, ListFilter, ListFilterComponent, ListFilterType, LoaderDirective, LoaderModule, MONTH_PICKER_CONTROL_VALUE_ACCESSOR, Message, MessageComponent, MessageHostComponent, MessageModule, MessageService, ModalCloseReason, ModalContainerComponent, ModalInstance, ModalModule, ModalService, MonthPickerComponent, NoAutofillDirective, NoAutofillModule, NumberPipe, NumberPipeModule, NumericCellComponent, NumericFilter, NumericFilterComponent, NumericFilterValue, OnlyNumberDirective, OnlyNumberModule, OverlayContainerService, PagerComponent, PagerModule, PagerState, PagerUtil, PanelComponent, PanelModule, PieDrawer, PlotBand, PlotLine, PopupContentComponent, PositionUtil, ProgressBarComponent, ProgressBarModule, PropertyGridComponent, PropertyGridModule, RadioButtonComponent, RadioComponent, RadioModule, ResizeDragDirective, ResizeDragModule, ResizePanelComponent, ResizePanelModule, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, Scale, ScaleType, ScatterDrawer, SelectComponent, SelectModule, SelectOptionDirective, SelectType, SelectValueDirective, Series, SeriesType, SidebarComponent, SidebarModule, SidebarPosition, SortEvent, SortParam, SplineDrawer, StateUtil, StringCellComponent, StringFilter, StringFilterComponent, StringFilterType, StringUtil, SwitchButtonComponent, SwitchComponent, SwitchModule, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabContentDirective, TabTitleDirective, TableBodyComponent, TableColumn, TableColumnStore, TableComponent, TableContextMenuConfig, TableHeadComponent, TableModule, TableRow, TableService, TableUtil, TabsComponent, TabsModule, TetaChart, TetaContentRef, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TooltipOptions, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, ZoomType, getCellComponent };
13305
13298
  //# sourceMappingURL=tetacom-ng-components.mjs.map