@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 * as THREE from 'three';
@@ -463,10 +463,10 @@ class CheckboxComponent {
463
463
  }
464
464
  }
465
465
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
466
- 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 });
466
+ 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 });
467
467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, decorators: [{
468
468
  type: Component,
469
- 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: [""] }]
469
+ 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: [""] }]
470
470
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabindex: [{
471
471
  type: HostBinding,
472
472
  args: ['attr.tabindex']
@@ -695,6 +695,46 @@ class DateUtil {
695
695
  static isValidDate(date) {
696
696
  return date instanceof Date && !isNaN(date.getTime());
697
697
  }
698
+ static millisecondToHumanFormat(milliSeconds, maxValue = 5000, showDays = false) {
699
+ const negative = milliSeconds < 0;
700
+ if (negative) {
701
+ milliSeconds = -milliSeconds;
702
+ }
703
+ let d;
704
+ if (showDays) {
705
+ d = Math.trunc(milliSeconds / (60000 * 60 * 24));
706
+ milliSeconds = milliSeconds - 60000 * 60 * 24 * d;
707
+ }
708
+ const h = Math.trunc(milliSeconds / (60000 * 60));
709
+ milliSeconds = milliSeconds - 60000 * 60 * h;
710
+ const m = Math.trunc(milliSeconds / 60000);
711
+ milliSeconds = milliSeconds - 60000 * m;
712
+ const s = Math.trunc(milliSeconds / 1000);
713
+ milliSeconds = milliSeconds - 1000 * s;
714
+ const frac = milliSeconds;
715
+ let result = m ? m + ' м ' : ''; // start with minutes
716
+ if (maxValue < 60000 * 60) {
717
+ if (s) {
718
+ result = result + s + ' с '; // add seconds value
719
+ }
720
+ if (s === 0 && !m) {
721
+ result = result + '0 c';
722
+ }
723
+ }
724
+ if (maxValue < 5000) {
725
+ result = frac ? result + frac + ' мс ' : result;
726
+ }
727
+ if (h) {
728
+ result = h + ' ч ' + result;
729
+ }
730
+ if (d) {
731
+ result = d + 'д ' + result;
732
+ }
733
+ if (negative) {
734
+ result = '-' + result;
735
+ }
736
+ return result.trim();
737
+ }
698
738
  static fillConvertDates(result, input) {
699
739
  for (const key in input) {
700
740
  if (!input.hasOwnProperty || !input.hasOwnProperty(key)) {
@@ -1191,7 +1231,7 @@ class DropdownBase {
1191
1231
  }
1192
1232
  click(event) {
1193
1233
  if (this.open) {
1194
- if (!DomUtil.clickedInside(this._body, event)) {
1234
+ if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {
1195
1235
  this.closeDropdown();
1196
1236
  }
1197
1237
  }
@@ -1205,8 +1245,7 @@ class DropdownBase {
1205
1245
  if (!this.open ||
1206
1246
  !this.autoClose ||
1207
1247
  event.detail === 0 ||
1208
- DomUtil.clickedInside(this._head.nativeElement, event) ||
1209
- DomUtil.clickedInside(this._body, event)) {
1248
+ DomUtil.clickedInside(this._head.nativeElement, event)) {
1210
1249
  return;
1211
1250
  }
1212
1251
  if (DomUtil.clickedInside(this._body, event)) {
@@ -3149,6 +3188,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3149
3188
  }]
3150
3189
  }] });
3151
3190
 
3191
+ class ToolbarComponent {
3192
+ get getClass() {
3193
+ const result = [this.class, 'toolbar'];
3194
+ if (this.palette) {
3195
+ result.push(`toolbar-${this.palette}`);
3196
+ }
3197
+ return result.join(' ');
3198
+ }
3199
+ ngOnInit() { }
3200
+ }
3201
+ ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3202
+ 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 });
3203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, decorators: [{
3204
+ type: Component,
3205
+ args: [{ selector: 'teta-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [""] }]
3206
+ }], propDecorators: { palette: [{
3207
+ type: Input
3208
+ }], class: [{
3209
+ type: Input
3210
+ }], getClass: [{
3211
+ type: HostBinding,
3212
+ args: ['class']
3213
+ }] } });
3214
+
3215
+ class ExpandCardComponent {
3216
+ constructor() {
3217
+ this.open = true;
3218
+ this.openChange = new EventEmitter();
3219
+ this.showCross = true;
3220
+ this.crossClick = new EventEmitter();
3221
+ }
3222
+ ngOnInit() {
3223
+ }
3224
+ setOpen() {
3225
+ this.open = !this.open;
3226
+ this.openChange.emit(this.open);
3227
+ }
3228
+ }
3229
+ ExpandCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3230
+ 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 });
3231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardComponent, decorators: [{
3232
+ type: Component,
3233
+ 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"] }]
3234
+ }], ctorParameters: function () { return []; }, propDecorators: { open: [{
3235
+ type: Input
3236
+ }], openChange: [{
3237
+ type: Output
3238
+ }], showCross: [{
3239
+ type: Input
3240
+ }], crossClick: [{
3241
+ type: Output
3242
+ }] } });
3243
+
3244
+ class ToolbarModule {
3245
+ }
3246
+ ToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3247
+ ToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule], exports: [ToolbarComponent] });
3248
+ ToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, imports: [[
3249
+ CommonModule
3250
+ ]] });
3251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, decorators: [{
3252
+ type: NgModule,
3253
+ args: [{
3254
+ declarations: [ToolbarComponent],
3255
+ exports: [ToolbarComponent],
3256
+ imports: [
3257
+ CommonModule
3258
+ ]
3259
+ }]
3260
+ }] });
3261
+
3262
+ class ExpandCardModule {
3263
+ }
3264
+ ExpandCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3265
+ ExpandCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, declarations: [ExpandCardComponent], imports: [CommonModule,
3266
+ ToolbarModule,
3267
+ ButtonModule,
3268
+ IconModule,
3269
+ DelimiterModule], exports: [ExpandCardComponent] });
3270
+ ExpandCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, imports: [[
3271
+ CommonModule,
3272
+ ToolbarModule,
3273
+ ButtonModule,
3274
+ IconModule,
3275
+ DelimiterModule
3276
+ ]] });
3277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, decorators: [{
3278
+ type: NgModule,
3279
+ args: [{
3280
+ declarations: [
3281
+ ExpandCardComponent
3282
+ ],
3283
+ exports: [
3284
+ ExpandCardComponent
3285
+ ],
3286
+ imports: [
3287
+ CommonModule,
3288
+ ToolbarModule,
3289
+ ButtonModule,
3290
+ IconModule,
3291
+ DelimiterModule
3292
+ ]
3293
+ }]
3294
+ }] });
3295
+
3152
3296
  class ExpandPanelContentDirective {
3153
3297
  constructor(template) {
3154
3298
  this.template = template;
@@ -3177,30 +3321,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3177
3321
  }]
3178
3322
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
3179
3323
 
