import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js"; import TableSelectionMode from "./types/TableSelectionMode.js"; import type Table from "./Table.js"; import type { ITableFeature } from "./Table.js"; import type TableRow from "./TableRow.js"; import type TableRowBase from "./TableRowBase.js"; /** * @class * * ### Overview * * The `ui5-table-selection` component is used inside the `ui5-table` to add key-based selection capabilities to the `ui5-table`. * * The component offers three selection modes: * * Single - select a single row. * * Multiple - select multiple rows. * * None - no selection active. * * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property. * * ### Usage * * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature. * It has to be slotted inside the `ui5-table` in the `features` slot. * The component is not intended to be used as a standalone component. * * ```html * * * * ``` * * ### ES6 Module Import * * `import "@ui5/webcomponents/dist/TableSelection.js";` * * @constructor * @extends UI5Element * @since 2.0.0 * @public * @deprecated This component is deprecated and will be removed in future releases. Use the `ui5-table-selection-single` or `ui5-table-selection-multi` components instead. * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change. */ declare class TableSelection extends UI5Element implements ITableFeature { eventDetails: { change: void; }; /** * Defines the selection mode. * * @default "Multiple" * @public */ mode: `${TableSelectionMode}`; /** * Defines the selected rows separated by a space. * * @default "" * @public */ selected: string; readonly identifier = "TableSelection"; _table?: Table; _rowsLength: number; _rangeSelection?: { selected: boolean; isUp: boolean | null; rows: TableRow[]; isMouse: boolean; shiftPressed: boolean; } | null; onClickCaptureBound: (e: MouseEvent) => void; constructor(); onTableActivate(table: Table): void; onExitDOM(): void; onBeforeRendering(): void; onTableBeforeRendering(): void; onTableAfterRendering(): void; isSelectable(): boolean; isMultiSelectable(): boolean; isRowSelectorRequired(): boolean; getAriaDescriptionForTable(): string | undefined; getAriaDescriptionForColumnHeader(): string | undefined; getRowKey(row: TableRow): string; isSelected(row: TableRowBase): boolean; hasSelectedRow(): boolean; areAllRowsSelected(): boolean; setSelected(row: TableRowBase, selected: boolean, fireEvent?: boolean): void; get selectedAsArray(): string[]; set selectedAsArray(selectedArray: string[]); get selectedAsSet(): Set; set selectedAsSet(selectedSet: Set); _selectRow(row: TableRow, selected: boolean): void; _selectHeaderRow(selected: boolean): void; _invalidateTableAndRows(): void; _onkeydown(e: KeyboardEvent): void; _onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement): void; _onClickCapture(e: MouseEvent): void; /** * Start the range selection and initialises the range selection state * @param row starting row * @private */ _startRangeSelection(row: TableRow, selected: boolean, isMouse?: boolean): void; /** * Handles the range selection * @param targetRow row that is currently focused * @param change indicates direction * @private */ _handleRangeSelection(targetRow: TableRow, change: number): void; _stopRangeSelection(): void; _reverseRangeSelection(): void; } export default TableSelection;