@tetacom/ng-components 1.0.36 → 1.0.39

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 (110) hide show
  1. package/assets/icons.svg +503 -657
  2. package/component/dropdown/dropdown/dropdown.component.d.ts +1 -1
  3. package/component/expand-card/expand-card/expand-card.component.d.ts +13 -0
  4. package/component/expand-card/expand-card.module.d.ts +12 -0
  5. package/component/expand-card/public-api.d.ts +2 -0
  6. package/component/file-upload/file-upload.module.d.ts +2 -1
  7. package/component/modal/modal-container/modal-container.component.d.ts +1 -1
  8. package/component/modal/modal.service.d.ts +1 -1
  9. package/component/modal/model/i-modal-result.d.ts +2 -1
  10. package/component/modal/model/modal-instance.d.ts +2 -2
  11. package/component/public-api.d.ts +2 -0
  12. package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -0
  13. package/component/table/enum/select-type.enum.d.ts +2 -2
  14. package/directive/context-menu/context-menu.directive.d.ts +4 -1
  15. package/directive/drag-drop/drag-container.directive.d.ts +32 -0
  16. package/directive/drag-drop/drag-drop.module.d.ts +11 -0
  17. package/directive/drag-drop/drag-drop.service.d.ts +40 -0
  18. package/directive/drag-drop/drag-placeholder.directive.d.ts +6 -0
  19. package/directive/drag-drop/drag-preview.directive.d.ts +8 -0
  20. package/directive/drag-drop/drag.directive.d.ts +31 -0
  21. package/directive/drag-drop/model/drag-container-instance.d.ts +11 -0
  22. package/directive/drag-drop/model/drag-instance.d.ts +9 -0
  23. package/directive/drag-drop/model/drag-process.d.ts +4 -0
  24. package/directive/drag-drop/model/drag-selection.d.ts +6 -0
  25. package/directive/drag-drop/model/drop-event.d.ts +8 -0
  26. package/directive/drag-drop/model/drop-target.d.ts +3 -0
  27. package/directive/drag-drop/model/point.d.ts +4 -0
  28. package/directive/drag-drop/model/public-api.d.ts +7 -0
  29. package/directive/drag-drop/public-api.d.ts +7 -0
  30. package/directive/let/let.directive.d.ts +18 -0
  31. package/directive/let/let.module.d.ts +8 -0
  32. package/directive/let/public-api.d.ts +2 -0
  33. package/directive/public-api.d.ts +3 -1
  34. package/directive/scroll-into-view/public-api.d.ts +2 -0
  35. package/directive/scroll-into-view/scroll-into-view.directive.d.ts +13 -0
  36. package/directive/scroll-into-view/scroll-into-view.module.d.ts +8 -0
  37. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  38. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +1 -1
  39. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +1 -1
  40. package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +3 -3
  41. package/esm2020/component/dropdown/dropdown-base.mjs +3 -4
  42. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +36 -0
  43. package/esm2020/component/expand-card/expand-card.module.mjs +42 -0
  44. package/esm2020/component/expand-card/public-api.mjs +3 -0
  45. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  46. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +4 -3
  47. package/esm2020/component/file-upload/file-upload.module.mjs +5 -4
  48. package/esm2020/component/modal/modal-container/modal-container.component.mjs +7 -7
  49. package/esm2020/component/modal/modal.service.mjs +1 -1
  50. package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
  51. package/esm2020/component/modal/model/modal-instance.mjs +4 -2
  52. package/esm2020/component/public-api.mjs +5 -1
  53. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +6 -3
  54. package/esm2020/component/select/select/select.component.mjs +1 -1
  55. package/esm2020/component/table/enum/select-type.enum.mjs +3 -3
  56. package/esm2020/component/table/head-cell/head-cell.component.mjs +1 -1
  57. package/esm2020/component/table/service/table.service.mjs +5 -20
  58. package/esm2020/component/table/table/table.component.mjs +7 -4
  59. package/esm2020/component/table/table-body/table-body.component.mjs +4 -4
  60. package/esm2020/component/table/table-head/table-head.component.mjs +4 -4
  61. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  62. package/esm2020/directive/context-menu/context-menu.directive.mjs +36 -11
  63. package/esm2020/directive/drag-drop/drag-container.directive.mjs +92 -0
  64. package/esm2020/directive/drag-drop/drag-drop.module.mjs +41 -0
  65. package/esm2020/directive/drag-drop/drag-drop.service.mjs +140 -0
  66. package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +14 -0
  67. package/esm2020/directive/drag-drop/drag-preview.directive.mjs +16 -0
  68. package/esm2020/directive/drag-drop/drag.directive.mjs +128 -0
  69. package/esm2020/directive/drag-drop/model/drag-container-instance.mjs +8 -0
  70. package/esm2020/directive/drag-drop/model/drag-instance.mjs +7 -0
  71. package/esm2020/directive/drag-drop/model/drag-process.mjs +2 -0
  72. package/esm2020/directive/drag-drop/model/drag-selection.mjs +2 -0
  73. package/esm2020/directive/drag-drop/model/drop-event.mjs +2 -0
  74. package/esm2020/directive/drag-drop/model/drop-target.mjs +2 -0
  75. package/esm2020/directive/drag-drop/model/point.mjs +2 -0
  76. package/esm2020/directive/drag-drop/model/public-api.mjs +8 -0
  77. package/esm2020/directive/drag-drop/public-api.mjs +8 -0
  78. package/esm2020/directive/let/let.directive.mjs +38 -0
  79. package/esm2020/directive/let/let.module.mjs +25 -0
  80. package/esm2020/directive/let/public-api.mjs +3 -0
  81. package/esm2020/directive/public-api.mjs +4 -2
  82. package/esm2020/directive/scroll-into-view/public-api.mjs +3 -0
  83. package/esm2020/directive/scroll-into-view/scroll-into-view.directive.mjs +40 -0
  84. package/esm2020/directive/scroll-into-view/scroll-into-view.module.mjs +25 -0
  85. package/esm2020/observable/public-api.mjs +2 -0
  86. package/esm2020/observable/zoneObservable.mjs +15 -0
  87. package/esm2020/public-api.mjs +3 -1
  88. package/esm2020/util/forms-util.mjs +7 -1
  89. package/fesm2015/tetacom-ng-components.mjs +992 -344
  90. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  91. package/fesm2020/tetacom-ng-components.mjs +975 -341
  92. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  93. package/observable/public-api.d.ts +1 -0
  94. package/observable/zoneObservable.d.ts +5 -0
  95. package/package.json +6 -2
  96. package/public-api.d.ts +1 -0
  97. package/style/button.scss +1 -1
  98. package/style/input.scss +1 -1
  99. package/style/layout.scss +30 -2
  100. package/style/list.scss +9 -4
  101. package/style/modal.scss +2 -0
  102. package/style/presets/color-presets.scss +77 -79
  103. package/style/presets/font-presets.scss +21 -21
  104. package/style/presets/shadow-presets.scss +6 -6
  105. package/style/radio.scss +2 -2
  106. package/style/switch.scss +3 -3
  107. package/style/table.scss +1 -1
  108. package/style/toolbar.scss +1 -1
  109. package/style/util/button-util.scss +2 -2
  110. package/util/forms-util.d.ts +1 -0
@@ -1,18 +1,18 @@
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, PLATFORM_ID } from '@angular/core';
3
3
  import * as i3 from '@angular/common';
4
- import { DOCUMENT, CommonModule } from '@angular/common';
4
+ import { DOCUMENT, CommonModule, isPlatformBrowser } from '@angular/common';
5
5
  import * as i1 from '@angular/common/http';
6
6
  import { HttpClient, HttpClientModule } from '@angular/common/http';
7
7
  import { map, takeWhile, throttleTime, bufferCount, tap, withLatestFrom, filter } from 'rxjs/operators';
8
8
  import * as i3$1 from '@angular/forms';