3180
- class ToolbarComponent {
3181
- get getClass() {
3182
- const result = [this.class, 'toolbar'];
3183
- if (this.palette) {
3184
- result.push(`toolbar-${this.palette}`);
3185
- }
3186
- return result.join(' ');
3187
- }
3188
- ngOnInit() { }
3189
- }
3190
- ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3191
- 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 });
3192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, decorators: [{
3193
- type: Component,
3194
- args: [{ selector: 'teta-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [""] }]
3195
- }], propDecorators: { palette: [{
3196
- type: Input
3197
- }], class: [{
3198
- type: Input
3199
- }], getClass: [{
3200
- type: HostBinding,
3201
- args: ['class']
3202
- }] } });
3203
-
3204
3324
  class ExpandPanelComponent {
3205
3325
  constructor() {
3206
3326
  this.open = true;
@@ -3236,10 +3356,10 @@ class ExpandPanelComponent {
3236
3356
  }
3237
3357
  }
3238
3358
  ExpandPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3239
- 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 });
3359
+ 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 });
3240
3360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelComponent, decorators: [{
3241
3361
  type: Component,
3242
- 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"] }]
3362
+ 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"] }]
3243
3363
  }], ctorParameters: function () { return []; }, propDecorators: { content: [{
3244
3364
  type: ContentChild,
3245
3365
  args: [ExpandPanelContentDirective, { static: false }]
@@ -3258,24 +3378,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3258
3378
  type: Input
3259
3379
  }] } });
3260
3380
 
3261
- class ToolbarModule {
3262
- }
3263
- ToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3264
- ToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule], exports: [ToolbarComponent] });
3265
- ToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, imports: [[
3266
- CommonModule
3267
- ]] });
3268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, decorators: [{
3269
- type: NgModule,
3270
- args: [{
3271
- declarations: [ToolbarComponent],
3272
- exports: [ToolbarComponent],
3273
- imports: [
3274
- CommonModule
3275
- ]
3276
- }]
3277
- }] });
3278
-
3279
3381
  class ExpandPanelModule {
3280
3382
  }
3281
3383
  ExpandPanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -3356,10 +3458,10 @@ class FileUploadAreaComponent {
3356
3458
  }
3357
3459
  }
3358
3460
  FileUploadAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3359
- 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 });
3461
+ 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 });
3360
3462
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadAreaComponent, decorators: [{
3361
3463
  type: Component,
3362
- 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"] }]
3464
+ 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"] }]
3363
3465
  }], ctorParameters: function () { return []; }, propDecorators: { fileUpload: [{
3364
3466
  type: HostBinding,
3365
3467
  args: ['class.file-upload']
@@ -3405,14 +3507,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3405
3507
  class FileUploadModule {
3406
3508
  }
3407
3509
  FileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3408
- 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] });
3409
- FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, ButtonModule, IconModule]] });
3510
+ 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] });
3511
+ FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, ButtonModule, IconModule, TranslocoModule]] });
3410
3512
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, decorators: [{
3411
3513
  type: NgModule,
3412
3514
  args: [{
3413
3515
  declarations: [FileUploadAreaComponent, FileItemComponent],
3414
3516
  exports: [FileUploadAreaComponent, FileItemComponent],
3415
- imports: [CommonModule, ButtonModule, IconModule],
3517
+ imports: [CommonModule, ButtonModule, IconModule, TranslocoModule],
3416
3518
  }]
3417
3519
  }] });
3418
3520
 
