@hashicorp/design-system-components
Version:
Helios Design System Components
60 lines (59 loc) • 2.81 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@glimmer/component';
import { type FocusableElement } from 'tabbable';
import type Owner from '@ember/owner';
import { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';
import type { HdsAdvancedTableHorizontalAlignment, HdsAdvancedTableThSortOrder, HdsAdvancedTableThSortOrderLabels, HdsAdvancedTableColumnReorderSide } from './types.ts';
import type { HdsAdvancedTableThButtonSortSignature } from './th-button-sort.ts';
import type { HdsAdvancedTableThSignature } from './th.ts';
import type { HdsAdvancedTableSignature } from './index.ts';
import type HdsAdvancedTableColumn from './models/column.ts';
export declare const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[];
export declare const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;
export interface HdsAdvancedTableThSortSignature {
Args: {
column?: HdsAdvancedTableThSignature['Args']['column'];
align?: HdsAdvancedTableHorizontalAlignment;
hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];
hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];
hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];
onClickSort?: HdsAdvancedTableThButtonSortSignature['Args']['onClick'];
sortOrder?: HdsAdvancedTableThSortOrder;
tooltip?: string;
rowspan?: number;
colspan?: number;
tableHeight?: number;
isStickyColumn?: boolean;
isStickyColumnPinned?: boolean;
onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];
onPinFirstColumn?: () => void;
onReorderDragEnd?: () => void;
onReorderDragStart?: (column: HdsAdvancedTableColumn) => void;
onReorderDrop?: (column: HdsAdvancedTableColumn, side: HdsAdvancedTableColumnReorderSide) => void;
};
Blocks: {
default?: [];
};
Element: HTMLDivElement;
}
export default class HdsAdvancedTableThSort extends Component<HdsAdvancedTableThSortSignature> {
private _labelId;
private _element;
private _shouldTrapFocus;
private _reorderHandleElement?;
private _resizeHandleElement?;
constructor(owner: Owner, args: HdsAdvancedTableThSortSignature['Args']);
get ariaSort(): HdsAdvancedTableThSortOrderLabels;
get align(): HdsAdvancedTableHorizontalAlignment;
get classNames(): string;
handleDragStart(column: HdsAdvancedTableColumn): void;
onFocusTrapDeactivate(): void;
enableFocusTrap(): void;
getInitialFocus(): FocusableElement | undefined;
setElement(element: HTMLDivElement): void;
private _registerReorderHandleElement;
private _registerResizeHandleElement;
}