@progress/kendo-angular-grid
Version:
Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.
46 lines (45 loc) • 1.66 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 { matchesClasses, matchesNodeName, findElement } from '../rendering/common/dom-queries';
/**
* @hidden
*/
export const HEADER_CLASS = 'k-grid-header';
/**
* @hidden
*/
export const FOOTER_CLASS = 'k-grid-footer';
const GRID_LIST = 'KENDO-GRID-LIST';
const TABLE = 'TABLE';
const matchesList = matchesNodeName(GRID_LIST);
const matchesTable = matchesNodeName(TABLE);
const suffix = (locked) => locked ? 'locked' : 'wrap';
/**
* @hidden
*/
export class GridQuery {
element;
headerWrap;
list;
footerWrap;
constructor(element) {
this.element = element;
this.list = findElement(element, matchesList);
}
content(locked) {
return findElement(this.list, matchesClasses(`k-grid-content${locked ? '-locked' : ''}`));
}
header(locked) {
this.headerWrap = this.headerWrap || findElement(this.element, matchesClasses(HEADER_CLASS));
return findElement(this.headerWrap, matchesClasses(`${HEADER_CLASS}-${suffix(locked)}`));
}
footer(locked) {
this.footerWrap = this.footerWrap || findElement(this.element, matchesClasses(FOOTER_CLASS));
return findElement(this.footerWrap, matchesClasses(`${FOOTER_CLASS}-${suffix(locked)}`));
}
table() {
return findElement(this.element, matchesTable);
}
}