@@ -5276,10 +5378,10 @@ ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
5276
5378
  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: [
5277
5379
  trigger('dialog', [
5278
5380
  transition('void => *', [
5279
- style({ opacity: '0' }),
5280
- animate(150, style({ opacity: '1' })),
5381
+ style({ top: '-100%' }),
5382
+ animate('150ms ease-in', style({ top: '0' })),
5281
5383
  ]),
5282
- transition('* => void', [animate(150, style({ opacity: '0' }))]),
5384
+ transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5283
5385
  ]),
5284
5386
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5285
5387
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ModalContainerComponent, decorators: [{
@@ -5287,10 +5389,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
5287
5389
  args: [{ selector: 'teta-modal-container', animations: [
5288
5390
  trigger('dialog', [
5289
5391
  transition('void => *', [
5290
- style({ opacity: '0' }),
5291
- animate(150, style({ opacity: '1' })),
5392
+ style({ top: '-100%' }),
5393
+ animate('150ms ease-in', style({ top: '0' })),
5292
5394
  ]),
5293
- transition('* => void', [animate(150, style({ opacity: '0' }))]),
5395
+ transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5294
5396
  ]),
5295
5397
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n", styles: [""] }]
5296
5398
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
@@ -5430,7 +5532,9 @@ class ModalInstance {
5430
5532
  destroy() {
5431
5533
  this._window.destroy();
5432
5534
  if (this._content && this._content.viewRef) {
5433
- this._content.viewRef.destroy();
5535
+ setTimeout(() => {
5536
+ this._content.viewRef.destroy();
5537
+ }, 150);
5434
5538
  }
5435
5539
  }
5436
5540
  }
@@ -5992,6 +6096,12 @@ class FormsUtil {
5992
6096
  return (formGroup.controls[controlName]?.invalid &&
5993
6097
  formGroup.controls[controlName]?.dirty);
5994
6098
  }
6099
+ static getControlErrors(formGroup, controlName) {
6100
+ if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
6101
+ return Object.keys(formGroup.controls[controlName]?.errors);
6102
+ }
6103
+ return [];
6104
+ }
5995
6105
  static matchValuesValidator(matchTo) {
5996
6106
  return (control) => !!control.parent &&
5997
6107
  !!control.parent.value &&
@@ -7089,8 +7199,8 @@ class StateUtil {
7089
7199
  var SelectType;
7090
7200
  (function (SelectType) {
7091
7201
  SelectType[SelectType["none"] = 0] = "none";
7092
- SelectType[SelectType["multiple"] = 1] = "multiple";
7093
- SelectType[SelectType["single"] = 2] = "single";
7202
+ SelectType[SelectType["checkBox"] = 1] = "checkBox";
7203
+ SelectType[SelectType["mouse"] = 2] = "mouse";
7094
7204
  })(SelectType || (SelectType = {}));
7095
7205
 
7096
7206
  var EditType;
@@ -7121,7 +7231,7 @@ class TableColumnStore {
7121
7231
 
7122
7232
  class TableService {
7123
7233
  constructor() {
7124
- this.selectType = SelectType.multiple;
7234
+ this.selectType = SelectType.mouse;
7125
7235
  this.editType = EditType.cell;
7126
7236
  this.editEvent = EditEvent.doubleClick;
7127
7237
  this.trackRow = (index, row) => index;
@@ -7439,12 +7549,7 @@ class TableService {
7439
7549
  this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7440
7550
  }
7441
7551
  else {
7442
- if (this.selectType === SelectType.single) {
7443
- this._selectedRows.next([row]);
7444
- }
7445
- else {
7446
- this._selectedRows.next([...this._selectedRows.value, row]);
7447
- }
7552
+ this._selectedRows.next([...this._selectedRows.value, row]);
7448
7553
  }
7449
7554
  }
7450
7555
  selectRange(row) {
@@ -7478,23 +7583,13 @@ class TableService {
7478
7583
  if (this.selectType === SelectType.none) {
7479
7584
  return;
7480
7585
  }
7481
- if (this.selectType === SelectType.single) {
7482
- this._selectedRows.next([row]);
7483
- }
7484
- else {
7485
- this._selectedRows.next([...this._selectedRows.value, row]);
7486
- }
7586
+ this._selectedRows.next([...this._selectedRows.value, row]);
7487
7587
  }
7488
7588
  deselectRow(row) {
7489
7589
  if (this.selectType === SelectType.none) {
7490
7590
  return;
7491
7591
  }
7492
- if (this.selectType === SelectType.single) {
7493
- this._selectedRows.next([]);
7494
- }
7495
- else {
7496
- this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7497
- }
7592
+ this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7498
7593
  }
7499
7594
  selectAll() {
7500
7595
  this._selectedRows.next(this._displayData.value);
@@ -7945,10 +8040,10 @@ class DefaultHeadCellComponent extends HeadCellComponentBase {
7945
8040
  }
7946
8041
  }
7947
8042
  DefaultHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
7948
- 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 });
8043
+ 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 });
7949
8044
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
7950
8045
  type: Component,
7951
- 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"] }]
8046
+ 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"] }]
7952
8047
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
7953
8048
  type: Input
7954
8049
  }], data: [{
@@ -8815,7 +8910,7 @@ class TableHeadComponent {
8815
8910
  this.columns = columns;
8816
8911
  const locked = ArrayUtil.flatten(columns, 'columns', true)
8817
8912
  .filter((_) => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
8818
- const startWidth = this.selectType !== SelectType.none ? 28 : 0;
8913
+ const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
8819
8914
  this.lockedFlex = locked.reduce((prev, curr) => prev + curr.flex, 0);
8820
8915
  this.lockedWidth = locked.reduce((prev, curr) => prev + curr.width, startWidth);
8821
8916
  this._cdr.markForCheck();
@@ -8852,10 +8947,10 @@ class TableHeadComponent {
8852
8947
  }
8853
8948
  }
8854
8949
  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 });
8855
- 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 });
8950
+ 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 });
8856
8951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableHeadComponent, decorators: [{
8857
8952
  type: Component,
8858
- 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: [""] }]
8953
+ 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: [""] }]
8859
8954
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { selectType: [{
8860
8955
  type: Input
8861
8956
  }], showHeadCellMenu: [{
@@ -9393,7 +9488,7 @@ class TableBodyComponent {
9393
9488
  this._columns = columns;
9394
9489
  this.locked = this._columns?.filter((_) => _.locked === true);
9395
9490
  this.unlocked = this._columns?.filter((_) => _.locked === false);
9396
- const startWidth = this.selectType !== SelectType.none ? 28 : 0;
9491
+ const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
9397
9492
  this.lockedFlex = this.locked.reduce((prev, curr) => prev + curr.flex, 0);
9398
9493
  this.lockedWidth = this.locked.reduce((prev, curr) => prev + curr.width, startWidth);
9399
9494
  this.totalFlex = this._columns.reduce((prev, curr) => prev + curr.flex, 0);
@@ -9463,10 +9558,10 @@ class TableBodyComponent {
9463
9558
  }
9464
9559
  }
9465
9560
  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 });
9466
- 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 });
9561
+ 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 });
9467
9562
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableBodyComponent, decorators: [{
9468
9563
  type: Component,
9469
- 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: [""] }]
9564
+ 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: [""] }]
9470
9565
  }], ctorParameters: function () { return [{ type: TableService }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { virtual: [{
9471
9566
  type: Input
9472
9567
  }], activeRow: [{
@@ -9526,12 +9621,13 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9526
9621
  this._zone = _zone;
9527
9622
  this._cdr = _cdr;
9528
9623
  this._click = _click;
9624
+ this.autoCloseIgnore = [];
9529
9625
  }
9530
9626
  get _dynamicContent() {
9531
9627
  return this.tetaContextMenu;
9532
9628
  }
9533
9629
  showContent(event) {
9534
- if (this.tetaContextMenu) {
9630
+ if (this.tetaContextMenu && !event.defaultPrevented) {
9535
9631
  event.preventDefault();
9536
9632
  setTimeout(() => {
9537
9633
  this.createMenu(event);
@@ -9545,14 +9641,32 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9545
9641
  event.stopPropagation();
9546
9642
  }
9547
9643
  }
9548
- ngOnInit() {
9549
- super.ngOnInit();
9550
- merge(this._click.click, this._click.contextMenu)
9551
- .pipe(takeWhile(() => this._alive), filter(() => this._open), filter(() => this._componentRef != null), filter((event) => !DomUtil.clickedInside(this._componentRef.location.nativeElement, event)), tap((_) => {
9644
+ documentClick(event) {
9645
+ if (this._open && this._componentRef && (!DomUtil.clickedInside(this._componentRef.location.nativeElement, event) || this.autoCloseIgnore.indexOf('inside') < 0)) {
9552
9646
  this.destroyContentRef();
9553
9647
  this.openChange.emit(false);
9554
- }))
9555
- .subscribe();
9648
+ }
9649
+ }
9650
+ ngOnInit() {
9651
+ super.ngOnInit();
9652
+ // merge(this._click.click, this._click.contextMenu)
9653
+ // .pipe(
9654
+ // takeWhile(() => this._alive),
9655
+ // filter(() => this._open),
9656
+ // filter(() => this._componentRef != null),
9657
+ // filter(
9658
+ // (event: MouseEvent) =>
9659
+ // !DomUtil.clickedInside(
9660
+ // this._componentRef.location.nativeElement,
9661
+ // event
9662
+ // ) || this.autoCloseIgnore.indexOf('inside') < 0
9663
+ // ),
9664
+ // tap((_) => {
9665
+ // this.destroyContentRef();
9666
+ // this.openChange.emit(false);
9667
+ // })
9668
+ // )
9669
+ // .subscribe();
9556
9670
  }
9557
9671
  ngOnDestroy() {
9558
9672
  super.ngOnDestroy();
@@ -9582,7 +9696,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9582
9696
  }
9583
9697
  }
9584
9698
  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 });
9585
- 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 });
9699
+ 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 });
9586
9700
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuDirective, decorators: [{
9587
9701
  type: Directive,
9588
9702
  args: [{
@@ -9593,12 +9707,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9593
9707
  args: [DOCUMENT]
9594
9708
  }] }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: ClickService }]; }, propDecorators: { tetaContextMenu: [{
9595
9709
  type: Input
9710
+ }], autoCloseIgnore: [{
9711
+ type: Input
9596
9712
  }], showContent: [{
9597
9713
  type: HostListener,
9598
9714
  args: ['contextmenu', ['$event']]
9599
9715
  }], click: [{
9600
9716
  type: HostListener,
9601
9717
  args: ['click', ['$event']]
9718
+ }], documentClick: [{
9719
+ type: HostListener,
9720
+ args: ['document:click', ['$event']]
9721
+ }, {
9722
+ type: HostListener,
9723
+ args: ['document:contextmenu', ['$event']]
9602
9724
  }] } });
9603
9725
 
9604
9726
  class TableComponent {
@@ -9607,7 +9729,7 @@ class TableComponent {
9607
9729
  this._elementRef = _elementRef;
9608
9730
  this.data = [];
9609
9731
  this.columns = [];
9610
- this.selectType = SelectType.multiple;
9732
+ this.selectType = SelectType.mouse;
9611
9733
  this.groupRowComponent = GroupRowComponent;
9612
9734
  this.trackRow = (index, row) => index;
9613
9735
  this.editType = EditType.cell;
@@ -9691,9 +9813,12 @@ class TableComponent {
9691
9813
  if (event.ctrlKey) {
9692
9814
  this._svc.selectOrDeselectRow(row);
9693
9815
  }
9694
- if (event.shiftKey) {
9816
+ else if (event.shiftKey) {
9695
9817
  this._svc.selectRange(row);
9696
9818
  }
9819
+ else {
9820
+ this._svc.selectRows([row]);
9821
+ }
9697
9822
  }
9698
9823
  if (!this.eventIsOnRow(event) && !event.defaultPrevented) {
9699
9824
  if (this.editType === EditType.row) {
@@ -9920,7 +10045,7 @@ class TableComponent {
9920
10045
  }
9921
10046
  }
9922
10047
  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 });
9923
- 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 });
10048
+ 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 });
9924
10049
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, decorators: [{
9925
10050
  type: Component,
9926
10051
  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: [""] }]