9
9
  import { NG_VALUE_ACCESSOR, FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
10
- import { BehaviorSubject, Subject, fromEvent, ReplaySubject, combineLatest, merge } from 'rxjs';
10
+ import { BehaviorSubject, Subject, fromEvent, ReplaySubject, combineLatest, merge, Observable, pipe } from 'rxjs';
11
11
  import { trigger, transition, style, animate } from '@angular/animations';
12
- import * as i4 from '@angular/cdk/scrolling';
13
- import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
14
12
  import * as i1$1 from '@ngneat/transloco';
15
13
  import { TranslocoModule, TRANSLOCO_SCOPE } from '@ngneat/transloco';
14
+ import * as i4 from '@angular/cdk/scrolling';
15
+ import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
16
16
  import * as hash from 'object-hash';
17
17
  import hash__default from 'object-hash';
18
18
  import { __awaiter } from 'tslib';
@@ -20,6 +20,7 @@ import * as THREE from 'three';
20
20
  import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
21
21
  import * as d3 from 'd3';
22
22
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
23
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
23
24
 
24
25
  class AccordionComponent {
25
26
  constructor() {
@@ -471,10 +472,10 @@ class CheckboxComponent {
471
472
  }
472
473
  }
473
474
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
474
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
475
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
475
476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, decorators: [{
476
477
  type: Component,
477
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
478
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
478
479
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabindex: [{
479
480
  type: HostBinding,
480
481
  args: ['attr.tabindex']
@@ -1244,7 +1245,7 @@ class DropdownBase {
1244
1245
  }
1245
1246
  click(event) {
1246
1247
  if (this.open) {
1247
- if (!DomUtil.clickedInside(this._body, event)) {
1248
+ if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {
1248
1249
  this.closeDropdown();
1249
1250
  }
1250
1251
  }
@@ -1258,8 +1259,7 @@ class DropdownBase {
1258
1259
  if (!this.open ||
1259
1260
  !this.autoClose ||
1260
1261
  event.detail === 0 ||
1261
- DomUtil.clickedInside(this._head.nativeElement, event) ||
1262
- DomUtil.clickedInside(this._body, event)) {
1262
+ DomUtil.clickedInside(this._head.nativeElement, event)) {
1263
1263
  return;
1264
1264
  }
1265
1265
  if (DomUtil.clickedInside(this._body, event)) {
@@ -1413,10 +1413,10 @@ class DropdownComponent extends DropdownBase {
1413
1413
  }
1414
1414
  }
1415
1415
  DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1416
- DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DropdownComponent, selector: "teta-dropdown", usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[tetaDropdownHead]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1416
+ DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[tetaDropdownHead]\"></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1417
1417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DropdownComponent, decorators: [{
1418
1418
  type: Component,
1419
- args: [{ selector: 'teta-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[tetaDropdownHead]\"></ng-content>\n", styles: [""] }]
1419
+ args: [{ selector: 'teta-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'dropdown', template: "<ng-content select=\"[tetaDropdownHead]\"></ng-content>\n", styles: [""] }]
1420
1420
  }], ctorParameters: function () {
1421
1421
  return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
1422
1422
  type: Inject,
@@ -2236,7 +2236,7 @@ class DatePickerComponent {
2236
2236
  }
2237
2237
  }
2238
2238
  DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: TetaConfigService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2239
- DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DatePickerComponent, selector: "teta-date-picker", inputs: { disabled: "disabled", invalid: "invalid", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minDate: "minDate", maxDate: "maxDate", minYearDate: "minYearDate", maxYearDate: "maxYearDate", align: "align", verticalAlign: "verticalAlign", appendToBody: "appendToBody", allowNull: "allowNull", backdrop: "backdrop", showTime: "showTime", format: "format" }, host: { listeners: { "window:keyup": "keyUp($event)" }, properties: { "class.datepicker-wide": "this.showTime", "class.datepicker_open": "this.open", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto nowrap\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon *ngIf=\"allowNull\"\n [name]=\"'closeBig'\"\n (click)=\"clearPicker($event);\"\n class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: DropdownComponent, selector: "teta-dropdown" }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }, { type: DaySelectComponent, selector: "teta-day-select", inputs: ["firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "disabled"], outputs: ["dateSelected", "monthSelected", "yearSelected"] }, { type: TimePartControlComponent, selector: "teta-time-part-control", inputs: ["min", "max", "disabled"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i3.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2239
+ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DatePickerComponent, selector: "teta-date-picker", inputs: { disabled: "disabled", invalid: "invalid", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minDate: "minDate", maxDate: "maxDate", minYearDate: "minYearDate", maxYearDate: "maxYearDate", align: "align", verticalAlign: "verticalAlign", appendToBody: "appendToBody", allowNull: "allowNull", backdrop: "backdrop", showTime: "showTime", format: "format" }, host: { listeners: { "window:keyup": "keyUp($event)" }, properties: { "class.datepicker-wide": "this.showTime", "class.datepicker_open": "this.open", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto nowrap\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon *ngIf=\"allowNull\"\n [name]=\"'closeBig'\"\n (click)=\"clearPicker($event);\"\n class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }, { type: DaySelectComponent, selector: "teta-day-select", inputs: ["firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "disabled"], outputs: ["dateSelected", "monthSelected", "yearSelected"] }, { type: TimePartControlComponent, selector: "teta-time-part-control", inputs: ["min", "max", "disabled"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i3.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2240
2240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DatePickerComponent, decorators: [{
2241
2241
  type: Component,
2242
2242
  args: [{ selector: 'teta-date-picker', providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto nowrap\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon *ngIf=\"allowNull\"\n [name]=\"'closeBig'\"\n (click)=\"clearPicker($event);\"\n class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""] }]
@@ -2504,7 +2504,7 @@ class MonthPickerComponent {
2504
2504
  }
2505
2505
  }
2506
2506
  MonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: MonthPickerComponent, deps: [{ token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2507
- MonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: MonthPickerComponent, selector: "teta-month-picker", inputs: { disabled: "disabled", minDate: "minDate", maxDate: "maxDate", showToday: "showToday", appendToBody: "appendToBody" }, host: { properties: { "class.datepicker_open": "this.showPicker", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.months[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"scrollable padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: DropdownComponent, selector: "teta-dropdown" }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2507
+ MonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: MonthPickerComponent, selector: "teta-month-picker", inputs: { disabled: "disabled", minDate: "minDate", maxDate: "maxDate", showToday: "showToday", appendToBody: "appendToBody" }, host: { properties: { "class.datepicker_open": "this.showPicker", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.months[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"scrollable padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2508
2508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
2509
2509
  type: Component,
2510
2510
  args: [{ selector: 'teta-month-picker', providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.months[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"scrollable padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""] }]
@@ -3210,6 +3210,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3210
3210
  }]
3211
3211
  }] });
3212
3212
 
3213
+ class ToolbarComponent {
3214
+ get getClass() {
3215
+ const result = [this.class, 'toolbar'];
3216
+ if (this.palette) {
3217
+ result.push(`toolbar-${this.palette}`);
3218
+ }
3219
+ return result.join(' ');
3220
+ }
3221
+ ngOnInit() { }
3222
+ }
3223
+ ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3224
+ 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 });
3225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, decorators: [{
3226
+ type: Component,
3227
+ args: [{ selector: 'teta-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [""] }]
3228
+ }], propDecorators: { palette: [{
3229
+ type: Input
3230
+ }], class: [{
3231
+ type: Input
3232
+ }], getClass: [{
3233
+ type: HostBinding,
3234
+ args: ['class']
3235
+ }] } });
3236
+
3237
+ class ExpandCardComponent {
3238
+ constructor() {
3239
+ this.open = true;
3240
+ this.openChange = new EventEmitter();
3241
+ this.showCross = true;
3242
+ this.crossClick = new EventEmitter();
3243
+ }
3244
+ ngOnInit() {
3245
+ }
3246
+ setOpen() {
3247
+ this.open = !this.open;
3248
+ this.openChange.emit(this.open);
3249
+ }
3250
+ }
3251
+ ExpandCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3252
+ 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;transition:order 5s ease-in}.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 });
3253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardComponent, decorators: [{
3254
+ type: Component,
3255
+ 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;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3256
+ }], ctorParameters: function () { return []; }, propDecorators: { open: [{
3257
+ type: Input
3258
+ }], openChange: [{
3259
+ type: Output
3260
+ }], showCross: [{
3261
+ type: Input
3262
+ }], crossClick: [{
3263
+ type: Output
3264
+ }] } });
3265
+
3266
+ class ToolbarModule {
3267
+ }
3268
+ ToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3269
+ ToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule], exports: [ToolbarComponent] });
3270
+ ToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, imports: [[
3271
+ CommonModule
3272
+ ]] });
3273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, decorators: [{
3274
+ type: NgModule,
3275
+ args: [{
3276
+ declarations: [ToolbarComponent],
3277
+ exports: [ToolbarComponent],
3278
+ imports: [
3279
+ CommonModule
3280
+ ]
3281
+ }]
3282
+ }] });
3283
+
3284
+ class ExpandCardModule {
3285
+ }
3286
+ ExpandCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3287
+ ExpandCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, declarations: [ExpandCardComponent], imports: [CommonModule,
3288
+ ToolbarModule,
3289
+ ButtonModule,
3290
+ IconModule,
3291
+ DelimiterModule], exports: [ExpandCardComponent] });
3292
+ ExpandCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, imports: [[
3293
+ CommonModule,
3294
+ ToolbarModule,
3295
+ ButtonModule,
3296
+ IconModule,
3297
+ DelimiterModule
3298
+ ]] });
3299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandCardModule, decorators: [{
3300
+ type: NgModule,
3301
+ args: [{
3302
+ declarations: [
3303
+ ExpandCardComponent
3304
+ ],
3305
+ exports: [
3306
+ ExpandCardComponent
3307
+ ],
3308
+ imports: [
3309
+ CommonModule,
3310
+ ToolbarModule,
3311
+ ButtonModule,
3312
+ IconModule,
3313
+ DelimiterModule
3314
+ ]
3315
+ }]
3316
+ }] });
3317
+
3213
3318
  class ExpandPanelContentDirective {
3214
3319
  constructor(template) {
3215
3320
  this.template = template;
@@ -3238,30 +3343,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3238
3343
  }]
3239
3344
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
3240
3345
 
3241
- class ToolbarComponent {
3242
- get getClass() {
3243
- const result = [this.class, 'toolbar'];
3244
- if (this.palette) {
3245
- result.push(`toolbar-${this.palette}`);
3246
- }
3247
- return result.join(' ');
3248
- }
3249
- ngOnInit() { }
3250
- }
3251
- ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3252
- 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 });
3253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarComponent, decorators: [{
3254
- type: Component,
3255
- args: [{ selector: 'teta-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [""] }]
3256
- }], propDecorators: { palette: [{
3257
- type: Input
3258
- }], class: [{
3259
- type: Input
3260
- }], getClass: [{
3261
- type: HostBinding,
3262
- args: ['class']
3263
- }] } });
3264
-
3265
3346
  class ExpandPanelComponent {
3266
3347
  constructor() {
3267
3348
  this.open = true;
@@ -3299,10 +3380,10 @@ class ExpandPanelComponent {
3299
3380
  }
3300
3381
  }
3301
3382
  ExpandPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3302
- 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 });
3383
+ 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 });
3303
3384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelComponent, decorators: [{
3304
3385
  type: Component,
3305
- 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"] }]
3386
+ 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"] }]
3306
3387
  }], ctorParameters: function () { return []; }, propDecorators: { content: [{
3307
3388
  type: ContentChild,
3308
3389
  args: [ExpandPanelContentDirective, { static: false }]
@@ -3321,24 +3402,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3321
3402
  type: Input
3322
3403
  }] } });
3323
3404
 
3324
- class ToolbarModule {
3325
- }
3326
- ToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3327
- ToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule], exports: [ToolbarComponent] });
3328
- ToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, imports: [[
3329
- CommonModule
3330
- ]] });
3331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ToolbarModule, decorators: [{
3332
- type: NgModule,
3333
- args: [{
3334
- declarations: [ToolbarComponent],
3335
- exports: [ToolbarComponent],
3336
- imports: [
3337
- CommonModule
3338
- ]
3339
- }]
3340
- }] });
3341
-
3342
3405
  class ExpandPanelModule {
3343
3406
  }
