UNPKG

@hashicorp/design-system-components

Version:
122 lines (121 loc) 6.51 kB
/** * Copyright IBM Corp. 2021, 2025 * SPDX-License-Identifier: MPL-2.0 */ import Component from '@glimmer/component'; import { type FocusableElement } from 'tabbable'; import { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts'; import type { HdsAdvancedTableHorizontalAlignment, HdsAdvancedTableScope, HdsAdvancedTableExpandState, HdsAdvancedTableColumnReorderSide, HdsAdvancedTableNormalizedColumn, HdsAdvancedTableThSortOrderLabels, HdsAdvancedTableThSortOrder } from './types.ts'; import type { HdsCompositeSignature } from '../composite/index'; import type { HdsAdvancedTableThButtonSortSignature } from './th-button-sort'; import type { HdsAdvancedTableSignature } from './index'; import type Owner from '@ember/owner'; export declare const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[]; export declare const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left; export interface HdsAdvancedTableThSignature { Args: { align?: HdsAdvancedTableHorizontalAlignment; column?: HdsAdvancedTableNormalizedColumn; colspan?: number; compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item']; isCompositeItemDisabled?: boolean; depth?: number; draggedColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null; firstColumnKey?: HdsAdvancedTableNormalizedColumn['key']; firstNonStickyColumnKey?: HdsAdvancedTableNormalizedColumn['key']; hasExpandAllButton?: boolean; hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns']; hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns']; hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable']; hasStickyFirstColumn?: HdsAdvancedTableSignature['Args']['hasStickyFirstColumn']; isExpandable?: boolean; isExpanded?: HdsAdvancedTableExpandState; isStickyColumn?: boolean; isStickyColumnPinned?: boolean; lastColumnKey?: HdsAdvancedTableNormalizedColumn['key']; newLabel?: string; parentId?: string; reorderHoveredColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null; rowspan?: number; scope?: HdsAdvancedTableScope; siblingColumnKeys?: { previous?: HdsAdvancedTableNormalizedColumn['key']; next?: HdsAdvancedTableNormalizedColumn['key']; }; draggedColumnSiblingColumnKeys?: { previous?: HdsAdvancedTableNormalizedColumn['key']; next?: HdsAdvancedTableNormalizedColumn['key']; }; sortOrder?: HdsAdvancedTableThSortOrder; tableHeight?: number; tooltip?: string; didInsertExpandButton?: (button: HTMLButtonElement) => void; onApplyTransientWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void; onClickSort?: HdsAdvancedTableThButtonSortSignature['Args']['onClick']; onClickToggle?: () => void; onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize']; onGetAppliedWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn['width']; onGetColumnByKey?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn | undefined; onMoveColumnToTerminalPosition?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], position: 'start' | 'end') => void; onPinFirstColumn?: () => void; onReorderDrop?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], side: HdsAdvancedTableColumnReorderSide) => void; onResetTransientColumnWidths?: () => void; onRestoreColumnWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void; onSetDraggedColumnKey?: (key: HdsAdvancedTableNormalizedColumn['key'] | null) => void; onSetReorderHoveredColumnKey?: (key: HdsAdvancedTableNormalizedColumn['key'] | null) => void; onSetTransientColumnWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], width: `${number}px`) => void; onSetTransientColumnWidths?: (options: { roundValues?: boolean; }) => void; onStepColumn?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], step: number) => void; onUpdateResizeDebt?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], delta: number) => void; willDestroyExpandButton?: (button: HTMLButtonElement) => void; }; Blocks: { default?: []; }; Element: HTMLDivElement; } export default class HdsAdvancedTableTh extends Component<HdsAdvancedTableThSignature> { private _labelId; private _element; private _shouldTrapFocus; private _reorderHandleElement?; private _resizeHandleElement?; constructor(owner: Owner, args: HdsAdvancedTableThSignature['Args']); get isSortable(): boolean; get isFirstColumn(): boolean; get isFirstNonStickyColumn(): boolean; get isLastColumn(): boolean; get tableHasColumnBeingDragged(): boolean; get isColumnBeingDragged(): boolean; get scope(): HdsAdvancedTableScope; get role(): string; get ariaSort(): HdsAdvancedTableThSortOrderLabels; get align(): HdsAdvancedTableHorizontalAlignment; get rowspan(): string; get colspan(): string | undefined; get paddingLeft(): string | undefined; get classNames(): string; get showDropTarget(): boolean; get showResizeHandle(): boolean; onFocusTrapDeactivate(): void; enableFocusTrap(): void; getInitialFocus(): FocusableElement | undefined; focusReorderHandle(): void; applyTransientWidth(columnKey: HdsAdvancedTableNormalizedColumn['key']): void; resetTransientColumnWidths(): void; getAppliedWidth(columnKey: HdsAdvancedTableNormalizedColumn['key']): HdsAdvancedTableNormalizedColumn['width'] | undefined; getColumnByKey(columnKey: HdsAdvancedTableNormalizedColumn['key']): HdsAdvancedTableNormalizedColumn | undefined; setDraggedColumnKey(columnKey: HdsAdvancedTableNormalizedColumn['key'] | null): void; setTransientColumnWidth(columnKey: HdsAdvancedTableNormalizedColumn['key'], width: `${number}px`): void; setTransientColumnWidths(options: { roundValues?: boolean; }): void; stepColumn(step: number): void; updateResizeDebt(delta: number): void; setElement(element: HTMLDivElement): void; private _registerReorderHandleElement; private _registerResizeHandleElement; private _manageExpandButton; }