@@ -10356,10 +10481,10 @@ class ThemeSwitchComponent {
10356
10481
  }
10357
10482
  }
10358
10483
  ThemeSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ThemeSwitchComponent, deps: [{ token: ThemeSwitchService }], target: i0.ɵɵFactoryTarget.Component });
10359
- 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 });
10484
+ 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 });
10360
10485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ThemeSwitchComponent, decorators: [{
10361
10486
  type: Component,
10362
- 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"] }]
10487
+ 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"] }]
10363
10488
  }], ctorParameters: function () { return [{ type: ThemeSwitchService }]; }, propDecorators: { palette: [{
10364
10489
  type: Input
10365
10490
  }], view: [{
@@ -10643,70 +10768,660 @@ class Chart3dOptions {
10643
10768
  }
10644
10769
  }
10645
10770
 
10646
- /* accordion */
10647
-
10648
- class DisableControlDirective {
10649
- constructor(ngControl) {
10650
- this.ngControl = ngControl;
10651
- }
10652
- set tetaDisableControl(val) {
10653
- if (this.ngControl.control) {
10654
- if (val) {
10655
- this.ngControl.control.disable();
10656
- }
10657
- else {
10658
- this.ngControl.control.enable();
10659
- }
10660
- }
10771
+ class ResizePanelComponent {
10772
+ constructor(_elementRef, _renderer, _document) {
10773
+ this._elementRef = _elementRef;
10774
+ this._renderer = _renderer;
10775
+ this._document = _document;
10776
+ this.resizePanelClass = true;
10777
+ this._direction = 'horizontal';
10778
+ this._grabPosition = 'left';
10779
+ this._positionMap = new Map()
10780
+ .set('left', 'resize-grab_left')
10781
+ .set('right', 'resize-grab_right')
10782
+ .set('top', 'resize-grab_top')
10783
+ .set('bottom', 'resize-grab_bottom');
10661
10784
  }
10662
- }
10663
- 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 });
10664
- DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: { tetaDisableControl: "tetaDisableControl" }, ngImport: i0 });
10665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, decorators: [{
10666
- type: Directive,
10667
- args: [{
10668
- selector: '[tetaDisableControl]'
10669
- }]
10670
- }], ctorParameters: function () { return [{ type: i3$1.NgControl }]; }, propDecorators: { tetaDisableControl: [{
10671
- type: Input
10672
- }] } });
10673
-
10674
- class DisableControlModule {
10675
- }
10676
- DisableControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10677
- DisableControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, declarations: [DisableControlDirective], imports: [CommonModule], exports: [DisableControlDirective] });
10678
- DisableControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, imports: [[
10679
- CommonModule
10680
- ]] });
10681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, decorators: [{
10682
- type: NgModule,
10683
- args: [{
10684
- declarations: [DisableControlDirective],
10685
- imports: [
10686
- CommonModule
10687
- ],
10688
- exports: [
10689
- DisableControlDirective
10690
- ]
10691
- }]
10692
- }] });
10693
-
10694
- // import {DragSortItemDirective} from './drag-sort-item.directive';
10695
- class DragSortContainerDirective {
10696
- constructor() {
10697
- this.dragSorted = new EventEmitter();
10785
+ set direction(val) {
10786
+ this._direction = val;
10698
10787
  }
10699
- drop(event) {
10700
- event.stopPropagation();
10701
- event.preventDefault();
10788
+ get direction() {
10789
+ return this._direction;
10702
10790
  }
10703
- setDragItem(item) {
10704
- this._dragItem = item;
10791
+ get icon() {
10792
+ return this.direction === "horizontal" ? 'moreHorizontal' : 'moreVertical';
10705
10793
  }
10706
- getDragItem() {
10707
- return this._dragItem;
10794
+ set grabPosition(val) {
10795
+ this._grabPosition = val;
10708
10796
  }
10709
- getList() {
10797
+ get grabPosition() {
10798
+ if (this.direction === 'vertical') {
10799
+ if (['left', 'right'].includes(this._grabPosition)) {
10800
+ return this._grabPosition;
10801
+ }
10802
+ return 'left';
10803
+ }
10804
+ if (['top', 'bottom'].includes(this._grabPosition)) {
10805
+ return this._grabPosition;
10806
+ }
10807
+ return 'bottom';
10808
+ }
10809
+ resizeStart(event) {
10810
+ this.setStartPosition();
10811
+ if (this.direction === 'vertical') {
10812
+ this._startSize = this._elementRef.nativeElement.clientWidth;
10813
+ this._startPosition = event.clientX;
10814
+ }
10815
+ else {
10816
+ this._startSize = this._elementRef.nativeElement.clientHeight;
10817
+ this._startPosition = event.clientY;
10818
+ }
10819
+ }
10820
+ resizeProcess(event) {
10821
+ event.preventDefault();
10822
+ if (this.direction === 'vertical') {
10823
+ this.manageVertical(event);
10824
+ }
10825
+ else {
10826
+ this.manageHorizontal(event);
10827
+ }
10828
+ }
10829
+ resizeEnd(event) {
10830
+ window.dispatchEvent(new Event('resize'));
10831
+ }
10832
+ ngOnInit() {
10833
+ this.restorePosition();
10834
+ }
10835
+ ngOnDestroy() {
10836
+ }
10837
+ getClassName() {
10838
+ return this._positionMap.get(this.grabPosition) || '';
10839
+ }
10840
+ setStartPosition() {
10841
+ if (this.direction === 'vertical') {
10842
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${this._elementRef.nativeElement.offsetWidth}px`);
10843
+ }
10844
+ else {
10845
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${this._elementRef.nativeElement.offsetHeight}px`);
10846
+ }
10847
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
10848
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
10849
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
10850
+ }
10851
+ manageHorizontal(event) {
10852
+ let newSize = this.grabPosition === 'bottom'
10853
+ ? this._startSize + (event.clientY - this._startPosition)
10854
+ : this._startSize - (event.clientY - this._startPosition);
10855
+ if (this.maxSize && newSize > this.maxSize) {
10856
+ newSize = this.maxSize;
10857
+ }
10858
+ if (this.minSize && newSize < this.minSize) {
10859
+ newSize = this.minSize;
10860
+ }
10861
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${newSize}px`);
10862
+ this.save();
10863
+ }
10864
+ manageVertical(event) {
10865
+ let newSize = this.grabPosition === 'right'
10866
+ ? this._startSize + (event.clientX - this._startPosition)
10867
+ : this._startSize - (event.clientX - this._startPosition);
10868
+ if (this.maxSize && newSize > this.maxSize) {
10869
+ newSize = this.maxSize;
10870
+ }
10871
+ if (this.minSize && newSize < this.minSize) {
10872
+ newSize = this.minSize;
10873
+ }
10874
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${newSize}px`);
10875
+ this.save();
10876
+ }
10877
+ restore() {
10878
+ if (this.name?.length > 0) {
10879
+ return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));
10880
+ }
10881
+ }
10882
+ restorePosition() {
10883
+ const savedSize = this.restore();
10884
+ if (savedSize) {
10885
+ if (this.direction === 'vertical') {
10886
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${savedSize}px`);
10887
+ }
10888
+ else {
10889
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${savedSize}px`);
10890
+ }
10891
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
10892
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
10893
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
10894
+ }
10895
+ }
10896
+ save() {
10897
+ if (this.name?.length > 0) {
10898
+ if (this.direction === 'vertical') {
10899
+ localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientWidth);
10900
+ }
10901
+ else {
10902
+ localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientHeight);
10903
+ }
10904
+ }
10905
+ }
10906
+ }
10907
+ 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 });
10908
+ 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 });
10909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
10910
+ type: Component,
10911
+ 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: [""] }]
10912
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
10913
+ type: Inject,
10914
+ args: [DOCUMENT]
10915
+ }] }]; }, propDecorators: { direction: [{
10916
+ type: Input
10917
+ }], grabPosition: [{
10918
+ type: Input
10919
+ }], name: [{
10920
+ type: Input
10921
+ }], minSize: [{
10922
+ type: Input
10923
+ }], maxSize: [{
10924
+ type: Input
10925
+ }], resizePanelClass: [{
10926
+ type: HostBinding,
10927
+ args: ['class.resize-panel']
10928
+ }] } });
10929
+
10930
+ class ResizePanelModule {
10931
+ }
10932
+ ResizePanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10933
+ ResizePanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, declarations: [ResizePanelComponent], imports: [CommonModule, IconModule, ResizeDragModule], exports: [ResizePanelComponent] });
10934
+ ResizePanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, imports: [[CommonModule, IconModule, ResizeDragModule]] });
10935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, decorators: [{
10936
+ type: NgModule,
10937
+ args: [{
10938
+ declarations: [ResizePanelComponent],
10939
+ exports: [ResizePanelComponent],
10940
+ imports: [CommonModule, IconModule, ResizeDragModule],
10941
+ }]
10942
+ }] });
10943
+
10944
+ /* accordion */
10945
+
10946
+ class DisableControlDirective {
10947
+ constructor(ngControl) {
10948
+ this.ngControl = ngControl;
10949
+ }
10950
+ set tetaDisableControl(val) {
10951
+ if (this.ngControl.control) {
10952
+ if (val) {
10953
+ this.ngControl.control.disable();
10954
+ }
10955
+ else {
10956
+ this.ngControl.control.enable();
10957
+ }
10958
+ }
10959
+ }
10960
+ }
10961
+ 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 });
10962
+ DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: { tetaDisableControl: "tetaDisableControl" }, ngImport: i0 });
10963
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, decorators: [{
10964
+ type: Directive,
10965
+ args: [{
10966
+ selector: '[tetaDisableControl]'
10967
+ }]
10968
+ }], ctorParameters: function () { return [{ type: i3$1.NgControl }]; }, propDecorators: { tetaDisableControl: [{
10969
+ type: Input
10970
+ }] } });
10971
+
10972
+ class DisableControlModule {
10973
+ }
10974
+ DisableControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10975
+ DisableControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, declarations: [DisableControlDirective], imports: [CommonModule], exports: [DisableControlDirective] });
10976
+ DisableControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, imports: [[
10977
+ CommonModule
10978
+ ]] });
10979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, decorators: [{
10980
+ type: NgModule,
10981
+ args: [{
10982
+ declarations: [DisableControlDirective],
10983
+ imports: [
10984
+ CommonModule
10985
+ ],
10986
+ exports: [
10987
+ DisableControlDirective
10988
+ ]
10989
+ }]
10990
+ }] });
10991
+
10992
+ class DragInstance {
10993
+ constructor(options) {
10994
+ this.container = options.container;
10995
+ this.data = options.data;
10996
+ }
10997
+ }
10998
+
10999
+ class DragPreviewDirective {
11000
+ constructor(templateRef) {
11001
+ this.templateRef = templateRef;
11002
+ }
11003
+ }
11004
+ DragPreviewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPreviewDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11005
+ DragPreviewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragPreviewDirective, selector: "[tetaDragPreview]", ngImport: i0 });
11006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPreviewDirective, decorators: [{
11007
+ type: Directive,
11008
+ args: [{
11009
+ selector: '[tetaDragPreview]'
11010
+ }]
11011
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
11012
+
11013
+ class DragContainerInstance {
11014
+ constructor(options) {
11015
+ this.data = options.data;
11016
+ this.previewTemplate = options.previewTemplate;
11017
+ this.viewContainer = options.viewContainer;
11018
+ }
11019
+ }
11020
+
11021
+ class DragDropService {
11022
+ constructor(_document, _rendererFactory) {
11023
+ this._document = _document;
11024
+ this._rendererFactory = _rendererFactory;
11025
+ this.dropTarget$ = new BehaviorSubject(null);
11026
+ this._delta = 10;
11027
+ this.dropped$ = new Subject();
11028
+ this._renderer = this._rendererFactory.createRenderer(null, null);
11029
+ this.dropTarget = this.dropTarget$.asObservable();
11030
+ this.dropped = this.dropped$.asObservable();
11031
+ merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove')).pipe(filter(() => {
11032
+ return this.startPosition != null;
11033
+ })).subscribe((event) => {
11034
+ if (!this.dragProcess && this.getDelta(event) > this._delta) {
11035
+ this.startProcess();
11036
+ }
11037
+ if (this.dragProcess && this._preview) {
11038
+ this.movePreview(event);
11039
+ }
11040
+ });
11041
+ merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend')).pipe(withLatestFrom(this.dropTarget)).subscribe((data) => {
11042
+ const [event, target] = data;
11043
+ if (target) {
11044
+ this.dropped$.next({
11045
+ target,
11046
+ container: this.dragProcess.selection.container,
11047
+ data: [...this.dragProcess.selection.items]
11048
+ });
11049
+ this.cancelDrag();
11050
+ }
11051
+ this.stopProcess();
11052
+ });
11053
+ merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur'))
11054
+ .subscribe(() => {
11055
+ this.cancelDrag();
11056
+ });
11057
+ }
11058
+ setDropTarget(target) {
11059
+ if (this.dragProcess) {
11060
+ this.dropTarget$.next(target);
11061
+ }
11062
+ }
11063
+ setStartPosition(point) {
11064
+ this.startPosition = point;
11065
+ }
11066
+ setSelection(instance, container) {
11067
+ if (this.selection?.container === container && this.selection?.items?.indexOf(instance) >= 0) {
11068
+ return;
11069
+ }
11070
+ this.selection = {
11071
+ container,
11072
+ items: [instance]
11073
+ };
11074
+ }
11075
+ addSelection(instance, container) {
11076
+ if (!this.selection) {
11077
+ this.setSelection(instance, container);
11078
+ return;
11079
+ }
11080
+ if (this.selection && this.selection.container !== container) {
11081
+ return;
11082
+ }
11083
+ const index = this.selection.items.indexOf(instance);
11084
+ if (index < 0) {
11085
+ this.selection.items.push(instance);
11086
+ }
11087
+ else {
11088
+ this.selection.items.splice(index, 1);
11089
+ }
11090
+ }
11091
+ clearSelection() {
11092
+ this.selection = null;
11093
+ }
11094
+ cancelDrag() {
11095
+ this.setDropTarget(null);
11096
+ this.clearSelection();
11097
+ this.stopProcess();
11098
+ }
11099
+ startProcess() {
11100
+ this.dragProcess = {
11101
+ selection: this.selection
11102
+ };
11103
+ this._preview = this.createPreview();
11104
+ }
11105
+ stopProcess() {
11106
+ this.destroyPreview();
11107
+ this.dragProcess = null;
11108
+ this.startPosition = null;
11109
+ }
11110
+ getDelta(event) {
11111
+ return Math.max(Math.abs(this.startPosition.x - event.x), Math.abs(this.startPosition.y - event.y));
11112
+ }
11113
+ createPreview() {
11114
+ if (this.dragProcess.selection.container.previewTemplate) {
11115
+ this._previewRef = this.dragProcess.selection.container.viewContainer.createEmbeddedView(this.dragProcess.selection.container.previewTemplate, {
11116
+ $implicit: this.dragProcess.selection.items,
11117
+ data: this.dragProcess.selection.items
11118
+ });
11119
+ const preview = this._renderer.createElement('div');
11120
+ this._renderer.setStyle(preview, 'position', 'fixed');
11121
+ this._renderer.setStyle(preview, 'pointer-events', 'none');
11122
+ this._renderer.setStyle(preview, 'top', '0');
11123
+ this._renderer.setStyle(preview, 'left', '0');
11124
+ this._renderer.appendChild(preview, this._previewRef.rootNodes[0]);
11125
+ this._renderer.appendChild(document.body, preview);
11126
+ return preview;
11127
+ }
11128
+ return null;
11129
+ }
11130
+ movePreview(event) {
11131
+ if (this._preview) {
11132
+ this._renderer.setStyle(this._preview, 'transform', `translate(${event.x}px, ${event.y}px)`);
11133
+ }
11134
+ }
11135
+ destroyPreview() {
11136
+ if (this._preview) {
11137
+ this.dragProcess?.selection?.container?.viewContainer?.clear();
11138
+ this._preview?.remove();
11139
+ this._previewRef?.destroy();
11140
+ this._preview = this._previewRef = null;
11141
+ }
11142
+ }
11143
+ }
11144
+ 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 });
11145
+ DragDropService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, providedIn: 'root' });
11146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, decorators: [{
11147
+ type: Injectable,
11148
+ args: [{
11149
+ providedIn: 'root'
11150
+ }]
11151
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
11152
+ type: Inject,
11153
+ args: [DOCUMENT]
11154
+ }] }, { type: i0.RendererFactory2 }]; } });
11155
+
11156
+ class DragContainerDirective {
11157
+ constructor(_dragService, _elementRef, _viewContainerRef, _zone, _cdr) {
11158
+ this._dragService = _dragService;
11159
+ this._elementRef = _elementRef;
11160
+ this._viewContainerRef = _viewContainerRef;
11161
+ this._zone = _zone;
11162
+ this._cdr = _cdr;
11163
+ this.multiple = false;
11164
+ this.allowDrop = true;
11165
+ this.tetaDrop = new EventEmitter();
11166
+ this.tetaDragEnter = new EventEmitter();
11167
+ this._alive = true;
11168
+ }
11169
+ get isDropTarget() {
11170
+ return this.dropTarget === this.instance;
11171
+ }
11172
+ mouseleave(event) {
11173
+ this._dragService.setDropTarget(null);
11174
+ }
11175
+ mouseover(event) {
11176
+ if (this.allowDrop) {
11177
+ this._dragService.setDropTarget(this.instance);
11178
+ }
11179
+ }
11180
+ escape(event) {
11181
+ this._dragService.cancelDrag();
11182
+ }
11183
+ ngOnInit() {
11184
+ this.instance = new DragContainerInstance({
11185
+ data: this.data,
11186
+ previewTemplate: this._previewTemplate?.templateRef,
11187
+ viewContainer: this._viewContainerRef
11188
+ });
11189
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11190
+ .subscribe((target) => {
11191
+ this.dropTarget = target;
11192
+ this._cdr.detectChanges();
11193
+ });
11194
+ this._dragService.dropped.pipe(takeWhile(() => this._alive))
11195
+ .subscribe((event) => {
11196
+ this.tetaDrop.emit(event);
11197
+ });
11198
+ }
11199
+ ngOnDestroy() {
11200
+ this._alive = false;
11201
+ }
11202
+ }
11203
+ 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 });
11204
+ 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 });
11205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragContainerDirective, decorators: [{
11206
+ type: Directive,
11207
+ args: [{
11208
+ selector: '[tetaDragContainer]',
11209
+ exportAs: 'dragContainer',
11210
+ host: {
11211
+ '[class.teta-drag-container]': '"true"',
11212
+ '[class.teta-drop-target]': 'isDropTarget'
11213
+ }
11214
+ }]
11215
+ }], ctorParameters: function () { return [{ type: DragDropService }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
11216
+ type: Input,
11217
+ args: ['tetaDragContainer']
11218
+ }], multiple: [{
11219
+ type: Input
11220
+ }], allowDrop: [{
11221
+ type: Input
11222
+ }], tetaDrop: [{
11223
+ type: Output
11224
+ }], tetaDragEnter: [{
11225
+ type: Output
11226
+ }], _previewTemplate: [{
11227
+ type: ContentChild,
11228
+ args: [DragPreviewDirective, {
11229
+ static: true
11230
+ }]
11231
+ }], mouseleave: [{
11232
+ type: HostListener,
11233
+ args: ['mouseleave', ['$event']]
11234
+ }], mouseover: [{
11235
+ type: HostListener,
11236
+ args: ['mouseover', ['$event']]
11237
+ }], escape: [{
11238
+ type: HostListener,
11239
+ args: ['window:keydown.escape', ['$event']]
11240
+ }] } });
11241
+
11242
+ class DragDirective {
11243
+ constructor(_container, _dragService, _zone, _cdr) {
11244
+ this._container = _container;
11245
+ this._dragService = _dragService;
11246
+ this._zone = _zone;
11247
+ this._cdr = _cdr;
11248
+ this.allowDrag = true;
11249
+ this.allowDrop = true;
11250
+ this.tetaDragEnter = new EventEmitter();
11251
+ this.tetaDrop = new EventEmitter();
11252
+ this._alive = true;
11253
+ }
11254
+ get selection() {
11255
+ return this._dragService?.selection?.items?.indexOf(this.instance) >= 0;
11256
+ }
11257
+ get isDropTarget() {
11258
+ return this.dropTarget === this.instance;
11259
+ }
11260
+ mousedown(event) {
11261
+ if (event.ctrlKey && this._container?.multiple) {
11262
+ this._dragService.addSelection(this.instance, this._container.instance);
11263
+ }
11264
+ else {
11265
+ this._dragService.setSelection(this.instance, this._container.instance);
11266
+ }
11267
+ this._dragService.setStartPosition({
11268
+ x: event.x,
11269
+ y: event.y
11270
+ });
11271
+ }
11272
+ mouseenter(event) {
11273
+ if (this.allowDrop) {
11274
+ event.stopPropagation();
11275
+ this._dragService.setDropTarget(this.instance);
11276
+ }
11277
+ }
11278
+ mouseleave(event) {
11279
+ this._dragService.setDropTarget(null);
11280
+ }
11281
+ ngOnInit() {
11282
+ this.instance = new DragInstance({
11283
+ container: this._container.instance,
11284
+ data: this.data
11285
+ });
11286
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11287
+ .subscribe((target) => {
11288
+ this.dropTarget = target;
11289
+ if (target === this.instance) {
11290
+ this.tetaDragEnter.emit(this.instance);
11291
+ }
11292
+ this._cdr.detectChanges();
11293
+ this._cdr.markForCheck();
11294
+ });
11295
+ this._dragService.dropped.pipe(takeWhile(() => this._alive))
11296
+ .pipe(filter((event) => {
11297
+ return event.target === this.instance;
11298
+ }))
11299
+ .subscribe((event) => {
11300
+ this.tetaDrop.emit(event);
11301
+ });
11302
+ }
11303
+ ngOnDestroy() {
11304
+ this._alive = false;
11305
+ }
11306
+ }
11307
+ 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 });
11308
+ 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 });
11309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDirective, decorators: [{
11310
+ type: Directive,
11311
+ args: [{
11312
+ selector: '[tetaDrag]',
11313
+ exportAs: 'drag',
11314
+ host: {
11315
+ '[style.userSelect]': '"none"',
11316
+ '[class.teta-drag-item]': '"true"'
11317
+ }
11318
+ }]
11319
+ }], ctorParameters: function () { return [{ type: DragContainerDirective, decorators: [{
11320
+ type: Inject,
11321
+ args: [DragContainerDirective]
11322
+ }, {
11323
+ type: Optional
11324
+ }, {
11325
+ type: SkipSelf
11326
+ }] }, { type: DragDropService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
11327
+ type: Input,
11328
+ args: ['tetaDrag']
11329
+ }], allowDrag: [{
11330
+ type: HostBinding,
11331
+ args: ['class.teta_draggable_item']
11332
+ }, {
11333
+ type: Input
11334
+ }], allowDrop: [{
11335
+ type: HostBinding,
11336
+ args: ['class.teta_droppable_item']
11337
+ }, {
11338
+ type: Input
11339
+ }], tetaDragEnter: [{
11340
+ type: Output
11341
+ }], tetaDrop: [{
11342
+ type: Output
11343
+ }], selection: [{
11344
+ type: HostBinding,
11345
+ args: ['class.teta-drag-selection']
11346
+ }], isDropTarget: [{
11347
+ type: HostBinding,
11348
+ args: ['class.teta-drop-target']
11349
+ }], mousedown: [{
11350
+ type: HostListener,
11351
+ args: ['mousedown', ['$event']]
11352
+ }, {
11353
+ type: HostListener,
11354
+ args: ['touchstart', ['$event']]
11355
+ }], mouseenter: [{
11356
+ type: HostListener,
11357
+ args: ['mouseenter', ['$event']]
11358
+ }], mouseleave: [{
11359
+ type: HostListener,
11360
+ args: ['mouseleave', ['$event']]
11361
+ }] } });
11362
+
11363
+ class DragPlaceholderDirective {
11364
+ constructor() { }
11365
+ }
11366
+ DragPlaceholderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPlaceholderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11367
+ DragPlaceholderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragPlaceholderDirective, selector: "[tetaDragPlaceholder]", ngImport: i0 });
11368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPlaceholderDirective, decorators: [{
11369
+ type: Directive,
11370
+ args: [{
11371
+ selector: '[tetaDragPlaceholder]'
11372
+ }]
11373
+ }], ctorParameters: function () { return []; } });
11374
+
11375
+ class DragDropModule {
11376
+ }
11377
+ DragDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11378
+ DragDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, declarations: [DragContainerDirective,
11379
+ DragDirective,
11380
+ DragPreviewDirective,
11381
+ DragPlaceholderDirective], imports: [CommonModule], exports: [DragContainerDirective,
11382
+ DragDirective,
11383
+ DragPreviewDirective,
11384
+ DragPlaceholderDirective] });
11385
+ DragDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, imports: [[
11386
+ CommonModule
11387
+ ]] });
11388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, decorators: [{
11389
+ type: NgModule,
11390
+ args: [{
11391
+ declarations: [
11392
+ DragContainerDirective,
11393
+ DragDirective,
11394
+ DragPreviewDirective,
11395
+ DragPlaceholderDirective
11396
+ ],
11397
+ exports: [
11398
+ DragContainerDirective,
11399
+ DragDirective,
11400
+ DragPreviewDirective,
11401
+ DragPlaceholderDirective
11402
+ ],
11403
+ imports: [
11404
+ CommonModule
11405
+ ]
11406
+ }]
11407
+ }] });
11408
+
11409
+ // import {DragSortItemDirective} from './drag-sort-item.directive';
11410
+ class DragSortContainerDirective {
11411
+ constructor() {
11412
+ this.dragSorted = new EventEmitter();
11413
+ }
11414
+ drop(event) {
11415
+ event.stopPropagation();
11416
+ event.preventDefault();
11417
+ }
11418
+ setDragItem(item) {
11419
+ this._dragItem = item;
11420
+ }
11421
+ getDragItem() {
11422
+ return this._dragItem;
11423
+ }
11424
+ getList() {
10710
11425
  return this.dragSortList;
10711
11426
  }
10712
11427
  setList(list) {
@@ -10966,176 +11681,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
10966
11681
  }]