3344
3407
  ExpandPanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ExpandPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -3419,10 +3482,10 @@ class FileUploadAreaComponent {
3419
3482
  }
3420
3483
  }
3421
3484
  FileUploadAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3422
- 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 });
3485
+ 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 });
3423
3486
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadAreaComponent, decorators: [{
3424
3487
  type: Component,
3425
- 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"] }]
3488
+ 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"] }]
3426
3489
  }], ctorParameters: function () { return []; }, propDecorators: { fileUpload: [{
3427
3490
  type: HostBinding,
3428
3491
  args: ['class.file-upload']
@@ -3468,14 +3531,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
3468
3531
  class FileUploadModule {
3469
3532
  }
3470
3533
  FileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3471
- 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] });
3472
- FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, ButtonModule, IconModule]] });
3534
+ 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] });
3535
+ FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, imports: [[CommonModule, ButtonModule, IconModule, TranslocoModule]] });
3473
3536
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileUploadModule, decorators: [{
3474
3537
  type: NgModule,
3475
3538
  args: [{
3476
3539
  declarations: [FileUploadAreaComponent, FileItemComponent],
3477
3540
  exports: [FileUploadAreaComponent, FileItemComponent],
3478
- imports: [CommonModule, ButtonModule, IconModule],
3541
+ imports: [CommonModule, ButtonModule, IconModule, TranslocoModule],
3479
3542
  }]
3480
3543
  }] });
3481
3544
 
@@ -4666,7 +4729,7 @@ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4666
4729
  useExisting: forwardRef(() => SelectComponent),
4667
4730
  multi: true,
4668
4731
  },
