@tetacom/ng-components 1.0.35 → 1.0.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.
Files changed (101) hide show
  1. package/assets/icons.svg +503 -657
  2. package/component/expand-card/expand-card/expand-card.component.d.ts +13 -0
  3. package/component/expand-card/expand-card.module.d.ts +12 -0
  4. package/component/expand-card/public-api.d.ts +2 -0
  5. package/component/file-upload/file-upload.module.d.ts +2 -1
  6. package/component/modal/modal-container/modal-container.component.d.ts +1 -1
  7. package/component/modal/modal.service.d.ts +1 -1
  8. package/component/modal/model/i-modal-result.d.ts +2 -1
  9. package/component/modal/model/modal-instance.d.ts +2 -2
  10. package/component/public-api.d.ts +2 -0
  11. package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -0
  12. package/component/table/enum/select-type.enum.d.ts +2 -2
  13. package/directive/context-menu/context-menu.directive.d.ts +4 -1
  14. package/directive/drag-drop/drag-container.directive.d.ts +32 -0
  15. package/directive/drag-drop/drag-drop.module.d.ts +11 -0
  16. package/directive/drag-drop/drag-drop.service.d.ts +40 -0
  17. package/directive/drag-drop/drag-placeholder.directive.d.ts +6 -0
  18. package/directive/drag-drop/drag-preview.directive.d.ts +8 -0
  19. package/directive/drag-drop/drag.directive.d.ts +31 -0
  20. package/directive/drag-drop/model/drag-container-instance.d.ts +11 -0
  21. package/directive/drag-drop/model/drag-instance.d.ts +9 -0
  22. package/directive/drag-drop/model/drag-process.d.ts +4 -0
  23. package/directive/drag-drop/model/drag-selection.d.ts +6 -0
  24. package/directive/drag-drop/model/drop-event.d.ts +8 -0
  25. package/directive/drag-drop/model/drop-target.d.ts +3 -0
  26. package/directive/drag-drop/model/point.d.ts +4 -0
  27. package/directive/drag-drop/model/public-api.d.ts +7 -0
  28. package/directive/drag-drop/public-api.d.ts +7 -0
  29. package/directive/let/let.directive.d.ts +18 -0
  30. package/directive/let/let.module.d.ts +8 -0
  31. package/directive/let/public-api.d.ts +2 -0
  32. package/directive/public-api.d.ts +2 -1
  33. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  34. package/esm2020/component/dropdown/dropdown-base.mjs +3 -4
  35. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +36 -0
  36. package/esm2020/component/expand-card/expand-card.module.mjs +42 -0
  37. package/esm2020/component/expand-card/public-api.mjs +3 -0
  38. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  39. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +4 -3
  40. package/esm2020/component/file-upload/file-upload.module.mjs +5 -4
  41. package/esm2020/component/modal/modal-container/modal-container.component.mjs +7 -7
  42. package/esm2020/component/modal/modal.service.mjs +1 -1
  43. package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
  44. package/esm2020/component/modal/model/modal-instance.mjs +4 -2
  45. package/esm2020/component/public-api.mjs +5 -1
  46. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +6 -3
  47. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +2 -2
  48. package/esm2020/component/table/enum/select-type.enum.mjs +3 -3
  49. package/esm2020/component/table/service/table.service.mjs +5 -20
  50. package/esm2020/component/table/table/table.component.mjs +7 -4
  51. package/esm2020/component/table/table-body/table-body.component.mjs +4 -4
  52. package/esm2020/component/table/table-head/table-head.component.mjs +4 -4
  53. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  54. package/esm2020/directive/context-menu/context-menu.directive.mjs +36 -11
  55. package/esm2020/directive/drag-drop/drag-container.directive.mjs +92 -0
  56. package/esm2020/directive/drag-drop/drag-drop.module.mjs +41 -0
  57. package/esm2020/directive/drag-drop/drag-drop.service.mjs +140 -0
  58. package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +14 -0
  59. package/esm2020/directive/drag-drop/drag-preview.directive.mjs +16 -0
  60. package/esm2020/directive/drag-drop/drag.directive.mjs +128 -0
  61. package/esm2020/directive/drag-drop/model/drag-container-instance.mjs +8 -0
  62. package/esm2020/directive/drag-drop/model/drag-instance.mjs +7 -0
  63. package/esm2020/directive/drag-drop/model/drag-process.mjs +2 -0
  64. package/esm2020/directive/drag-drop/model/drag-selection.mjs +2 -0
  65. package/esm2020/directive/drag-drop/model/drop-event.mjs +2 -0
  66. package/esm2020/directive/drag-drop/model/drop-target.mjs +2 -0
  67. package/esm2020/directive/drag-drop/model/point.mjs +2 -0
  68. package/esm2020/directive/drag-drop/model/public-api.mjs +8 -0
  69. package/esm2020/directive/drag-drop/public-api.mjs +8 -0
  70. package/esm2020/directive/let/let.directive.mjs +38 -0
  71. package/esm2020/directive/let/let.module.mjs +25 -0
  72. package/esm2020/directive/let/public-api.mjs +3 -0
  73. package/esm2020/directive/public-api.mjs +3 -2
  74. package/esm2020/observable/public-api.mjs +2 -0
  75. package/esm2020/observable/zoneObservable.mjs +15 -0
  76. package/esm2020/public-api.mjs +3 -1
  77. package/esm2020/util/date-util.mjs +41 -1
  78. package/esm2020/util/forms-util.mjs +7 -1
  79. package/fesm2015/tetacom-ng-components.mjs +968 -340
  80. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  81. package/fesm2020/tetacom-ng-components.mjs +953 -337
  82. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  83. package/observable/public-api.d.ts +1 -0
  84. package/observable/zoneObservable.d.ts +5 -0
  85. package/package.json +6 -2
  86. package/public-api.d.ts +1 -0
  87. package/style/button.scss +1 -1
  88. package/style/input.scss +1 -1
  89. package/style/layout.scss +30 -2
  90. package/style/list.scss +9 -4
  91. package/style/modal.scss +2 -0
  92. package/style/presets/color-presets.scss +77 -79
  93. package/style/presets/font-presets.scss +21 -21
  94. package/style/presets/shadow-presets.scss +6 -6
  95. package/style/radio.scss +2 -2
  96. package/style/switch.scss +3 -3
  97. package/style/table.scss +1 -2
  98. package/style/toolbar.scss +1 -1
  99. package/style/util/button-util.scss +2 -2
  100. package/util/date-util.d.ts +1 -0
  101. package/util/forms-util.d.ts +1 -0
@@ -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, ElementRef, Output, Pipe, ViewChild, ViewEncapsulation, ChangeDetectorRef, TemplateRef, Injector, ContentChildren } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, HostBinding, Directive, Optional, Inject, ContentChild, Input, Host, HostListener, Injectable, NgModule, forwardRef, EventEmitter, ElementRef, Output, Pipe, ViewChild, ViewEncapsulation, ChangeDetectorRef, TemplateRef, Injector, ContentChildren, SkipSelf, ViewContainerRef } from '@angular/core';
3
3
  import * as i3 from '@angular/common';
