@hashicorp/design-system-components
Version:
Helios Design System Components
47 lines (46 loc) • 2.02 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@glimmer/component';
import type HdsAdvancedTableColumn from './models/column.ts';
import type { HdsDropdownSignature } from '../dropdown/index.ts';
import type { HdsDropdownToggleIconSignature } from '../dropdown/toggle/icon.ts';
import type { HdsAdvancedTableSignature } from './index.ts';
import type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';
import type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';
import type HdsIntlService from '../../../services/hds-intl.ts';
interface HdsAdvancedTableThContextMenuOption {
key: string;
icon?: HdsDropdownToggleIconSignature['Args']['icon'];
label?: string;
action?: (dropdownCloseCallback: () => void) => void;
}
export interface HdsAdvancedTableThContextMenuSignature {
Args: {
column: HdsAdvancedTableColumn;
hasResizableColumns?: boolean;
hasReorderableColumns?: boolean;
isStickyColumn?: boolean;
reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];
resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];
onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];
onPinFirstColumn?: () => void;
};
Element: HdsDropdownSignature['Element'];
}
export default class HdsAdvancedTableThContextMenu extends Component<HdsAdvancedTableThContextMenuSignature> {
hdsIntl: HdsIntlService;
private _element;
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 {};