@tetacom/ng-components 1.0.142 → 1.0.143

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 (38) hide show
  1. package/component/autocomplete/autocomplete/autocomplete.component.d.ts +8 -0
  2. package/component/autocomplete/autocomplete.module.d.ts +8 -0
  3. package/component/autocomplete/public-api.d.ts +2 -0
  4. package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +5 -4
  5. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +13 -10
  6. package/component/property-grid/property-grid/property-grid-item-description.directive.d.ts +9 -0
  7. package/component/property-grid/property-grid/property-grid.component.d.ts +12 -7
  8. package/component/property-grid/property-grid.module.d.ts +15 -18
  9. package/component/property-grid/public-api.d.ts +1 -0
  10. package/component/public-api.d.ts +1 -0
  11. package/esm2020/common/util/position-util.mjs +4 -4
  12. package/esm2020/component/autocomplete/autocomplete/autocomplete.component.mjs +14 -0
  13. package/esm2020/component/autocomplete/autocomplete.module.mjs +24 -0
  14. package/esm2020/component/autocomplete/public-api.mjs +3 -0
  15. package/esm2020/component/input/input/input.component.mjs +3 -3
  16. package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +8 -7
  17. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +55 -29
  18. package/esm2020/component/property-grid/property-grid/property-grid-item-description.directive.mjs +19 -0
  19. package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +31 -10
  20. package/esm2020/component/property-grid/property-grid.module.mjs +7 -16
  21. package/esm2020/component/property-grid/public-api.mjs +2 -1
  22. package/esm2020/component/public-api.mjs +3 -1
  23. package/esm2020/component/table/table/table.component.mjs +5 -2
  24. package/esm2020/util/forms-util.mjs +24 -9
  25. package/fesm2015/tetacom-ng-components.mjs +167 -103
  26. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  27. package/fesm2020/tetacom-ng-components.mjs +164 -103
  28. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/util/forms-util.d.ts +5 -1
  31. package/component/property-grid/default/date-item-default/date-item-default.component.d.ts +0 -8
  32. package/component/property-grid/default/list-item-default/list-item-default.component.d.ts +0 -8
  33. package/component/property-grid/default/numeric-item-default/numeric-item-default.component.d.ts +0 -8
  34. package/component/property-grid/default/string-item-default/string-item-default.component.d.ts +0 -8
  35. package/esm2020/component/property-grid/default/date-item-default/date-item-default.component.mjs +0 -13
  36. package/esm2020/component/property-grid/default/list-item-default/list-item-default.component.mjs +0 -13
  37. package/esm2020/component/property-grid/default/numeric-item-default/numeric-item-default.component.mjs +0 -13
  38. package/esm2020/component/property-grid/default/string-item-default/string-item-default.component.mjs +0 -13
@@ -6,7 +6,7 @@ import * as i1 from '@angular/common/http';
6
6
  import { HttpClient, HttpClientModule } from '@angular/common/http';
7
7
  import { map, takeWhile, throttleTime, withLatestFrom, tap, bufferCount, filter } from 'rxjs/operators';
8
8
  import * as i3 from '@angular/forms';
9
- import { NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, UntypedFormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
9
+ import { NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, UntypedFormGroup, Validators, ControlContainer, NgForm, NgModelGroup, FormGroup, ReactiveFormsModule } from '@angular/forms';
10
10
  import { BehaviorSubject, fromEvent, Subject, ReplaySubject, combineLatest, merge, Observable, pipe } from 'rxjs';
11
11
  import { trigger, transition, style, animate } from '@angular/animations';
12
12
  import * as i1$1 from '@ngneat/transloco';
@@ -329,6 +329,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
329
329
  }]
330
330
  }] });
331
331
 