4
4
  import { DOCUMENT, CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/common/http';
@@ -7,12 +7,12 @@ import { HttpClient, HttpClientModule } from '@angular/common/http';
7
7
  import { map, takeWhile, throttleTime, bufferCount, tap, withLatestFrom, filter } from 'rxjs/operators';
8
8
  import * as i3$1 from '@angular/forms';
9
9
  import { NG_VALUE_ACCESSOR, FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
10
- import { BehaviorSubject, Subject, fromEvent, ReplaySubject, combineLatest, merge } from 'rxjs';
10
+ import { BehaviorSubject, Subject, fromEvent, ReplaySubject, combineLatest, merge, Observable, pipe } from 'rxjs';
11
11
  import { trigger, transition, style, animate } from '@angular/animations';
12
- import * as i4 from '@angular/cdk/scrolling';
13
- import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
14
12
  import * as i1$1 from '@ngneat/transloco';
15
13
  import { TranslocoModule, TRANSLOCO_SCOPE } from '@ngneat/transloco';
14
+ import * as i4 from '@angular/cdk/scrolling';
15
+ import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
16
16
  import * as hash from 'object-hash';
17
17
  import hash__default from 'object-hash';
18
18
  import { __awaiter } from 'tslib';
@@ -471,10 +471,10 @@ class CheckboxComponent {
471
471
  }
472
472
  }
473
473
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
474
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
474
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
475
475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, decorators: [{
476
476
  type: Component,
477
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
477
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
478
478
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabindex: [{
479
479
  type: HostBinding,
480
480
  args: ['attr.tabindex']
@@ -704,6 +704,46 @@ class DateUtil {
704
704
  static isValidDate(date) {
705
705
  return date instanceof Date && !isNaN(date.getTime());
706
706
  }
707
+ static millisecondToHumanFormat(milliSeconds, maxValue = 5000, showDays = false) {
708
+ const negative = milliSeconds < 0;
709
+ if (negative) {
710
+ milliSeconds = -milliSeconds;
711
+ }
712
+ let d;
713
+ if (showDays) {
714
+ d = Math.trunc(milliSeconds / (60000 * 60 * 24));
715
+ milliSeconds = milliSeconds - 60000 * 60 * 24 * d;
716
+ }
717
+ const h = Math.trunc(milliSeconds / (60000 * 60));
718
+ milliSeconds = milliSeconds - 60000 * 60 * h;
719
+ const m = Math.trunc(milliSeconds / 60000);
720
+ milliSeconds = milliSeconds - 60000 * m;
721
+ const s = Math.trunc(milliSeconds / 1000);
722
+ milliSeconds = milliSeconds - 1000 * s;
723
+ const frac = milliSeconds;
724
+ let result = m ? m + ' м ' : ''; // start with minutes
725
+ if (maxValue < 60000 * 60) {
726
+ if (s) {
727
+ result = result + s + ' с '; // add seconds value
728
+ }
729
+ if (s === 0 && !m) {
730
+ result = result + '0 c';
731
+ }
732
+ }
733
+ if (maxValue < 5000) {
734
+ result = frac ? result + frac + ' мс ' : result;
735
+ }
736
+ if (h) {
737
+ result = h + ' ч ' + result;
738
+ }
739
+ if (d) {
740
+ result = d + 'д ' + result;
741
+ }
742
+ if (negative) {
743
+ result = '-' + result;
744
+ }
745
+ return result.trim();
746
+ }
707
747
  static fillConvertDates(result, input) {
708
748
  for (const key in input) {
709
749
  if (!input.hasOwnProperty || !input.hasOwnProperty(key)) {
@@ -1204,7 +1244,7 @@ class DropdownBase {
1204
1244
  }
1205
1245
  click(event) {
1206
1246
  if (this.open) {
1207
- if (!DomUtil.clickedInside(this._body, event)) {
1247
+ if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {
1208
1248
  this.closeDropdown();
1209
1249
  }
1210
1250
  }
@@ -1218,8 +1258,7 @@ class DropdownBase {
1218
1258
  if (!this.open ||
1219
1259
  !this.autoClose ||
1220
1260
  event.detail === 0 ||
1221
- DomUtil.clickedInside(this._head.nativeElement, event) ||
1222
- DomUtil.clickedInside(this._body, event)) {
1261
+ DomUtil.clickedInside(this._head.nativeElement, event)) {
1223
1262
  return;
1224
1263
  }
1225
1264
  if (DomUtil.clickedInside(this._body, event)) {
@@ -3170,6 +3209,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3170
3209
  }]
3171
3210
  }] });
3172
3211
 
3212
+ class ToolbarComponent {
3213
+ get getClass() {
3214
+ const result = [this.class, 'toolbar'];
3215
+ if (this.palette) {
3216
+ result.push(`toolbar-${this.palette}`);
3217
+ }
3218
+ return result.join(' ');
3219
+ }
3220
+ ngOnInit() { }
3221
+ }
3222
+ ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3223
+ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ToolbarComponent, selector: "teta-toolbar", inputs: { palette: "palette", class: "class" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, decorators: [{
3225
+ type: Component,
3226
+ args: [{ selector: 'teta-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [""] }]
3227
+ }], propDecorators: { palette: [{
3228
+ type: Input
3229
+ }], class: [{
3230
+ type: Input
3231
+ }], getClass: [{
3232
+ type: HostBinding,
3233
+ args: ['class']
3234
+ }] } });
3235
+
3236
+ class ExpandCardComponent {
3237
+ constructor() {
3238
+ this.open = true;
3239
+ this.openChange = new EventEmitter();
3240
+ this.showCross = true;
3241
+ this.crossClick = new EventEmitter();
3242
+ }
3243
+ ngOnInit() {
3244
+ }
3245
+ setOpen() {
3246
+ this.open = !this.open;
3247
+ this.openChange.emit(this.open);
3248
+ }
3249
+ }
3250
+ ExpandCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3251
+ ExpandCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ExpandCardComponent, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <div class=\"font-title-3\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <div class=\"row gap align-center\">\n <button teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n <ng-container *ngIf=\"showCross\">\n <teta-delimiter [palette]=\"'text'\" class='height-4'></teta-delimiter>\n <button teta-button (click)=\"crossClick.emit($event)\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"'closeBig'\"></teta-icon>\n </button>\n </ng-container>\n </div>\n</teta-toolbar>\n<div class=\"content\" *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], components: [{ type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: DelimiterComponent, selector: "teta-delimiter", inputs: ["direction", "palette", "height", "verticalMargin", "horizontalMargin", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardComponent, decorators: [{
3253
+ type: Component,
3254
+ args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', template: "<teta-toolbar class=\"justify-content-between align-center\">\n <div class=\"font-title-3\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <div class=\"row gap align-center\">\n <button teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n <ng-container *ngIf=\"showCross\">\n <teta-delimiter [palette]=\"'text'\" class='height-4'></teta-delimiter>\n <button teta-button (click)=\"crossClick.emit($event)\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"'closeBig'\"></teta-icon>\n </button>\n </ng-container>\n </div>\n</teta-toolbar>\n<div class=\"content\" *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3255
+ }], ctorParameters: function () { return []; }, propDecorators: { open: [{
3256
+ type: Input
3257
+ }], openChange: [{
3258
+ type: Output
3259
+ }], showCross: [{
3260
+ type: Input
3261
+ }], crossClick: [{
3262
+ type: Output
3263
+ }] } });
3264
+
3265
+ class ToolbarModule {
3266
+ }
3267
+ ToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3268
+ ToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule], exports: [ToolbarComponent] });
3269
+ ToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, imports: [[
3270
+ CommonModule
3271
+ ]] });
3272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, decorators: [{
3273
+ type: NgModule,
3274
+ args: [{
3275
+ declarations: [ToolbarComponent],
3276
+ exports: [ToolbarComponent],
3277
+ imports: [
3278
+ CommonModule
3279
+ ]
3280
+ }]
3281
+ }] });
3282
+
3283
+ class ExpandCardModule {
3284
+ }
3285
+ ExpandCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3286
+ ExpandCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, declarations: [ExpandCardComponent], imports: [CommonModule,
3287
+ ToolbarModule,
3288
+ ButtonModule,
3289
+ IconModule,
3290
+ DelimiterModule], exports: [ExpandCardComponent] });
3291
+ ExpandCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, imports: [[
3292
+ CommonModule,
3293
+ ToolbarModule,
3294
+ ButtonModule,
3295
+ IconModule,
3296
+ DelimiterModule
3297
+ ]] });
3298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, decorators: [{
3299
+ type: NgModule,
3300
+ args: [{
3301
+ declarations: [
3302
+ ExpandCardComponent
3303
+ ],
3304
+ exports: [
3305
+ ExpandCardComponent
3306
+ ],
3307
+ imports: [
3308
+ CommonModule,
3309
+ ToolbarModule,
3310
+ ButtonModule,
3311
+ IconModule,
3312
+ DelimiterModule
3313
+ ]
3314
+ }]
3315
+ }] });
3316
+
3173
3317
  class ExpandPanelContentDirective {
3174
3318
  constructor(template) {
3175
3319
  this.template = template;
@@ -3198,30 +3342,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3198
3342
  }]
3199
3343
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
3200
3344
 
3201
- class ToolbarComponent {
3202
- get getClass() {
3203
- const result = [this.class, 'toolbar'];
3204
- if (this.palette) {
3205
- result.push(`toolbar-${this.palette}`);
3206
- }
3207
- return result.join(' ');
3208
- }
3209
- ngOnInit() { }
3210
- }
3211
- ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3212
- ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ToolbarComponent, selector: "teta-toolbar", inputs: { palette: "palette", class: "class" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, decorators: [{
3214
- type: Component,
3215
- args: [{ selector: 'teta-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [""] }]
3216
- }], propDecorators: { palette: [{
3217
- type: Input
3218
- }], class: [{
3219
- type: Input
3220
- }], getClass: [{
3221
- type: HostBinding,
3222
- args: ['class']
3223
- }] } });
3224
-
3225
3345
  class ExpandPanelComponent {
3226
3346
  constructor() {
3227
3347
  this.open = true;
@@ -3259,10 +3379,10 @@ class ExpandPanelComponent {
3259
3379
  }
3260
3380
  }
3261
3381
  ExpandPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3262
- ExpandPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ExpandPanelComponent, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"open\">\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]=\"true\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"closePanel()\"\n >\n <teta-icon [name]=\"direction === 'right' ? 'arrowRight' : 'arrowLeft'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\"><ng-container *ngTemplateOutlet=\"head?.template\"></ng-container></span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!open\">\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%;\">\n <button\n teta-button\n style=\"\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 8px;\n \"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon [name]=\"direction === 'right' ? 'arrowUp' : 'arrowDown'\"></teta-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], components: [{ type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3382
+ ExpandPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ExpandPanelComponent, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"open\">\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]=\"true\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"closePanel()\"\n >\n <teta-icon [name]=\"direction === 'right' ? 'arrowRightKey' : 'arrowLeftKey'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\"><ng-container\n *ngTemplateOutlet=\"head?.template\"></ng-container></span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!open\">\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%;\">\n <button\n teta-button\n style=\"\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 8px;\n \"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon [name]=\"direction === 'right' ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], components: [{ type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3263
3383
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelComponent, decorators: [{
3264
3384
  type: Component,
3265
- args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"open\">\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]=\"true\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"closePanel()\"\n >\n <teta-icon [name]=\"direction === 'right' ? 'arrowRight' : 'arrowLeft'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\"><ng-container *ngTemplateOutlet=\"head?.template\"></ng-container></span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!open\">\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%;\">\n <button\n teta-button\n style=\"\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 8px;\n \"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon [name]=\"direction === 'right' ? 'arrowUp' : 'arrowDown'\"></teta-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
3385
+ args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"open\">\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]=\"true\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"closePanel()\"\n >\n <teta-icon [name]=\"direction === 'right' ? 'arrowRightKey' : 'arrowLeftKey'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\"><ng-container\n *ngTemplateOutlet=\"head?.template\"></ng-container></span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!open\">\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%;\">\n <button\n teta-button\n style=\"\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 8px;\n \"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon [name]=\"direction === 'right' ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
3266
3386
  }], ctorParameters: function () { return []; }, propDecorators: { content: [{
3267
3387
  type: ContentChild,
3268
3388
  args: [ExpandPanelContentDirective, { static: false }]
@@ -3281,24 +3401,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3281
3401
  type: Input
3282
3402
  }] } });
3283
3403
 
3284
- class ToolbarModule {
3285
- }
3286
- ToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3287
- ToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule], exports: [ToolbarComponent] });
3288
- ToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, imports: [[
3289
- CommonModule
3290
- ]] });
3291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, decorators: [{
3292
- type: NgModule,
3293
- args: [{
3294
- declarations: [ToolbarComponent],
3295
- exports: [ToolbarComponent],
3296
- imports: [
3297
- CommonModule
3298
- ]
3299
- }]
3300
- }] });
3301
-
3302
3404
  class ExpandPanelModule {
3303
3405
  }
3304
3406
  ExpandPanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -3379,10 +3481,10 @@ class FileUploadAreaComponent {
3379
3481
  }
3380
3482
  }
3381
3483
  FileUploadAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3382
- FileUploadAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: FileUploadAreaComponent, selector: "teta-file-upload-area", inputs: { multiple: "multiple", disabled: "disabled", accept: "accept" }, outputs: { upload: "upload" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class.file-upload": "this.fileUpload", "class.file-upload_active": "this.fileUploadActive" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'upload'\"></teta-icon>\n \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\n </teta-button>\n</label>\n", styles: [":host{display:flex}\n"], components: [{ type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3484
+ FileUploadAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: FileUploadAreaComponent, selector: "teta-file-upload-area", inputs: { multiple: "multiple", disabled: "disabled", accept: "accept" }, outputs: { upload: "upload" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class.file-upload": "this.fileUpload", "class.file-upload_active": "this.fileUploadActive" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\"></teta-icon>\n {{'common.browse' | transloco}}\n </teta-button>\n</label>\n", styles: [":host{display:flex}\n"], components: [{ type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], pipes: { "transloco": i1$1.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3383
3485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadAreaComponent, decorators: [{
3384
3486
  type: Component,
3385
- args: [{ selector: 'teta-file-upload-area', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'upload'\"></teta-icon>\n \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\n </teta-button>\n</label>\n", styles: [":host{display:flex}\n"] }]
3487
+ args: [{ selector: 'teta-file-upload-area', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\"></teta-icon>\n {{'common.browse' | transloco}}\n </teta-button>\n</label>\n", styles: [":host{display:flex}\n"] }]
3386
3488
  }], ctorParameters: function () { return []; }, propDecorators: { fileUpload: [{
3387
3489
  type: HostBinding,
3388
3490
  args: ['class.file-upload']
@@ -3428,14 +3530,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3428
3530
  class FileUploadModule {
3429
3531
  }
3430
3532
  FileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3431
- FileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, declarations: [FileUploadAreaComponent, FileItemComponent], imports: [CommonModule, ButtonModule, IconModule], exports: [FileUploadAreaComponent, FileItemComponent] });
3432
- FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, ButtonModule, IconModule]] });
3533
+ FileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, declarations: [FileUploadAreaComponent, FileItemComponent], imports: [CommonModule, ButtonModule, IconModule, TranslocoModule], exports: [FileUploadAreaComponent, FileItemComponent] });
3534
+ FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, ButtonModule, IconModule, TranslocoModule]] });
3433
3535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, decorators: [{
3434
3536
  type: NgModule,
3435
3537
  args: [{
3436
3538
  declarations: [FileUploadAreaComponent, FileItemComponent],
3437
3539
  exports: [FileUploadAreaComponent, FileItemComponent],
3438
- imports: [CommonModule, ButtonModule, IconModule],
3540
+ imports: [CommonModule, ButtonModule, IconModule, TranslocoModule],
3439
3541
  }]
3440
3542
  }] });
3441
3543
 
@@ -5313,10 +5415,10 @@ ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
5313
5415
  ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ModalContainerComponent, selector: "teta-modal-container", inputs: { config: "config" }, outputs: { closeEvent: "closeEvent" }, host: { listeners: { "keyup": "keyup($event)", "click": "click($event)" }, properties: { "attr.tabindex": "this.tabindex", "@dialog": "this.dialog", "class": "this.classList" } }, ngImport: i0, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n", styles: [""], animations: [
5314
5416
  trigger('dialog', [
5315
5417
  transition('void => *', [
5316
- style({ opacity: '0' }),
5317
- animate(150, style({ opacity: '1' })),
5418
+ style({ top: '-100%' }),
5419
+ animate('150ms ease-in', style({ top: '0' })),
5318
5420
  ]),
5319
- transition('* => void', [animate(150, style({ opacity: '0' }))]),
5421
+ transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5320
5422
  ]),