4669
- ], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "<teta-dropdown [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n class=\"row row_auto\">\n <div tetaDropdownHead\n class=\"row row_auto select-head\"\n [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n <teta-icon *ngIf=\"icon\" [name]=\"icon\" class=\"margin-right-1\"></teta-icon>\n <span class=\"placeholder\" *ngIf=\"(value == null || value?.length === 0) && placeholder\">\n {{placeholder}}\n </span>\n <ng-container\n *ngTemplateOutlet=\"valueDirective ? valueDirective.template : valueDefault; context: {$implicit: value, value: value}\"></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\"></teta-icon>\n </div>\n <div *ngIf=\"options?.length\" tetaDropdownContent class=\"select-list scrollable row_auto\" (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"searchRef\">\n <div class=\"select-search\">\n <teta-text-field [ngModel]=\"searchText\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"'\u041F\u043E\u0438\u0441\u043A'\"\n [leftIconName]=\"'search'\"></teta-text-field>\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"!multiple && allowNull\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"clear()\"\n [class.list-item_active]=\"value==null\">\n \u041D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"!virtual\">\n <div class=\"list-item list-item_interactive\"\n *ngFor=\"let option of visibleOptions\"\n [class.select-list-item_active]=\"itemSelected(option) && multiple\"\n [class.list-item_active]=\"itemSelected(option)\"\n [class.select-list-item]=\"multiple\"\n (click)=\"clickOption(option, $event)\">\n <teta-icon *ngIf=\"itemSelected(option) && multiple\" [name]=\"'tick'\" [palette]=\"'primary'\"></teta-icon>\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}\">\n </ng-container>\n </span>\n </div>\n </ng-container>\n <cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n [itemSize]=\"40\"\n minBufferPx=\"200\"\n maxBufferPx=\"600\">\n <div class=\"select-list-item select-list-item_interactive\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0;\"\n [class.select-list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\">\n <teta-icon *ngIf=\"itemSelected(option)\" [name]=\"'tick'\" [palette]=\"'primary'\" class=\"margin-left-2\"></teta-icon>\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}\">\n </ng-container>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"row row_auto select-chip-field flex-wrap\" *ngIf=\"multiple && value?.length\">\n <div *ngFor=\"let item of value\" class=\"chip\">\n <teta-icon [name]=\"'closeCircle'\" (click)=\"removeItemClick(item, $event)\"></teta-icon>\n {{getText(item)}}\n </div>\n </div>\n </div>\n</teta-dropdown>\n\n<ng-template #optionDefault let-option>\n {{getText(option)}}\n</ng-template>\n<ng-template #valueDefault let-value>\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\" *ngIf=\"multiple\">\n <ng-container\n *ngFor=\"let item of value; let i = index\">{{getText(item) + (value.length === i + 1 ? '' : ', ') }}</ng-container>\n </div>\n <ng-container *ngIf=\"!multiple\">\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{getText(value)}}</span>\n </ng-container>\n</ng-template>\n", styles: [""], components: [{ type: DropdownComponent, selector: "teta-dropdown" }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }, { type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4732
+ ], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "<teta-dropdown [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n class=\"row row_auto\">\n <div tetaDropdownHead\n class=\"row row_auto select-head\"\n [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n <teta-icon *ngIf=\"icon\" [name]=\"icon\" class=\"margin-right-1\"></teta-icon>\n <span class=\"placeholder\" *ngIf=\"(value == null || value?.length === 0) && placeholder\">\n {{placeholder}}\n </span>\n <ng-container\n *ngTemplateOutlet=\"valueDirective ? valueDirective.template : valueDefault; context: {$implicit: value, value: value}\"></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\"></teta-icon>\n </div>\n <div *ngIf=\"options?.length\" tetaDropdownContent class=\"select-list scrollable row_auto\" (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"searchRef\">\n <div class=\"select-search\">\n <teta-text-field [ngModel]=\"searchText\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"'\u041F\u043E\u0438\u0441\u043A'\"\n [leftIconName]=\"'search'\"></teta-text-field>\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"!multiple && allowNull\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"clear()\"\n [class.list-item_active]=\"value==null\">\n \u041D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"!virtual\">\n <div class=\"list-item list-item_interactive\"\n *ngFor=\"let option of visibleOptions\"\n [class.select-list-item_active]=\"itemSelected(option) && multiple\"\n [class.list-item_active]=\"itemSelected(option)\"\n [class.select-list-item]=\"multiple\"\n (click)=\"clickOption(option, $event)\">\n <teta-icon *ngIf=\"itemSelected(option) && multiple\" [name]=\"'tick'\" [palette]=\"'primary'\"></teta-icon>\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}\">\n </ng-container>\n </span>\n </div>\n </ng-container>\n <cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n [itemSize]=\"40\"\n minBufferPx=\"200\"\n maxBufferPx=\"600\">\n <div class=\"select-list-item select-list-item_interactive\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0;\"\n [class.select-list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\">\n <teta-icon *ngIf=\"itemSelected(option)\" [name]=\"'tick'\" [palette]=\"'primary'\" class=\"margin-left-2\"></teta-icon>\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}\">\n </ng-container>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"row row_auto select-chip-field flex-wrap\" *ngIf=\"multiple && value?.length\">\n <div *ngFor=\"let item of value\" class=\"chip\">\n <teta-icon [name]=\"'closeCircle'\" (click)=\"removeItemClick(item, $event)\"></teta-icon>\n {{getText(item)}}\n </div>\n </div>\n </div>\n</teta-dropdown>\n\n<ng-template #optionDefault let-option>\n {{getText(option)}}\n</ng-template>\n<ng-template #valueDefault let-value>\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\" *ngIf=\"multiple\">\n <ng-container\n *ngFor=\"let item of value; let i = index\">{{getText(item) + (value.length === i + 1 ? '' : ', ') }}</ng-container>\n </div>\n <ng-container *ngIf=\"!multiple\">\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{getText(value)}}</span>\n </ng-container>\n</ng-template>\n", styles: [""], components: [{ type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }, { type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4670
4733
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SelectComponent, decorators: [{
4671
4734
  type: Component,
4672
4735
  args: [{ selector: 'teta-select', providers: [
@@ -5353,10 +5416,10 @@ ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
5353
5416
  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: [
5354
5417
  trigger('dialog', [
5355
5418
  transition('void => *', [
5356
- style({ opacity: '0' }),
5357
- animate(150, style({ opacity: '1' })),
5419
+ style({ top: '-100%' }),
5420
+ animate('150ms ease-in', style({ top: '0' })),
5358
5421
  ]),
5359
- transition('* => void', [animate(150, style({ opacity: '0' }))]),
5422
+ transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5360
5423
  ]),
5361
5424
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5362
5425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ModalContainerComponent, decorators: [{
@@ -5364,10 +5427,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
5364
5427
  args: [{ selector: 'teta-modal-container', animations: [
5365
5428
  trigger('dialog', [
5366
5429
  transition('void => *', [
5367
- style({ opacity: '0' }),
5368
- animate(150, style({ opacity: '1' })),
5430
+ style({ top: '-100%' }),
5431
+ animate('150ms ease-in', style({ top: '0' })),
5369
5432
  ]),
5370
- transition('* => void', [animate(150, style({ opacity: '0' }))]),
5433
+ transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5371
5434
  ]),
5372
5435
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n", styles: [""] }]
5373
5436
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
@@ -5507,7 +5570,9 @@ class ModalInstance {
5507
5570
  destroy() {
5508
5571
  this._window.destroy();
5509
5572
  if (this._content && this._content.viewRef) {
5510
- this._content.viewRef.destroy();
5573
+ setTimeout(() => {
5574
+ this._content.viewRef.destroy();
5575
+ }, 150);
5511
5576
  }
5512
5577
  }
5513
5578
  }
@@ -6074,6 +6139,13 @@ class FormsUtil {
6074
6139
  return (((_a = formGroup.controls[controlName]) === null || _a === void 0 ? void 0 : _a.invalid) &&
6075
6140
  ((_b = formGroup.controls[controlName]) === null || _b === void 0 ? void 0 : _b.dirty));
6076
6141
  }
6142
+ static getControlErrors(formGroup, controlName) {
6143
+ var _a;
6144
+ if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
6145
+ return Object.keys((_a = formGroup.controls[controlName]) === null || _a === void 0 ? void 0 : _a.errors);
6146
+ }
6147
+ return [];
6148
+ }
6077
6149
  static matchValuesValidator(matchTo) {
6078
6150
  return (control) => !!control.parent &&
6079
6151
  !!control.parent.value &&
@@ -7178,8 +7250,8 @@ class StateUtil {
7178
7250
  var SelectType;
7179
7251
  (function (SelectType) {
7180
7252
  SelectType[SelectType["none"] = 0] = "none";
7181
- SelectType[SelectType["multiple"] = 1] = "multiple";
7182
- SelectType[SelectType["single"] = 2] = "single";
7253
+ SelectType[SelectType["checkBox"] = 1] = "checkBox";
7254
+ SelectType[SelectType["mouse"] = 2] = "mouse";
7183
7255
  })(SelectType || (SelectType = {}));
7184
7256
 
7185
7257
  var EditType;
@@ -7211,7 +7283,7 @@ class TableColumnStore {
7211
7283
 
7212
7284
  class TableService {
7213
7285
  constructor() {
7214
- this.selectType = SelectType.multiple;
7286
+ this.selectType = SelectType.mouse;
7215
7287
  this.editType = EditType.cell;
7216
7288
  this.editEvent = EditEvent.doubleClick;
7217
7289
  this.trackRow = (index, row) => index;
@@ -7533,12 +7605,7 @@ class TableService {
7533
7605
  this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7534
7606
  }
7535
7607
  else {
7536
- if (this.selectType === SelectType.single) {
7537
- this._selectedRows.next([row]);
7538
- }
7539
- else {
7540
- this._selectedRows.next([...this._selectedRows.value, row]);
7541
- }
7608
+ this._selectedRows.next([...this._selectedRows.value, row]);
7542
7609
  }
7543
7610
  }
7544
7611
  selectRange(row) {
@@ -7572,23 +7639,13 @@ class TableService {
7572
7639
  if (this.selectType === SelectType.none) {
7573
7640
  return;
7574
7641
  }
7575
- if (this.selectType === SelectType.single) {
7576
- this._selectedRows.next([row]);
7577
- }
7578
- else {
7579
- this._selectedRows.next([...this._selectedRows.value, row]);
7580
- }
7642
+ this._selectedRows.next([...this._selectedRows.value, row]);
7581
7643
  }
7582
7644
  deselectRow(row) {
7583
7645
  if (this.selectType === SelectType.none) {
7584
7646
  return;
7585
7647
  }
7586
- if (this.selectType === SelectType.single) {
7587
- this._selectedRows.next([]);
7588
- }
7589
- else {
7590
- this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7591
- }
7648
+ this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7592
7649
  }
7593
7650
  selectAll() {
7594
7651
  this._selectedRows.next(this._displayData.value);
@@ -8803,7 +8860,7 @@ class HeadCellComponent {
8803
8860
  }
8804
8861
  }
8805
8862
  HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellComponent, deps: [{ token: TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8806
- HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, ngImport: i0, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n (autosize)=\"autosizeColumn()\"\n (autosizeAll)=\"autosizeAllColumns()\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"></div>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], components: [{ type: DropdownComponent, selector: "teta-dropdown" }, { type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "data"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "dropDownOpen"], outputs: ["dropDownOpenChange", "autosize", "autosizeAll"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8863
+ HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, ngImport: i0, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n (autosize)=\"autosizeColumn()\"\n (autosizeAll)=\"autosizeAllColumns()\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"></div>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], components: [{ type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "data"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "dropDownOpen"], outputs: ["dropDownOpenChange", "autosize", "autosizeAll"] }], directives: [{ type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8807
8864
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellComponent, decorators: [{
8808
8865
  type: Component,
8809
8866
  args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n (autosize)=\"autosizeColumn()\"\n (autosizeAll)=\"autosizeAllColumns()\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"></div>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
@@ -8922,7 +8979,7 @@ class TableHeadComponent {
8922
8979
  this.columns = columns;
8923
8980
  const locked = ArrayUtil.flatten(columns, 'columns', true)
8924
8981
  .filter((_) => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
8925
- const startWidth = this.selectType !== SelectType.none ? 28 : 0;
8982
+ const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
8926
8983
  this.lockedFlex = locked.reduce((prev, curr) => prev + curr.flex, 0);
8927
8984
  this.lockedWidth = locked.reduce((prev, curr) => prev + curr.width, startWidth);
8928
8985
  this._cdr.markForCheck();
@@ -8959,10 +9016,10 @@ class TableHeadComponent {
8959
9016
  }
8960
9017
  }
8961
9018
  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 });
8962
- 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 });
9019
+ 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 });
8963
9020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableHeadComponent, decorators: [{
8964
9021
  type: Component,
8965
- 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: [""] }]
9022
+ 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: [""] }]
8966
9023
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { selectType: [{
8967
9024
  type: Input
8968
9025
  }], showHeadCellMenu: [{
@@ -9508,7 +9565,7 @@ class TableBodyComponent {
9508
9565
  this._columns = columns;
9509
9566
  this.locked = (_a = this._columns) === null || _a === void 0 ? void 0 : _a.filter((_) => _.locked === true);
9510
9567
  this.unlocked = (_b = this._columns) === null || _b === void 0 ? void 0 : _b.filter((_) => _.locked === false);
9511
- const startWidth = this.selectType !== SelectType.none ? 28 : 0;
9568
+ const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
9512
9569
  this.lockedFlex = this.locked.reduce((prev, curr) => prev + curr.flex, 0);
9513
9570
  this.lockedWidth = this.locked.reduce((prev, curr) => prev + curr.width, startWidth);
9514
9571
  this.totalFlex = this._columns.reduce((prev, curr) => prev + curr.flex, 0);
@@ -9581,10 +9638,10 @@ class TableBodyComponent {
9581
9638
  }
9582
9639
  }
9583
9640
  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 });
9584
- 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 });
9641
+ 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 });
9585
9642
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableBodyComponent, decorators: [{
9586
9643
  type: Component,
9587
- 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: [""] }]
9644
+ 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: [""] }]
9588
9645
  }], ctorParameters: function () { return [{ type: TableService }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { virtual: [{
9589
9646
  type: Input
9590
9647
  }], activeRow: [{
@@ -9646,12 +9703,13 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9646
9703
  this._zone = _zone;
9647
9704
  this._cdr = _cdr;
9648
9705
  this._click = _click;
9706
+ this.autoCloseIgnore = [];
9649
9707
  }
9650
9708
  get _dynamicContent() {
9651
9709
  return this.tetaContextMenu;
9652
9710
  }
9653
9711
  showContent(event) {
9654
- if (this.tetaContextMenu) {
9712
+ if (this.tetaContextMenu && !event.defaultPrevented) {
9655
9713
  event.preventDefault();
9656
9714
  setTimeout(() => {
9657
9715
  this.createMenu(event);
@@ -9665,14 +9723,32 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9665
9723
  event.stopPropagation();
9666
9724
  }
9667
9725
  }
9668
- ngOnInit() {
9669
- super.ngOnInit();
9670
- merge(this._click.click, this._click.contextMenu)
9671
- .pipe(takeWhile(() => this._alive), filter(() => this._open), filter(() => this._componentRef != null), filter((event) => !DomUtil.clickedInside(this._componentRef.location.nativeElement, event)), tap((_) => {
9726
+ documentClick(event) {
9727
+ if (this._open && this._componentRef && (!DomUtil.clickedInside(this._componentRef.location.nativeElement, event) || this.autoCloseIgnore.indexOf('inside') < 0)) {
9672
9728
  this.destroyContentRef();
9673
9729
  this.openChange.emit(false);
9674
- }))
9675
- .subscribe();
9730
+ }
9731
+ }
9732
+ ngOnInit() {
9733
+ super.ngOnInit();
9734
+ // merge(this._click.click, this._click.contextMenu)
9735
+ // .pipe(
9736
+ // takeWhile(() => this._alive),
9737
+ // filter(() => this._open),
9738
+ // filter(() => this._componentRef != null),
9739
+ // filter(
9740
+ // (event: MouseEvent) =>
9741
+ // !DomUtil.clickedInside(
9742
+ // this._componentRef.location.nativeElement,
9743
+ // event
9744
+ // ) || this.autoCloseIgnore.indexOf('inside') < 0
9745
+ // ),
9746
+ // tap((_) => {
9747
+ // this.destroyContentRef();
9748
+ // this.openChange.emit(false);
9749
+ // })
9750
+ // )
9751
+ // .subscribe();
9676
9752
  }
9677
9753
  ngOnDestroy() {
9678
9754
  super.ngOnDestroy();
@@ -9702,7 +9778,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
9702
9778
  }
9703
9779
  }
9704
9780
  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 });
9705
- 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 });
9781
+ 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 });
9706
9782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ContextMenuDirective, decorators: [{
9707
9783
  type: Directive,
9708
9784
  args: [{
@@ -9715,12 +9791,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9715
9791
  }] }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: ClickService }];
9716
9792
  }, propDecorators: { tetaContextMenu: [{
9717
9793
  type: Input
9794
+ }], autoCloseIgnore: [{
9795
+ type: Input
9718
9796
  }], showContent: [{
9719
9797
  type: HostListener,
9720
9798
  args: ['contextmenu', ['$event']]
9721
9799
  }], click: [{
9722
9800
  type: HostListener,
9723
9801
  args: ['click', ['$event']]
9802
+ }], documentClick: [{
9803
+ type: HostListener,
9804
+ args: ['document:click', ['$event']]
9805
+ }, {
9806
+ type: HostListener,
9807
+ args: ['document:contextmenu', ['$event']]
9724
9808
  }] } });
9725
9809
 
9726
9810
  class TableComponent {
@@ -9729,7 +9813,7 @@ class TableComponent {
9729
9813
  this._elementRef = _elementRef;
9730
9814
  this.data = [];
9731
9815
  this.columns = [];
9732
- this.selectType = SelectType.multiple;
9816
+ this.selectType = SelectType.mouse;
9733
9817
  this.groupRowComponent = GroupRowComponent;
9734
9818
  this.trackRow = (index, row) => index;
9735
9819
  this.editType = EditType.cell;
@@ -9810,9 +9894,12 @@ class TableComponent {
9810
9894
  if (event.ctrlKey) {
9811
9895
  this._svc.selectOrDeselectRow(row);
9812
9896
  }
9813
- if (event.shiftKey) {
9897
+ else if (event.shiftKey) {
9814
9898
  this._svc.selectRange(row);
9815
9899
  }
9900
+ else {
9901
+ this._svc.selectRows([row]);
9902
+ }
9816
9903
  }
9817
9904
  if (!this.eventIsOnRow(event) && !event.defaultPrevented) {
9818
9905
  if (this.editType === EditType.row) {
@@ -10031,7 +10118,7 @@ class TableComponent {
10031
10118
  }
10032
10119
  }
10033
10120
  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 });
10034
- 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 });
10121
+ 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 });
10035
10122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, decorators: [{
10036
10123
  type: Component,
10037
10124
  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: [""] }]
@@ -10468,10 +10555,10 @@ class ThemeSwitchComponent {
10468
10555
  }
10469
10556
  }
10470
10557
  ThemeSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ThemeSwitchComponent, deps: [{ token: ThemeSwitchService }], target: i0.ɵɵFactoryTarget.Component });
