@hashicorp/design-system-components
Version:
Helios Design System Components
53 lines (52 loc) • 2.89 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import HdsAdvancedTableRow from './row.ts';
import HdsAdvancedTableColumn from './column.ts';
import type { HdsAdvancedTableSignature } from '../index.ts';
import type { HdsAdvancedTableExpandState, HdsAdvancedTableCell, HdsAdvancedTableColumnReorderCallback, HdsAdvancedTableColumnReorderSide, HdsAdvancedTableSortingFunction } from '../types';
type HdsAdvancedTableTableArgs = Pick<HdsAdvancedTableSignature['Args'], 'model' | 'columns' | 'columnOrder' | 'childrenKey' | 'hasReorderableColumns' | 'hasResizableColumns' | 'sortBy' | 'sortOrder' | 'onSort' | 'onColumnReorder' | 'onColumnResize'>;
export default class HdsAdvancedTableTableModel {
columns: HdsAdvancedTableColumn[];
columnOrder: string[];
reorderDraggedColumn: HdsAdvancedTableColumn | null;
reorderHoveredColumn: HdsAdvancedTableColumn | null;
rows: HdsAdvancedTableRow[];
sortBy: HdsAdvancedTableTableArgs['sortBy'];
sortOrder: HdsAdvancedTableTableArgs['sortOrder'];
gridElement?: HTMLDivElement;
childrenKey?: HdsAdvancedTableTableArgs['childrenKey'];
hasReorderableColumns?: HdsAdvancedTableTableArgs['hasReorderableColumns'];
hasResizableColumns?: HdsAdvancedTableTableArgs['hasResizableColumns'];
onColumnReorder?: HdsAdvancedTableColumnReorderCallback;
onSort?: HdsAdvancedTableSignature['Args']['onSort'];
constructor(args: HdsAdvancedTableTableArgs);
get hasColumnBeingDragged(): boolean;
get reorderDraggedColumnCells(): HdsAdvancedTableCell[];
get orderedColumns(): HdsAdvancedTableColumn[];
get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown>;
get sortedRows(): HdsAdvancedTableRow[];
get totalRowCount(): number;
get flattenedVisibleRows(): HdsAdvancedTableRow[];
get lastVisibleRow(): HdsAdvancedTableRow | undefined;
get hasRowsWithChildren(): boolean;
get allRowsAreOpen(): boolean;
get expandState(): HdsAdvancedTableExpandState;
setTransientColumnWidths(options?: {
roundValues?: boolean;
}): void;
resetTransientColumnWidths(): void;
getColumnByKey(key: string): HdsAdvancedTableColumn | undefined;
setupData(args: Pick<HdsAdvancedTableTableArgs, 'model' | 'columns' | 'sortBy' | 'sortOrder'>): void;
restoreColumnWidths(): void;
setSortBy(column: string): void;
openAll(): void;
collapseAll(): void;
toggleAll(): void;
stepColumn(column: HdsAdvancedTableColumn, step: number): void;
moveColumnToTerminalPosition(column: HdsAdvancedTableColumn, position: 'start' | 'end'): void;
moveColumnToTarget(sourceColumn: HdsAdvancedTableColumn, targetColumn: HdsAdvancedTableColumn, side: HdsAdvancedTableColumnReorderSide): void;
moveColumnToDropTarget(targetColumn: HdsAdvancedTableColumn, side: HdsAdvancedTableColumnReorderSide): void;
}
export {};