UNPKG

@hashicorp/design-system-components

Version:
53 lines (52 loc) 2.89 kB
/** * 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 {};