10471
- 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 });
10558
+ 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 });
10472
10559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ThemeSwitchComponent, decorators: [{
10473
10560
  type: Component,
10474
- 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"] }]
10561
+ 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"] }]
10475
10562
  }], ctorParameters: function () { return [{ type: ThemeSwitchService }]; }, propDecorators: { palette: [{
10476
10563
  type: Input
10477
10564
  }], view: [{
@@ -10759,68 +10846,671 @@ class Chart3dOptions {
10759
10846
  }
10760
10847
  }
10761
10848
 
10762
- /* accordion */
10763
-
10764
- class DisableControlDirective {
10765
- constructor(ngControl) {
10766
- this.ngControl = ngControl;
10849
+ class ResizePanelComponent {
10850
+ constructor(_elementRef, _renderer, _document) {
10851
+ this._elementRef = _elementRef;
10852
+ this._renderer = _renderer;
10853
+ this._document = _document;
10854
+ this.resizePanelClass = true;
10855
+ this._direction = 'horizontal';
10856
+ this._grabPosition = 'left';
10857
+ this._positionMap = new Map()
10858
+ .set('left', 'resize-grab_left')
10859
+ .set('right', 'resize-grab_right')
10860
+ .set('top', 'resize-grab_top')
10861
+ .set('bottom', 'resize-grab_bottom');
10767
10862
  }
10768
- set tetaDisableControl(val) {
10769
- if (this.ngControl.control) {
10770
- if (val) {
10771
- this.ngControl.control.disable();
10772
- }
10773
- else {
10774
- this.ngControl.control.enable();
10775
- }
10776
- }
10863
+ set direction(val) {
10864
+ this._direction = val;
10777
10865
  }
10778
- }
10779
- 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 });
10780
- DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: { tetaDisableControl: "tetaDisableControl" }, ngImport: i0 });
10781
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, decorators: [{
10782
- type: Directive,
10783
- args: [{
10784
- selector: '[tetaDisableControl]'
10785
- }]
10786
- }], ctorParameters: function () { return [{ type: i3$1.NgControl }]; }, propDecorators: { tetaDisableControl: [{
10787
- type: Input
10788
- }] } });
10789
-
10790
- class DisableControlModule {
10791
- }
10792
- DisableControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10793
- DisableControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, declarations: [DisableControlDirective], imports: [CommonModule], exports: [DisableControlDirective] });
10794
- DisableControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, imports: [[
10795
- CommonModule
10796
- ]] });
10797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, decorators: [{
10798
- type: NgModule,
10799
- args: [{
10800
- declarations: [DisableControlDirective],
10801
- imports: [
10802
- CommonModule
10803
- ],
10804
- exports: [
10805
- DisableControlDirective
10806
- ]
10807
- }]
10808
- }] });
10809
-
10810
- // import {DragSortItemDirective} from './drag-sort-item.directive';
10811
- class DragSortContainerDirective {
10812
- constructor() {
10813
- this.dragSorted = new EventEmitter();
10866
+ get direction() {
10867
+ return this._direction;
10814
10868
  }
10815
- drop(event) {
10816
- event.stopPropagation();
10817
- event.preventDefault();
10869
+ get icon() {
10870
+ return this.direction === "horizontal" ? 'moreHorizontal' : 'moreVertical';
10818
10871
  }
10819
- setDragItem(item) {
10820
- this._dragItem = item;
10872
+ set grabPosition(val) {
10873
+ this._grabPosition = val;
10821
10874
  }
10822
- getDragItem() {
10823
- return this._dragItem;
10875
+ get grabPosition() {
10876
+ if (this.direction === 'vertical') {
10877
+ if (['left', 'right'].includes(this._grabPosition)) {
10878
+ return this._grabPosition;
10879
+ }
10880
+ return 'left';
10881
+ }
10882
+ if (['top', 'bottom'].includes(this._grabPosition)) {
10883
+ return this._grabPosition;
10884
+ }
10885
+ return 'bottom';
10886
+ }
10887
+ resizeStart(event) {
10888
+ this.setStartPosition();
10889
+ if (this.direction === 'vertical') {
10890
+ this._startSize = this._elementRef.nativeElement.clientWidth;
10891
+ this._startPosition = event.clientX;
10892
+ }
10893
+ else {
10894
+ this._startSize = this._elementRef.nativeElement.clientHeight;
10895
+ this._startPosition = event.clientY;
10896
+ }
10897
+ }
10898
+ resizeProcess(event) {
10899
+ event.preventDefault();
10900
+ if (this.direction === 'vertical') {
10901
+ this.manageVertical(event);
10902
+ }
10903
+ else {
10904
+ this.manageHorizontal(event);
10905
+ }
10906
+ }
10907
+ resizeEnd(event) {
10908
+ window.dispatchEvent(new Event('resize'));
10909
+ }
10910
+ ngOnInit() {
10911
+ this.restorePosition();
10912
+ }
10913
+ ngOnDestroy() {
10914
+ }
10915
+ getClassName() {
10916
+ return this._positionMap.get(this.grabPosition) || '';
10917
+ }
10918
+ setStartPosition() {
10919
+ if (this.direction === 'vertical') {
10920
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${this._elementRef.nativeElement.offsetWidth}px`);
10921
+ }
10922
+ else {
10923
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${this._elementRef.nativeElement.offsetHeight}px`);
10924
+ }
10925
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
10926
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
10927
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
10928
+ }
10929
+ manageHorizontal(event) {
10930
+ let newSize = this.grabPosition === 'bottom'
10931
+ ? this._startSize + (event.clientY - this._startPosition)
10932
+ : this._startSize - (event.clientY - this._startPosition);
10933
+ if (this.maxSize && newSize > this.maxSize) {
10934
+ newSize = this.maxSize;
10935
+ }
10936
+ if (this.minSize && newSize < this.minSize) {
10937
+ newSize = this.minSize;
10938
+ }
10939
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${newSize}px`);
10940
+ this.save();
10941
+ }
10942
+ manageVertical(event) {
10943
+ let newSize = this.grabPosition === 'right'
10944
+ ? this._startSize + (event.clientX - this._startPosition)
10945
+ : this._startSize - (event.clientX - this._startPosition);
10946
+ if (this.maxSize && newSize > this.maxSize) {
10947
+ newSize = this.maxSize;
10948
+ }
10949
+ if (this.minSize && newSize < this.minSize) {
10950
+ newSize = this.minSize;
10951
+ }
10952
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${newSize}px`);
10953
+ this.save();
10954
+ }
10955
+ restore() {
10956
+ var _a;
10957
+ if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
10958
+ return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));
10959
+ }
10960
+ }
10961
+ restorePosition() {
10962
+ const savedSize = this.restore();
10963
+ if (savedSize) {
10964
+ if (this.direction === 'vertical') {
10965
+ this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${savedSize}px`);
10966
+ }
10967
+ else {
10968
+ this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${savedSize}px`);
10969
+ }
10970
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
10971
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
10972
+ this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
10973
+ }
10974
+ }
10975
+ save() {
10976
+ var _a;
10977
+ if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
10978
+ if (this.direction === 'vertical') {
10979
+ localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientWidth);
10980
+ }
10981
+ else {
10982
+ localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientHeight);
10983
+ }
10984
+ }
10985
+ }
10986
+ }
10987
+ 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 });
10988
+ 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 });
10989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
10990
+ type: Component,
10991
+ 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: [""] }]
10992
+ }], ctorParameters: function () {
10993
+ return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
10994
+ type: Inject,
10995
+ args: [DOCUMENT]
10996
+ }] }];
10997
+ }, propDecorators: { direction: [{
10998
+ type: Input
10999
+ }], grabPosition: [{
11000
+ type: Input
11001
+ }], name: [{
11002
+ type: Input
11003
+ }], minSize: [{
11004
+ type: Input
11005
+ }], maxSize: [{
11006
+ type: Input
11007
+ }], resizePanelClass: [{
11008
+ type: HostBinding,
11009
+ args: ['class.resize-panel']
11010
+ }] } });
11011
+
11012
+ class ResizePanelModule {
11013
+ }
11014
+ ResizePanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11015
+ ResizePanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, declarations: [ResizePanelComponent], imports: [CommonModule, IconModule, ResizeDragModule], exports: [ResizePanelComponent] });
11016
+ ResizePanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, imports: [[CommonModule, IconModule, ResizeDragModule]] });
11017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, decorators: [{
11018
+ type: NgModule,
11019
+ args: [{
11020
+ declarations: [ResizePanelComponent],
11021
+ exports: [ResizePanelComponent],
11022
+ imports: [CommonModule, IconModule, ResizeDragModule],
11023
+ }]
11024
+ }] });
11025
+
11026
+ /* accordion */
11027
+
11028
+ class DisableControlDirective {
11029
+ constructor(ngControl) {
11030
+ this.ngControl = ngControl;
11031
+ }
11032
+ set tetaDisableControl(val) {
11033
+ if (this.ngControl.control) {
11034
+ if (val) {
11035
+ this.ngControl.control.disable();
11036
+ }
11037
+ else {
11038
+ this.ngControl.control.enable();
11039
+ }
11040
+ }
11041
+ }
11042
+ }
11043
+ 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 });
11044
+ DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: { tetaDisableControl: "tetaDisableControl" }, ngImport: i0 });
11045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlDirective, decorators: [{
11046
+ type: Directive,
11047
+ args: [{
11048
+ selector: '[tetaDisableControl]'
11049
+ }]
11050
+ }], ctorParameters: function () { return [{ type: i3$1.NgControl }]; }, propDecorators: { tetaDisableControl: [{
11051
+ type: Input
11052
+ }] } });
11053
+
11054
+ class DisableControlModule {
11055
+ }
11056
+ DisableControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11057
+ DisableControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, declarations: [DisableControlDirective], imports: [CommonModule], exports: [DisableControlDirective] });
11058
+ DisableControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, imports: [[
11059
+ CommonModule
11060
+ ]] });
11061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DisableControlModule, decorators: [{
11062
+ type: NgModule,
11063
+ args: [{
11064
+ declarations: [DisableControlDirective],
11065
+ imports: [
11066
+ CommonModule
11067
+ ],
11068
+ exports: [
11069
+ DisableControlDirective
11070
+ ]
11071
+ }]
11072
+ }] });
11073
+
11074
+ class DragInstance {
11075
+ constructor(options) {
11076
+ this.container = options.container;
11077
+ this.data = options.data;
11078
+ }
11079
+ }
11080
+
11081
+ class DragPreviewDirective {
11082
+ constructor(templateRef) {
11083
+ this.templateRef = templateRef;
11084
+ }
11085
+ }
11086
+ DragPreviewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPreviewDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11087
+ DragPreviewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragPreviewDirective, selector: "[tetaDragPreview]", ngImport: i0 });
11088
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPreviewDirective, decorators: [{
11089
+ type: Directive,
11090
+ args: [{
11091
+ selector: '[tetaDragPreview]'
11092
+ }]
11093
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
11094
+
11095
+ class DragContainerInstance {
11096
+ constructor(options) {
11097
+ this.data = options.data;
11098
+ this.previewTemplate = options.previewTemplate;
11099
+ this.viewContainer = options.viewContainer;
11100
+ }
11101
+ }
11102
+
11103
+ class DragDropService {
11104
+ constructor(_document, _rendererFactory) {
11105
+ this._document = _document;
11106
+ this._rendererFactory = _rendererFactory;
11107
+ this.dropTarget$ = new BehaviorSubject(null);
11108
+ this._delta = 10;
11109
+ this.dropped$ = new Subject();
11110
+ this._renderer = this._rendererFactory.createRenderer(null, null);
11111
+ this.dropTarget = this.dropTarget$.asObservable();
11112
+ this.dropped = this.dropped$.asObservable();
11113
+ merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove')).pipe(filter(() => {
11114
+ return this.startPosition != null;
11115
+ })).subscribe((event) => {
11116
+ if (!this.dragProcess && this.getDelta(event) > this._delta) {
11117
+ this.startProcess();
11118
+ }
11119
+ if (this.dragProcess && this._preview) {
11120
+ this.movePreview(event);
11121
+ }
11122
+ });
11123
+ merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend')).pipe(withLatestFrom(this.dropTarget)).subscribe((data) => {
11124
+ const [event, target] = data;
11125
+ if (target) {
11126
+ this.dropped$.next({
11127
+ target,
11128
+ container: this.dragProcess.selection.container,
11129
+ data: [...this.dragProcess.selection.items]
11130
+ });
11131
+ this.cancelDrag();
11132
+ }
11133
+ this.stopProcess();
11134
+ });
11135
+ merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur'))
11136
+ .subscribe(() => {
11137
+ this.cancelDrag();
11138
+ });
11139
+ }
11140
+ setDropTarget(target) {
11141
+ if (this.dragProcess) {
11142
+ this.dropTarget$.next(target);
11143
+ }
11144
+ }
11145
+ setStartPosition(point) {
11146
+ this.startPosition = point;
11147
+ }
11148
+ setSelection(instance, container) {
11149
+ var _a, _b, _c;
11150
+ if (((_a = this.selection) === null || _a === void 0 ? void 0 : _a.container) === container && ((_c = (_b = this.selection) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.indexOf(instance)) >= 0) {
11151
+ return;
11152
+ }
11153
+ this.selection = {
11154
+ container,
11155
+ items: [instance]
11156
+ };
11157
+ }
11158
+ addSelection(instance, container) {
11159
+ if (!this.selection) {
11160
+ this.setSelection(instance, container);
11161
+ return;
11162
+ }
11163
+ if (this.selection && this.selection.container !== container) {
11164
+ return;
11165
+ }
11166
+ const index = this.selection.items.indexOf(instance);
11167
+ if (index < 0) {
11168
+ this.selection.items.push(instance);
11169
+ }
11170
+ else {
11171
+ this.selection.items.splice(index, 1);
11172
+ }
11173
+ }
11174
+ clearSelection() {
11175
+ this.selection = null;
11176
+ }
11177
+ cancelDrag() {
11178
+ this.setDropTarget(null);
11179
+ this.clearSelection();
11180
+ this.stopProcess();
11181
+ }
11182
+ startProcess() {
11183
+ this.dragProcess = {
11184
+ selection: this.selection
11185
+ };
11186
+ this._preview = this.createPreview();
11187
+ }
11188
+ stopProcess() {
11189
+ this.destroyPreview();
11190
+ this.dragProcess = null;
11191
+ this.startPosition = null;
11192
+ }
11193
+ getDelta(event) {
11194
+ return Math.max(Math.abs(this.startPosition.x - event.x), Math.abs(this.startPosition.y - event.y));
11195
+ }
11196
+ createPreview() {
11197
+ if (this.dragProcess.selection.container.previewTemplate) {
11198
+ this._previewRef = this.dragProcess.selection.container.viewContainer.createEmbeddedView(this.dragProcess.selection.container.previewTemplate, {
11199
+ $implicit: this.dragProcess.selection.items,
11200
+ data: this.dragProcess.selection.items
11201
+ });
11202
+ const preview = this._renderer.createElement('div');
11203
+ this._renderer.setStyle(preview, 'position', 'fixed');
11204
+ this._renderer.setStyle(preview, 'pointer-events', 'none');
11205
+ this._renderer.setStyle(preview, 'top', '0');
11206
+ this._renderer.setStyle(preview, 'left', '0');
11207
+ this._renderer.appendChild(preview, this._previewRef.rootNodes[0]);
11208
+ this._renderer.appendChild(document.body, preview);
11209
+ return preview;
11210
+ }
11211
+ return null;
11212
+ }
11213
+ movePreview(event) {
11214
+ if (this._preview) {
11215
+ this._renderer.setStyle(this._preview, 'transform', `translate(${event.x}px, ${event.y}px)`);
11216
+ }
11217
+ }
11218
+ destroyPreview() {
11219
+ var _a, _b, _c, _d, _e, _f;
11220
+ if (this._preview) {
11221
+ (_d = (_c = (_b = (_a = this.dragProcess) === null || _a === void 0 ? void 0 : _a.selection) === null || _b === void 0 ? void 0 : _b.container) === null || _c === void 0 ? void 0 : _c.viewContainer) === null || _d === void 0 ? void 0 : _d.clear();
11222
+ (_e = this._preview) === null || _e === void 0 ? void 0 : _e.remove();
11223
+ (_f = this._previewRef) === null || _f === void 0 ? void 0 : _f.destroy();
11224
+ this._preview = this._previewRef = null;
11225
+ }
11226
+ }
11227
+ }
11228
+ 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 });
11229
+ DragDropService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, providedIn: 'root' });
11230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropService, decorators: [{
11231
+ type: Injectable,
11232
+ args: [{
11233
+ providedIn: 'root'
11234
+ }]
11235
+ }], ctorParameters: function () {
11236
+ return [{ type: undefined, decorators: [{
11237
+ type: Inject,
11238
+ args: [DOCUMENT]
11239
+ }] }, { type: i0.RendererFactory2 }];
11240
+ } });
11241
+
11242
+ class DragContainerDirective {
11243
+ constructor(_dragService, _elementRef, _viewContainerRef, _zone, _cdr) {
11244
+ this._dragService = _dragService;
11245
+ this._elementRef = _elementRef;
11246
+ this._viewContainerRef = _viewContainerRef;
11247
+ this._zone = _zone;
11248
+ this._cdr = _cdr;
11249
+ this.multiple = false;
11250
+ this.allowDrop = true;
11251
+ this.tetaDrop = new EventEmitter();
11252
+ this.tetaDragEnter = new EventEmitter();
11253
+ this._alive = true;
11254
+ }
11255
+ get isDropTarget() {
11256
+ return this.dropTarget === this.instance;
11257
+ }
11258
+ mouseleave(event) {
11259
+ this._dragService.setDropTarget(null);
11260
+ }
11261
+ mouseover(event) {
11262
+ if (this.allowDrop) {
11263
+ this._dragService.setDropTarget(this.instance);
11264
+ }
11265
+ }
11266
+ escape(event) {
11267
+ this._dragService.cancelDrag();
11268
+ }
11269
+ ngOnInit() {
11270
+ var _a;
11271
+ this.instance = new DragContainerInstance({
11272
+ data: this.data,
11273
+ previewTemplate: (_a = this._previewTemplate) === null || _a === void 0 ? void 0 : _a.templateRef,
11274
+ viewContainer: this._viewContainerRef
11275
+ });
11276
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11277
+ .subscribe((target) => {
11278
+ this.dropTarget = target;
11279
+ this._cdr.detectChanges();
11280
+ });
11281
+ this._dragService.dropped.pipe(takeWhile(() => this._alive))
11282
+ .subscribe((event) => {
11283
+ this.tetaDrop.emit(event);
11284
+ });
11285
+ }
11286
+ ngOnDestroy() {
11287
+ this._alive = false;
11288
+ }
11289
+ }
11290
+ 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 });
11291
+ 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 });
11292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragContainerDirective, decorators: [{
11293
+ type: Directive,
11294
+ args: [{
11295
+ selector: '[tetaDragContainer]',
11296
+ exportAs: 'dragContainer',
11297
+ host: {
11298
+ '[class.teta-drag-container]': '"true"',
11299
+ '[class.teta-drop-target]': 'isDropTarget'
11300
+ }
11301
+ }]
11302
+ }], ctorParameters: function () { return [{ type: DragDropService }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
11303
+ type: Input,
11304
+ args: ['tetaDragContainer']
11305
+ }], multiple: [{
11306
+ type: Input
11307
+ }], allowDrop: [{
11308
+ type: Input
11309
+ }], tetaDrop: [{
11310
+ type: Output
11311
+ }], tetaDragEnter: [{
11312
+ type: Output
11313
+ }], _previewTemplate: [{
11314
+ type: ContentChild,
11315
+ args: [DragPreviewDirective, {
11316
+ static: true
11317
+ }]
11318
+ }], mouseleave: [{
11319
+ type: HostListener,
11320
+ args: ['mouseleave', ['$event']]
11321
+ }], mouseover: [{
11322
+ type: HostListener,
11323
+ args: ['mouseover', ['$event']]
11324
+ }], escape: [{
11325
+ type: HostListener,
11326
+ args: ['window:keydown.escape', ['$event']]
11327
+ }] } });
11328
+
11329
+ class DragDirective {
11330
+ constructor(_container, _dragService, _zone, _cdr) {
11331
+ this._container = _container;
11332
+ this._dragService = _dragService;
11333
+ this._zone = _zone;
11334
+ this._cdr = _cdr;
11335
+ this.allowDrag = true;
11336
+ this.allowDrop = true;
11337
+ this.tetaDragEnter = new EventEmitter();
11338
+ this.tetaDrop = new EventEmitter();
11339
+ this._alive = true;
11340
+ }
11341
+ get selection() {
11342
+ var _a, _b, _c;
11343
+ return ((_c = (_b = (_a = this._dragService) === null || _a === void 0 ? void 0 : _a.selection) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.indexOf(this.instance)) >= 0;
11344
+ }
11345
+ get isDropTarget() {
11346
+ return this.dropTarget === this.instance;
11347
+ }
11348
+ mousedown(event) {
11349
+ var _a;
11350
+ if (event.ctrlKey && ((_a = this._container) === null || _a === void 0 ? void 0 : _a.multiple)) {
11351
+ this._dragService.addSelection(this.instance, this._container.instance);
11352
+ }
11353
+ else {
11354
+ this._dragService.setSelection(this.instance, this._container.instance);
11355
+ }
11356
+ this._dragService.setStartPosition({
11357
+ x: event.x,
11358
+ y: event.y
11359
+ });
11360
+ }
11361
+ mouseenter(event) {
11362
+ if (this.allowDrop) {
11363
+ event.stopPropagation();
11364
+ this._dragService.setDropTarget(this.instance);
11365
+ }
11366
+ }
11367
+ mouseleave(event) {
11368
+ this._dragService.setDropTarget(null);
11369
+ }
11370
+ ngOnInit() {
11371
+ this.instance = new DragInstance({
11372
+ container: this._container.instance,
11373
+ data: this.data
11374
+ });
11375
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11376
+ .subscribe((target) => {
11377
+ this.dropTarget = target;
11378
+ if (target === this.instance) {
11379
+ this.tetaDragEnter.emit(this.instance);
11380
+ }
11381
+ this._cdr.detectChanges();
11382
+ this._cdr.markForCheck();
11383
+ });
11384
+ this._dragService.dropped.pipe(takeWhile(() => this._alive))
11385
+ .pipe(filter((event) => {
11386
+ return event.target === this.instance;
11387
+ }))
11388
+ .subscribe((event) => {
11389
+ this.tetaDrop.emit(event);
11390
+ });
11391
+ }
11392
+ ngOnDestroy() {
11393
+ this._alive = false;
11394
+ }
11395
+ }
11396
+ 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 });
11397
+ 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 });
11398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDirective, decorators: [{
11399
+ type: Directive,
11400
+ args: [{
11401
+ selector: '[tetaDrag]',
11402
+ exportAs: 'drag',
11403
+ host: {
11404
+ '[style.userSelect]': '"none"',
11405
+ '[class.teta-drag-item]': '"true"'
11406
+ }
11407
+ }]
11408
+ }], ctorParameters: function () {
11409
+ return [{ type: DragContainerDirective, decorators: [{
11410
+ type: Inject,
11411
+ args: [DragContainerDirective]
11412
+ }, {
11413
+ type: Optional
11414
+ }, {
11415
+ type: SkipSelf
11416
+ }] }, { type: DragDropService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }];
11417
+ }, propDecorators: { data: [{
11418
+ type: Input,
11419
+ args: ['tetaDrag']
11420
+ }], allowDrag: [{
11421
+ type: HostBinding,
11422
+ args: ['class.teta_draggable_item']
11423
+ }, {
11424
+ type: Input
11425
+ }], allowDrop: [{
11426
+ type: HostBinding,
11427
+ args: ['class.teta_droppable_item']
11428
+ }, {
11429
+ type: Input
11430
+ }], tetaDragEnter: [{
11431
+ type: Output
11432
+ }], tetaDrop: [{
11433
+ type: Output
11434
+ }], selection: [{
11435
+ type: HostBinding,
11436
+ args: ['class.teta-drag-selection']
11437
+ }], isDropTarget: [{
11438
+ type: HostBinding,
11439
+ args: ['class.teta-drop-target']
11440
+ }], mousedown: [{
11441
+ type: HostListener,
11442
+ args: ['mousedown', ['$event']]
11443
+ }, {
11444
+ type: HostListener,
11445
+ args: ['touchstart', ['$event']]
11446
+ }], mouseenter: [{
11447
+ type: HostListener,
11448
+ args: ['mouseenter', ['$event']]
11449
+ }], mouseleave: [{
11450
+ type: HostListener,
11451
+ args: ['mouseleave', ['$event']]
11452
+ }] } });
11453
+
11454
+ class DragPlaceholderDirective {
11455
+ constructor() { }
11456
+ }
11457
+ DragPlaceholderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPlaceholderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11458
+ DragPlaceholderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DragPlaceholderDirective, selector: "[tetaDragPlaceholder]", ngImport: i0 });
11459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragPlaceholderDirective, decorators: [{
11460
+ type: Directive,
11461
+ args: [{
11462
+ selector: '[tetaDragPlaceholder]'
11463
+ }]
11464
+ }], ctorParameters: function () { return []; } });
11465
+
11466
+ class DragDropModule {
11467
+ }
11468
+ DragDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11469
+ DragDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, declarations: [DragContainerDirective,
11470
+ DragDirective,
11471
+ DragPreviewDirective,
11472
+ DragPlaceholderDirective], imports: [CommonModule], exports: [DragContainerDirective,
11473
+ DragDirective,
11474
+ DragPreviewDirective,
11475
+ DragPlaceholderDirective] });
11476
+ DragDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, imports: [[
11477
+ CommonModule
11478
+ ]] });
11479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DragDropModule, decorators: [{
11480
+ type: NgModule,
11481
+ args: [{
11482
+ declarations: [
11483
+ DragContainerDirective,
11484
+ DragDirective,
11485
+ DragPreviewDirective,
11486
+ DragPlaceholderDirective
11487
+ ],
11488
+ exports: [
11489
+ DragContainerDirective,
11490
+ DragDirective,
11491
+ DragPreviewDirective,
11492
+ DragPlaceholderDirective
11493
+ ],
11494
+ imports: [
11495
+ CommonModule
11496
+ ]
11497
+ }]
11498
+ }] });
11499
+
11500
+ // import {DragSortItemDirective} from './drag-sort-item.directive';
11501
+ class DragSortContainerDirective {
11502
+ constructor() {
11503
+ this.dragSorted = new EventEmitter();
11504
+ }
11505
+ drop(event) {
11506
+ event.stopPropagation();
11507
+ event.preventDefault();
11508
+ }
11509
+ setDragItem(item) {
11510
+ this._dragItem = item;
11511
+ }
11512
+ getDragItem() {
11513
+ return this._dragItem;
10824
11514
  }
10825
11515
  getList() {
10826
11516
  return this.dragSortList;
@@ -11086,180 +11776,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
11086
11776
  }]
