UNPKG

@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
/**----------------------------------------------------------------------------------------- * 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; } }