@progress/kendo-angular-grid
Version:
Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.
44 lines (43 loc) • 1.72 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { expandColumns } from '../columns/column-common';
import { ColumnList } from '../columns/column-list';
import { isColumnComponent } from '../columns/column.component';
/**
* @hidden
*/
export class GroupInfoService {
_columnList = ColumnList.empty;
get columns() {
return expandColumns(this._columnList().toArray()).filter(isColumnComponent);
}
registerColumnsContainer(columns) {
this._columnList = columns;
}
formatForGroup(item) {
const column = this.columnForGroup(item);
return column ? column.format : "";
}
isGroupable(groupField) {
const [column] = this.columns.filter(x => x.field === groupField);
return column ? column.groupable : true;
}
groupTitle(item) {
const column = this.columnForGroup(item);
return column ? (column.title || column.field) : this.groupField(item);
}
groupHeaderTemplate(item) {
const column = this.columnForGroup(item);
return column ? column.groupHeaderTemplateRef || column.groupHeaderColumnTemplateRef : undefined;
}
groupField(group) {
return group.data ? group.data.field : group.field;
}
columnForGroup(group) {
const field = this.groupField(group);
const [column] = this.columns.filter(x => x.field === field);
return column;
}
}