10967
11682
  }] });
10968
11683
 
10969
- class ResizePanelComponent {
10970
- constructor(_elementRef, _renderer, _document) {
10971
- this._elementRef = _elementRef;
10972
- this._renderer = _renderer;
10973
- this._document = _document;
10974
- this.resizePanelClass = true;
10975
- this._direction = 'horizontal';
10976
- this._grabPosition = 'left';
10977
- this._positionMap = new Map()
10978
- .set('left', 'resize-grab_left')
10979
- .set('right', 'resize-grab_right')
10980
- .set('top', 'resize-grab_top')
10981
- .set('bottom', 'resize-grab_bottom');
10982
- }
10983
- set direction(val) {
10984
- this._direction = val;
10985
- }
10986
- get direction() {
10987
- return this._direction;
10988
- }
10989
- set grabPosition(val) {
10990
- this._grabPosition = val;
10991
- }
10992
- get grabPosition() {
10993
- if (this.direction === 'vertical') {
10994
- if (['left', 'right'].includes(this._grabPosition)) {
10995
- return this._grabPosition;
10996
- }
10997
- return 'left';
10998
- }
10999
- if (['top', 'bottom'].includes(this._grabPosition)) {
11000
- return this._grabPosition;
11001
- }
11002
- return 'bottom';
11003
- }
11004
- resizeStart(event) {
11005
- this.setStartPosition();
11006
- if (this.direction === 'vertical') {
11007
- this._startSize = this._elementRef.nativeElement.clientWidth;
11008
- this._startPosition = event.clientX;
11009
- }
11010
- else {
11011
- this._startSize = this._elementRef.nativeElement.clientHeight;
11012
- this._startPosition = event.clientY;
11013
- }
11014
- }
11015
- resizeProcess(event) {
11016
- event.preventDefault();
11017
- if (this.direction === 'vertical') {
11018
- this.manageVertical(event);
11019
- }
11020
- else {
11021
- this.manageHorizontal(event);
11022
- }
11023
- }
11024
- resizeEnd(event) {
11025
- window.dispatchEvent(new Event('resize'));
11026
- }
11027
- ngOnInit() {
11028
- this.restorePosition();
11029
- }
11030
- ngOnDestroy() {
11031
- }
11032
- getClassName() {
11033
- return this._positionMap.get(this.grabPosition) || '';
11034
- }
11035
- setStartPosition() {
11036
- if (this.direction === 'vertical') {
11037
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${this._elementRef.nativeElement.offsetWidth}px`);
11038
- }
11039
- else {
11040
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${this._elementRef.nativeElement.offsetHeight}px`);
11041
- }
11042
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
11043
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
11044
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
11045
- }
11046
- manageHorizontal(event) {
11047
- let newSize = this.grabPosition === 'bottom'
11048
- ? this._startSize + (event.clientY - this._startPosition)
11049
- : this._startSize - (event.clientY - this._startPosition);
11050
- if (this.maxSize && newSize > this.maxSize) {
11051
- newSize = this.maxSize;
11052
- }
11053
- if (this.minSize && newSize < this.minSize) {
11054
- newSize = this.minSize;
11055
- }
11056
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${newSize}px`);
11057
- this.save();
11058
- }
11059
- manageVertical(event) {
11060
- let newSize = this.grabPosition === 'right'
11061
- ? this._startSize + (event.clientX - this._startPosition)
11062
- : this._startSize - (event.clientX - this._startPosition);
11063
- if (this.maxSize && newSize > this.maxSize) {
11064
- newSize = this.maxSize;
11065
- }
11066
- if (this.minSize && newSize < this.minSize) {
11067
- newSize = this.minSize;
11068
- }
11069
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${newSize}px`);
11070
- this.save();
11071
- }
11072
- restore() {
11073
- if (this.name?.length > 0) {
11074
- return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));
11075
- }
11076
- }
11077
- restorePosition() {
11078
- const savedSize = this.restore();
11079
- if (savedSize) {
11080
- if (this.direction === 'vertical') {
11081
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${savedSize}px`);
11082
- }
11083
- else {
11084
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${savedSize}px`);
11085
- }
11086
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
11087
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
11088
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
11089
- }
11090
- }
11091
- save() {
11092
- if (this.name?.length > 0) {
11093
- if (this.direction === 'vertical') {
11094
- localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientWidth);
11095
- }
11096
- else {
11097
- localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientHeight);
11098
- }
11099
- }
11100
- }
11101
- }
11102
- 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 });
11103
- 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 });
11104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
11105
- type: Component,
11106
- 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: [""] }]
11107
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
11108
- type: Inject,
11109
- args: [DOCUMENT]
11110
- }] }]; }, propDecorators: { direction: [{
11111
- type: Input
11112
- }], grabPosition: [{
11113
- type: Input
11114
- }], name: [{
11115
- type: Input
11116
- }], minSize: [{
11117
- type: Input
11118
- }], maxSize: [{
11119
- type: Input
11120
- }], resizePanelClass: [{
11121
- type: HostBinding,
11122
- args: ['class.resize-panel']
11123
- }] } });
11124
-
11125
- class ResizePanelModule {
11126
- }
11127
- ResizePanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11128
- ResizePanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, declarations: [ResizePanelComponent], imports: [CommonModule, IconModule, ResizeDragModule], exports: [ResizePanelComponent] });
11129
- ResizePanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, imports: [[CommonModule, IconModule, ResizeDragModule]] });
11130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, decorators: [{
11131
- type: NgModule,
11132
- args: [{
11133
- declarations: [ResizePanelComponent],
11134
- exports: [ResizePanelComponent],
11135
- imports: [CommonModule, IconModule, ResizeDragModule],
11136
- }]
11137
- }] });
11138
-
11139
11684
  class TooltipDirective extends DynamicContentBaseDirective {
11140
11685
  constructor(_document, _elementRef, _service, _injector, _zone, _cdr, _click) {
11141
11686
  super(_document, _elementRef, _service, _injector, _zone, _cdr);
@@ -11256,6 +11801,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
11256
11801
  }]
