@hashicorp/design-system-components
Version:
Helios Design System Components
61 lines (60 loc) • 2.45 kB
TypeScript
/**
* Copyright IBM Corp. 2021, 2025
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@glimmer/component';
import type Owner from '@ember/owner';
import type { HdsAdvancedTableNormalizedColumn } from './types';
import type { HdsAdvancedTableSignature } from './index';
export interface HdsAdvancedTableThResizeHandleSignature {
Args: {
column?: HdsAdvancedTableNormalizedColumn;
siblingColumnKeys?: {
previous?: HdsAdvancedTableNormalizedColumn['key'];
next?: HdsAdvancedTableNormalizedColumn['key'];
};
tableHeight?: number;
onApplyTransientWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void;
onGetAppliedWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn['width'];
onGetColumnByKey?: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn | undefined;
onSetTransientColumnWidth?: (columnKey: HdsAdvancedTableNormalizedColumn['key'], width: `${number}px`) => void;
onSetTransientColumnWidths?: (options: {
roundValues?: boolean;
}) => void;
onResetTransientColumnWidths?: () => void;
onUpdateResizeDebt?: (delta: number) => void;
onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];
};
Blocks: {
default?: [];
};
Element: HTMLDivElement;
}
export default class HdsAdvancedTableThResizeHandle extends Component<HdsAdvancedTableThResizeHandleSignature> {
resizing: {
startX: number;
startColumnPxWidth: number;
startNextColumnPxWidth?: number;
} | null;
private _transientDelta;
private _isUpdateQueued;
private _lastPointerEvent;
private _handleElement;
private _boundResize;
private _boundStopResize;
private _registerHandleElement;
constructor(owner: Owner, args: HdsAdvancedTableThResizeHandleSignature['Args']);
get currentWidthInPixels(): number;
get minWidthInPixels(): number;
get maxWidthInPixels(): number;
get height(): string | undefined;
get classNames(): string;
private _applyTransientWidths;
onColumnResize(key?: string, width?: string): void;
handleKeydown(event: KeyboardEvent): void;
startResize(event: PointerEvent): void;
private _setColumnWidth;
private _applyResizeDelta;
private _resize;
private _stopResize;
}