332
+ class AutocompleteComponent {
333
+ constructor() { }
334
+ ngOnInit() {
335
+ }
336
+ }
337
+ AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
338
+ AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AutocompleteComponent, selector: "teta-autocomplete", ngImport: i0, template: "<p>autocomplete works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AutocompleteComponent, decorators: [{
340
+ type: Component,
341
+ args: [{ selector: 'teta-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>autocomplete works!</p>\n" }]
342
+ }], ctorParameters: function () { return []; } });
343
+
344
+ class AutocompleteModule {
345
+ }
346
+ AutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
347
+ AutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AutocompleteModule, declarations: [AutocompleteComponent], imports: [CommonModule], exports: [AutocompleteComponent] });
348
+ AutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AutocompleteModule, imports: [CommonModule] });
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AutocompleteModule, decorators: [{
350
+ type: NgModule,
351
+ args: [{
352
+ declarations: [
353
+ AutocompleteComponent
354
+ ],
355
+ exports: [
356
+ AutocompleteComponent
357
+ ],
358
+ imports: [
359
+ CommonModule
360
+ ]
361
+ }]
362
+ }] });
363
+
332
364
  class ButtonComponent {
333
365
  constructor() {
334
366
  this.view = 'primary';
@@ -1167,12 +1199,12 @@ class PositionUtil {
1167
1199
  (containerPosition.top + containerPosition.bottom) / 2 -
1168
1200
  elementHeight / 2;
1169
1201
  }
1170
- if (rect.left < 0) {
1171
- rect.left = 0;
1172
- }
1173
1202
  if (rect.left + elementWidth > window.innerWidth) {
1174
1203
  rect.left = window.innerWidth - elementWidth;
1175
1204
  }
1205
+ if (rect.left < 0) {
1206
+ rect.left = 0;
1207
+ }
1176
1208
  if (rect.top + elementHeight > window.innerHeight || rect.bottom < 0) {
1177
1209
  rect.bottom = 0;
1178
1210
  }
@@ -3991,10 +4023,10 @@ class InputComponent {
3991
4023
  ngOnInit() { }
3992
4024
  }
3993
4025
  InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3994
- InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: InputComponent, selector: "teta-input", inputs: { label: "label", hint: "hint", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "<div class=\"font-caption color-text-90 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n *ngIf=\"label?.length > 0\">\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"true\">\n {{label}}\n </span>\n</div>\n<div class=\"input-container\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4026
+ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: InputComponent, selector: "teta-input", inputs: { label: "label", hint: "hint", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "<div class=\"font-caption color-text-90 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n *ngIf=\"label?.length > 0\">\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\">\n {{label}}\n </span>\n</div>\n<div class=\"input-container\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3995
4027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: InputComponent, decorators: [{
3996
4028
  type: Component,
3997
- args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"font-caption color-text-90 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n *ngIf=\"label?.length > 0\">\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"true\">\n {{label}}\n </span>\n</div>\n<div class=\"input-container\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
4029
+ args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"font-caption color-text-90 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n *ngIf=\"label?.length > 0\">\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\">\n {{label}}\n </span>\n</div>\n<div class=\"input-container\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
3998
4030
  }], ctorParameters: function () { return []; }, propDecorators: { label: [{
3999
4031
  type: Input
4000
4032
  }], hint: [{
@@ -6597,6 +6629,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
6597
6629
  }]
6598
6630
  }] });
6599
6631
 
6632
+ class PropertyGridItemDescriptionDirective {
6633
+ constructor(template) {
6634
+ this.template = template;
6635
+ }
6636
+ }
6637
+ PropertyGridItemDescriptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemDescriptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
6638
+ PropertyGridItemDescriptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemDescriptionDirective, selector: "[tetaPropertyGridItemDescription]", inputs: { name: ["tetaPropertyGridItemDescription", "name"] }, ngImport: i0 });
6639
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemDescriptionDirective, decorators: [{
6640
+ type: Directive,
6641
+ args: [{
6642
+ selector: '[tetaPropertyGridItemDescription]'
6643
+ }]
6644
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
6645
+ type: Input,
6646
+ args: ['tetaPropertyGridItemDescription']
6647
+ }] } });
6648
+
6600
6649
  class FormsUtil {
6601
6650
  static validateAllFormFields(formGroup) {
6602
6651
  formGroup.updateValueAndValidity();
@@ -6642,17 +6691,20 @@ class FormsUtil {
6642
6691
  const form = new UntypedFormGroup({});
6643
6692
  const flat = ArrayUtil.flatten(columns, 'columns');
6644
6693
  flat.forEach((column) => {
6645
- const control = new UntypedFormControl({
6646
- value: dataItem ? dataItem[column.name] : undefined,
6647
- disabled: !column.editable,
6648
- }, {
6649
- validators: FormsUtil.getValidators(column),
6650
- updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change'
6651
- });
6694
+ const control = FormsUtil.initControlFromColumn(column, dataItem);
6652
6695
  form.registerControl(column.name, control);
6653
6696
  });
6654
6697
  return form;
6655
6698
  }
6699
+ static initControlFromColumn(column, dataItem) {
6700
+ return new UntypedFormControl({
6701
+ value: dataItem ? dataItem[column.name] : undefined,
6702
+ disabled: !column.editable,
6703
+ }, {
6704
+ validators: FormsUtil.getValidators(column),
6705
+ updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change'
6706
+ });
6707
+ }
6656
6708
  static getValidators(column) {
6657
6709
  const validators = [];
6658
6710
  if (column.required) {
@@ -6674,7 +6726,18 @@ class FormsUtil {
6674
6726
  }
6675
6727
  return null;
6676
6728
  }
6729
+ static formFactory(ngForm, ngModelGroup) {
6730
+ return ngModelGroup || ngForm || null;
6731
+ }
6677
6732
  }
6733
+ FormsUtil.formProvider = {
6734
+ provide: ControlContainer,
6735
+ useFactory: FormsUtil.formFactory,
6736
+ deps: [
6737
+ [new Optional(), NgForm],
6738
+ [new Optional(), NgModelGroup],
6739
+ ],
6740
+ };
6678
6741
 
6679
6742
  const TOGGLE_CONTROL_VALUE_ACCESSOR = {
6680
6743
  provide: NG_VALUE_ACCESSOR,
@@ -6752,26 +6815,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
6752
6815
  }] } });
