UNPKG

@hashicorp/design-system-components

Version:
78 lines (77 loc) 4.82 kB
/** * Copyright IBM Corp. 2021, 2025 * SPDX-License-Identifier: MPL-2.0 */ import Component from '@glimmer/component'; import { TrackedMap } from 'tracked-built-ins'; import type { ModifierLike } from '@glint/template'; import type { HdsAdvancedTableSyncWidthValuesSignature } from './width'; import type { HdsAdvancedTableSyncColumnOrderSignature } from './order'; import type { HdsAdvancedTableColumn, HdsAdvancedTableColumnReorderSide, HdsAdvancedTableNormalizedColumn } from '../types.ts'; import type { HdsAdvancedTableSignature } from '../index'; export interface HdsAdvancedTableSyncThElementsSignature { Element: HTMLDivElement; Args: { Positional: [HdsAdvancedTableColumn['key']]; }; } export interface HdsAdvancedTableColumnManagerSignature { Args: { columns: HdsAdvancedTableColumn[]; columnOrder: HdsAdvancedTableSignature['Args']['columnOrder']; hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns']; hasStickyFirstColumn?: HdsAdvancedTableSignature['Args']['hasStickyFirstColumn']; isSelectable?: HdsAdvancedTableSignature['Args']['isSelectable']; onColumnReorder: HdsAdvancedTableSignature['Args']['onColumnReorder']; }; Blocks: { default: [ { columns: HdsAdvancedTableNormalizedColumn[]; columnOrder: HdsAdvancedTableSignature['Args']['columnOrder']; draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null; firstColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined; firstNonStickyColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined; gridTemplateColumns: string; lastColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined; orderedColumns: HdsAdvancedTableNormalizedColumn[]; reorderHoveredColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null; syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>; syncThElements: ModifierLike<HdsAdvancedTableSyncThElementsSignature>; syncWidthValues: ModifierLike<HdsAdvancedTableSyncWidthValuesSignature>; applyTransientWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void; getAppliedWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn['width']; getColumnByKey: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn | undefined; getSiblingColumnKeys: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => { previous?: HdsAdvancedTableNormalizedColumn['key']; next?: HdsAdvancedTableNormalizedColumn['key']; }; moveColumnToDropTarget: (columnKey: HdsAdvancedTableNormalizedColumn['key'], side: HdsAdvancedTableColumnReorderSide) => void; moveColumnToTarget: (columnKey: HdsAdvancedTableNormalizedColumn['key'], targetColumnKey: HdsAdvancedTableNormalizedColumn['key'], side: HdsAdvancedTableColumnReorderSide) => void; moveColumnToTerminalPosition: (columnKey: HdsAdvancedTableNormalizedColumn['key'], position: 'start' | 'end') => void; restoreColumnWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void; setDraggedColumnKey: (columnKey: HdsAdvancedTableNormalizedColumn['key'] | null) => void; setReorderHoveredColumnKey: (key: HdsAdvancedTableNormalizedColumn['key'] | null) => void; setTransientColumnWidths: (options: { roundValues?: boolean; }) => void; setTransientColumnWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key'], width: `${number}px`, clamped?: boolean) => void; resetTransientColumnWidths: () => void; stepColumn: (columnKey: HdsAdvancedTableNormalizedColumn['key'], step: number) => void; updateResizeDebt: (columnKey: HdsAdvancedTableNormalizedColumn['key'], delta: number) => void; } ]; }; } export default class HdsAdvancedTableColumnManager extends Component<HdsAdvancedTableColumnManagerSignature> { thElements: TrackedMap<string, HTMLDivElement>; syncThElements: import("ember-modifier").FunctionBasedModifier<{ Element: HTMLDivElement; Args: { Named: import("ember-modifier/-private/signature").EmptyObject; Positional: [string | undefined]; }; }>; get normalizedColumns(): HdsAdvancedTableNormalizedColumn[]; getColumnByKey: (key: HdsAdvancedTableColumn["key"]) => HdsAdvancedTableNormalizedColumn | undefined; }