11257
11802
  }] });
11258
11803
 
11804
+ class LetDirective {
11805
+ constructor(viewContainer, templateRef) {
11806
+ viewContainer.createEmbeddedView(templateRef, new LetContext(this));
11807
+ }
11808
+ static ngTemplateContextGuard(_dir, _ctx) {
11809
+ return true;
11810
+ }
11811
+ }
11812
+ 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 });
11813
+ LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: LetDirective, selector: "[tetaLet]", inputs: { tetaLet: "tetaLet" }, ngImport: i0 });
11814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetDirective, decorators: [{
11815
+ type: Directive,
11816
+ args: [{
11817
+ selector: '[tetaLet]'
11818
+ }]
11819
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef, decorators: [{
11820
+ type: Inject,
11821
+ args: [ViewContainerRef]
11822
+ }] }, { type: i0.TemplateRef, decorators: [{
11823
+ type: Inject,
11824
+ args: [TemplateRef]
11825
+ }] }]; }, propDecorators: { tetaLet: [{
11826
+ type: Input
11827
+ }] } });
11828
+ class LetContext {
11829
+ constructor(internalDirectiveInstance) {
11830
+ this.internalDirectiveInstance = internalDirectiveInstance;
11831
+ }
11832
+ get $implicit() {
11833
+ return this.internalDirectiveInstance.tetaLet;
11834
+ }
11835
+ get tetaLet() {
11836
+ return this.internalDirectiveInstance.tetaLet;
11837
+ }
11838
+ }
11839
+
11840
+ class LetModule {
11841
+ }
11842
+ LetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11843
+ LetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, declarations: [LetDirective], imports: [CommonModule], exports: [LetDirective] });
11844
+ LetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, imports: [[
11845
+ CommonModule
11846
+ ]] });
11847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, decorators: [{
11848
+ type: NgModule,
11849
+ args: [{
11850
+ declarations: [
11851
+ LetDirective
11852
+ ], exports: [
11853
+ LetDirective
11854
+ ],
11855
+ imports: [
11856
+ CommonModule
11857
+ ]
11858
+ }]
11859
+ }] });
11860
+
11259
11861
  class OverlayContainerService {
11260
11862
  constructor(document$) {
11261
11863
  this.document$ = document$;
@@ -11351,6 +11953,20 @@ const ruLocale = {
11351
11953
  ]
11352
11954
  };
11353
11955
 
11956
+ function tetaZoneFull(ngZone) {
11957
+ return source => new Observable(subscriber => source.subscribe({
11958
+ next: value => ngZone.run(() => subscriber.next(value)),
11959
+ error: (error) => ngZone.run(() => subscriber.error(error)),
11960
+ complete: () => ngZone.run(() => subscriber.complete()),
11961
+ }));
11962
+ }
11963
+ function tetaZoneFree(ngZone) {
11964
+ return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
11965
+ }
11966
+ function tetaZoneOptimized(ngZone) {
11967
+ return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
11968
+ }
11969
+
11354
11970
  /**
11355
11971
  * Components
11356
11972
  */
@@ -11359,5 +11975,5 @@ const ruLocale = {
11359
11975
  * Generated bundle index. Do not edit.
11360
11976
  */
11361
11977
 
11362
- 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 };
11978
+ 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 };
11363
11979
  //# sourceMappingURL=tetacom-ng-components.mjs.map