6753
6816
 
6754
6817
  class PropertyGridItemComponent {
6755
- constructor(_transloco) {
6818
+ constructor(_transloco, _formGroup) {
6756
6819
  this._transloco = _transloco;
6820
+ this._formGroup = _formGroup;
6757
6821
  this.controlValueChange = new EventEmitter();
6758
6822
  this.align = Align;
6759
6823
  this.filterTypeEnum = FilterType;
6760
6824
  this._alive = true;
6761
6825
  }
6762
- set formGroup(form) {
6763
- var _a, _b, _c;
6764
- this._formGroup = form;
6765
- (_a = this._formSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
6766
- this._formSub = (_c = (_b = this._formGroup) === null || _b === void 0 ? void 0 : _b.controls[this.column.name]) === null || _c === void 0 ? void 0 : _c.valueChanges.pipe(takeWhile(() => this._alive)).subscribe((_) => {
6767
- this.controlValueChange.emit({
6768
- id: _,
6769
- name: this.column.name,
6770
- });
6771
- });
6826
+ // @Input()
6827
+ // set formGroup(form: UntypedFormGroup) {
6828
+ // this._formGroup = form;
6829
+ // this._formSub?.unsubscribe();
6830
+ // this._formSub = this._formGroup?.controls[this.column.name]?.valueChanges
6831
+ // .pipe(
6832
+ // takeWhile(() => this._alive)
6833
+ // )
6834
+ // .subscribe((_) => {
6835
+ // this.controlValueChange.emit({
6836
+ // id: _,
6837
+ // name: this.column.name,
6838
+ // });
6839
+ // });
6840
+ // }
6841
+ get template() {
6842
+ return this.itemTemplates.find((item) => item.name === this.column.name);
6772
6843
  }
6773
6844
  get formGroup() {
6774
- return this._formGroup;
6845
+ if (this._formGroup instanceof FormGroup) {
6846
+ return this._formGroup;
6847
+ }
6848
+ if (this._formGroup instanceof NgForm) {
6849
+ return this._formGroup.form;
6850
+ }
6851
+ return null;
6775
6852
  }
6776
6853
  get caption() {
6777
6854
  if (this.column.filterType === FilterType.boolean) {
@@ -6811,13 +6888,6 @@ class PropertyGridItemComponent {
6811
6888
  });
6812
6889
  }
6813
6890
  }
6814
- valueChange() {
6815
- var _a, _b;
6816
- this.controlValueChange.emit({
6817
- id: (_b = (_a = this.formGroup) === null || _a === void 0 ? void 0 : _a.controls[this.column.name]) === null || _b === void 0 ? void 0 : _b.value,
6818
- name: this.column.name,
6819
- });
6820
- }
6821
6891
  ngOnInit() {
6822
6892
  }
6823
6893
  ngOnDestroy() {
@@ -6825,13 +6895,30 @@ class PropertyGridItemComponent {
6825
6895
  this._alive = false;
6826
6896
  (_a = this._formSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
6827
6897
  }
6898
+ ngOnChanges(changes) {
6899
+ var _a, _b, _c;
6900
+ if (this.column && this.item) {
6901
+ this.formGroup.registerControl(this.column.name, FormsUtil.initControlFromColumn(this.column, this.item));
6902
+ (_a = this._formSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
6903
+ this._formSub = (_c = (_b = this.formGroup) === null || _b === void 0 ? void 0 : _b.controls[this.column.name]) === null || _c === void 0 ? void 0 : _c.valueChanges.pipe(takeWhile(() => this._alive)).subscribe((_) => {
6904
+ this.controlValueChange.emit({
6905
+ id: _,
6906
+ name: this.column.name,
6907
+ });
6908
+ });
6909
+ }
6910
+ }
6828
6911
  }
6829
- PropertyGridItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component });
6830
- PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "horizontal", "required"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
6912
+ PropertyGridItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$1.TranslocoService }, { token: i3.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
6913
+ PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container *ngIf=\"template; else default\">\n <ng-container *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n </ng-container>\n <ng-template #default>\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n </ng-template>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "horizontal", "required"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [FormsUtil.formProvider] });
6831
6914
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
6832
6915
  type: Component,
6833
- args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
6834
- }], ctorParameters: function () { return [{ type: i1$1.TranslocoService }]; }, propDecorators: { column: [{
6916
+ args: [{ selector: 'teta-property-grid-item', viewProviders: [FormsUtil.formProvider], template: "<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container *ngIf=\"template; else default\">\n <ng-container *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n </ng-container>\n <ng-template #default>\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n </ng-template>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
6917
+ }], ctorParameters: function () {
6918
+ return [{ type: i1$1.TranslocoService }, { type: i3.ControlContainer, decorators: [{
6919
+ type: Optional
6920
+ }] }];
6921
+ }, propDecorators: { column: [{
6835
6922
  type: Input
6836
6923
  }], hideNonEditable: [{
6837
6924
  type: Input
@@ -6839,7 +6926,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
6839
6926
  type: Input
6840
6927
  }], decimalPart: [{
6841
6928
  type: Input
6842
- }], formGroup: [{
6929
+ }], item: [{
6930
+ type: Input
6931
+ }], itemTemplates: [{
6843
6932
  type: Input
6844
6933
  }], horizontal: [{
6845
6934
  type: Input
@@ -6858,17 +6947,17 @@ class PropertyGridGroupComponent {
6858
6947
  }
6859
6948
  }
6860
6949
  PropertyGridGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6861
- PropertyGridGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n [formGroup]=\"formGroup\"></teta-property-grid-item>\n </ng-container>\n <ng-container *ngIf=\"col.columns?.length > 0\">\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [formGroup]=\"formGroup\"></teta-property-grid-group>\n </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "formGroup", "horizontal", "decimalPart"], outputs: ["controlValueChange"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "formGroup", "horizontal"], outputs: ["controlValueChange"] }] });
6950
+ PropertyGridGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart", itemTemplates: "itemTemplates" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"></teta-property-grid-item>\n </ng-container>\n <ng-container *ngIf=\"col.columns?.length > 0\">\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"></teta-property-grid-group>\n </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }] });
6862
6951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
6863
6952
  type: Component,
6864
- args: [{ selector: 'teta-property-grid-group', template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n [formGroup]=\"formGroup\"></teta-property-grid-item>\n </ng-container>\n <ng-container *ngIf=\"col.columns?.length > 0\">\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [formGroup]=\"formGroup\"></teta-property-grid-group>\n </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
6953
+ args: [{ selector: 'teta-property-grid-group', template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"></teta-property-grid-item>\n </ng-container>\n <ng-container *ngIf=\"col.columns?.length > 0\">\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"></teta-property-grid-group>\n </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
6865
6954
  }], ctorParameters: function () { return []; }, propDecorators: { column: [{
6866
6955
  type: Input
6867
6956
  }], hideNonEditable: [{
6868
6957
  type: Input
6869
6958
  }], dict: [{
6870
6959
  type: Input
6871
- }], formGroup: [{
6960
+ }], item: [{
6872
6961
  type: Input
6873
6962
  }], horizontal: [{
6874
6963
  type: Input
@@ -6876,13 +6965,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
6876
6965
  type: Output
6877
6966
  }], decimalPart: [{
6878
6967
  type: Input
6968
+ }], itemTemplates: [{
6969
+ type: Input
6879
6970
  }] } });
6880
6971
 
6881
6972
  class PropertyGridComponent {
6882
- constructor() {
6973
+ constructor(_formGroup) {
6974
+ this._formGroup = _formGroup;
6883
6975
  this.formClass = true;
6884
6976
  this.controlValueChange = new EventEmitter();
6885
6977
  this._alive = true;
6978
+ // console.log(this.formGroup)
6979
+ }
6980
+ get formGroup() {
6981
+ if (this._formGroup instanceof FormGroup) {
6982
+ return this._formGroup;
6983
+ }
6984
+ if (this._formGroup instanceof NgForm) {
6985
+ return this._formGroup.form;
6986
+ }
6987
+ return null;
6886
6988
  }
6887
6989
  onControlValueChange(event) {
6888
6990
  const affected = this.columns.filter((_) => _.parentName === event.name);
@@ -6913,22 +7015,31 @@ class PropertyGridComponent {
6913
7015
  var _a;
6914
7016
  return (_a = this.dict[name]) === null || _a === void 0 ? void 0 : _a.find((_) => _.id === value);
6915
7017
  }
7018
+ ngAfterViewInit() {
7019
+ }
6916
7020
  }
6917
- PropertyGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6918
- PropertyGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridComponent, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", formGroup: "formGroup", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, ngImport: i0, template: "<ng-container *ngIf=\"columns?.length\">\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumns\">\n <teta-property-grid-item *ngIf=\"column.columns?.length < 1 && (column.editable || !hideNonEditable)\"\n [dict]=\"dict\"\n [column]=\"column\"\n [id]=\"column.name\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-item>\n <teta-property-grid-group *ngIf=\"column.columns?.length > 0 && (column.editable || !hideNonEditable)\"\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-group>\n </ng-container>\n</ng-container>\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "formGroup", "horizontal", "decimalPart"], outputs: ["controlValueChange"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "formGroup", "horizontal"], outputs: ["controlValueChange"] }] });
7021
+ PropertyGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i3.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7022
+ PropertyGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridComponent, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "<ng-container *ngIf=\"columns?.length\">\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumns\">\n <teta-property-grid-item *ngIf=\"column.columns?.length < 1 && (column.editable || !hideNonEditable)\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-item>\n <teta-property-grid-group *ngIf=\"column.columns?.length > 0 && (column.editable || !hideNonEditable)\"\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-group>\n </ng-container>\n</ng-container>\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] });
6919
7023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridComponent, decorators: [{
6920
7024
  type: Component,
6921
- args: [{ selector: 'teta-property-grid', template: "<ng-container *ngIf=\"columns?.length\">\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumns\">\n <teta-property-grid-item *ngIf=\"column.columns?.length < 1 && (column.editable || !hideNonEditable)\"\n [dict]=\"dict\"\n [column]=\"column\"\n [id]=\"column.name\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-item>\n <teta-property-grid-group *ngIf=\"column.columns?.length > 0 && (column.editable || !hideNonEditable)\"\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-group>\n </ng-container>\n</ng-container>\n", styles: [":host{padding:12px 8px}\n"] }]
6922
- }], ctorParameters: function () { return []; }, propDecorators: { formClass: [{
7025
+ args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], template: "<ng-container *ngIf=\"columns?.length\">\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumns\">\n <teta-property-grid-item *ngIf=\"column.columns?.length < 1 && (column.editable || !hideNonEditable)\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-item>\n <teta-property-grid-group *ngIf=\"column.columns?.length > 0 && (column.editable || !hideNonEditable)\"\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-group>\n </ng-container>\n</ng-container>\n", styles: [":host{padding:12px 8px}\n"] }]
7026
+ }], ctorParameters: function () {
7027
+ return [{ type: i3.ControlContainer, decorators: [{
7028
+ type: Optional
7029
+ }] }];
7030
+ }, propDecorators: { formClass: [{
6923
7031
  type: HostBinding,
6924
7032
  args: ['class.form-container']
7033
+ }], itemTemplates: [{
7034
+ type: ContentChildren,
7035
+ args: [PropertyGridItemDescriptionDirective]
6925
7036
  }], hideNonEditable: [{
6926
7037
  type: Input
6927
7038
  }], columns: [{
6928
7039
  type: Input
6929
7040
  }], dict: [{
6930
7041
  type: Input
6931
- }], formGroup: [{
7042
+ }], item: [{
6932
7043
  type: Input
6933
7044
  }], horizontal: [{
6934
7045
  type: Input
@@ -6938,50 +7049,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
6938
7049
  type: Output
6939
7050
  }] } });