11087
11777
  }] });
11088
11778
 
11089
- class ResizePanelComponent {
11090
- constructor(_elementRef, _renderer, _document) {
11091
- this._elementRef = _elementRef;
11092
- this._renderer = _renderer;
11093
- this._document = _document;
11094
- this.resizePanelClass = true;
11095
- this._direction = 'horizontal';
11096
- this._grabPosition = 'left';
11097
- this._positionMap = new Map()
11098
- .set('left', 'resize-grab_left')
11099
- .set('right', 'resize-grab_right')
11100
- .set('top', 'resize-grab_top')
11101
- .set('bottom', 'resize-grab_bottom');
11102
- }
11103
- set direction(val) {
11104
- this._direction = val;
11105
- }
11106
- get direction() {
11107
- return this._direction;
11108
- }
11109
- set grabPosition(val) {
11110
- this._grabPosition = val;
11111
- }
11112
- get grabPosition() {
11113
- if (this.direction === 'vertical') {
11114
- if (['left', 'right'].includes(this._grabPosition)) {
11115
- return this._grabPosition;
11116
- }
11117
- return 'left';
11118
- }
11119
- if (['top', 'bottom'].includes(this._grabPosition)) {
11120
- return this._grabPosition;
11121
- }
11122
- return 'bottom';
11123
- }
11124
- resizeStart(event) {
11125
- this.setStartPosition();
11126
- if (this.direction === 'vertical') {
11127
- this._startSize = this._elementRef.nativeElement.clientWidth;
11128
- this._startPosition = event.clientX;
11129
- }
11130
- else {
11131
- this._startSize = this._elementRef.nativeElement.clientHeight;
11132
- this._startPosition = event.clientY;
11133
- }
11134
- }
11135
- resizeProcess(event) {
11136
- event.preventDefault();
11137
- if (this.direction === 'vertical') {
11138
- this.manageVertical(event);
11139
- }
11140
- else {
11141
- this.manageHorizontal(event);
11142
- }
11143
- }
11144
- resizeEnd(event) {
11145
- window.dispatchEvent(new Event('resize'));
11146
- }
11147
- ngOnInit() {
11148
- this.restorePosition();
11149
- }
11150
- ngOnDestroy() {
11151
- }
11152
- getClassName() {
11153
- return this._positionMap.get(this.grabPosition) || '';
11154
- }
11155
- setStartPosition() {
11156
- if (this.direction === 'vertical') {
11157
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${this._elementRef.nativeElement.offsetWidth}px`);
11158
- }
11159
- else {
11160
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${this._elementRef.nativeElement.offsetHeight}px`);
11161
- }
11162
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
11163
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
11164
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
11165
- }
11166
- manageHorizontal(event) {
11167
- let newSize = this.grabPosition === 'bottom'
11168
- ? this._startSize + (event.clientY - this._startPosition)
11169
- : this._startSize - (event.clientY - this._startPosition);
11170
- if (this.maxSize && newSize > this.maxSize) {
11171
- newSize = this.maxSize;
11172
- }
11173
- if (this.minSize && newSize < this.minSize) {
11174
- newSize = this.minSize;
11175
- }
11176
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${newSize}px`);
11177
- this.save();
11178
- }
11179
- manageVertical(event) {
11180
- let newSize = this.grabPosition === 'right'
11181
- ? this._startSize + (event.clientX - this._startPosition)
11182
- : this._startSize - (event.clientX - this._startPosition);
11183
- if (this.maxSize && newSize > this.maxSize) {
11184
- newSize = this.maxSize;
11185
- }
11186
- if (this.minSize && newSize < this.minSize) {
11187
- newSize = this.minSize;
11188
- }
11189
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${newSize}px`);
11190
- this.save();
11191
- }
11192
- restore() {
11193
- var _a;
11194
- if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
11195
- return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));
11196
- }
11197
- }
11198
- restorePosition() {
11199
- const savedSize = this.restore();
11200
- if (savedSize) {
11201
- if (this.direction === 'vertical') {
11202
- this._renderer.setStyle(this._elementRef.nativeElement, 'width', `${savedSize}px`);
11203
- }
11204
- else {
11205
- this._renderer.setStyle(this._elementRef.nativeElement, 'height', `${savedSize}px`);
11206
- }
11207
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);
11208
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);
11209
- this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);
11210
- }
11211
- }
11212
- save() {
11213
- var _a;
11214
- if (((_a = this.name) === null || _a === void 0 ? void 0 : _a.length) > 0) {
11215
- if (this.direction === 'vertical') {
11216
- localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientWidth);
11217
- }
11218
- else {
11219
- localStorage.setItem(`resize-panel${this.name}`, this._elementRef.nativeElement.clientHeight);
11220
- }
11221
- }
11222
- }
11223
- }
11224
- 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 });
11225
- 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 });
11226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
11227
- type: Component,
11228
- 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: [""] }]
11229
- }], ctorParameters: function () {
11230
- return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
11231
- type: Inject,
11232
- args: [DOCUMENT]
11233
- }] }];
11234
- }, propDecorators: { direction: [{
11235
- type: Input
11236
- }], grabPosition: [{
11237
- type: Input
11238
- }], name: [{
11239
- type: Input
11240
- }], minSize: [{
11241
- type: Input
11242
- }], maxSize: [{
11243
- type: Input
11244
- }], resizePanelClass: [{
11245
- type: HostBinding,
11246
- args: ['class.resize-panel']
11247
- }] } });
11248
-
11249
- class ResizePanelModule {
11250
- }
11251
- ResizePanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11252
- ResizePanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, declarations: [ResizePanelComponent], imports: [CommonModule, IconModule, ResizeDragModule], exports: [ResizePanelComponent] });
11253
- ResizePanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, imports: [[CommonModule, IconModule, ResizeDragModule]] });
11254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ResizePanelModule, decorators: [{
11255
- type: NgModule,
11256
- args: [{
11257
- declarations: [ResizePanelComponent],
11258
- exports: [ResizePanelComponent],
11259
- imports: [CommonModule, IconModule, ResizeDragModule],
11260
- }]
11261
- }] });
11262
-
11263
11779
  class TooltipDirective extends DynamicContentBaseDirective {
11264
11780
  constructor(_document, _elementRef, _service, _injector, _zone, _cdr, _click) {
11265
11781
  super(_document, _elementRef, _service, _injector, _zone, _cdr);
@@ -11382,6 +11898,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
11382
11898
  }]
