@hashicorp/design-system-components
Version:
Helios Design System Components
53 lines (52 loc) • 2.41 kB
TypeScript
/**
* Copyright IBM Corp. 2021, 2025
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@glimmer/component';
import type { HdsDropdownSignature } from '../dropdown/index';
import type { HdsDropdownToggleIconSignature } from '../dropdown/toggle/icon';
import type { HdsAdvancedTableSignature } from './index';
import type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle';
import type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle';
import type HdsIntlService from '../../../services/hds-intl.ts';
import type { HdsAdvancedTableNormalizedColumn } from './types.ts';
interface HdsAdvancedTableThContextMenuOption {
key: string;
icon?: HdsDropdownToggleIconSignature['Args']['icon'];
label?: string;
action?: (dropdownCloseCallback: () => void) => void;
}
export interface HdsAdvancedTableThContextMenuSignature {
Args: {
column: HdsAdvancedTableNormalizedColumn;
isFirstColumn: boolean;
isFirstNonStickyColumn: boolean;
isLastColumn: boolean;
hasResizableColumns?: boolean;
hasReorderableColumns?: boolean;
isStickyColumn?: boolean;
reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];
resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];
onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];
onFocusReorderHandle?: () => void;
onMoveColumnToTerminalPosition?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], position: 'start' | 'end') => void;
onPinFirstColumn?: () => void;
onRestoreColumnWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void;
};
Element: HdsDropdownSignature['Element'];
}
export default class HdsAdvancedTableThContextMenu extends Component<HdsAdvancedTableThContextMenuSignature> {
readonly hdsIntl: HdsIntlService;
private _toggleElement;
get _resizeOptions(): HdsAdvancedTableThContextMenuOption[];
get _reorderOptions(): HdsAdvancedTableThContextMenuOption[];
get _stickyColumnOptions(): HdsAdvancedTableThContextMenuOption[];
get _options(): HdsAdvancedTableThContextMenuOption[];
private _registerDropdownToggleElement;
private _resizeColumn;
private _resetColumnWidth;
private _moveColumn;
private _moveColumnToPosition;
private _pinFirstColumn;
}
export {};