import type { Table } from '..'; import { type TableHeader } from '../components/header'; import { TableColumnSortDirection, type TableRecord, TableRowSelectionState } from '../types'; import { type MenuButton } from '../../menu-button'; import { type TableCell } from '../components/cell'; import type { TableGroupHeaderView } from '../../table-column/base/group-header-view'; import { TableCellView } from '../../table-column/base/cell-view'; import { type TableRow } from '../components/row'; import { Anchor } from '../../anchor'; import type { IconSeverity } from '../../icon-base/types'; /** * Summary information about a column that is sorted in the table for use in the `TablePageObject`. */ export interface SortedColumn { columnId?: string; sortDirection: TableColumnSortDirection; } /** * Page object for the `nimble-table` component to provide consistent ways * of querying and interacting with the component during tests. */ export declare class TablePageObject { private readonly tableElement; constructor(tableElement: Table); getRenderedHeaderCount(): number; getRenderedCellCountForRow(rowIndex: number): number; getHeaderContent(columnIndex: number): Node | undefined; getHeaderElement(columnIndex: number): TableHeader; getHeaderTitle(columnIndex: number): string; getHeaderTextContent(columnIndex: number): string; dispatchEventToHeader(columnIndex: number, event: Event): boolean | undefined; getHeaderRenderedWidth(columnIndex: number): number; clickColumnHeader(columnIndex: number, shiftKeyDown?: boolean): Promise; getRenderedRowCount(): number; getRenderedGroupRowCount(): number; getAllGroupRowsExpandedState(): boolean[]; getAllDataRowsExpandedState(): boolean[]; getRenderedCellView(rowIndex: number, columnIndex: number): TableCellView; getRenderedCellViewById(recordId: string, columnId: string): TableCellView; getRenderedCellTextContent(rowIndex: number, columnIndex: number): string; getRenderedCellAnchor(rowIndex: number, columnIndex: number): Anchor; getRenderedMappingColumnCellIconTagName(rowIndex: number, columnIndex: number): string; getRenderedMappingColumnCellIconSeverity(rowIndex: number, columnIndex: number): IconSeverity; getRenderedGroupHeaderTextContent(groupRowIndex: number): string; getAllRenderedGroupHeaderTextContent(): string[]; getCellTitle(rowIndex: number, columnIndex: number): string; dispatchEventToCell(rowIndex: number, columnIndex: number, event: Event): boolean | undefined; getGroupHeaderTitle(groupRowIndex: number): string; dispatchEventToGroupHeader(groupRowIndex: number, event: Event): boolean | undefined; getRecordId(rowIndex: number): string | undefined; getRowWidth(): number; sizeTableToGivenRowWidth(rowWidth: number, table: Table): Promise; getCellRenderedWidth(rowIndex: number, columnIndex: number): number; getTotalCellRenderedWidth(): number; scrollToFirstRowAsync(): Promise; scrollToLastRowAsync(): Promise; getCellActionMenu(rowIndex: number, columnIndex: number): MenuButton | null; clickCellActionMenu(rowIndex: number, columnIndex: number): Promise; isCellActionMenuVisible(rowIndex: number, columnIndex: number): boolean; setRowHoverState(rowIndex: number, hover: boolean): void; clickGroupRow(groupRowIndex: number): Promise; clickRow(rowIndex: number, modifiers?: { shiftKey?: boolean; ctrlKey?: boolean; }): Promise; getIsRowSelectable(rowIndex: number): boolean; getIsRowSelected(rowIndex: number): boolean; toggleGroupRowExpandedState(groupRowIndex: number): void; clickCollapseAllButton(): void; clickDataRowExpandCollapseButton(rowIndex: number): void; isCollapseAllButtonVisible(): boolean; isCollapseAllButtonSpaceReserved(): boolean; isDataRowExpandCollapseButtonVisible(rowIndex: number): boolean; isDataRowLoadingSpinnerVisible(rowIndex: number): boolean; isTableSelectionCheckboxVisible(): boolean; getTableSelectionState(): TableRowSelectionState; clickTableSelectionCheckbox(): void; isRowSelectionCheckboxVisible(rowIndex: number): boolean; getRowSelectionState(rowIndex: number): TableRowSelectionState; clickRowSelectionCheckbox(rowIndex: number, shiftKey?: boolean): void; getGroupRowSelectionState(groupRowIndex: number): TableRowSelectionState; clickGroupRowSelectionCheckbox(groupRowIndex: number, shiftKey?: boolean): void; /** * @param columnIndex The index of the column to the left of the divider to press. */ pressRightColumnDivider(columnIndex: number): void; /** * @param columnIndex The index of the column to the left of the divider to release. */ releaseRightColumnDivider(columnIndex: number): void; /** * @param columnIndex The index of the column to the left of a divider being dragged. Thus, this * cannot be given a value representing the last visible column index. * @param deltas The series of mouse movements in the x-direction while sizing a column. */ dragSizeColumnByRightDivider(columnIndex: number, deltas: readonly number[]): void; /** * @param columnIndex The index of the column to the right of a divider being dragged. Thus, this * value must be greater than 0 and less than the total number of visible columns. * @param deltas The series of mouse movements in the x-direction while sizing a column. */ dragSizeColumnByLeftDivider(columnIndex: number, deltas: readonly number[]): void; /** * @param columnIndex The index of the column whose right divider we're checking. */ columnRightDividerHasActiveStyling(columnIndex: number): boolean; isVerticalScrollbarVisible(): boolean; isHorizontalScrollbarVisible(): boolean; getSortedColumns(): SortedColumn[]; getGroupedColumns(): string[]; getChildRowCountForGroup(groupRowIndex: number): number; /** @internal */ isRowHoverStylingEnabled(): boolean; /** @internal */ getGroupRowHeaderView(groupRowIndex: number): TableGroupHeaderView; /** @internal */ getRow(rowIndex: number): TableRow; /** @internal */ getCell(rowIndex: number, columnIndex: number): TableCell; private getRowById; private getCellById; private getCollapseAllButton; private getExpandCollapseButtonForRow; private getSelectionCheckboxForRow; private getSelectionCheckboxForGroupRow; private getSelectionCheckboxForTable; private isCheckboxVisible; private getSelectionStateOfCheckbox; private getGroupRow; private getHeaderContentElement; private getRenderedMappingColumnIconOrSpinner; private getColumnDivider; private pressColumnDivider; private releaseColumnDivider; private dragSizeColumnByDivider; private readonly isSlotElement; }