5321
5423
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5322
5424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ModalContainerComponent, decorators: [{
@@ -5324,10 +5426,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
5324
5426
  args: [{ selector: 'teta-modal-container', animations: [
5325
5427
  trigger('dialog', [
5326
5428
  transition('void => *', [
5327
- style({ opacity: '0' }),
5328
- animate(150, style({ opacity: '1' })),
5429
+ style({ top: '-100%' }),
5430
+ animate('150ms ease-in', style({ top: '0' })),
5329
5431
  ]),
5330
- transition('* => void', [animate(150, style({ opacity: '0' }))]),
5432
+ transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5331
5433
  ]),
5332
5434
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n", styles: [""] }]
5333
5435
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
@@ -5467,7 +5569,9 @@ class ModalInstance {
5467
5569
  destroy() {
5468
5570
  this._window.destroy();
5469
5571
  if (this._content && this._content.viewRef) {
5470
- this._content.viewRef.destroy();
5572
+ setTimeout(() => {
5573
+ this._content.viewRef.destroy();
5574
+ }, 150);
5471
5575
  }
5472
5576
  }
5473
5577
  }
@@ -6034,6 +6138,13 @@ class FormsUtil {
6034
6138
  return (((_a = formGroup.controls[controlName]) === null || _a === void 0 ? void 0 : _a.invalid) &&
6035
6139
  ((_b = formGroup.controls[controlName]) === null || _b === void 0 ? void 0 : _b.dirty));
6036
6140
  }
6141
+ static getControlErrors(formGroup, controlName) {
6142
+ var _a;
6143
+ if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
6144
+ return Object.keys((_a = formGroup.controls[controlName]) === null || _a === void 0 ? void 0 : _a.errors);
6145
+ }
6146
+ return [];
6147
+ }
6037
6148
  static matchValuesValidator(matchTo) {
6038
6149
  return (control) => !!control.parent &&
6039
6150
  !!control.parent.value &&
@@ -7138,8 +7249,8 @@ class StateUtil {
7138
7249
  var SelectType;
7139
7250
  (function (SelectType) {
7140
7251
  SelectType[SelectType["none"] = 0] = "none";
7141
- SelectType[SelectType["multiple"] = 1] = "multiple";
7142
- SelectType[SelectType["single"] = 2] = "single";
7252
+ SelectType[SelectType["checkBox"] = 1] = "checkBox";
7253
+ SelectType[SelectType["mouse"] = 2] = "mouse";
7143
7254
  })(SelectType || (SelectType = {}));
7144
7255
 
7145
7256
  var EditType;
@@ -7171,7 +7282,7 @@ class TableColumnStore {
7171
7282
 
7172
7283
  class TableService {
7173
7284
  constructor() {
7174
- this.selectType = SelectType.multiple;
7285
+ this.selectType = SelectType.mouse;
7175
7286
  this.editType = EditType.cell;
7176
7287
  this.editEvent = EditEvent.doubleClick;
7177
7288
  this.trackRow = (index, row) => index;
@@ -7493,12 +7604,7 @@ class TableService {
7493
7604
  this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7494
7605
  }
7495
7606
  else {
7496
- if (this.selectType === SelectType.single) {
7497
- this._selectedRows.next([row]);
7498
- }
7499
- else {
7500
- this._selectedRows.next([...this._selectedRows.value, row]);
7501
- }
7607
+ this._selectedRows.next([...this._selectedRows.value, row]);
7502
7608
  }
7503
7609
  }
7504
7610
  selectRange(row) {
@@ -7532,23 +7638,13 @@ class TableService {
7532
7638
  if (this.selectType === SelectType.none) {
7533
7639
  return;
7534
7640
  }
7535
- if (this.selectType === SelectType.single) {
7536
- this._selectedRows.next([row]);
7537
- }
7538
- else {
7539
- this._selectedRows.next([...this._selectedRows.value, row]);
7540
- }
7641
+ this._selectedRows.next([...this._selectedRows.value, row]);
7541
7642
  }
7542
7643
  deselectRow(row) {
7543
7644
  if (this.selectType === SelectType.none) {
7544
7645
  return;
7545
7646
  }
7546
- if (this.selectType === SelectType.single) {
7547
- this._selectedRows.next([]);
7548
- }
7549
- else {
7550
- this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7551
- }
7647
+ this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7552
7648
  }
7553
7649
  selectAll() {
7554
7650
  this._selectedRows.next(this._displayData.value);
@@ -8005,10 +8101,10 @@ class DefaultHeadCellComponent extends HeadCellComponentBase {
8005
8101
  }
8006
8102
  }
8007
8103
  DefaultHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8008
- DefaultHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DefaultHeadCellComponent, selector: "teta-default-head-cell", inputs: { column: "column", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0}\n"], directives: [{ type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8104
+ DefaultHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DefaultHeadCellComponent, selector: "teta-default-head-cell", inputs: { column: "column", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0;padding:6px 8px}\n"], directives: [{ type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8009
8105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
8010
8106
  type: Component,
8011
- args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0}\n"] }]
8107
+ args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0;padding:6px 8px}\n"] }]
8012
8108
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
8013
8109
  type: Input
8014
8110
  }], data: [{
@@ -8882,7 +8978,7 @@ class TableHeadComponent {
8882
8978
  this.columns = columns;
8883
8979
  const locked = ArrayUtil.flatten(columns, 'columns', true)
8884
8980
  .filter((_) => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
8885
- const startWidth = this.selectType !== SelectType.none ? 28 : 0;
8981
+ const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
8886
8982
  this.lockedFlex = locked.reduce((prev, curr) => prev + curr.flex, 0);
8887
8983
  this.lockedWidth = locked.reduce((prev, curr) => prev + curr.width, startWidth);
8888
8984
  this._cdr.markForCheck();
@@ -8919,10 +9015,10 @@ class TableHeadComponent {
8919
9015
  }
8920
9016
  }
8921
9017
  TableHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableHeadComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8922
- TableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableHeadComponent, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "<div class=\"table-head_locked\"\n *ngIf=\"locked?.length\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <teta-selection-head-cell\n *ngIf=\"selectType !== selectTypeEnum.none\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of locked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</div>\n<ng-container *ngIf=\"unlocked?.length\">\n <teta-selection-head-cell\n *ngIf=\"selectType !== selectTypeEnum.none && locked?.length < 1\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of unlocked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</ng-container>\n", styles: [""], components: [{ type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9018
+ TableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableHeadComponent, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "<div class=\"table-head_locked\"\n *ngIf=\"locked?.length\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <teta-selection-head-cell\n *ngIf=\"selectType === selectTypeEnum.checkBox\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of locked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</div>\n<ng-container *ngIf=\"unlocked?.length\">\n <teta-selection-head-cell\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked?.length < 1\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of unlocked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</ng-container>\n", styles: [""], components: [{ type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8923
9019
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableHeadComponent, decorators: [{
8924
9020
  type: Component,
8925
- args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-head_locked\"\n *ngIf=\"locked?.length\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <teta-selection-head-cell\n *ngIf=\"selectType !== selectTypeEnum.none\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of locked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</div>\n<ng-container *ngIf=\"unlocked?.length\">\n <teta-selection-head-cell\n *ngIf=\"selectType !== selectTypeEnum.none && locked?.length < 1\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of unlocked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</ng-container>\n", styles: [""] }]
9021
+ args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-head_locked\"\n *ngIf=\"locked?.length\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <teta-selection-head-cell\n *ngIf=\"selectType === selectTypeEnum.checkBox\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of locked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</div>\n<ng-container *ngIf=\"unlocked?.length\">\n <teta-selection-head-cell\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked?.length < 1\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of unlocked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</ng-container>\n", styles: [""] }]
8926
9022
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { selectType: [{
8927
9023
  type: Input
8928
9024
  }], showHeadCellMenu: [{
@@ -9468,7 +9564,7 @@ class TableBodyComponent {
9468
9564
  this._columns = columns;
9469
9565
  this.locked = (_a = this._columns) === null || _a === void 0 ? void 0 : _a.filter((_) => _.locked === true);
9470
9566
  this.unlocked = (_b = this._columns) === null || _b === void 0 ? void 0 : _b.filter((_) => _.locked === false);
9471
- const startWidth = this.selectType !== SelectType.none ? 28 : 0;
9567
+ const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
9472
9568
  this.lockedFlex = this.locked.reduce((prev, curr) => prev + curr.flex, 0);
9473
9569
  this.lockedWidth = this.locked.reduce((prev, curr) => prev + curr.width, startWidth);
9474
9570
  this.totalFlex = this._columns.reduce((prev, curr) => prev + curr.flex, 0);
@@ -9541,10 +9637,10 @@ class TableBodyComponent {
9541
9637
  }
9542
9638
  }
9543
9639
  TableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableBodyComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
9544
- TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", 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: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n (contextmenu)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_active]=\"row === activeRow || (selectedRows && selectedRows.indexOf(row) >= 0)\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\">\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"virtual ? totalFlex : ''\"\n [style.flex-basis.px]=\"virtual ? totalWidth : ''\"\n [style.min-width.px]=\"virtual ? totalWidth : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\">\n <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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType !== selectTypeEnum.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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n", styles: [""], 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: i3.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: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i3.AsyncPipe, "tetaNumber": NumberPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
9640
+ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableBodyComponent, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", 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: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n (contextmenu)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"virtual ? totalFlex : ''\"\n [style.flex-basis.px]=\"virtual ? totalWidth : ''\"\n [style.min-width.px]=\"virtual ? totalWidth : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\">\n <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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component 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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n", styles: [""], 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: i3.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: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i3.AsyncPipe, "tetaNumber": NumberPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
9545
9641
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableBodyComponent, decorators: [{
9546
9642
  type: Component,
9547
- args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n (contextmenu)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_active]=\"row === activeRow || (selectedRows && selectedRows.indexOf(row) >= 0)\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\">\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType !== selectTypeEnum.none && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"virtual ? totalFlex : ''\"\n [style.flex-basis.px]=\"virtual ? totalWidth : ''\"\n [style.min-width.px]=\"virtual ? totalWidth : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\">\n <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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType !== selectTypeEnum.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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n", styles: [""] }]
9643
+ args: [{ selector: 'teta-table-body', changeDetection: ChangeDetectionStrategy.OnPush, template: "<cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n class=\"table-body-container\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n</cdk-virtual-scroll-viewport>\n<div *ngIf=\"!virtual\"\n class=\"table-body-container\">\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row)\"\n (contextmenu)=\"setActiveRow(row)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <ng-container *ngIf=\"!grouping\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 1 : 'unset'\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </ng-container>\n <ng-container *ngIf=\"grouping\">\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"virtual ? totalFlex : ''\"\n [style.flex-basis.px]=\"virtual ? totalWidth : ''\"\n [style.min-width.px]=\"virtual ? totalWidth : ''\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\">\n <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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component 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 [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n", styles: [""] }]
9548
9644
  }], ctorParameters: function () { return [{ type: TableService }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { virtual: [{
9549
9645
  type: Input
9550
9646
  }], activeRow: [{
@@ -9606,12 +9702,13 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9606
9702
  this._zone = _zone;
9607
9703
  this._cdr = _cdr;
9608
9704
  this._click = _click;
9705
+ this.autoCloseIgnore = [];
9609
9706
  }
9610
9707
  get _dynamicContent() {
9611
9708
  return this.tetaContextMenu;
9612
9709
  }
9613
9710
  showContent(event) {
9614
- if (this.tetaContextMenu) {
9711
+ if (this.tetaContextMenu && !event.defaultPrevented) {
9615
9712
  event.preventDefault();
9616
9713
  setTimeout(() => {
9617
9714
  this.createMenu(event);
@@ -9625,14 +9722,32 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9625
9722
  event.stopPropagation();
9626
9723
  }
9627
9724
  }
9628
- ngOnInit() {
9629
- super.ngOnInit();
9630
- merge(this._click.click, this._click.contextMenu)
9631
- .pipe(takeWhile(() => this._alive), filter(() => this._open), filter(() => this._componentRef != null), filter((event) => !DomUtil.clickedInside(this._componentRef.location.nativeElement, event)), tap((_) => {
9725
+ documentClick(event) {
9726
+ if (this._open && this._componentRef && (!DomUtil.clickedInside(this._componentRef.location.nativeElement, event) || this.autoCloseIgnore.indexOf('inside') < 0)) {
9632
9727
  this.destroyContentRef();
9633
9728
  this.openChange.emit(false);
9634
- }))
9635
- .subscribe();
9729
+ }
9730
+ }
9731
+ ngOnInit() {
9732
+ super.ngOnInit();
9733
+ // merge(this._click.click, this._click.contextMenu)
9734
+ // .pipe(
9735
+ // takeWhile(() => this._alive),
9736
+ // filter(() => this._open),
9737
+ // filter(() => this._componentRef != null),
9738
+ // filter(
9739
+ // (event: MouseEvent) =>
9740
+ // !DomUtil.clickedInside(
9741
+ // this._componentRef.location.nativeElement,
9742
+ // event
9743
+ // ) || this.autoCloseIgnore.indexOf('inside') < 0
9744
+ // ),
9745
+ // tap((_) => {
9746
+ // this.destroyContentRef();
9747
+ // this.openChange.emit(false);
9748
+ // })
9749
+ // )
9750
+ // .subscribe();
9636
9751
  }
9637
9752
  ngOnDestroy() {
9638
9753
  super.ngOnDestroy();
@@ -9662,7 +9777,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9662
9777
  }
9663
9778
  }
9664
9779
  ContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: ClickService }], target: i0.ɵɵFactoryTarget.Directive });
9665
- ContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: { tetaContextMenu: "tetaContextMenu" }, host: { listeners: { "contextmenu": "showContent($event)", "click": "click($event)" } }, usesInheritance: true, ngImport: i0 });
9780
+ ContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: { tetaContextMenu: "tetaContextMenu", autoCloseIgnore: "autoCloseIgnore" }, host: { listeners: { "contextmenu": "showContent($event)", "click": "click($event)", "document:click": "documentClick($event)", "document:contextmenu": "documentClick($event)" } }, usesInheritance: true, ngImport: i0 });
9666
9781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuDirective, decorators: [{
9667
9782
  type: Directive,
9668
9783
  args: [{
@@ -9675,12 +9790,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9675
9790
  }] }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: ClickService }];
9676
9791
  }, propDecorators: { tetaContextMenu: [{
9677
9792
  type: Input
9793
+ }], autoCloseIgnore: [{
9794
+ type: Input
9678
9795
  }], showContent: [{
9679
9796
  type: HostListener,
9680
9797
  args: ['contextmenu', ['$event']]
9681
9798
  }], click: [{
9682
9799
  type: HostListener,
9683
9800
  args: ['click', ['$event']]
9801
+ }], documentClick: [{
9802
+ type: HostListener,
9803
+ args: ['document:click', ['$event']]
9804
+ }, {
9805
+ type: HostListener,
9806
+ args: ['document:contextmenu', ['$event']]
9684
9807
  }] } });
9685
9808
 
9686
9809
  class TableComponent {
@@ -9689,7 +9812,7 @@ class TableComponent {
9689
9812
  this._elementRef = _elementRef;
9690
9813
  this.data = [];
9691
9814
  this.columns = [];
9692
- this.selectType = SelectType.multiple;
9815
+ this.selectType = SelectType.mouse;
9693
9816
  this.groupRowComponent = GroupRowComponent;
9694
9817
  this.trackRow = (index, row) => index;
9695
9818
  this.editType = EditType.cell;
@@ -9770,9 +9893,12 @@ class TableComponent {
9770
9893
  if (event.ctrlKey) {
9771
9894
  this._svc.selectOrDeselectRow(row);
9772
9895
  }
9773
- if (event.shiftKey) {
9896
+ else if (event.shiftKey) {
9774
9897
  this._svc.selectRange(row);
9775
9898
  }
9899
+ else {
9900
+ this._svc.selectRows([row]);
9901
+ }
9776
9902
  }
9777
9903
  if (!this.eventIsOnRow(event) && !event.defaultPrevented) {
9778
9904
  if (this.editType === EditType.row) {
@@ -9991,7 +10117,7 @@ class TableComponent {
9991
10117
  }
9992
10118
  }
9993
10119
  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 });
9994
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableComponent, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", filterOptions: "filterOptions", state: "state", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", tree: "tree", trackRow: "trackRow", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", showHeadCellMenu: "showHeadCellMenu", contextMenu: "contextMenu", contextMenuOpen: "contextMenuOpen" }, outputs: { contextMenuOpenChange: "contextMenuOpenChange", stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellKeyDown: "cellKeyDown", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "keydown": "keydown($event)", "mousedown": "mousedown($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\n [selectType]=\"selectType\"\n [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [tetaContextMenu]=\"contextMenu\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n", styles: [""], components: [{ type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "selectedRows", "additionalComponent", "tree", "aggregate", "grouping", "groupRowComponent", "openLevels", "selectType", "rowClass"] }], directives: [{ type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: ["tetaContextMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10120
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableComponent, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", filterOptions: "filterOptions", state: "state", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", tree: "tree", trackRow: "trackRow", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", showHeadCellMenu: "showHeadCellMenu", contextMenu: "contextMenu", contextMenuOpen: "contextMenuOpen" }, outputs: { contextMenuOpenChange: "contextMenuOpenChange", stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellKeyDown: "cellKeyDown", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "keydown": "keydown($event)", "mousedown": "mousedown($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\n [selectType]=\"selectType\"\n [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [tetaContextMenu]=\"contextMenu\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n", styles: [""], components: [{ type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "selectedRows", "additionalComponent", "tree", "aggregate", "grouping", "groupRowComponent", "openLevels", "selectType", "rowClass"] }], directives: [{ type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: ["tetaContextMenu", "autoCloseIgnore"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9995
10121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, decorators: [{
9996
10122
  type: Component,
9997
10123
  args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], template: "<div class=\"column column_auto\">\n <teta-table-head\n [selectType]=\"selectType\"\n [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [tetaContextMenu]=\"contextMenu\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n", styles: [""] }]
@@ -10428,10 +10554,10 @@ class ThemeSwitchComponent {
10428
10554
  }
10429
10555
  }
10430
10556
  ThemeSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ThemeSwitchComponent, deps: [{ token: ThemeSwitchService }], target: i0.ɵɵFactoryTarget.Component });
10431
- ThemeSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ThemeSwitchComponent, selector: "teta-theme-switch", inputs: { palette: "palette", view: "view" }, ngImport: i0, template: "<button teta-button [palette]=\"palette\" [view]=\"view\" [square]=\"true\" (click)=\"switchTheme()\">\n <teta-icon [name]=\"'lamp'\" [palette]=\"'text'\"></teta-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}\n"], components: [{ type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10557
+ ThemeSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ThemeSwitchComponent, selector: "teta-theme-switch", inputs: { palette: "palette", view: "view" }, ngImport: i0, template: "<button teta-button [palette]=\"palette\" [view]=\"view\" [square]=\"true\" (click)=\"switchTheme()\">\n <teta-icon [name]=\"'lamp'\"></teta-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}\n"], components: [{ type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10432
10558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ThemeSwitchComponent, decorators: [{
10433
10559
  type: Component,
10434
- args: [{ selector: 'teta-theme-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button teta-button [palette]=\"palette\" [view]=\"view\" [square]=\"true\" (click)=\"switchTheme()\">\n <teta-icon [name]=\"'lamp'\" [palette]=\"'text'\"></teta-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}\n"] }]
10560
+ args: [{ selector: 'teta-theme-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button teta-button [palette]=\"palette\" [view]=\"view\" [square]=\"true\" (click)=\"switchTheme()\">\n <teta-icon [name]=\"'lamp'\"></teta-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}\n"] }]
10435
10561
  }], ctorParameters: function () { return [{ type: ThemeSwitchService }]; }, propDecorators: { palette: [{
10436
10562
  type: Input
10437
10563
  }], view: [{
@@ -10719,68 +10845,671 @@ class Chart3dOptions {
10719
10845
  }
10720
10846
  }
10721
10847
 
10722
- /* accordion */
10723
-
10724
- class DisableControlDirective {
10725
- constructor(ngControl) {
10726
- this.ngControl = ngControl;
10727
- }
10728
- set tetaDisableControl(val) {
10729
- if (this.ngControl.control) {
10730
- if (val) {
10731
- this.ngControl.control.disable();
10732
- }
10733
- else {
10734
- this.ngControl.control.enable();
10735
- }
10736
- }
10848
+ class ResizePanelComponent {
10849
+ constructor(_elementRef, _renderer, _document) {
10850
+ this._elementRef = _elementRef;
10851
+ this._renderer = _renderer;
10852
+ this._document = _document;
10853
+ this.resizePanelClass = true;
10854
+ this._direction = 'horizontal';
10855
+ this._grabPosition = 'left';
10856
+ this._positionMap = new Map()
10857
+ .set('left', 'resize-grab_left')
10858
+ .set('right', 'resize-grab_right')
10859
+ .set('top', 'resize-grab_top')
10860
+ .set('bottom', 'resize-grab_bottom');
10737
10861
  }
10738
- }
10739
- DisableControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, deps: [{ token: i3$1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
10740
- DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: { tetaDisableControl: "tetaDisableControl" }, ngImport: i0 });
10741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, decorators: [{
10742
- type: Directive,
10743
- args: [{
10744
- selector: '[tetaDisableControl]'
10745
- }]
10746
- }], ctorParameters: function () { return [{ type: i3$1.NgControl }]; }, propDecorators: { tetaDisableControl: [{
10747
- type: Input
10748
- }] } });
10749
-
10750
- class DisableControlModule {
10751
- }
10752
- DisableControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10753
- DisableControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, declarations: [DisableControlDirective], imports: [CommonModule], exports: [DisableControlDirective] });
10754
- DisableControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, imports: [[
10755
- CommonModule
10756
- ]] });
10757
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, decorators: [{
10758
- type: NgModule,
10759
- args: [{
10760
- declarations: [DisableControlDirective],
10761
- imports: [
10762
- CommonModule
10763
- ],
10764
- exports: [
10765
- DisableControlDirective
10766
- ]
10767
- }]
10768
- }] });
10769
-
10770
- // import {DragSortItemDirective} from './drag-sort-item.directive';
10771
- class DragSortContainerDirective {
10772
- constructor() {
10773
- this.dragSorted = new EventEmitter();
10862
+ set direction(val) {
10863
+ this._direction = val;
10774
10864
  }
10775
- drop(event) {
10776
- event.stopPropagation();
10777
- event.preventDefault();
10865
+ get direction() {
10866
+ return this._direction;
10778
10867
  }
10779
- setDragItem(item) {
10780
- this._dragItem = item;
10868
+ get icon() {
10869
+ return this.direction === "horizontal" ? 'moreHorizontal' : 'moreVertical';
10781
10870
  }
10782
- getDragItem() {
10783
- return this._dragItem;
10871
+ set grabPosition(val) {
10872
+ this._grabPosition = val;
10873
+ }
10874
+ get grabPosition() {
10875
+ if (this.direction === 'vertical') {
10876
+ if (['left', 'right'].includes(this._grabPosition)) {
10877
+ return this._grabPosition;
10878
+ }
10879
+ return 'left';
10880
+ }
10881
+ if (['top', 'bottom'].includes(this._grabPosition)) {
10882
+ return this._grabPosition;
10883
+ }
10884
+ return 'bottom';
10885
+ }
10886
+ resizeStart(event) {
10887
+ this.setStartPosition();
10888
+ if (this.direction === 'vertical') {
10889
+ this._startSize = this._elementRef.nativeElement.clientWidth;
10890
+ this._startPosition = event.clientX;
10891
+ }
10892
+ else {
10893
+ this._startSize = this._elementRef.nativeElement.clientHeight;
10894
+ this._startPosition = event.clientY;
10895
+ }
10896
+ }
10897
+ resizeProcess(event) {
10898
+ event.preventDefault();
10899
+ if (this.direction === 'vertical') {
10900
+ this.manageVertical(event);
10901
+ }
10902
+ else {
10903
+ this.manageHorizontal(event);
10904
+ }
10905
+ }
10906
+ resizeEnd(event) {
10907
+ window.dispatchEvent(new Event('resize'));
10908
+ }
10909
+ ngOnInit() {
10910
+ this.restorePosition();
10911
+ }
10912
+ ngOnDestroy() {
10913
+ }
10914
+ getClassName() {
10915
+ return this._positionMap.get(this.grabPosition) || '';
10916
+ }
10917
+ setStartPosition() {
10918
+ if (this.direction === 'vertical') {
10919
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${this._elementRef.nativeElement.offsetWidth}px`);
10920
+ }
10921
+ else {
10922
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${this._elementRef.nativeElement.offsetHeight}px`);
10923
+ }
10924
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
10925
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
10926
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
10927
+ }
10928
+ manageHorizontal(event) {
10929
+ let newSize = this.grabPosition === 'bottom'
10930
+ ? this._startSize + (event.clientY - this._startPosition)
10931
+ : this._startSize - (event.clientY - this._startPosition);
10932
+ if (this.maxSize && newSize > this.maxSize) {
10933
+ newSize = this.maxSize;
10934
+ }
10935
+ if (this.minSize && newSize < this.minSize) {
10936
+ newSize = this.minSize;
10937
+ }
10938
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${newSize}px`);
10939
+ this.save();
10940
+ }
10941
+ manageVertical(event) {
10942
+ let newSize = this.grabPosition === 'right'
10943
+ ? this._startSize + (event.clientX - this._startPosition)
10944
+ : this._startSize - (event.clientX - this._startPosition);
10945
+ if (this.maxSize && newSize > this.maxSize) {
10946
+ newSize = this.maxSize;
10947
+ }
10948
+ if (this.minSize && newSize < this.minSize) {
10949
+ newSize = this.minSize;
10950
+ }
10951
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${newSize}px`);
10952
+ this.save();
10953
+ }
10954
+ restore() {
10955
+ var _a;
10956
+ if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
10957
+ return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));
10958
+ }
10959
+ }
10960
+ restorePosition() {
10961
+ const savedSize = this.restore();
10962
+ if (savedSize) {
10963
+ if (this.direction === 'vertical') {
10964
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${savedSize}px`);
10965
+ }
10966
+ else {
10967
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${savedSize}px`);
10968
+ }
10969
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
10970
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
10971
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
10972
+ }
10973
+ }
10974
+ save() {
10975
+ var _a;
10976
+ if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
10977
+ if (this.direction === 'vertical') {
10978
+ localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientWidth);
10979
+ }
10980
+ else {
10981
+ localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientHeight);
10982
+ }
10983
+ }
10984
+ }
10985
+ }
10986
+ ResizePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
10987
+ ResizePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ResizePanelComponent, selector: "teta-resize-panel", inputs: { direction: "direction", grabPosition: "grabPosition", name: "name", minSize: "minSize", maxSize: "maxSize" }, host: { properties: { "class.resize-panel": "this.resizePanelClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n\n <teta-icon [name]=\"icon\"></teta-icon>\n</div>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
10989
+ type: Component,
10990
+ args: [{ selector: 'teta-resize-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n\n <teta-icon [name]=\"icon\"></teta-icon>\n</div>\n", styles: [""] }]
10991
+ }], ctorParameters: function () {
10992
+ return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
10993
+ type: Inject,
10994
+ args: [DOCUMENT]
10995
+ }] }];
10996
+ }, propDecorators: { direction: [{
10997
+ type: Input
10998
+ }], grabPosition: [{
10999
+ type: Input
11000
+ }], name: [{
11001
+ type: Input
11002
+ }], minSize: [{
11003
+ type: Input
11004
+ }], maxSize: [{
11005
+ type: Input
11006
+ }], resizePanelClass: [{
11007
+ type: HostBinding,
11008
+ args: ['class.resize-panel']
11009
+ }] } });
11010
+
11011
+ class ResizePanelModule {
11012
+ }
11013
+ ResizePanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11014
+ ResizePanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, declarations: [ResizePanelComponent], imports: [CommonModule, IconModule, ResizeDragModule], exports: [ResizePanelComponent] });
11015
+ ResizePanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, imports: [[CommonModule, IconModule, ResizeDragModule]] });
11016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, decorators: [{
11017
+ type: NgModule,
11018
+ args: [{
11019
+ declarations: [ResizePanelComponent],
11020
+ exports: [ResizePanelComponent],
11021
+ imports: [CommonModule, IconModule, ResizeDragModule],
11022
+ }]
11023
+ }] });
11024
+
11025
+ /* accordion */
11026
+
11027
+ class DisableControlDirective {
11028
+ constructor(ngControl) {
11029
+ this.ngControl = ngControl;
11030
+ }
11031
+ set tetaDisableControl(val) {
11032
+ if (this.ngControl.control) {
11033
+ if (val) {
11034
+ this.ngControl.control.disable();
11035
+ }
11036
+ else {
11037
+ this.ngControl.control.enable();
11038
+ }
11039
+ }
11040
+ }
11041
+ }
11042
+ DisableControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, deps: [{ token: i3$1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
11043
+ DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: { tetaDisableControl: "tetaDisableControl" }, ngImport: i0 });
11044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, decorators: [{
11045
+ type: Directive,
11046
+ args: [{
11047
+ selector: '[tetaDisableControl]'
11048
+ }]
11049
+ }], ctorParameters: function () { return [{ type: i3$1.NgControl }]; }, propDecorators: { tetaDisableControl: [{
11050
+ type: Input
11051
+ }] } });
11052
+
11053
+ class DisableControlModule {
11054
+ }
11055
+ DisableControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11056
+ DisableControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, declarations: [DisableControlDirective], imports: [CommonModule], exports: [DisableControlDirective] });
11057
+ DisableControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, imports: [[
11058
+ CommonModule
11059
+ ]] });
11060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, decorators: [{
11061
+ type: NgModule,
11062
+ args: [{
11063
+ declarations: [DisableControlDirective],
11064
+ imports: [
11065
+ CommonModule
11066
+ ],
11067
+ exports: [
11068
+ DisableControlDirective
11069
+ ]
11070
+ }]
11071
+ }] });
11072
+
11073
+ class DragInstance {
11074
+ constructor(options) {
11075
+ this.container = options.container;
11076
+ this.data = options.data;
11077
+ }
11078
+ }
11079
+
11080
+ class DragPreviewDirective {
11081
+ constructor(templateRef) {
11082
+ this.templateRef = templateRef;
11083
+ }
11084
+ }
11085
+ DragPreviewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPreviewDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11086
+ DragPreviewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragPreviewDirective, selector: "[tetaDragPreview]", ngImport: i0 });
11087
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPreviewDirective, decorators: [{
11088
+ type: Directive,
11089
+ args: [{
11090
+ selector: '[tetaDragPreview]'
11091
+ }]
11092
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
11093
+
11094
+ class DragContainerInstance {
11095
+ constructor(options) {
11096
+ this.data = options.data;
11097
+ this.previewTemplate = options.previewTemplate;
11098
+ this.viewContainer = options.viewContainer;
11099
+ }
11100
+ }
11101
+
11102
+ class DragDropService {
11103
+ constructor(_document, _rendererFactory) {
11104
+ this._document = _document;
11105
+ this._rendererFactory = _rendererFactory;
11106
+ this.dropTarget$ = new BehaviorSubject(null);
11107
+ this._delta = 10;
11108
+ this.dropped$ = new Subject();
11109
+ this._renderer = this._rendererFactory.createRenderer(null, null);
11110
+ this.dropTarget = this.dropTarget$.asObservable();
11111
+ this.dropped = this.dropped$.asObservable();
11112
+ merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove')).pipe(filter(() => {
11113
+ return this.startPosition != null;
11114
+ })).subscribe((event) => {
11115
+ if (!this.dragProcess && this.getDelta(event) > this._delta) {
11116
+ this.startProcess();
11117
+ }
11118
+ if (this.dragProcess && this._preview) {
11119
+ this.movePreview(event);
11120
+ }
11121
+ });
11122
+ merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend')).pipe(withLatestFrom(this.dropTarget)).subscribe((data) => {
11123
+ const [event, target] = data;
11124
+ if (target) {
11125
+ this.dropped$.next({
11126
+ target,
11127
+ container: this.dragProcess.selection.container,
11128
+ data: [...this.dragProcess.selection.items]
11129
+ });
11130
+ this.cancelDrag();
11131
+ }
11132
+ this.stopProcess();
11133
+ });
11134
+ merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur'))
11135
+ .subscribe(() => {
11136
+ this.cancelDrag();
11137
+ });
11138
+ }
11139
+ setDropTarget(target) {
11140
+ if (this.dragProcess) {
11141
+ this.dropTarget$.next(target);
11142
+ }
11143
+ }
11144
+ setStartPosition(point) {
11145
+ this.startPosition = point;
11146
+ }
11147
+ setSelection(instance, container) {
11148
+ var _a, _b, _c;
11149
+ if (((_a = this.selection) === null || _a === void 0 ? void 0 : _a.container) === container && ((_c = (_b = this.selection) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.indexOf(instance)) >= 0) {
11150
+ return;
11151
+ }
11152
+ this.selection = {
11153
+ container,
11154
+ items: [instance]
11155
+ };
11156
+ }
11157
+ addSelection(instance, container) {
11158
+ if (!this.selection) {
11159
+ this.setSelection(instance, container);
11160
+ return;
11161
+ }
11162
+ if (this.selection && this.selection.container !== container) {
11163
+ return;
11164
+ }
11165
+ const index = this.selection.items.indexOf(instance);
11166
+ if (index < 0) {
11167
+ this.selection.items.push(instance);
11168
+ }
11169
+ else {
11170
+ this.selection.items.splice(index, 1);
11171
+ }
11172
+ }
11173
+ clearSelection() {
11174
+ this.selection = null;
11175
+ }
11176
+ cancelDrag() {
11177
+ this.setDropTarget(null);
11178
+ this.clearSelection();
11179
+ this.stopProcess();
11180
+ }
11181
+ startProcess() {
11182
+ this.dragProcess = {
11183
+ selection: this.selection
11184
+ };
11185
+ this._preview = this.createPreview();
11186
+ }
11187
+ stopProcess() {
11188
+ this.destroyPreview();
11189
+ this.dragProcess = null;
11190
+ this.startPosition = null;
11191
+ }
11192
+ getDelta(event) {
11193
+ return Math.max(Math.abs(this.startPosition.x - event.x), Math.abs(this.startPosition.y - event.y));
11194
+ }
11195
+ createPreview() {
11196
+ if (this.dragProcess.selection.container.previewTemplate) {
11197
+ this._previewRef = this.dragProcess.selection.container.viewContainer.createEmbeddedView(this.dragProcess.selection.container.previewTemplate, {
11198
+ $implicit: this.dragProcess.selection.items,
11199
+ data: this.dragProcess.selection.items
11200
+ });
11201
+ const preview = this._renderer.createElement('div');
11202
+ this._renderer.setStyle(preview, 'position', 'fixed');
11203
+ this._renderer.setStyle(preview, 'pointer-events', 'none');
11204
+ this._renderer.setStyle(preview, 'top', '0');
11205
+ this._renderer.setStyle(preview, 'left', '0');
11206
+ this._renderer.appendChild(preview, this._previewRef.rootNodes[0]);
11207
+ this._renderer.appendChild(document.body, preview);
11208
+ return preview;
11209
+ }
11210
+ return null;
11211
+ }
11212
+ movePreview(event) {
11213
+ if (this._preview) {
11214
+ this._renderer.setStyle(this._preview, 'transform', `translate(${event.x}px, ${event.y}px)`);
11215
+ }
11216
+ }
11217
+ destroyPreview() {
11218
+ var _a, _b, _c, _d, _e, _f;
11219
+ if (this._preview) {
11220
+ (_d = (_c = (_b = (_a = this.dragProcess) === null || _a === void 0 ? void 0 : _a.selection) === null || _b === void 0 ? void 0 : _b.container) === null || _c === void 0 ? void 0 : _c.viewContainer) === null || _d === void 0 ? void 0 : _d.clear();
11221
+ (_e = this._preview) === null || _e === void 0 ? void 0 : _e.remove();
11222
+ (_f = this._previewRef) === null || _f === void 0 ? void 0 : _f.destroy();
11223
+ this._preview = this._previewRef = null;
11224
+ }
11225
+ }
11226
+ }
11227
+ DragDropService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, deps: [{ token: DOCUMENT }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
11228
+ DragDropService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, providedIn: 'root' });
11229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, decorators: [{
11230
+ type: Injectable,
11231
+ args: [{
11232
+ providedIn: 'root'
11233
+ }]
11234
+ }], ctorParameters: function () {
11235
+ return [{ type: undefined, decorators: [{
11236
+ type: Inject,
11237
+ args: [DOCUMENT]
11238
+ }] }, { type: i0.RendererFactory2 }];
11239
+ } });
11240
+
11241
+ class DragContainerDirective {
11242
+ constructor(_dragService, _elementRef, _viewContainerRef, _zone, _cdr) {
11243
+ this._dragService = _dragService;
11244
+ this._elementRef = _elementRef;
11245
+ this._viewContainerRef = _viewContainerRef;
11246
+ this._zone = _zone;
11247
+ this._cdr = _cdr;
11248
+ this.multiple = false;
11249
+ this.allowDrop = true;
11250
+ this.tetaDrop = new EventEmitter();
11251
+ this.tetaDragEnter = new EventEmitter();
11252
+ this._alive = true;
11253
+ }
11254
+ get isDropTarget() {
11255
+ return this.dropTarget === this.instance;
11256
+ }
11257
+ mouseleave(event) {
11258
+ this._dragService.setDropTarget(null);
11259
+ }
11260
+ mouseover(event) {
11261
+ if (this.allowDrop) {
11262
+ this._dragService.setDropTarget(this.instance);
11263
+ }
11264
+ }
11265
+ escape(event) {
11266
+ this._dragService.cancelDrag();
11267
+ }
11268
+ ngOnInit() {
11269
+ var _a;
11270
+ this.instance = new DragContainerInstance({
11271
+ data: this.data,
11272
+ previewTemplate: (_a = this._previewTemplate) === null || _a === void 0 ? void 0 : _a.templateRef,
11273
+ viewContainer: this._viewContainerRef
11274
+ });
11275
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11276
+ .subscribe((target) => {
11277
+ this.dropTarget = target;
11278
+ this._cdr.detectChanges();
11279
+ });
11280
+ this._dragService.dropped.pipe(takeWhile(() => this._alive))
11281
+ .subscribe((event) => {
11282
+ this.tetaDrop.emit(event);
11283
+ });
11284
+ }
11285
+ ngOnDestroy() {
11286
+ this._alive = false;
11287
+ }
11288
+ }
11289
+ DragContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragContainerDirective, deps: [{ token: DragDropService }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
11290
+ DragContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragContainerDirective, selector: "[tetaDragContainer]", inputs: { data: ["tetaDragContainer", "data"], multiple: "multiple", allowDrop: "allowDrop" }, outputs: { tetaDrop: "tetaDrop", tetaDragEnter: "tetaDragEnter" }, host: { listeners: { "mouseleave": "mouseleave($event)", "mouseover": "mouseover($event)", "window:keydown.escape": "escape($event)" }, properties: { "class.teta-drag-container": "\"true\"", "class.teta-drop-target": "isDropTarget" } }, queries: [{ propertyName: "_previewTemplate", first: true, predicate: DragPreviewDirective, descendants: true, static: true }], exportAs: ["dragContainer"], ngImport: i0 });
11291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragContainerDirective, decorators: [{
11292
+ type: Directive,
11293
+ args: [{
11294
+ selector: '[tetaDragContainer]',
11295
+ exportAs: 'dragContainer',
11296
+ host: {
11297
+ '[class.teta-drag-container]': '"true"',
11298
+ '[class.teta-drop-target]': 'isDropTarget'
11299
+ }
11300
+ }]
11301
+ }], ctorParameters: function () { return [{ type: DragDropService }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
11302
+ type: Input,
11303
+ args: ['tetaDragContainer']
11304
+ }], multiple: [{
11305
+ type: Input
11306
+ }], allowDrop: [{
11307
+ type: Input
11308
+ }], tetaDrop: [{
11309
+ type: Output
11310
+ }], tetaDragEnter: [{
11311
+ type: Output
11312
+ }], _previewTemplate: [{
11313
+ type: ContentChild,
11314
+ args: [DragPreviewDirective, {
11315
+ static: true
11316
+ }]
11317
+ }], mouseleave: [{
11318
+ type: HostListener,
11319
+ args: ['mouseleave', ['$event']]
11320
+ }], mouseover: [{
11321
+ type: HostListener,
11322
+ args: ['mouseover', ['$event']]
11323
+ }], escape: [{
11324
+ type: HostListener,
11325
+ args: ['window:keydown.escape', ['$event']]
11326
+ }] } });
11327
+
11328
+ class DragDirective {
11329
+ constructor(_container, _dragService, _zone, _cdr) {
11330
+ this._container = _container;
11331
+ this._dragService = _dragService;
11332
+ this._zone = _zone;
11333
+ this._cdr = _cdr;
11334
+ this.allowDrag = true;
11335
+ this.allowDrop = true;
11336
+ this.tetaDragEnter = new EventEmitter();
11337
+ this.tetaDrop = new EventEmitter();
11338
+ this._alive = true;
11339
+ }
11340
+ get selection() {
11341
+ var _a, _b, _c;
11342
+ return ((_c = (_b = (_a = this._dragService) === null || _a === void 0 ? void 0 : _a.selection) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.indexOf(this.instance)) >= 0;
11343
+ }
11344
+ get isDropTarget() {
11345
+ return this.dropTarget === this.instance;
11346
+ }
11347
+ mousedown(event) {
11348
+ var _a;
11349
+ if (event.ctrlKey && ((_a = this._container) === null || _a === void 0 ? void 0 : _a.multiple)) {
11350
+ this._dragService.addSelection(this.instance, this._container.instance);
11351
+ }
11352
+ else {
11353
+ this._dragService.setSelection(this.instance, this._container.instance);
11354
+ }
11355
+ this._dragService.setStartPosition({
11356
+ x: event.x,
11357
+ y: event.y
11358
+ });
11359
+ }
11360
+ mouseenter(event) {
11361
+ if (this.allowDrop) {
11362
+ event.stopPropagation();
11363
+ this._dragService.setDropTarget(this.instance);
11364
+ }
11365
+ }
11366
+ mouseleave(event) {
11367
+ this._dragService.setDropTarget(null);
11368
+ }
11369
+ ngOnInit() {
11370
+ this.instance = new DragInstance({
11371
+ container: this._container.instance,
11372
+ data: this.data
11373
+ });
11374
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11375
+ .subscribe((target) => {
11376
+ this.dropTarget = target;
11377
+ if (target === this.instance) {
11378
+ this.tetaDragEnter.emit(this.instance);
11379
+ }
11380
+ this._cdr.detectChanges();
11381
+ this._cdr.markForCheck();
11382
+ });
11383
+ this._dragService.dropped.pipe(takeWhile(() => this._alive))
11384
+ .pipe(filter((event) => {
11385
+ return event.target === this.instance;
11386
+ }))
11387
+ .subscribe((event) => {
11388
+ this.tetaDrop.emit(event);
11389
+ });
11390
+ }
11391
+ ngOnDestroy() {
11392
+ this._alive = false;
11393
+ }
11394
+ }
11395
+ DragDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDirective, deps: [{ token: DragContainerDirective, optional: true, skipSelf: true }, { token: DragDropService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
11396
+ DragDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragDirective, selector: "[tetaDrag]", inputs: { data: ["tetaDrag", "data"], allowDrag: "allowDrag", allowDrop: "allowDrop" }, outputs: { tetaDragEnter: "tetaDragEnter", tetaDrop: "tetaDrop" }, host: { listeners: { "mousedown": "mousedown($event)", "touchstart": "mousedown($event)", "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.userSelect": "\"none\"", "class.teta-drag-item": "\"true\"", "class.teta_draggable_item": "this.allowDrag", "class.teta_droppable_item": "this.allowDrop", "class.teta-drag-selection": "this.selection", "class.teta-drop-target": "this.isDropTarget" } }, exportAs: ["drag"], ngImport: i0 });
11397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDirective, decorators: [{
11398
+ type: Directive,
11399
+ args: [{
11400
+ selector: '[tetaDrag]',
11401
+ exportAs: 'drag',
11402
+ host: {
11403
+ '[style.userSelect]': '"none"',
11404
+ '[class.teta-drag-item]': '"true"'
11405
+ }
11406
+ }]
11407
+ }], ctorParameters: function () {
11408
+ return [{ type: DragContainerDirective, decorators: [{
11409
+ type: Inject,
11410
+ args: [DragContainerDirective]
11411
+ }, {
11412
+ type: Optional
11413
+ }, {
11414
+ type: SkipSelf
11415
+ }] }, { type: DragDropService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }];
11416
+ }, propDecorators: { data: [{
11417
+ type: Input,
11418
+ args: ['tetaDrag']
11419
+ }], allowDrag: [{
11420
+ type: HostBinding,
11421
+ args: ['class.teta_draggable_item']
11422
+ }, {
11423
+ type: Input
11424
+ }], allowDrop: [{
11425
+ type: HostBinding,
11426
+ args: ['class.teta_droppable_item']
11427
+ }, {
11428
+ type: Input
11429
+ }], tetaDragEnter: [{
11430
+ type: Output
11431
+ }], tetaDrop: [{
11432
+ type: Output
11433
+ }], selection: [{
11434
+ type: HostBinding,
11435
+ args: ['class.teta-drag-selection']
11436
+ }], isDropTarget: [{
11437
+ type: HostBinding,
11438
+ args: ['class.teta-drop-target']
11439
+ }], mousedown: [{
11440
+ type: HostListener,
11441
+ args: ['mousedown', ['$event']]
11442
+ }, {
11443
+ type: HostListener,
11444
+ args: ['touchstart', ['$event']]
11445
+ }], mouseenter: [{
11446
+ type: HostListener,
11447
+ args: ['mouseenter', ['$event']]
11448
+ }], mouseleave: [{
11449
+ type: HostListener,
11450
+ args: ['mouseleave', ['$event']]
11451
+ }] } });
11452
+
11453
+ class DragPlaceholderDirective {
11454
+ constructor() { }
11455
+ }
11456
+ DragPlaceholderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPlaceholderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11457
+ DragPlaceholderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragPlaceholderDirective, selector: "[tetaDragPlaceholder]", ngImport: i0 });
11458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPlaceholderDirective, decorators: [{
11459
+ type: Directive,
11460
+ args: [{
11461
+ selector: '[tetaDragPlaceholder]'
11462
+ }]
11463
+ }], ctorParameters: function () { return []; } });
11464
+
11465
+ class DragDropModule {
11466
+ }
11467
+ DragDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11468
+ DragDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, declarations: [DragContainerDirective,
11469
+ DragDirective,
11470
+ DragPreviewDirective,
11471
+ DragPlaceholderDirective], imports: [CommonModule], exports: [DragContainerDirective,
11472
+ DragDirective,
11473
+ DragPreviewDirective,
11474
+ DragPlaceholderDirective] });
11475
+ DragDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, imports: [[
11476
+ CommonModule
11477
+ ]] });
11478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, decorators: [{
11479
+ type: NgModule,
11480
+ args: [{
11481
+ declarations: [
11482
+ DragContainerDirective,
11483
+ DragDirective,
11484
+ DragPreviewDirective,
11485
+ DragPlaceholderDirective
11486
+ ],
11487
+ exports: [
11488
+ DragContainerDirective,
11489
+ DragDirective,
11490
+ DragPreviewDirective,
11491
+ DragPlaceholderDirective
11492
+ ],
11493
+ imports: [
11494
+ CommonModule
11495
+ ]
11496
+ }]
11497
+ }] });
11498
+
11499
+ // import {DragSortItemDirective} from './drag-sort-item.directive';
11500
+ class DragSortContainerDirective {
11501
+ constructor() {
11502
+ this.dragSorted = new EventEmitter();
11503
+ }
11504
+ drop(event) {
11505
+ event.stopPropagation();
11506
+ event.preventDefault();
11507
+ }
11508
+ setDragItem(item) {
11509
+ this._dragItem = item;
11510
+ }
11511
+ getDragItem() {
11512
+ return this._dragItem;
10784
11513
  }
10785
11514
  getList() {
10786
11515
  return this.dragSortList;
@@ -11046,180 +11775,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
11046
11775
  }]