6940
7051
 
6941
- class NumericItemDefaultComponent {
6942
- constructor() { }
6943
- ngOnInit() { }
6944
- }
6945
- NumericItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: NumericItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6946
- NumericItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: NumericItemDefaultComponent, selector: "teta-numeric-item-default", ngImport: i0, template: "<p>numeric-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6947
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: NumericItemDefaultComponent, decorators: [{
6948
- type: Component,
6949
- args: [{ selector: 'teta-numeric-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>numeric-item-default works!</p>\n" }]
6950
- }], ctorParameters: function () { return []; } });
6951
-
6952
- class DateItemDefaultComponent {
6953
- constructor() { }
6954
- ngOnInit() { }
6955
- }
6956
- DateItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6957
- DateItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DateItemDefaultComponent, selector: "teta-date-item-default", ngImport: i0, template: "<p>date-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6958
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateItemDefaultComponent, decorators: [{
6959
- type: Component,
6960
- args: [{ selector: 'teta-date-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>date-item-default works!</p>\n" }]
6961
- }], ctorParameters: function () { return []; } });
6962
-
6963
- class ListItemDefaultComponent {
6964
- constructor() { }
6965
- ngOnInit() { }
6966
- }
6967
- ListItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6968
- ListItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ListItemDefaultComponent, selector: "teta-list-item-default", ngImport: i0, template: "<p>list-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListItemDefaultComponent, decorators: [{
6970
- type: Component,
6971
- args: [{ selector: 'teta-list-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>list-item-default works!</p>\n" }]
6972
- }], ctorParameters: function () { return []; } });
6973
-
6974
- class StringItemDefaultComponent {
6975
- constructor() { }
6976
- ngOnInit() { }
6977
- }
6978
- StringItemDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: StringItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6979
- StringItemDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: StringItemDefaultComponent, selector: "teta-string-item-default", ngImport: i0, template: "<p>string-item-default works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6980
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: StringItemDefaultComponent, decorators: [{
6981
- type: Component,
6982
- args: [{ selector: 'teta-string-item-default', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>string-item-default works!</p>\n" }]
6983
- }], ctorParameters: function () { return []; } });
6984
-
6985
7052
  class ToggleModule {
6986
7053
  }
