@progress/kendo-angular-grid
Version:
Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.
147 lines (146 loc) • 8.06 kB
TypeScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { SimpleChange, NgZone, Renderer2, ElementRef, OnInit, OnDestroy, OnChanges, DoCheck, TrackByFunction, TemplateRef } from '@angular/core';
import { GroupDescriptor, GroupResult } from '@progress/kendo-data-query';
import { ColumnBase } from '../columns/column-base';
import { DetailTemplateDirective } from './details/detail-template.directive';
import { GroupsService } from '../grouping/groups.service';
import { ChangeNotificationService } from '../data/change-notification.service';
import { NoRecordsTemplateDirective } from './no-records-template.directive';
import { EditService } from '../editing/edit.service';
import { RowClassFn, RowStickyFn } from './common/row-class';
import { SelectableSettings } from '../selection/types';
import { DomEventsService } from '../common/dom-events.service';
import { SelectionService } from "../selection/selection.service";
import { ColumnInfoService } from "../common/column-info.service";
import { FilterableSettings } from '../filtering/filterable';
import { NavigationService } from '../navigation/navigation.service';
import { GridItem } from '../data/grid-item.interface';
import { DetailsService } from './details/details.service';
import { CellSelectionService } from '../selection/cell-selection.service';
import { GroupItem } from '../data/group-item.interface';
import { GroupFooterItem } from '../data/group-footer-item.interface';
import { DataItem } from '../data/data-item.interface';
import { SVGIcon } from '@progress/kendo-svg-icons';
import { ContextService } from '../common/provider.service';
import { ColumnsContainer } from '../columns/columns-container';
import { RowArgs } from './common/row-args';
import { RowspanService } from './rowspan.service';
import * as i0 from "@angular/core";
/**
* @hidden
*/
export declare class TableBodyComponent implements OnInit, OnDestroy, OnChanges, DoCheck {
detailsService: DetailsService;
groupsService: GroupsService;
private changeNotification;
editService: EditService;
private ctx;
private ngZone;
private renderer;
private element;
private domEvents;
selectionService: SelectionService;
cellSelectionService: CellSelectionService;
private columnInfoService;
private navigationService;
private rowspanService;
columns: Array<ColumnBase>;
allColumns: Array<ColumnBase>;
groups: Array<GroupDescriptor>;
detailTemplate: DetailTemplateDirective;
noRecordsTemplate: NoRecordsTemplateDirective;
data: Array<GridItem>;
skip: number;
selectable: SelectableSettings | boolean;
filterable: FilterableSettings;
noRecordsText: string;
isLocked: boolean;
isLoading: boolean;
isVirtual: boolean;
cellLoadingTemplate: TemplateRef<any>;
skipGroupDecoration: boolean;
showGroupFooters: boolean;
lockedColumnsCount: number;
totalColumnsCount: number;
virtualColumns: boolean;
trackBy: TrackByFunction<GridItem>;
rowSticky: RowStickyFn;
totalColumns: ColumnsContainer;
rowClass: RowClassFn;
hostClass: boolean;
groupHeaderSlaveCellsCount: number;
groupHeaderColumns: any[];
private clickSubscription;
private touchSubscription;
private l10nSubscription;
private cellKeydownSubscription;
private clickTimeout;
private minusIcon;
private plusIcon;
private dataArray;
private rerender;
constructor(detailsService: DetailsService, groupsService: GroupsService, changeNotification: ChangeNotificationService, editService: EditService, ctx: ContextService, ngZone: NgZone, renderer: Renderer2, element: ElementRef, domEvents: DomEventsService, selectionService: SelectionService, cellSelectionService: CellSelectionService, columnInfoService: ColumnInfoService, navigationService: NavigationService, rowspanService: RowspanService);
get newDataItem(): any;
get cachedDataArray(): any[];
unlockedColumnsCount(item?: any): number;
shouldSkipCell(rowIndex: number, colIndex: number): boolean;
getRowspan(row: RowArgs, column: ColumnBase, colIndex: number): number;
isAriaSelected(item: any, column: ColumnBase): string;
toggleRow(index: number, dataItem: any): boolean;
isExpanded(viewItem: any): boolean;
detailButtonIconName(viewItem: any): string;
detailButtonSvgIcon(viewItem: any): SVGIcon;
detailButtonTitle(viewItem: any): any;
isGroup(item: GridItem): boolean;
isDataItem(item: GridItem): boolean;
isFooter(item: GridItem): boolean;
isFooterItemInExpandedGroup(item: GroupFooterItem): boolean;
isDataItemInExpandedGroup(item: DataItem): boolean;
isInExpandedGroup(item: {
data: GroupResult;
index: string;
parentGroup: GroupItem;
}): boolean;
isParentGroupExpanded(item: GroupItem): boolean;
isOdd(item: any): boolean;
isSelectable(args: RowArgs): boolean;
isRowSelected(item: any): boolean;
isRowSelectable(args: RowArgs): boolean;
trackByWrapper(index: number, item: GridItem): any;
trackByColumns(index: number, item: any): any;
ngDoCheck(): void;
ngAfterViewChecked(): void;
ngOnChanges(changes: {
[propertyName: string]: SimpleChange;
}): void;
logicalRowIndex(rowIndex: number): number;
addRowLogicalIndex(): number;
logicalColIndex(column: any): number;
ngOnInit(): void;
ngOnDestroy(): void;
isEditingCell(index: number, column: any): boolean;
isEditingRow(index: number): boolean;
get hasGroupHeaderColumn(): boolean;
get columnsContainer(): any;
get columnsSpan(): number;
get allColumnsSpan(): number;
get colSpan(): number;
get footerColumns(): ColumnBase[];
showGroupHeader(item: any): boolean;
addStickyColumnStyles(column: ColumnBase): {
[key: string]: any;
};
resizeHandler(): void;
private get hasDetailTemplate();
private clickHandler;
private emitCellClick;
private cellKeydownHandler;
private cellClickArgs;
private eventTarget;
private applyStickyRowsStyling;
static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent, "[kendoGridTableBody]", never, { "columns": { "alias": "columns"; "required": false; }; "allColumns": { "alias": "allColumns"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; }; "noRecordsTemplate": { "alias": "noRecordsTemplate"; "required": false; }; "data": { "alias": "data"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "noRecordsText": { "alias": "noRecordsText"; "required": false; }; "isLocked": { "alias": "isLocked"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isVirtual": { "alias": "isVirtual"; "required": false; }; "cellLoadingTemplate": { "alias": "cellLoadingTemplate"; "required": false; }; "skipGroupDecoration": { "alias": "skipGroupDecoration"; "required": false; }; "showGroupFooters": { "alias": "showGroupFooters"; "required": false; }; "lockedColumnsCount": { "alias": "lockedColumnsCount"; "required": false; }; "totalColumnsCount": { "alias": "totalColumnsCount"; "required": false; }; "virtualColumns": { "alias": "virtualColumns"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "rowSticky": { "alias": "rowSticky"; "required": false; }; "totalColumns": { "alias": "totalColumns"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; }, {}, never, never, true, never>;
}