UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

252 lines (251 loc) • 8.89 kB
import { TemplateRef, QueryList, ElementRef, NgZone, ChangeDetectorRef, IterableDiffers, ViewContainerRef, ComponentFactoryResolver, AfterViewInit, AfterContentInit, OnInit, OnDestroy } from '@angular/core'; import { IgxGridBaseComponent } from '../grid-base.component'; import { GridBaseAPIService } from '../api.service'; import { IgxRowIslandComponent } from './row-island.component'; import { IgxChildGridRowComponent } from './child-grid-row.component'; import { IgxFilteringService } from '../filtering/grid-filtering.service'; import { IDisplayDensityOptions } from '../../core/displayDensity'; import { IGridDataBindable, IgxColumnComponent } from '../grid/index'; import { IgxHierarchicalSelectionAPIService } from './selection'; import { IgxHierarchicalGridNavigationService } from './hierarchical-grid-navigation.service'; import { IgxGridSummaryService } from '../summaries/grid-summary.service'; import { IgxHierarchicalGridBaseComponent } from './hierarchical-grid-base.component'; import { IgxGridSelectionService, IgxGridCRUDService } from '../../core/grid-selection'; import { IgxOverlayService } from '../../services/index'; import { IgxColumnResizingService } from '../grid-column-resizing.service'; export interface HierarchicalStateRecord { rowID: any; } export declare class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseComponent implements IGridDataBindable, AfterViewInit, AfterContentInit, OnInit, OnDestroy { selectionService: IgxGridSelectionService; colResizingService: IgxColumnResizingService; protected transactionFactory: any; document: any; protected overlayService: IgxOverlayService; summaryService: IgxGridSummaryService; protected _displayDensityOptions: IDisplayDensityOptions; /** * Sets the value of the `id` attribute. If not provided it will be automatically generated. * ```html * <igx-hierarchical-grid [id]="'igx-hgrid-1'" [data]="Data" [autoGenerate]="true"></igx-hierarchical-grid> * ``` * @memberof IgxHierarchicalGridComponent */ readonly id: string; /** * An @Input property that lets you fill the `IgxHierarchicalGridComponent` with an array of data. * ```html * <igx-hierarchical-grid [data]="Data" [autoGenerate]="true"></igx-hierarchical-grid> * ``` * @memberof IgxHierarchicalGridComponent */ /** * Returns an array of data set to the `IgxHierarchicalGridComponent`. * ```typescript * let filteredData = this.grid.filteredData; * ``` * @memberof IgxHierarchicalGridComponent */ data: any[]; /** * Sets the state of the `IgxHierarchicalGridComponent` containing which rows are expanded. * ```typescript * this.gridState = [{ rowID: 1 }, { rowID: 4}]; * ``` * ```html * <igx-hierarchical-grid [primaryKey]="'ID'" [data]="Data" [autoGenerate]="false" [hierarchicalState]="hgridState"> * <igx-column field="ID" [dataType]='number'></igx-column> * <igx-column field="Product" [dataType]='string'></igx-column> * <igx-column field="Description" [dataType]='string'></igx-column> * </igx-hierarchical-grid> * ``` * @memberof IgxHierarchicalGridComponent */ hierarchicalState: any[]; /** * Sets an array of objects containing the filtered data in the `IgxHierarchicalGridComponent`. * ```typescript * this.grid.filteredData = [{ * ID: 1, * Name: "A" * }]; * ``` * @memberof IgxHierarchicalGridComponent */ /** * Returns an array of objects containing the filtered data in the `IgxHierarchicalGridComponent`. * ```typescript * let filteredData = this.grid.filteredData; * ``` * @memberof IgxHierarchicalGridComponent */ filteredData: any; /** * Sets if all immediate children of the `IgxHierarchicalGridComponent` should be expanded/collapsed. * Defult value is false. * ```html * <igx-hierarchical-grid [id]="'igx-grid-1'" [data]="Data" [autoGenerate]="true" [expandChildren]="true"></igx-hierarchical-grid> * ``` * @memberof IgxHierarchicalGridComponent */ /** * Gets if all immediate children of the `IgxHierarchicalGridComponent` previously have been set to be expanded/collapsed. * If previously set and some rows have been manually expanded/collapsed it will still return the last set value. * ```typescript * const expanded = this.grid.expandChildren; * ``` * @memberof IgxHierarchicalGridComponent */ expandChildren: boolean; /** * Gets the unique identifier of the parent row. It may be a `string` or `number` if `primaryKey` of the * parent grid is set or an object reference of the parent record otherwise. * ```typescript * const foreignKey = this.grid.foreignKey; * ``` * @memberof IgxHierarchicalGridComponent */ readonly foreignKey: any; /** * @hidden */ childLayoutList: QueryList<IgxRowIslandComponent>; /** * @hidden */ allLayoutList: QueryList<IgxRowIslandComponent>; protected hierarchicalRecordTemplate: TemplateRef<any>; protected childTemplate: TemplateRef<any>; protected headerHierarchyExpander: ElementRef; /** * @hidden */ templateOutlets: QueryList<any>; /** * @hidden */ hierarchicalRows: QueryList<IgxChildGridRowComponent>; /** * @hidden */ readonly hasExpandableChildren: boolean; /** * @hidden */ childLayoutKeys: any[]; /** * @hidden */ highlightedRowID: any; /** * @hidden */ updateOnRender: boolean; /** * @hidden */ parent: any; private _hierarchicalState; private _data; private _filteredData; private h_id; private childGridTemplates; private scrollTop; private scrollLeft; constructor(selectionService: IgxGridSelectionService, crudService: IgxGridCRUDService, colResizingService: IgxColumnResizingService, gridAPI: GridBaseAPIService<IgxGridBaseComponent & IGridDataBindable>, selection: IgxHierarchicalSelectionAPIService, transactionFactory: any, elementRef: ElementRef, zone: NgZone, document: any, cdr: ChangeDetectorRef, resolver: ComponentFactoryResolver, differs: IterableDiffers, viewRef: ViewContainerRef, navigation: IgxHierarchicalGridNavigationService, filteringService: IgxFilteringService, overlayService: IgxOverlayService, summaryService: IgxGridSummaryService, _displayDensityOptions: IDisplayDensityOptions); /** * @hidden */ ngOnInit(): void; /** * @hidden */ ngAfterViewInit(): void; readonly outletDirective: import("../../../public_api").IgxOverlayOutletDirective; /** * @hidden */ readonly parentRowOutletDirective: import("../../../public_api").IgxOverlayOutletDirective; /** * @hidden */ ngAfterContentInit(): void; protected onColumnsChanged(change: QueryList<IgxColumnComponent>): void; private updateColumnList; ngOnDestroy(): void; /** * @hidden */ readonly template: TemplateRef<any>; /** * Gets calculated width of the pinned area. * ```typescript * const pinnedWidth = this.grid.getPinnedWidth(); * ``` * @param takeHidden If we should take into account the hidden columns in the pinned area. * @memberof IgxHierarchicalGridComponent */ getPinnedWidth(takeHidden?: boolean): number; private getDefaultExpanderWidth; /** * @hidden */ isRowHighlighted(rowData: any): boolean; /** * @hidden */ isHierarchicalRecord(record: any): boolean; /** * @hidden */ isChildGridRecord(record: any): boolean; /** * @hidden */ trackChanges(index: any, rec: any): any; /** * @hidden */ getContext(rowData: any): any; /** * @hidden */ readonly rootGrid: this; /** * @hidden * Gets the visible content height that includes header + tbody + footer. * For hierarchical child grid it may be scrolled and not fully visible. */ getVisibleContentHeight(): any; /** * @hidden */ collapseAllRows(): void; /** * @hidden */ isExpanded(record: any): boolean; /** * @hidden */ viewCreatedHandler(args: any): void; /** * @hidden */ viewMovedHandler(args: any): void; /** * @hidden */ updateScrollPosition(): void; /** * @hidden */ getPossibleColumnWidth(): string; protected getChildGrids(inDeph?: boolean): any[]; protected generateDataFields(data: any[]): string[]; protected _calculateGridBodyHeight(): number; private hg_verticalScrollHandler; onContainerScroll(): void; private hg_horizontalScrollHandler; private updateParentSizes; }