@hashicorp/design-system-components
Version:
Helios Design System Components
69 lines (68 loc) • 3.98 kB
TypeScript
import Component from '@glimmer/component';
import { TrackedMap } from 'tracked-built-ins';
import type { HdsAdvancedTableColumnReorderCallback, HdsAdvancedTableColumnReorderSide, HdsAdvancedTableNormalizedColumn } from '../types.ts';
import type { ModifierLike } from '@glint/template';
export interface HdsAdvancedTableSyncColumnOrderSignature {
Element: HTMLDivElement;
Args: {
Positional: [HdsAdvancedTableNormalizedColumn[], string[] | undefined];
};
}
interface HdsAdvancedTableColumnManagerOrderSignature {
Args: {
columns: HdsAdvancedTableNormalizedColumn[];
columnOrder: string[] | undefined;
hasReorderableColumns?: boolean;
hasStickyFirstColumn?: boolean;
onColumnReorder: HdsAdvancedTableColumnReorderCallback | undefined;
getColumnByKey: (key: string) => HdsAdvancedTableNormalizedColumn | undefined;
thElements: TrackedMap<string, HTMLDivElement>;
};
Blocks: {
default: [
{
orderedColumns: HdsAdvancedTableNormalizedColumn[];
columnOrder: string[];
draggedColumnKey: string | null;
reorderHoveredColumnKey: string | null;
firstColumnKey: string | undefined;
firstNonStickyColumnKey: string | undefined;
lastColumnKey: string | undefined;
syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>;
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;
stepColumn: (columnKey: HdsAdvancedTableNormalizedColumn['key'], step: number) => void;
setDraggedColumnKey: (columnKey: HdsAdvancedTableNormalizedColumn['key'] | null) => void;
setReorderHoveredColumnKey: (key: HdsAdvancedTableNormalizedColumn['key'] | null) => void;
}
];
};
}
export default class HdsAdvancedTableColumnManagerOrder extends Component<HdsAdvancedTableColumnManagerOrderSignature> {
draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;
reorderHoveredColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;
private _columnOrder;
syncColumnOrder: import("ember-modifier").FunctionBasedModifier<{
Element: HTMLDivElement;
Args: {
Named: import("ember-modifier/-private/signature").EmptyObject;
Positional: [HdsAdvancedTableNormalizedColumn[], string[] | undefined];
};
}>;
get columnOrder(): string[];
set columnOrder(value: string[]);
get visibleColumnOrder(): string[];
get orderedColumns(): HdsAdvancedTableNormalizedColumn[];
get firstColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined;
get firstNonStickyColumnIndex(): number;
get firstNonStickyColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined;
get lastColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined;
moveColumnToTerminalPosition: (columnKey: HdsAdvancedTableNormalizedColumn["key"], position: "start" | "end") => void;
stepColumn: (columnKey: HdsAdvancedTableNormalizedColumn["key"], step: number) => void;
moveColumnToDropTarget: (targetColumnKey: HdsAdvancedTableNormalizedColumn["key"], side: HdsAdvancedTableColumnReorderSide) => void;
moveColumnToTarget: (sourceColumnKey: HdsAdvancedTableNormalizedColumn["key"], targetColumnKey: HdsAdvancedTableNormalizedColumn["key"], side: HdsAdvancedTableColumnReorderSide) => void;
setColumnOrder: HdsAdvancedTableColumnReorderCallback;
private _getColumnKey;
}
export {};