@digital-realty/grid
Version:
A free, flexible and high-quality Web Component for showing large amounts of tabular data
51 lines (46 loc) • 1.79 kB
TypeScript
/**
* @license
* Copyright (c) 2016 - 2025 Vaadin Ltd.
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
*/
import type { GridDefaultItem } from './vaadin-grid.js';
import type { GridColumnGroupMixin } from './vaadin-grid-column-group-mixin.js';
export * from './vaadin-grid-column-group-mixin.js';
/**
* A `<vaadin-grid-column-group>` is used to make groups of columns in `<vaadin-grid>` and
* to configure additional headers and footers.
*
* Groups can be nested to create complex header and footer configurations.
*
* #### Example:
* ```html
* <vaadin-grid-column-group resizable id="columnGroup">
* <vaadin-grid-column id="column1"></vaadin-grid-column>
* <vaadin-grid-column id="column2"></vaadin-grid-column>
* </vaadin-grid-column-group>
* ```
*
* ```js
* const columnGroup = document.querySelector('#columnGroup');
* columnGroup.headerRenderer = (root, columnGroup) => {
* root.textContent = 'header';
* }
*
* const column1 = document.querySelector('#column1');
* column1.headerRenderer = (root, column) => { ... };
* column1.renderer = (root, column, model) => { ... };
*
* const column2 = document.querySelector('#column2');
* column2.headerRenderer = (root, column) => { ... };
* column2.renderer = (root, column, model) => { ... };
* ```
*/
declare class GridColumnGroup extends HTMLElement {}
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
interface GridColumnGroup<TItem = GridDefaultItem> extends GridColumnGroupMixin<TItem, GridColumnGroup<TItem>> {}
declare global {
interface HTMLElementTagNameMap {
'vaadin-grid-column-group': GridColumnGroup<GridDefaultItem>;
}
}
export { GridColumnGroup };