@tetacom/ng-components 1.1.18 → 1.1.19

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 (25) hide show
  1. package/assets/icons.svg +726 -950
  2. package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +10 -7
  3. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +8 -8
  4. package/component/property-grid/property-grid/property-grid.component.d.ts +3 -4
  5. package/component/table/contract/i-cell-instance.d.ts +4 -0
  6. package/component/table/contract/table-column.d.ts +3 -9
  7. package/component/table/service/table.service.d.ts +0 -2
  8. package/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.d.ts +6 -7
  9. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +32 -11
  10. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +15 -10
  11. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +10 -5
  12. package/esm2022/component/table/base/cell-component-base.mjs +4 -3
  13. package/esm2022/component/table/contract/i-cell-instance.mjs +1 -1
  14. package/esm2022/component/table/contract/table-column.mjs +1 -7
  15. package/esm2022/component/table/service/table.service.mjs +6 -19
  16. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +10 -12
  17. package/esm2022/util/bool-or-func.mjs +13 -0
  18. package/esm2022/util/is-function.mjs +4 -0
  19. package/esm2022/util/public-api.mjs +4 -2
  20. package/fesm2022/tetacom-ng-components.mjs +72 -53
  21. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  22. package/package.json +1 -1
  23. package/util/bool-or-func.d.ts +1 -0
  24. package/util/is-function.d.ts +1 -0
  25. package/util/public-api.d.ts +3 -1
@@ -6934,6 +6934,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
6934
6934
  }]
6935
6935
  }] });
6936
6936
 
6937
+ function isFunction(obj) {
6938
+ return !!(obj && obj?.constructor && obj?.call && obj?.apply);
6939
+ }
6940
+
6941
+ function boolOrFuncCallback(variable) {
6942
+ return (args) => {
6943
+ if (typeof variable === 'boolean') {
6944
+ return variable;
6945
+ }
6946
+ else if (isFunction(variable)) {
6947
+ return variable(args);
6948
+ }
6949
+ return true;
6950
+ };
6951
+ }
6952
+
6937
6953
  class FormsUtil {
6938
6954
  static validateAllFormFields(formGroup) {
6939
6955
  formGroup.updateValueAndValidity();
@@ -7144,7 +7160,7 @@ class PropertyGridItemComponent {
7144
7160
  item;
7145
7161
  itemTemplates;
7146
7162
  get template() {
7147
- return this.itemTemplates.find((item) => item.name === this.column.name);
7163
+ return this.itemTemplates.find(item => item.name === this.column.name);
7148
7164
  }
7149
7165
  get formGroup() {
7150
7166
  if (this._formGroup instanceof FormGroup) {
@@ -7155,6 +7171,12 @@ class PropertyGridItemComponent {
7155
7171
  }
7156
7172
  return null;
7157
7173
  }
7174
+ get editable() {
7175
+ return boolOrFuncCallback(this.column.editable)({
7176
+ column: this.column,
7177
+ row: this.formGroup?.getRawValue(),
7178
+ });
7179
+ }
7158
7180
  horizontal;
7159
7181
  controlValueChange = new EventEmitter();
7160
7182
  align = Align;
@@ -7198,8 +7220,6 @@ class PropertyGridItemComponent {
7198
7220
  });
7199
7221
  }
7200
7222
  }
7201
- ngOnInit() {
7202
- }
7203
7223
  ngOnDestroy() {
7204
7224
  this._alive = false;
7205
7225
  this._formSub?.unsubscribe();
@@ -7210,7 +7230,7 @@ class PropertyGridItemComponent {
7210
7230
  this._formSub?.unsubscribe();
7211
7231
  this._formSub = this.formGroup?.controls[this.column.name]?.valueChanges
7212
7232
  .pipe(takeWhile(() => this._alive))
7213
- .subscribe((_) => {
7233
+ .subscribe(_ => {
7214
7234
  this.controlValueChange.emit({
7215
7235
  id: _,
7216
7236
  name: this.column.name,
@@ -7219,11 +7239,11 @@ class PropertyGridItemComponent {
7219
7239
  }
7220
7240
  }
7221
7241
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$2.TranslocoService }, { token: i3.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7222
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.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: ["date", "locale", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "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] });
7242
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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=\"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 [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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.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: ["date", "locale", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "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] });
7223
7243
  }
7224
7244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
7225
7245
  type: Component,
7226
- 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" }]
7246
+ 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=\"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 [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" }]
7227
7247
  }], ctorParameters: function () { return [{ type: i1$2.TranslocoService }, { type: i3.ControlContainer, decorators: [{
7228
7248
  type: Optional
7229
7249
  }] }]; }, propDecorators: { column: [{
@@ -7245,6 +7265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
7245
7265
  }] } });
