igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
98 lines (97 loc) • 4.62 kB
TypeScript
import { ChangeDetectorRef, DoCheck, ElementRef, QueryList, TemplateRef } from '@angular/core';
import { trackByIdentity } from '../../core/utils';
import { IgxGridForOfDirective } from '../../directives/for-of/for_of.directive';
import { ColumnType, GridType, IgxHeadSelectorTemplateContext } from '../common/grid.interface';
import { IgxGridFilteringCellComponent } from '../filtering/base/grid-filtering-cell.component';
import { IgxGridFilteringRowComponent } from '../filtering/base/grid-filtering-row.component';
import { IgxGridHeaderGroupComponent } from './grid-header-group.component';
import { IgxGridHeaderComponent } from './grid-header.component';
import * as i0 from "@angular/core";
/**
*
* For all intents & purposes treat this component as what a <thead> usually is in the default <table> element.
*
* This container holds the grid header elements and their behavior/interactions.
*
* @hidden @internal
*/
export declare class IgxGridHeaderRowComponent implements DoCheck {
protected ref: ElementRef<HTMLElement>;
protected cdr: ChangeDetectorRef;
/** The grid component containing this element. */
grid: GridType;
/** Pinned columns of the grid. */
pinnedColumnCollection: ColumnType[];
/** Unpinned columns of the grid. */
unpinnedColumnCollection: ColumnType[];
activeDescendant: string;
hasMRL: boolean;
width: number;
/**
* Header groups inside the header row.
*
* @remarks
* Note: These are only the top level header groups in case there are multi-column headers
* or a specific column layout. If you want to get the flattened collection use the `groups`
* property below.
*
* @hidden @internal
* */
_groups: QueryList<IgxGridHeaderGroupComponent>;
/**
* The flattened header groups collection.
*
* @hidden @internal
*/
get groups(): IgxGridHeaderGroupComponent[];
/** Header components in the header row. */
get headers(): IgxGridHeaderComponent[];
/** Filtering cell components in the header row. */
get filters(): IgxGridFilteringCellComponent[];
/** The virtualized part of the header row containing the unpinned header groups. */
headerContainer: IgxGridForOfDirective<ColumnType, ColumnType[]>;
get headerForOf(): IgxGridForOfDirective<ColumnType, ColumnType[]>;
headerDragContainer: ElementRef<HTMLElement>;
headerSelectorContainer: ElementRef<HTMLElement>;
headerGroupContainer: ElementRef<HTMLElement>;
headSelectorBaseTemplate: TemplateRef<IgxHeadSelectorTemplateContext>;
filterRow: IgxGridFilteringRowComponent;
/**
* Expand/collapse all child grids area in a hierarchical grid.
* `undefined` in the base and tree grids.
*
* @internal @hidden
*/
headerHierarchyExpander: ElementRef<HTMLElement>;
get navigation(): any;
get nativeElement(): HTMLElement;
/**
* Returns whether the current grid instance is a hierarchical grid.
* as only hierarchical grids have the `isHierarchicalRecord` method.
*
* @hidden @internal
*/
get isHierarchicalGrid(): boolean;
get indentationCSSClasses(): string;
get rowSelectorsContext(): IgxHeadSelectorTemplateContext;
constructor(ref: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
/**
* This hook exists as a workaround for the unfortunate fact
* that when we have pinned columns in the grid, the unpinned columns headers
* are affected by a delayed change detection cycle after a horizontal scroll :(
* Thus, we tell the parent grid change detector to check us at each cycle.
*
* @hidden @internal
*/
ngDoCheck(): void;
/**
* @hidden @internal
*/
scroll(event: Event): void;
headerRowSelection(event: MouseEvent): void;
/** state persistence switching all pinned columns resets collection */
protected trackPinnedColumn: typeof trackByIdentity;
static ɵfac: i0.ɵɵFactoryDeclaration<IgxGridHeaderRowComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<IgxGridHeaderRowComponent, "igx-grid-header-row", never, { "grid": { "alias": "grid"; "required": false; }; "pinnedColumnCollection": { "alias": "pinnedColumnCollection"; "required": false; }; "unpinnedColumnCollection": { "alias": "unpinnedColumnCollection"; "required": false; }; "activeDescendant": { "alias": "activeDescendant"; "required": false; }; "hasMRL": { "alias": "hasMRL"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, true, never>;
static ngAcceptInputType_hasMRL: unknown;
}