@hashicorp/design-system-components
Version:
Helios Design System Components
78 lines (77 loc) • 4.82 kB
TypeScript
/**
* 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;
}