7246
7266
 
7247
7267
  class PropertyGridGroupComponent {
7268
+ _formGroup;
7248
7269
  column;
7249
7270
  hideNonEditable;
7250
7271
  dict;
@@ -7253,20 +7274,36 @@ class PropertyGridGroupComponent {
7253
7274
  controlValueChange = new EventEmitter();
7254
7275
  decimalPart;
7255
7276
  itemTemplates;
7256
- constructor() {
7277
+ get formGroup() {
7278
+ if (this._formGroup instanceof FormGroup) {
7279
+ return this._formGroup;
7280
+ }
7281
+ if (this._formGroup instanceof NgForm) {
7282
+ return this._formGroup.form;
7283
+ }
7284
+ return null;
7257
7285
  }
7258
- ngOnInit() {
7286
+ get editable() {
7287
+ return boolOrFuncCallback(this.column.editable)({
7288
+ column: this.column,
7289
+ row: this.formGroup?.getRawValue(),
7290
+ });
7291
+ }
7292
+ constructor(_formGroup) {
7293
+ this._formGroup = _formGroup;
7259
7294
  }
7260
7295
  trackColumns(index, column) {
7261
7296
  return column.name;
7262
7297
  }
7263
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7264
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.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"] }] });
7298
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [{ token: i3.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7299
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.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"] }], viewProviders: [FormsUtil.formProvider] });
7265
7300
  }
7266
7301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
7267
7302
  type: Component,
7268
- 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"] }]
7269
- }], ctorParameters: function () { return []; }, propDecorators: { column: [{
7303
+ args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], 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"] }]
7304
+ }], ctorParameters: function () { return [{ type: i3.ControlContainer, decorators: [{
7305
+ type: Optional
7306
+ }] }]; }, propDecorators: { column: [{
7270
7307
  type: Input
7271
7308
  }], hideNonEditable: [{
7272
7309
  type: Input
@@ -7319,6 +7356,12 @@ class PropertyGridComponent {
7319
7356
  constructor(_formGroup) {
7320
7357
  this._formGroup = _formGroup;
7321
7358
  }
7359
+ getEditable(column) {
7360
+ return boolOrFuncCallback(column.editable)({
7361
+ column: column,
7362
+ row: this.formGroup?.getRawValue(),
7363
+ });
7364
+ }
7322
7365
  onControlValueChange(event) {
7323
7366
  const affected = this.columns.filter(_ => _.parentName === event.name);
7324
7367
  if (affected?.length) {
@@ -7336,7 +7379,6 @@ class PropertyGridComponent {
7336
7379
  }
7337
7380
  this.controlValueChange.emit(event);
7338
7381
  }
7339
- ngOnInit() { }
7340
7382
  ngOnDestroy() {
7341
7383
  this._alive = false;
7342
7384
  }
@@ -7346,13 +7388,12 @@ class PropertyGridComponent {
7346
7388
  getDictValue(value, name) {
7347
7389
  return this.dict[name]?.find(_ => _.id === value);
7348
7390
  }
7349
- ngAfterViewInit() { }
7350
7391
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i3.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7351
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.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] });
7392
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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 && (getEditable(column) || !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 && (getEditable(column) || !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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.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] });
7352
7393
  }
7353
7394
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
7354
7395
  type: Component,
7355
- 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"] }]
7396
+ 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 && (getEditable(column) || !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 && (getEditable(column) || !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"] }]
7356
7397
  }], ctorParameters: function () { return [{ type: i3.ControlContainer, decorators: [{
7357
7398
  type: Optional
7358
7399
  }] }]; }, propDecorators: { formClass: [{
@@ -7961,16 +8002,10 @@ class TableColumn extends FilterItem {
7961
8002
  * Стобец закреплен
7962
8003
  */
7963
8004
  locked;
7964
- /**
7965
- * Название столбца в строке результатов
7966
- */
7967
8005
  /**
7968
8006
  * Название столбца родителя
7969
8007
  */
7970
8008
  parentName;
7971
- /**
7972
- * Название столбца для заголовка таблицы
7973
- */
7974
8009
  /**
7975
8010
  * Единицы измерения
7976
8011
  */
@@ -8579,7 +8614,7 @@ class TableService {
8579
8614
  this._currentEditCell = cellEvent;
8580
8615
  }
8581
8616
  else {
8582
- if (this.boolOrFuncCallback(!!this.rowEditable)(this.getRowByIndex(cellEvent?.row)?.data)) {
8617
+ if (boolOrFuncCallback(!!this.rowEditable)(this.getRowByIndex(cellEvent?.row)?.data)) {
8583
8618
  this._editRowStart.next(cellEvent);
8584
8619
  this._currentEditCell = cellEvent;
8585
8620
  }
@@ -8593,7 +8628,7 @@ class TableService {
8593
8628
  this._editCellStop.next(this._currentEditCell);
8594
8629
  }
8595
8630
  const column = this.getColumnByName(cellEvent?.column);
8596
- if (this.boolOrFuncCallback(column?.editable)({
8631
+ if (boolOrFuncCallback(column?.editable)({
8597
8632
  row: this.getRowByIndex(cellEvent?.row),
8598
8633
  column: column,
8599
8634
  })) {
@@ -8731,7 +8766,7 @@ class TableService {
8731
8766
  return null;
8732
8767
  }
8733
8768
  const column = this.getColumnByName(nextCell?.column);
8734
- if (this.boolOrFuncCallback(column.editable)({
8769
+ if (boolOrFuncCallback(column.editable)({
8735
8770
  row: this.getRowByIndex(nextCell.row),
8736
8771
  column,
8737
8772
  })) {
@@ -8745,7 +8780,7 @@ class TableService {
8745
8780
  return null;
8746
8781
  }
8747
8782
  const column = this.getColumnByName(prevCell?.column);
8748
- if (this.boolOrFuncCallback(column.editable)({
8783
+ if (boolOrFuncCallback(column.editable)({
8749
8784
  row: this.getRowByIndex(prevCell.row),
8750
8785
  column,
8751
8786
  })) {
@@ -8824,17 +8859,6 @@ class TableService {
8824
8859
  this._scrollIndex.next(null);
8825
8860
  this._scrollIndex.next(index);
8826
8861
  }
8827
- boolOrFuncCallback(variable) {
8828
- return (args) => {
8829
- if (typeof variable === 'boolean') {
8830
- return variable;
8831
- }
8832
- else if (this.isFunction(variable)) {
8833
- return variable(args);
8834
- }
8835
- return true;
8836
- };
8837
- }
8838
8862
  getVisibleColumns() {
8839
8863
  const visible = ArrayUtil.flatten(this._columns.value, 'columns', true).filter(_ => this._hiddenColumns.value.indexOf(_.name) < 0);
8840
8864
  return visible.sort((a, b) => Number(b.locked) - Number(a.locked));
@@ -8885,9 +8909,6 @@ class TableService {
8885
8909
  getTableElement(element) {
8886
8910
  return element.closest('teta-table');
8887
8911
  }
8888
- isFunction(obj) {
8889
- return !!(obj && obj?.constructor && obj?.call && obj?.apply);
8890
- }
8891
8912
  setColumnAutoWidth(column, table) {
8892
8913
  const cells = table.querySelectorAll(`teta-cell[data-column="${column.name}"] .cell-text`);
8893
8914
  let maxWidth = 0;
@@ -10061,7 +10082,7 @@ class VisibilityDropdownTabComponent {
10061
10082
  hiddenColumns;
10062
10083
  get openItems() {
10063
10084
  if (this._openItems == null) {
10064
- this._openItems = this.columns.map((_) => _);
10085
+ this._openItems = this.columns.map(_ => _);
10065
10086
  }
10066
10087
  return this._openItems;
10067
10088
  }
@@ -10080,8 +10101,8 @@ class VisibilityDropdownTabComponent {
10080
10101
  this._cdr = _cdr;
10081
10102
  this.locale = this._config.locale;
10082
10103
  this._svc.hiddenColumns
10083
- .pipe(takeWhile((_) => this._alive), map((_) => [..._]))
10084
- .subscribe((_) => {
10104
+ .pipe(takeWhile(_ => this._alive), map(_ => [..._]))
10105
+ .subscribe(_ => {
10085
10106
  this.hiddenColumns = _;
10086
10107
  });
10087
10108
  }
@@ -10093,7 +10114,7 @@ class VisibilityDropdownTabComponent {
10093
10114
  return true;
10094
10115
  }
10095
10116
  const columns = ArrayUtil.flatten(this.columns, 'columns');
10096
- const notHidden = columns.find((_) => this.hiddenColumns.indexOf(_.name) < 0);
10117
+ const notHidden = columns.find(_ => this.hiddenColumns.indexOf(_.name) < 0);
10097
10118
  if (!notHidden) {
10098
10119
  return false;
10099
10120
  }
@@ -10104,7 +10125,7 @@ class VisibilityDropdownTabComponent {
10104
10125
  this.hiddenColumns = [];
10105
10126
  }
10106
10127
  else {
10107
- this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map((_) => _.name);
10128
+ this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map(_ => _.name);
10108
10129
  }
10109
10130
  }
10110
10131
  setColumnsVisibility() {
@@ -10123,7 +10144,7 @@ class VisibilityDropdownTabComponent {
10123
10144
  this.hideColumn(column, hiddenColumns);
10124
10145
  }
10125
10146
  if (column.columns) {
10126
- column.columns.forEach((x) => {
10147
+ column.columns.forEach(x => {
10127
10148
  this.setChildrenVisibility(x, visible, hiddenColumns);
10128
10149
  });
10129
10150
  }
@@ -10148,7 +10169,7 @@ class VisibilityDropdownTabComponent {
10148
10169
  if (parent &&
10149
10170
  !this.columnIsHidden(parent) &&
10150
10171
  parent.columns &&
10151
- parent.columns.every((_) => this.columnIsHidden(_))) {
10172
+ parent.columns.every(_ => this.columnIsHidden(_))) {
10152
10173
  this.hideColumn(parent, hiddenColumns);
10153
10174
  this.hideParents(parent, hiddenColumns);
10154
10175
  }
@@ -10160,9 +10181,7 @@ class VisibilityDropdownTabComponent {
10160
10181
  hiddenColumns.splice(hiddenColumns.indexOf(column.name), 1);
10161
10182
  }
10162
10183
  findParentColumn(column, columns) {
10163
- return ArrayUtil.findRecursive(columns, (iterableNode) => iterableNode.columns?.indexOf(column) >= 0, 'columns');
10164
- }
10165
- ngOnInit() {
10184
+ return ArrayUtil.findRecursive(columns, iterableNode => iterableNode.columns?.indexOf(column) >= 0, 'columns');
10166
10185
  }
10167
10186
  ngOnDestroy() {
10168
10187
  this._alive = false;
@@ -10620,9 +10639,9 @@ class CellComponentBase {
10620
10639
  return this._edit && this.editable;
10621
10640
  }
10622
10641
  get editable() {
10623
- return this.svc.boolOrFuncCallback(this.column.editable)({
10642
+ return boolOrFuncCallback(this.column.editable)({
10624
10643
  column: this.column,
10625
- row: this.row,
10644
+ row: this.row.data,
10626
10645
  });
10627
10646
  }
10628
10647
  get index() {
@@ -14271,5 +14290,5 @@ const ruLocale = {
14271
14290
  * Generated bundle index. Do not edit.
14272
14291
  */
14273
14292
 
14274
- export { ANIMATION_FRAME, AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, Area3dComponent, ArrayUtil, AutoPositionDirective, AutoPositionModule, AutocompleteComponent, AutocompleteModule, AvatarComponent, AvatarModule, Axes3dComponent, Base3dSeriesComponent, Block3dComponent, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, Canvas3dHost, CanvasComponent, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, CheckboxComponent, CheckboxModule, ClickOutsideDirective, ClickOutsideModule, ClickService, ColorInputComponent, ColumnReorderEvent, ColumnResizeEvent, ContextMenuDirective, ContextMenuModule, CurrentModal, CustomSeriesComponent, DATE_PICKER_CONTROL_VALUE_ACCESSOR, DATE_Range_CONTROL_VALUE_ACCESSOR, DateCalendarComponent, DateCellComponent, DateFilter, DateFilterComponent, DateFilterValue, DatePeriod, DatePickerComponent, DatePickerMode, DatePickerModule, DateRangeComponent, DateTimeCellComponent, DateUtil, DayModel, DelimiterComponent, DelimiterModule, DetailComponentBase, DialogComponent, DialogService, DisableControlDirective, DisableControlModule, DividerComponent, DividerModule, 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, IconFileModule, IconModule, IconService, IconSpriteDirective, InputComponent, InputModule, LetContext, LetDirective, LetModule, Line3dComponent, ListCellComponent, ListFilter, ListFilterComponent, ListFilterType, LoaderDirective, LoaderModule, Message, MessageComponent, MessageHostComponent, MessageModule, MessageService, ModalCloseReason, ModalContainerComponent, ModalInstance, ModalModule, ModalService, 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, RangeCalendarComponent, ResizeDragDirective, ResizeDragModule, ResizePanelComponent, ResizePanelModule, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, SceneComponent, ScrollIntoViewDirective, ScrollIntoViewModule, ScrollableComponent, ScrollableDirective, ScrollableModule, SelectComponent, SelectModule, SelectOptionDirective, SelectType, SelectValueDirective, Series3dHost, Series3dType, 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, TetaDatePipe, TetaDatePipeModule, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ThreeChartComponent, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, WINDOW, enLocale, exportDomToImage, formatNumber, getCellComponent, getPrecision, prependZero, ruLocale, tetaZoneFree, tetaZoneFull, tetaZoneOptimized };
14293
+ export { ANIMATION_FRAME, AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AccordionModule, AggregationType, Align, Area3dComponent, ArrayUtil, AutoPositionDirective, AutoPositionModule, AutocompleteComponent, AutocompleteModule, AvatarComponent, AvatarModule, Axes3dComponent, Base3dSeriesComponent, Block3dComponent, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, ButtonModule, CHECKBOX_CONTROL_VALUE_ACCESSOR, Canvas3dHost, CanvasComponent, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dModule, Chart3dOptions, CheckboxComponent, CheckboxModule, ClickOutsideDirective, ClickOutsideModule, ClickService, ColorInputComponent, ColumnReorderEvent, ColumnResizeEvent, ContextMenuDirective, ContextMenuModule, CurrentModal, CustomSeriesComponent, DATE_PICKER_CONTROL_VALUE_ACCESSOR, DATE_Range_CONTROL_VALUE_ACCESSOR, DateCalendarComponent, DateCellComponent, DateFilter, DateFilterComponent, DateFilterValue, DatePeriod, DatePickerComponent, DatePickerMode, DatePickerModule, DateRangeComponent, DateTimeCellComponent, DateUtil, DayModel, DelimiterComponent, DelimiterModule, DetailComponentBase, DialogComponent, DialogService, DisableControlDirective, DisableControlModule, DividerComponent, DividerModule, 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, IconFileModule, IconModule, IconService, IconSpriteDirective, InputComponent, InputModule, LetContext, LetDirective, LetModule, Line3dComponent, ListCellComponent, ListFilter, ListFilterComponent, ListFilterType, LoaderDirective, LoaderModule, Message, MessageComponent, MessageHostComponent, MessageModule, MessageService, ModalCloseReason, ModalContainerComponent, ModalInstance, ModalModule, ModalService, 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, RangeCalendarComponent, ResizeDragDirective, ResizeDragModule, ResizePanelComponent, ResizePanelModule, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, SceneComponent, ScrollIntoViewDirective, ScrollIntoViewModule, ScrollableComponent, ScrollableDirective, ScrollableModule, SelectComponent, SelectModule, SelectOptionDirective, SelectType, SelectValueDirective, Series3dHost, Series3dType, 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, TetaDatePipe, TetaDatePipeModule, TetaSize, TetaTemplateDirective, TetaTemplateModule, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchModule, ThemeSwitchService, ThreeChartComponent, ToggleComponent, ToggleModule, ToolbarComponent, ToolbarModule, TooltipDirective, TooltipModule, TreeComponent, TreeItemToggleComponent, TreeModule, TreeService, VerticalAlign, WINDOW, boolOrFuncCallback, enLocale, exportDomToImage, formatNumber, getCellComponent, getPrecision, isFunction, prependZero, ruLocale, tetaZoneFree, tetaZoneFull, tetaZoneOptimized };
14275
14294
  //# sourceMappingURL=tetacom-ng-components.mjs.map