11047
11776
  }] });
11048
11777
 
11049
- class ResizePanelComponent {
11050
- constructor(_elementRef, _renderer, _document) {
11051
- this._elementRef = _elementRef;
11052
- this._renderer = _renderer;
11053
- this._document = _document;
11054
- this.resizePanelClass = true;
11055
- this._direction = 'horizontal';
11056
- this._grabPosition = 'left';
11057
- this._positionMap = new Map()
11058
- .set('left', 'resize-grab_left')
11059
- .set('right', 'resize-grab_right')
11060
- .set('top', 'resize-grab_top')
11061
- .set('bottom', 'resize-grab_bottom');
11062
- }
11063
- set direction(val) {
11064
- this._direction = val;
11065
- }
11066
- get direction() {
11067
- return this._direction;
11068
- }
11069
- set grabPosition(val) {
11070
- this._grabPosition = val;
11071
- }
11072
- get grabPosition() {
11073
- if (this.direction === 'vertical') {
11074
- if (['left', 'right'].includes(this._grabPosition)) {
11075
- return this._grabPosition;
11076
- }
11077
- return 'left';
11078
- }
11079
- if (['top', 'bottom'].includes(this._grabPosition)) {
11080
- return this._grabPosition;
11081
- }
11082
- return 'bottom';
11083
- }
11084
- resizeStart(event) {
11085
- this.setStartPosition();
11086
- if (this.direction === 'vertical') {
11087
- this._startSize = this._elementRef.nativeElement.clientWidth;
11088
- this._startPosition = event.clientX;
11089
- }
11090
- else {
11091
- this._startSize = this._elementRef.nativeElement.clientHeight;
11092
- this._startPosition = event.clientY;
11093
- }
11094
- }
11095
- resizeProcess(event) {
11096
- event.preventDefault();
11097
- if (this.direction === 'vertical') {
11098
- this.manageVertical(event);
11099
- }
11100
- else {
11101
- this.manageHorizontal(event);
11102
- }
11103
- }
11104
- resizeEnd(event) {
11105
- window.dispatchEvent(new Event('resize'));
11106
- }
11107
- ngOnInit() {
11108
- this.restorePosition();
11109
- }
11110
- ngOnDestroy() {
11111
- }
11112
- getClassName() {
11113
- return this._positionMap.get(this.grabPosition) || '';
11114
- }
11115
- setStartPosition() {
11116
- if (this.direction === 'vertical') {
11117
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${this._elementRef.nativeElement.offsetWidth}px`);
11118
- }
11119
- else {
11120
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${this._elementRef.nativeElement.offsetHeight}px`);
11121
- }
11122
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
11123
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
11124
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
11125
- }
11126
- manageHorizontal(event) {
11127
- let newSize = this.grabPosition === 'bottom'
11128
- ? this._startSize + (event.clientY - this._startPosition)
11129
- : this._startSize - (event.clientY - this._startPosition);
11130
- if (this.maxSize && newSize > this.maxSize) {
11131
- newSize = this.maxSize;
11132
- }
11133
- if (this.minSize && newSize < this.minSize) {
11134
- newSize = this.minSize;
11135
- }
11136
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${newSize}px`);
11137
- this.save();
11138
- }
11139
- manageVertical(event) {
11140
- let newSize = this.grabPosition === 'right'
11141
- ? this._startSize + (event.clientX - this._startPosition)
11142
- : this._startSize - (event.clientX - this._startPosition);
11143
- if (this.maxSize && newSize > this.maxSize) {
11144
- newSize = this.maxSize;
11145
- }
11146
- if (this.minSize && newSize < this.minSize) {
11147
- newSize = this.minSize;
11148
- }
11149
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${newSize}px`);
11150
- this.save();
11151
- }
11152
- restore() {
11153
- var _a;
11154
- if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
11155
- return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));
11156
- }
11157
- }
11158
- restorePosition() {
11159
- const savedSize = this.restore();
11160
- if (savedSize) {
11161
- if (this.direction === 'vertical') {
11162
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${savedSize}px`);
11163
- }
11164
- else {
11165
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${savedSize}px`);
11166
- }
11167
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
11168
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
11169
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
11170
- }
11171
- }
11172
- save() {
11173
- var _a;
11174
- if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
11175
- if (this.direction === 'vertical') {
11176
- localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientWidth);
11177
- }
11178
- else {
11179
- localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientHeight);
11180
- }
11181
- }
11182
- }
11183
- }
11184
- ResizePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
11185
- ResizePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ResizePanelComponent, selector: "teta-resize-panel", inputs: { direction: "direction", grabPosition: "grabPosition", name: "name", minSize: "minSize", maxSize: "maxSize" }, host: { properties: { "class.resize-panel": "this.resizePanelClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n <teta-icon [name]=\"direction\"></teta-icon>\n</div>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
11187
- type: Component,
11188
- args: [{ selector: 'teta-resize-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n <teta-icon [name]=\"direction\"></teta-icon>\n</div>\n", styles: [""] }]
11189
- }], ctorParameters: function () {
11190
- return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
11191
- type: Inject,
11192
- args: [DOCUMENT]
11193
- }] }];
11194
- }, propDecorators: { direction: [{
11195
- type: Input
11196
- }], grabPosition: [{
11197
- type: Input
11198
- }], name: [{
11199
- type: Input
11200
- }], minSize: [{
11201
- type: Input
11202
- }], maxSize: [{
11203
- type: Input
11204
- }], resizePanelClass: [{
11205
- type: HostBinding,
11206
- args: ['class.resize-panel']
11207
- }] } });
11208
-
11209
- class ResizePanelModule {
11210
- }
11211
- ResizePanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11212
- ResizePanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, declarations: [ResizePanelComponent], imports: [CommonModule, IconModule, ResizeDragModule], exports: [ResizePanelComponent] });
11213
- ResizePanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, imports: [[CommonModule, IconModule, ResizeDragModule]] });
11214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, decorators: [{
11215
- type: NgModule,
11216
- args: [{
11217
- declarations: [ResizePanelComponent],
11218
- exports: [ResizePanelComponent],
11219
- imports: [CommonModule, IconModule, ResizeDragModule],
11220
- }]
11221
- }] });
11222
-
11223
11778
  class TooltipDirective extends DynamicContentBaseDirective {
11224
11779
  constructor(_document, _elementRef, _service, _injector, _zone, _cdr, _click) {
11225
11780
  super(_document, _elementRef, _service, _injector, _zone, _cdr);
@@ -11342,6 +11897,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
11342
11897
  }]