11383
11899
  }] });
11384
11900
 
11901
+ class LetDirective {
11902
+ constructor(viewContainer, templateRef) {
11903
+ viewContainer.createEmbeddedView(templateRef, new LetContext(this));
11904
+ }
11905
+ static ngTemplateContextGuard(_dir, _ctx) {
11906
+ return true;
11907
+ }
11908
+ }
11909
+ 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 });
11910
+ LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: LetDirective, selector: "[tetaLet]", inputs: { tetaLet: "tetaLet" }, ngImport: i0 });
11911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetDirective, decorators: [{
11912
+ type: Directive,
11913
+ args: [{
11914
+ selector: '[tetaLet]'
11915
+ }]
11916
+ }], ctorParameters: function () {
11917
+ return [{ type: i0.ViewContainerRef, decorators: [{
11918
+ type: Inject,
11919
+ args: [ViewContainerRef]
11920
+ }] }, { type: i0.TemplateRef, decorators: [{
11921
+ type: Inject,
11922
+ args: [TemplateRef]
11923
+ }] }];
11924
+ }, propDecorators: { tetaLet: [{
11925
+ type: Input
11926
+ }] } });
11927
+ class LetContext {
11928
+ constructor(internalDirectiveInstance) {
11929
+ this.internalDirectiveInstance = internalDirectiveInstance;
11930
+ }
11931
+ get $implicit() {
11932
+ return this.internalDirectiveInstance.tetaLet;
11933
+ }
11934
+ get tetaLet() {
11935
+ return this.internalDirectiveInstance.tetaLet;
11936
+ }
11937
+ }
11938
+
11939
+ class LetModule {
11940
+ }
11941
+ LetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11942
+ LetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, declarations: [LetDirective], imports: [CommonModule], exports: [LetDirective] });
11943
+ LetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, imports: [[
11944
+ CommonModule
11945
+ ]] });
11946
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, decorators: [{
11947
+ type: NgModule,
11948
+ args: [{
11949
+ declarations: [
11950
+ LetDirective
11951
+ ], exports: [
11952
+ LetDirective
11953
+ ],
11954
+ imports: [
11955
+ CommonModule
11956
+ ]
11957
+ }]
11958
+ }] });
11959
+
11960
+ class ScrollIntoViewDirective {
11961
+ constructor(platformId, elementRef) {
11962
+ this.platformId = platformId;
11963
+ this.elementRef = elementRef;
11964
+ this.behavior = 'smooth';
11965
+ this.block = 'end';
11966
+ }
11967
+ ngOnChanges(simpleChange) {
11968
+ if (isPlatformBrowser(this.platformId)) {
11969
+ if (coerceBooleanProperty(this.tetaScrollIntoView)) {
11970
+ this.elementRef.nativeElement.scrollIntoView({
11971
+ behavior: 'smooth',
11972
+ block: 'end'
11973
+ });
11974
+ }
11975
+ }
11976
+ }
11977
+ }
11978
+ ScrollIntoViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11979
+ ScrollIntoViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: ScrollIntoViewDirective, selector: "[tetaScrollIntoView]", inputs: { tetaScrollIntoView: "tetaScrollIntoView", behavior: "behavior", block: "block" }, usesOnChanges: true, ngImport: i0 });
11980
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
11981
+ type: Directive,
11982
+ args: [{
11983
+ selector: '[tetaScrollIntoView]'
11984
+ }]
11985
+ }], ctorParameters: function () {
11986
+ return [{ type: undefined, decorators: [{
11987
+ type: Inject,
11988
+ args: [PLATFORM_ID]
11989
+ }] }, { type: i0.ElementRef }];
11990
+ }, propDecorators: { tetaScrollIntoView: [{
11991
+ type: Input
11992
+ }], behavior: [{
11993
+ type: Input
11994
+ }], block: [{
11995
+ type: Input
11996
+ }] } });
11997
+
11998
+ class ScrollIntoViewModule {
11999
+ }
12000
+ ScrollIntoViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12001
+ ScrollIntoViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, declarations: [ScrollIntoViewDirective], imports: [CommonModule], exports: [ScrollIntoViewDirective] });
12002
+ ScrollIntoViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, imports: [[
12003
+ CommonModule
12004
+ ]] });
12005
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, decorators: [{
12006
+ type: NgModule,
12007
+ args: [{
12008
+ declarations: [
12009
+ ScrollIntoViewDirective
12010
+ ], exports: [
12011
+ ScrollIntoViewDirective
12012
+ ],
12013
+ imports: [
12014
+ CommonModule
12015
+ ]
12016
+ }]
12017
+ }] });
12018
+
11385
12019
  class OverlayContainerService {
11386
12020
  constructor(document$) {
11387
12021
  this.document$ = document$;
@@ -11479,6 +12113,20 @@ const ruLocale = {
11479
12113
  ]
11480
12114
  };
11481
12115
 
12116
+ function tetaZoneFull(ngZone) {
12117
+ return source => new Observable(subscriber => source.subscribe({
12118
+ next: value => ngZone.run(() => subscriber.next(value)),
12119
+ error: (error) => ngZone.run(() => subscriber.error(error)),
12120
+ complete: () => ngZone.run(() => subscriber.complete()),
12121
+ }));
12122
+ }
12123
+ function tetaZoneFree(ngZone) {
12124
+ return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
12125
+ }
12126
+ function tetaZoneOptimized(ngZone) {
12127
+ return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
12128
+ }
12129
+
11482
12130
  /**
11483
12131
  * Components
11484
12132
  */
@@ -11487,5 +12135,5 @@ const ruLocale = {
11487
12135
  * Generated bundle index. Do not edit.
11488
12136
  */
11489
12137
 
11490
- 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 };
12138
+ 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, ScrollIntoViewDirective, ScrollIntoViewModule, 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 };
11491
12139
  //# sourceMappingURL=tetacom-ng-components.mjs.map