@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
746 lines (745 loc) • 32.6 kB
TypeScript
import { AfterViewChecked, AfterViewInit, EventEmitter, Injector, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
import { SpacerBaseDirective } from '../common/spacer-base.component';
import { QueryData } from '../query-editor/query-editor-contract';
import { DataTableAccessibilityManager } from './data-table-accessibility-manager';
import { DataTableColumnComponent } from './data-table-column.component';
import { DataTableCustomSortEvent, DataTableDataItem, DataTableLazyLoadEvent, DataTableMultipleSelectMode, DataTableRenderedItem, DataTableSortMode, EditableDataChangeSet, NodeNavigatingTask, TreeNodeDataItem } from './data-table-contract';
import { DataTableResponsiveWindowManager } from './data-table-responsive-window-manager';
import * as i0 from "@angular/core";
/**
* Data table component
*/
export declare class DataTableComponent extends SpacerBaseDirective implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {
private static minColumnWidth;
private static pxConverter;
/**
* The source name to use for logging
*/
protected get logSourceName(): string;
private isComponentInitialized;
private editableDataChangeSet;
private defaultScrollPixels;
private defaultScrollPercentage;
private maxActualScrollDataElementHeight;
private filterDebounceTimeout;
private keyboardNavigationDebounceTimeout;
private scrollCheckIntervalDuration;
private scrollCheckInterval;
private navigationKeyboardDebouncing;
private bufferRowRate;
private eventUnregistraterHandlers;
private sortColumn;
private previousSortColumn;
private internalItems;
private actualItems;
private calculatedScrollbarWidth;
private currentHasVerticalOverflow;
private filterDebounceTimer;
private tryToFocusSelectedRowTimer;
private oldFilterKeyword;
private filterKeyword;
private internalGlobalFilter;
private scrollAboveDataElementHeight;
private isScrolling;
private isScrollingEventHandlerSetup;
private displayItemsTop;
private internalRenderedItems;
private internalSelection;
private hasLongList;
private currentStartIndexOfItemInViewPort;
private dataScrollTop;
private currentRenderedItemInViewPort;
private internalGroupColumn;
private internalGroupSortMode;
private internalSelectionMode;
private shadowTree;
private activeRenderedItemIndex;
private previousActiveRenderedItemIndex;
private activeFocusedItemIndex;
private hoveredRenderedItemIndex;
private renderedItemLengthInViewPort;
private renderedItemStartIndexOffset;
private currentColumnIndexWithFocusedElement;
private unregisterOnElementFocusingEventHandler;
private contentAreaHasFocus;
private editableNewRowHasFocus;
private cancelLastFocusableShadowElementFocusOnce;
private layoutChangeSubscriber;
private globalFilterSubscriber;
private groupKeys;
private internalColumns;
private treeToggleStatus;
private shiftMultipleSelectStartIndex;
private internalQueryEditor;
private actualColumnProcessed;
private tryToFocusEmptyMessageCount;
private accessibilityManager;
private internalTableAriaLabelledBy;
internalTableAriaLabel: string;
scrollDataStyleTop: string;
scrollAboveDataStyleTop: string;
isLoading: boolean;
dataTableAccessibilityManager: DataTableAccessibilityManager;
DataTableResponsiveWindowManager: DataTableResponsiveWindowManager;
columnSortSettings: {};
/**
* It determines whether the selected node from the table is collapsed from the parent.
*/
selectedTreeNodeParentCollapsed: boolean;
private resizerIndicator;
private headerElement;
private headerTableElement;
private contentElement;
private scrollContainerElement;
private tempRowElement;
private scrollBodyElement;
private scrollAboveDataElement;
private scrollDataElement;
private emptyMessageElement;
private lastFocusableShadowElement;
groupHeaderTemplate: TemplateRef<any>;
/**
* @deprecated since 9/25/2019. Please use 'changesetUpdated' instead
*/
get onChangesetUpdated(): EventEmitter<EditableDataChangeSet>;
changesetUpdated: EventEmitter<EditableDataChangeSet>;
/**
* It emits the event when selection changing is happening.
*/
selectionChange: EventEmitter<any>;
/**
* It emits true when table is rendered with min-height on phone down
*/
isTableRenderedWithMinHeightPhoneDown: EventEmitter<boolean>;
/**
* @deprecated since 9/25/2019. Please use 'rowDblclick' instead
*/
get onRowDblclick(): EventEmitter<{
data: DataTableDataItem;
}>;
rowDblclick: EventEmitter<{
data: DataTableDataItem;
}>;
/**
* @deprecated since 9/25/2019. Please use 'groupToggleClick' instead
*/
get onGroupToggleClicked(): EventEmitter<{
groupData: DataTableDataItem;
}>;
groupToggleClick: EventEmitter<{
groupData: DataTableDataItem;
}>;
/**
* @deprecated since 9/25/2019. Please use 'editableRowAdded' instead
*/
get onNewEditableRowAdded(): EventEmitter<{
data: any;
overrideNewDataHandler: (data: any) => void;
}>;
editableRowAdded: EventEmitter<{
data: any;
overrideNewDataHandler: (data: any) => void;
}>;
/**
* It indicates the columns rendered on the UI.
*/
get columns(): QueryList<DataTableColumnComponent>;
set columns(value: QueryList<DataTableColumnComponent>);
private dataTableTemplateLoaderComponents;
/**
* It indicates the actual columns used for rendering the table.
* In grouping data table scenario, the actual columns doesn't contain the grouping column.
*/
actualColumns: DataTableColumnComponent[];
/**
* It indicates the item rendered on the UI (including the items in and outside of view port).
*/
get renderedItems(): DataTableRenderedItem[];
set renderedItems(value: DataTableRenderedItem[]);
filteredItems: DataTableDataItem[];
/**
* It indicates rendered items are changed.
*/
renderedItemsChange: EventEmitter<void>;
/**
* It indicates whether there are any background busy tasks.
*/
isBusy: boolean;
/**
* It indicates whether to enable the right click select
*/
enableRightClickSelect: boolean;
/**
* It indicates the message showing when the data is loading.
*/
loadingMessage: string;
/**
* It indicates the message showing when the data loading is finished but the data is empty or no data got rendered.
*/
noRecordMessage: string;
editable: boolean;
/**
* It indicates whether to expand tree node on root node checked. This parameter can only be used for tree table.
*/
expandTreeNodeOnChecked: boolean;
/**
* It indicates whether all editable rows in an editable table should be visible (regardless of hover/selected state).
*/
isAllEditableRowsVisible: boolean;
/**
* It indicates that a scrollbar can be used when the expected number of columns is huge
*/
scrollableHorizontal: boolean;
/**
* It indicates that a data lazy loading needs to happen and require the consumer to provide data for the lazy loading part.
*/
lazyLoadingData: EventEmitter<DataTableLazyLoadEvent>;
/**
* It triggers when a tree node is expanded.
* @deprecated since 9/25/2019. Please use 'nodeExpanded' instead
*/
get onNodeExpand(): EventEmitter<{
node: TreeNodeDataItem;
}>;
nodeExpanded: EventEmitter<{
node: TreeNodeDataItem;
}>;
/**
* It triggers when a tree node is collapsed.
* @deprecated since 9/25/2019. Please use 'nodeCollapsed' instead
*/
get onNodeCollapsed(): EventEmitter<{
node: TreeNodeDataItem;
}>;
nodeCollapsed: EventEmitter<{
node: TreeNodeDataItem;
}>;
/**
* It triggers when a tree node is selected.
* @deprecated since 9/25/2019. Please use 'nodeSelected' instead
*/
get onNodeSelect(): EventEmitter<{
node: TreeNodeDataItem;
}>;
nodeSelected: EventEmitter<{
node: TreeNodeDataItem;
}>;
/**
* It indicates the data is loaded in lazy loading way.
*/
lazyLoad: boolean;
/**
* It indicates whether to remember the tree toggle status.
*/
rememberTreeNodeToggle: boolean;
/**
* It indicates whether to remember the selection then after the whole data source is refreshed the selection will still be there.
*/
rememberSelection: boolean;
/**
* Normally the enter key on a row redirects to the double click behavior of the row.
* If this flag is true, then data table would do nothing for enter key on a row.
* Then you need to implement the enter key action by your self.
*/
preventEnterKeyForDefaultAction: boolean;
/**
* It points to the external function to generate an unique identity string for any data item.
* Some scenarios like tree table would need this function to remember toggle status for any tree node by the identity.
*/
getItemIdentityFunction: (data: any) => string;
/**
* By default natural sort is turned on.
* But for performance concern, you may want to disable natural sort and just do very simple string comparison.
*/
disableNaturalSort: boolean;
/**
* Don't enable default tooltips all over WAC by default.
* TODO: Investigate each case of data table usage and see if can update as needed to allow this to be enabled by default.
* Enabling by default pre-GA is risky and may introduce regressions though.
*/
enableDefaultTooltips: boolean;
/**
* It indicates the items rendered above the view port.
*/
renderedItemsAboveViewPort: DataTableRenderedItem[];
/**
* It indicates the items rendered in and below the view port.
*/
renderedItemsInAndBelowViewPort: DataTableRenderedItem[];
/**
* It indicates whether the data table is scrolled down.
*/
isScrolledDown: boolean;
/**
* It indicates whether the data table should handle scrolling for content.
*/
shouldScroll: boolean;
/**
* It indicates whether the last focusable shadow element should be used.
* Normally when the data table is the last focusable element,
* the last focusable element need to be used to handle focus movement.
*/
shouldUseLastFocusableShadowElement: boolean;
/**
* It indicates whether to scroll to selection after sorting.
*/
shouldScrollToSelectionAfterSorting: boolean;
/**
* It gets and sets the global filter value html element.
*/
get globalFilter(): any;
set globalFilter(globalFilter: any);
/**
* It gets and sets the Case Sensitive flag for filtering.
*/
caseSensitiveFilter: boolean;
/**
* It indicates whether the data table should be rendered as a tree data table.
*/
showAsTree: boolean;
/**
* It indicates the data structure for the new item
*/
editableNewDataItem: DataTableDataItem;
/**
* It gets and sets the data source of the data table.
*/
get items(): DataTableDataItem[];
set items(value: DataTableDataItem[]);
itemsChange: EventEmitter<any>;
/**
* It exposes the enum type then in template we can directly refer to the enum value name instead of enum value number.
*/
sortModeEnum: any;
/**
* It exposes the enum type then in template we can directly refer to the enum value name instead of enum value number.
*/
renderedItemTypeEnum: any;
/**
* It gets and sets the selection of the data source.
*/
get selection(): DataTableDataItem | DataTableDataItem[];
set selection(selection: DataTableDataItem | DataTableDataItem[]);
get selectionMode(): string | DataTableMultipleSelectMode;
set selectionMode(value: string | DataTableMultipleSelectMode);
defaultSortColumn: DataTableColumnComponent;
defaultSortMode: DataTableSortMode;
/**
* It emits the event when filtering is happening.
/**
* It triggers when a tree node is selected.
* @deprecated since 9/25/2019. Please use 'filter' instead
*/
get onFilter(): EventEmitter<string>;
filter: EventEmitter<string>;
doCustomSort: EventEmitter<DataTableCustomSortEvent>;
/**
* It emits the event when a row is selected.
* @deprecated since 9/25/2019. Please use 'rowSelected' instead
*/
get onRowSelect(): EventEmitter<{
data: DataTableDataItem;
}>;
rowSelected: EventEmitter<{
data: DataTableDataItem;
}>;
/**
* It emits the event when a row is unselected and no row is selected.
* @deprecated since 9/25/2019. Please use 'rowUnselected' instead
*/
get onRowUnselect(): EventEmitter<{
data: DataTableDataItem;
}>;
rowUnselected: EventEmitter<{
data: DataTableDataItem;
}>;
/**
* It gets or sets the group column.
*/
get groupColumn(): DataTableColumnComponent;
set groupColumn(value: DataTableColumnComponent);
/**
* It gets or sets the group sort mode.
*/
get groupSortMode(): DataTableSortMode;
set groupSortMode(value: DataTableSortMode);
/**
* It indicates whether the group toggle should be used to expand or collapse the group.
*/
useGroupToggle: boolean;
/**
* It indicates whether to show the header.
*/
showHeader: boolean;
/**
* It indicates the "aria-labelledby" value for the table.
*/
get tableAriaLabelledBy(): string;
set tableAriaLabelledBy(value: string);
/**
* It indicates the "aria-label" value for the table.
*/
get tableAriaLabel(): string;
set tableAriaLabel(value: string);
/**
* It indicates should the data table has the grid.
*/
showGrid: boolean;
/**
* It indicates whether to show the "all item" checkbox.
*/
showAllItemCheckbox: boolean;
/**
* It indicates whether to check the item and uncheck other items when the current item is checked.
*/
selectAndCheck: boolean;
/**
* It indicates the row height for each item.
*/
rowHeight: number;
/**
* It indicates whether to link the selections of parent nodes and child nodes.
* It only apply to tree table scenario.
*/
linkParentChildrenSelections: boolean;
/**
* It indicates whether to select the item when navigating with the keyboard (e.g. arrow keys, home, end, page up, page down)
*/
selectItemWhenNavigatingWithKeyboard: boolean;
/**
* It indicates whether the data table is scrollable.
*/
scrollable: boolean;
/**
* It indicates whether the data table's UI virtualization should be disabled.
*/
disableUIVirtualization: boolean;
/**
* It indicates whether the data table items are selectable
*/
selectable: boolean;
/**
* It indicates whether the editable data table allow automatically adding new rows
* Setting this to false then have to create new line outside of the datatable control
*/
editableAutoNewRow: boolean;
/**
* It indicates the default status of the group toggle.
*/
defaultGroupToggleExpanded: boolean;
autoRowHeight: boolean;
private columnsOrder;
groupToggleStatus: {
[group: string]: boolean;
};
nodeNavigatingTask: NodeNavigatingTask;
isColumnWidthCalculated: boolean;
private changeDetector;
private ngZone;
private layout;
constructor(injector: Injector);
getEditableDataChangeSet(): EditableDataChangeSet;
refreshData(): void;
resetScroll(): void;
ngOnInit(): void;
/**
* It calculates the actual selected row from the data table data and apply proper css class to it visually.
* @param renderedItem the rendered item for the data table.
* @returns true if the row should be displayed as selected, false otherwise.
*/
rowDisplayAsSelected(renderedItem: DataTableRenderedItem): boolean;
onHeaderTablePressed(event: KeyboardEvent): void;
onContentTableKeyUp(event: KeyboardEvent): void;
private arbitraryScroll;
onContentTablePressed(event: KeyboardEvent): void;
private onContentTablePressedShowAsTreeHelper;
/**
* It handles the keyboard press event for enter and space
* To trigger this function, either focus on table row or table row cell template and
* click the 'enter' or 'space' button.
*/
private onContentTablePressedEnterSpace;
private onContentTablePressedRightArrow;
private onContentTablePressedLeftArrow;
isTreeTableParentNode(treeNodeItem: DataTableRenderedItem): boolean;
onContentItemFocused(event: FocusEvent, renderedItem: DataTableRenderedItem): void;
onContentItemBlurred(event: any, renderedItem: DataTableRenderedItem): void;
deleteEditableDataRow(data: any): void;
onLastFocusableShadowElementFocused(event: any): void;
generateNGClassForRenderedItem(renderedItem: DataTableRenderedItem): any;
shouldAllItemCheckBoxChecked(): boolean;
setHoveredRenderedItem(renderedItem: DataTableRenderedItem): void;
unsetHoveredRenderedItem(renderedItem: DataTableRenderedItem): void;
private getIsFocusingOutFromLastFormField;
handleRenderedItemRowFocusOut(renderedItem: DataTableRenderedItem): void;
shouldShowEditRow(renderedItem: DataTableRenderedItem): boolean;
/**
* Retrieves the text that should be associated with the aria-label for column sort order (if sortable).
* This label is utilized by screen readers for accessibility.
* If the current sort order is Ascending, the label will indicate a button icon is present to Descend order.
* If the current sort order is Descending, the label will indicate a button icon is present to Ascend order.
* If the current sort order is None, the label is null, and the screen reader will not read anything.
* @param column the table column
* @returns the text for the aria-label on the sort icon
*/
getSortLabel(column: DataTableColumnComponent): string;
/**
* It implements the AfterViewInit interface.
*/
ngAfterViewInit(): void;
private checkImmediateValidation;
/**
* It implements the OnDestroy interface.
*/
ngOnDestroy(): void;
/**
* It implements the AfterViewChecked interface.
*/
ngAfterViewChecked(): void;
/**
* It handles the selection of the given data table item.
*/
selectItem(event: MouseEvent | KeyboardEvent, item: DataTableRenderedItem): void;
/**
* function to focus on empty message when the data table is empty
*/
private tryToFocusEmptyMessage;
private deferredTryToFocusEmptyMessage;
private resetTryToFocusEmptyMessageCount;
/**
* It returns the no records message when the data table is empty.
*/
getNoRecordsMessage(): string;
/**
* It determines whether to, or not to show the No-Records Message.
*/
showNoRecordsMessage(): boolean;
/**
* It handles the behavior that when a group toggle is clicked.
*/
clickGroupToggle(item: DataTableRenderedItem, toggleStatusOverriddenValue?: boolean): void;
/**
* It handles the behavior that when a tree node toggle is clicked.
*/
clickTreeToggle(event: Event, item: DataTableRenderedItem, toggleStatusOverriddenValue?: boolean): void;
/**
* It expands all the groups.
*/
expandAllGroup(): void;
/**
* It collapses all the groups.
*/
collapseAllGroup(): void;
/**
* It returns the boolean to indicate whether the given column is the first data column.
* The returned value can be used to add some custom css for the first data column when grouping is enabled.
*/
isFirstDataColumn(column: DataTableColumnComponent): boolean;
/**
* Return id if the column is the first and rendered item has a valid index, otherwise return null
*/
getFirstColumnId(column: DataTableColumnComponent, renderedItem: DataTableRenderedItem): string;
onColumnResizing(event: any): void;
onColumnResized(columnIndex: number, event: any): void;
/**
* It handles the column clicking.
*/
clickColumn(column: DataTableColumnComponent): void;
/**
* It handles the row double clicking.
*/
doubleClickRow(event: MouseEvent, item: DataTableRenderedItem): void;
/**
* It scrolls the selected item into the view and
*/
scrollSelectedItemIntoView(tryToMoveToCenter?: boolean): void;
/**
* It handles the clicking behavior of checkbox.
* Multiple selection behavior is happening here.
*/
onItemCheckBoxClicked(item: DataTableRenderedItem, isFromKeyboard?: boolean): void;
/**
* It handles the "check all" checkbox behavior.
*/
onAllItemCheckBoxClicked(): void;
/**
* It indicates whether the given item is selected.
*/
isItemSelected(item: DataTableRenderedItem): boolean;
/**
* It indicates whether a group with the given name is expanded.
*/
isGroupExpanded(group: string): boolean;
/**
* It gets and sets the virtual count.
* It only works when "lazyLoad" is true.
*/
get virtualCount(): number;
set virtualCount(value: number);
/**
* It resolves the object properties based on the given path with multiple levels of properties.
* An example of path is "location.zipCode".
*/
resolveObjectPath(obj: any, path: string): any;
/**
* It returns the active rendered item index.
*/
getActiveRenderedItemIndex(): number;
private setActiveRenderedItemIndex;
/**
* It returns the active focused item index.
*/
getActiveFocusedItemIndex(): number;
private selectOrFocusRowByIndex;
/**
* Gets the table cell item.
* @param rowIndex The row index for getting all the table cells
* @returns the HTML element for the table cell.
*/
getTableCells(rowIndex: number): HTMLElement;
/**
* Moves to head of the whole rendered item list.
*/
moveToHeadOfRenderedItems(doSelection?: boolean): void;
/**
* Moves to previous page of the rendered item list.
*/
moveToPreviousPageOfRenderedItems(doSelection?: boolean): void;
/**
* Moves to previous item in the rendered item list.
*/
moveToPreviousRenderedItem(doSelection?: boolean): void;
/**
* Moves to next item in the rendered item list.
* @param doSelection if true will do selection and focus, otherwise focus only
*/
moveToNextRenderedItem(doSelection?: boolean, columnIndex?: number): void;
/**
* Moves to next page of the rendered item list.
*/
moveToNextPageOfRenderedItems(doSelection?: boolean): void;
/**
* Moves to end of the whole rendered list.
*/
moveToEndOfRenderedItems(doSelection?: boolean): void;
/**
* Activate the rendered item by condition.
* Activate doesn't mean select. It just indicates which item is active to received more operations especially keyboard operations.
*/
activateRenderedItemByCondition(condition: (item: DataTableDataItem) => boolean, doSelection: boolean): void;
/**
* Activate the rendered item by index.
* Activate doesn't mean select. It just indicates which item is active to received more operations especially keyboard operations.
*/
private activateRenderedItemByIndex;
private tryToFocusRowByIndex;
getAriaExpandedAttributeValue(renderedItem: DataTableRenderedItem): string;
getAdditionalScreenRecorderContent(renderedItem: DataTableRenderedItem): string;
onEditableDataChanged(renderedItem: DataTableRenderedItem, field: string): void;
resetEditableDataChangeset(): void;
onValidationAlertHandler(renderedItem: DataTableRenderedItem, field: string, alert: any): void;
hasValidationError(renderedItem: DataTableRenderedItem): boolean;
getRoleAttributeForTreeTableRow(renderedItem: DataTableRenderedItem): string;
getAriaSortAttributeValue(column: DataTableColumnComponent): string;
clearSelection(keepHighlightFromRow?: boolean): void;
checkIsTableRenderedOnPhoneDownWithMinHeight(shouldEmit?: boolean, forceLayout?: boolean): boolean;
removeHighlightFromRow(): void;
navigateByPath(pathSections: string[], getNodeLabelHandler: (node: TreeNodeDataItem) => string, onTaskFinishedHandler?: (found: boolean) => void, isNodeLoadingHandler?: (node: TreeNodeDataItem) => boolean, timeout?: number, onlyTriggerSelectionForLastNode?: boolean, matchFirstAFew?: boolean): void;
getAllItemCheckBoxAriaLabel(): string;
protected getInitialHostClasses(): string[];
private handlePathNavigation;
private initializeUI;
private sortItems;
private defaultSortCompareFunction;
private hasVerticalOverflow;
private alignScrollBar;
private calculateScrollbarWidth;
private calculateItemInViewPort;
private processFilter;
private updateAriaAttributes;
private handleTreeNode;
private generateRenderItems;
private renderItems;
private handleScrollAboveDataElement;
onLayoutChangedResponsiveWindow(): void;
/**
* Give the access of this function on special situation where dialog contains data-table
*/
refresh(): void;
/**
* The on window breakpoint changed handler.
* Adding yield for component to get ElementRef after initialization.
*/
private onWindowBreakpointChanged;
private onLayoutChanged;
private deferredOnLayoutChanged;
private handleTreeNodeSelection;
private alignContent;
/**
* The try to focus on row function; if there are no records, the no records message is selected
* @param index Only pass in index if needs focus only
*/
private tryToFocusSelectedRow;
private onElementFocusing;
private processColumns;
private processColumnsMain;
private processActualColumns;
processColumnsByOrder(order: Array<string>): void;
/**
* Get the number of filtered items (if any) within the dataTable.
* @returns number of dataTable filtered items, zero if none.
*/
getNumberOfFilteredItems(): number;
/**
* Get the tooltip handler that should be used for data table column.
* @param column Column for tooltip handler
* @param renderedItem Data item for the row
* @returns Tooltip string if exists.
*/
getColumnTooltipText(column: DataTableColumnComponent, renderedItem: DataTableRenderedItem): string;
/**
* This function is added from upgrading data table to support editable data table
* The idea is to use the data table's header width to be applied on the data table body columns.
* When not showing headers, need to use the header's width to be applied to td as well.
*/
private calculateColumnDomWidths;
/**
* This function gives one more tick so that the loading wheel can stand one more html rendering life cycle
* This fixes a bug related to data table on load mis-aligned
* @param input boolean
*/
private setIsColumnWidthCalculated;
private updateActiveRenderedItemIndexBySelection;
private getTreeNodeDataIdentity;
private selectAll;
applyQueryEditor(validatedQueryEditorList: QueryData): void;
private queryEditorFilterMain;
private queryEditorFilterByTimespanDropdown;
private queryEditorFilterByMultipleSelection;
/**
* The handler for collapsing, checking if node1 contains node2.
* @param node1 the node as root to check if it contains node2.
* @param node2 the node to be checked if children of node1.
* @returns true if node1 contains node2.
*/
private treeTableCollapseHandler;
/**
* Creates the idBag used by this component to store unique element ids.
*/
protected createIdBag(): MsftSme.StringMap<string>;
static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "sme-data-table", never, { "isBusy": "isBusy"; "enableRightClickSelect": "enableRightClickSelect"; "loadingMessage": "loadingMessage"; "noRecordMessage": "noRecordMessage"; "editable": "editable"; "expandTreeNodeOnChecked": "expandTreeNodeOnChecked"; "isAllEditableRowsVisible": "isAllEditableRowsVisible"; "scrollableHorizontal": "scrollableHorizontal"; "lazyLoad": "lazyLoad"; "rememberTreeNodeToggle": "rememberTreeNodeToggle"; "rememberSelection": "rememberSelection"; "preventEnterKeyForDefaultAction": "preventEnterKeyForDefaultAction"; "getItemIdentityFunction": "getItemIdentityFunction"; "disableNaturalSort": "disableNaturalSort"; "enableDefaultTooltips": "enableDefaultTooltips"; "shouldScrollToSelectionAfterSorting": "shouldScrollToSelectionAfterSorting"; "globalFilter": "globalFilter"; "caseSensitiveFilter": "caseSensitiveFilter"; "showAsTree": "showAsTree"; "editableNewDataItem": "editableNewDataItem"; "items": "items"; "selection": "selection"; "selectionMode": "selectionMode"; "defaultSortColumn": "defaultSortColumn"; "defaultSortMode": "defaultSortMode"; "groupColumn": "groupColumn"; "groupSortMode": "groupSortMode"; "useGroupToggle": "useGroupToggle"; "showHeader": "showHeader"; "tableAriaLabelledBy": "tableAriaLabelledBy"; "tableAriaLabel": "tableAriaLabel"; "showGrid": "showGrid"; "showAllItemCheckbox": "showAllItemCheckbox"; "selectAndCheck": "selectAndCheck"; "rowHeight": "rowHeight"; "linkParentChildrenSelections": "linkParentChildrenSelections"; "selectItemWhenNavigatingWithKeyboard": "selectItemWhenNavigatingWithKeyboard"; "scrollable": "scrollable"; "disableUIVirtualization": "disableUIVirtualization"; "selectable": "selectable"; "editableAutoNewRow": "editableAutoNewRow"; "defaultGroupToggleExpanded": "defaultGroupToggleExpanded"; "autoRowHeight": "autoRowHeight"; "virtualCount": "virtualCount"; }, { "onChangesetUpdated": "onChangesetUpdated"; "changesetUpdated": "changesetUpdated"; "selectionChange": "selectionChange"; "isTableRenderedWithMinHeightPhoneDown": "isTableRenderedWithMinHeightPhoneDown"; "onRowDblclick": "onRowDblclick"; "rowDblclick": "rowDblclick"; "onGroupToggleClicked": "onGroupToggleClicked"; "groupToggleClick": "groupToggleClick"; "onNewEditableRowAdded": "onNewEditableRowAdded"; "editableRowAdded": "editableRowAdded"; "renderedItemsChange": "renderedItemsChange"; "lazyLoadingData": "lazyLoadingData"; "onNodeExpand": "onNodeExpand"; "nodeExpanded": "nodeExpanded"; "onNodeCollapsed": "onNodeCollapsed"; "nodeCollapsed": "nodeCollapsed"; "onNodeSelect": "onNodeSelect"; "nodeSelected": "nodeSelected"; "itemsChange": "itemsChange"; "onFilter": "onFilter"; "filter": "filter"; "doCustomSort": "doCustomSort"; "onRowSelect": "onRowSelect"; "rowSelected": "rowSelected"; "onRowUnselect": "onRowUnselect"; "rowUnselected": "rowUnselected"; }, ["groupHeaderTemplate", "columns"], never, false, never>;
}
/**
* the tree grid accessibility documentations: https://wiki.mozilla.org/Accessibility/TreeGrid
*/
export declare class TreeTableComponent extends DataTableComponent {
/**
* The source name to use for logging
*/
protected get logSourceName(): string;
constructor(injector: Injector);
protected getInitialHostClasses(): string[];
static ɵfac: i0.ɵɵFactoryDeclaration<TreeTableComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TreeTableComponent, "sme-tree-table", never, {}, {}, never, never, false, never>;
}