11343
11898
  }] });
11344
11899
 
11900
+ class LetDirective {
11901
+ constructor(viewContainer, templateRef) {
11902
+ viewContainer.createEmbeddedView(templateRef, new LetContext(this));
11903
+ }
11904
+ static ngTemplateContextGuard(_dir, _ctx) {
11905
+ return true;
11906
+ }
11907
+ }
11908
+ LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetDirective, deps: [{ token: ViewContainerRef }, { token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11909
+ LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: LetDirective, selector: "[tetaLet]", inputs: { tetaLet: "tetaLet" }, ngImport: i0 });
11910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetDirective, decorators: [{
11911
+ type: Directive,
11912
+ args: [{
11913
+ selector: '[tetaLet]'
11914
+ }]
11915
+ }], ctorParameters: function () {
11916
+ return [{ type: i0.ViewContainerRef, decorators: [{
11917
+ type: Inject,
11918
+ args: [ViewContainerRef]
11919
+ }] }, { type: i0.TemplateRef, decorators: [{
11920
+ type: Inject,
11921
+ args: [TemplateRef]
11922
+ }] }];
11923
+ }, propDecorators: { tetaLet: [{
11924
+ type: Input
11925
+ }] } });
11926
+ class LetContext {
11927
+ constructor(internalDirectiveInstance) {
11928
+ this.internalDirectiveInstance = internalDirectiveInstance;
11929
+ }
11930
+ get $implicit() {
11931
+ return this.internalDirectiveInstance.tetaLet;
11932
+ }
11933
+ get tetaLet() {
11934
+ return this.internalDirectiveInstance.tetaLet;
11935
+ }
11936
+ }
11937
+
11938
+ class LetModule {
11939
+ }
11940
+ LetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11941
+ LetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, declarations: [LetDirective], imports: [CommonModule], exports: [LetDirective] });
11942
+ LetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, imports: [[
11943
+ CommonModule
11944
+ ]] });
11945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, decorators: [{
11946
+ type: NgModule,
11947
+ args: [{
11948
+ declarations: [
11949
+ LetDirective
11950
+ ], exports: [
11951
+ LetDirective
11952
+ ],
11953
+ imports: [
11954
+ CommonModule
11955
+ ]
11956
+ }]
11957
+ }] });
11958
+
11345
11959
  class OverlayContainerService {
11346
11960
  constructor(document$) {
11347
11961
  this.document$ = document$;
@@ -11439,6 +12053,20 @@ const ruLocale = {
11439
12053
  ]
11440
12054
  };
11441
12055
 
12056
+ function tetaZoneFull(ngZone) {
12057
+ return source => new Observable(subscriber => source.subscribe({
12058
+ next: value => ngZone.run(() => subscriber.next(value)),
12059
+ error: (error) => ngZone.run(() => subscriber.error(error)),
12060
+ complete: () => ngZone.run(() => subscriber.complete()),
12061
+ }));
12062
+ }
12063
+ function tetaZoneFree(ngZone) {
12064
+ return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
12065
+ }
12066
+ function tetaZoneOptimized(ngZone) {
12067
+ return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
12068
+ }
12069
+
11442
12070
  /**
11443
12071
  * Components
11444
12072
  */
@@ -11447,5 +12075,5 @@ const ruLocale = {
11447
12075
  * Generated bundle index. Do not edit.
11448
12076
  */
11449
12077
 
11450
- export { AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, ArrayUtil, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, 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, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, GroupRowComponent, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HighlightModule, HintDirective, HintModule, IconComponent, IconModule, IconService, IconSpriteDirective, InputComponent, InputModule, 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, PopupContentComponent, PositionUtil, ProgressBarComponent, ProgressBarModule, PropertyGridComponent, PropertyGridModule, RadioButtonComponent, RadioComponent, RadioModule, ResizeDragDirective, ResizeDragModule, ResizePanelComponent, ResizePanelModule, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, SelectComponent, SelectModule, SelectOptionDirective, SelectType, SelectValueDirective, SidebarComponent, SidebarModule, SidebarPosition, SortEvent, SortParam, StateUtil, StringCellComponent, StringFilter, StringFilterComponent, StringFilterType, StringUtil, SwitchButtonComponent, SwitchComponent, SwitchModule, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabContentDirective, TabTitleDirective, TableBodyComponent, TableColumn, TableColumnStore, TableComponent, TableHeadComponent, TableModule, TableRow, TableService, TableUtil, TabsComponent, TabsModule, TetaConfigService, TetaContentRef, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, enLocale, formatNumber, getCellComponent, getPrecision, prependZero, ruLocale };
12078
+ export { AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, ArrayUtil, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, 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, DragContainerDirective, DragContainerInstance, DragDirective, DragDropModule, DragDropService, DragInstance, DragPlaceholderDirective, DragPreviewDirective, DragSortContainerDirective, DragSortItemDirective, DragSortModule, DropdownComponent, DropdownContentDirective, DropdownDirective, DropdownHeadDirective, DropdownModule, DynamicComponentModule, DynamicComponentService, DynamicContentBaseDirective, DynamicData, EditEvent, EditType, ExpandCardComponent, ExpandCardModule, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExpandPanelModule, FileItemComponent, FileUploadAreaComponent, FileUploadModule, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterModule, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, GroupRowComponent, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HighlightModule, HintDirective, HintModule, IconComponent, IconModule, IconService, IconSpriteDirective, InputComponent, InputModule, LetContext, LetDirective, LetModule, 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, PopupContentComponent, PositionUtil, ProgressBarComponent, ProgressBarModule, PropertyGridComponent, PropertyGridModule, RadioButtonComponent, RadioComponent, RadioModule, ResizeDragDirective, ResizeDragModule, ResizePanelComponent, ResizePanelModule, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, SelectComponent, SelectModule, SelectOptionDirective, SelectType, SelectValueDirective, SidebarComponent, SidebarModule, SidebarPosition, SortEvent, SortParam, StateUtil, StringCellComponent, StringFilter, StringFilterComponent, StringFilterType, StringUtil, SwitchButtonComponent, SwitchComponent, SwitchModule, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabContentDirective, TabTitleDirective, TableBodyComponent, TableColumn, TableColumnStore, TableComponent, TableHeadComponent, TableModule, TableRow, TableService, TableUtil, TabsComponent, TabsModule, TetaConfigService, TetaContentRef, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, enLocale, formatNumber, getCellComponent, getPrecision, prependZero, ruLocale, tetaZoneFree, tetaZoneFull, tetaZoneOptimized };
11451
12079
  //# sourceMappingURL=tetacom-ng-components.mjs.map