6987
7054
  ToggleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -7000,12 +7067,9 @@ class PropertyGridModule {
7000
7067
  }
7001
7068
  PropertyGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7002
7069
  PropertyGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridModule, declarations: [PropertyGridComponent,
7003
- NumericItemDefaultComponent,
7004
- DateItemDefaultComponent,
7005
- ListItemDefaultComponent,
7006
- StringItemDefaultComponent,
7007
7070
  PropertyGridGroupComponent,
7008
- PropertyGridItemComponent], imports: [CommonModule,
7071
+ PropertyGridItemComponent,
7072
+ PropertyGridItemDescriptionDirective], imports: [CommonModule,
7009
7073
  FormsModule,
7010
7074
  NumberPipeModule,
7011
7075
  DatePickerModule,
@@ -7016,7 +7080,7 @@ PropertyGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
7016
7080
  ReactiveFormsModule,
7017
7081
  TranslocoModule,
7018
7082
  HintModule,
7019
- ExpandCardModule], exports: [PropertyGridComponent] });
7083
+ ExpandCardModule], exports: [PropertyGridComponent, PropertyGridItemDescriptionDirective] });
7020
7084
  PropertyGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridModule, providers: [
7021
7085
  {
7022
7086
  provide: TRANSLOCO_SCOPE,
@@ -7040,14 +7104,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
7040
7104
  args: [{
7041
7105
  declarations: [
7042
7106
  PropertyGridComponent,
7043
- NumericItemDefaultComponent,
7044
- DateItemDefaultComponent,
7045
- ListItemDefaultComponent,
7046
- StringItemDefaultComponent,
7047
7107
  PropertyGridGroupComponent,
7048
7108
  PropertyGridItemComponent,
7109
+ PropertyGridItemDescriptionDirective,
7049
7110
  ],
7050
- exports: [PropertyGridComponent],
7111
+ exports: [PropertyGridComponent, PropertyGridItemDescriptionDirective],
7051
7112
  imports: [
7052
7113
  CommonModule,
7053
7114
  FormsModule,
@@ -10367,7 +10428,10 @@ class TableComponent {
10367
10428
  });
10368
10429
  this._svc.activeRow
10369
10430
  .pipe(takeWhile((_) => this._alive))
10370
- .subscribe((item) => this.activeRowChange.emit(item));
10431
+ .subscribe((item) => {
10432
+ this.activeRow = item;
10433
+ this.activeRowChange.emit(item);
10434
+ });
10371
10435
  this._svc.valueChanged
10372
10436
  .pipe(takeWhile((_) => this._alive))
10373
10437
  .subscribe((coordinates) => {
@@ -12761,5 +12825,5 @@ function tetaZoneOptimized(ngZone) {
12761
12825
  * Generated bundle index. Do not edit.
12762
12826
  */
12763
12827
 
12764
- export { AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, ArrayUtil, AutoPositionDirective, AutoPositionModule, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, CheckboxComponent, CheckboxModule, ClickOutsideDirective, ClickOutsideModule, ClickService, ColorInputComponent, 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, ExpandItemComponent, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExpandPanelModule, ExportType, FileItemComponent, FileUploadAreaComponent, FileUploadModule, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterModule, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HighlightModule, HintDirective, HintModule, IconComponent, IconFileComponent, 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, TableService, TableUtil, TabsComponent, TabsModule, TetaConfigService, TetaContentRef, TetaDatePipe, TetaDatePipeModule, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, enLocale, exportDomToImage, formatNumber, getCellComponent, getPrecision, prependZero, ruLocale, tetaZoneFree, tetaZoneFull, tetaZoneOptimized };
12828
+ export { AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, ArrayUtil, AutoPositionDirective, AutoPositionModule, AutocompleteComponent, AutocompleteModule, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, CheckboxComponent, CheckboxModule, ClickOutsideDirective, ClickOutsideModule, ClickService, ColorInputComponent, 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, ExpandItemComponent, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExpandPanelModule, ExportType, FileItemComponent, FileUploadAreaComponent, FileUploadModule, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterModule, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HighlightModule, HintDirective, HintModule, IconComponent, IconFileComponent, 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, PropertyGridItemDescriptionDirective, 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, TableService, TableUtil, TabsComponent, TabsModule, TetaConfigService, TetaContentRef, TetaDatePipe, TetaDatePipeModule, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, enLocale, exportDomToImage, formatNumber, getCellComponent, getPrecision, prependZero, ruLocale, tetaZoneFree, tetaZoneFull, tetaZoneOptimized };
12765
12829
  //# sourceMappingURL=tetacom-ng-components.mjs.map