import { IEventEmitter } from '@breadstone/mosaik-elements'; import { ISlottable } from '../../../Behaviors/Slottable'; import type { ITableChooseColumnsEventDetail, ITableColumnsChangedEventDetail, ITableSelectionChangedEventDetail } from '../../../events'; import { TableSelectionMode } from '../../../Types/TableSelectionMode'; import { TableSelectionType } from '../../../Types/TableSelectionType'; import type { TableSortMode } from '../../../Types/TableSortMode'; import { CustomElement } from '../../Abstracts/CustomElement'; import type { ITableColumnEditorItem } from './editor/ITableColumnEditorItem'; import { TableElementIntl } from './intl/TableElementIntl'; import { ITableElementProps } from './ITableElementProps'; import type { TableBodyCellElement } from './TableBodyCellElement'; import type { TableBodyRowElement } from './TableBodyRowElement'; declare const TableElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Table - A structured display of data in rows and columns. * * @element mosaik-table * * @slot - The default slot. * @slot caption - The caption slot for the table title or description. * @slot summary - The summary slot. * * @csspart caption - The caption part. * @csspart summary - The summary part. * * @cssprop {String} --table-alternating-color - The alternating color CSS custom property. * @cssprop {String} --table-background-color - The background color CSS custom property. * @cssprop {String} --table-border-color - The border color CSS custom property. * @cssprop {String} --table-border-radius - The border radius CSS custom property. * @cssprop {String} --table-border-style - The border style CSS custom property. * @cssprop {String} --table-border-width - The border width CSS custom property. * @cssprop {String} --table-column-border-color - The column border color CSS custom property. * @cssprop {String} --table-column-border-radius - The column border radius CSS custom property. * @cssprop {String} --table-column-border-style - The column border style CSS custom property. * @cssprop {String} --table-column-border-width - The column border width CSS custom property. * @cssprop {String} --table-font-family - The font family CSS custom property. * @cssprop {String} --table-font-letter-spacing - The font letter spacing CSS custom property. * @cssprop {String} --table-font-line-height - The font line height CSS custom property. * @cssprop {String} --table-font-size - The font size CSS custom property. * @cssprop {String} --table-font-text-decoration - The font text decoration CSS custom property. * @cssprop {String} --table-font-text-transform - The font text transform CSS custom property. * @cssprop {String} --table-font-weight - The font weight CSS custom property. * @cssprop {String} --table-foreground-color - The foreground color CSS custom property. * @cssprop {String} --table-gap - The gap CSS custom property. * @cssprop {String} --table-line-thickness - The line thickness CSS custom property. * @cssprop {String} --table-padding-bottom - The padding bottom CSS custom property. * @cssprop {String} --table-padding-left - The padding left CSS custom property. * @cssprop {String} --table-padding-right - The padding right CSS custom property. * @cssprop {String} --table-padding-top - The padding top CSS custom property. * @cssprop {String} --table-row-border-color - The row border color CSS custom property. * @cssprop {String} --table-row-border-radius - The row border radius CSS custom property. * @cssprop {String} --table-row-border-style - The row border style CSS custom property. * @cssprop {String} --table-row-border-width - The row border width CSS custom property. * @cssprop {String} --table-shadow - The shadow CSS custom property. * @cssprop {String} --table-shadow-blur - The shadow blur CSS custom property. * @cssprop {String} --table-shadow-color - The shadow color CSS custom property. * @cssprop {String} --table-shadow-offset-x - The shadow offset x CSS custom property. * @cssprop {String} --table-shadow-offset-y - The shadow offset y CSS custom property. * @cssprop {String} --table-shadow-spread - The shadow spread CSS custom property. * @cssprop {String} --table-transition-duration - The transition duration CSS custom property. * @cssprop {String} --table-transition-mode - The transition mode CSS custom property. * @cssprop {String} --table-transition-property - The transition property CSS custom property. * @cssprop {String} --table-translate - The translate CSS custom property. * * @fires columnsChanged {TableColumnsChangedEvent} - Fired when the columns of the table has changed. * @fires tableSelectionChanged {TableSelectionChangedEvent} - Fired when the selection of the table has changed. * @fires tableChooseColumns {TableChooseColumnsEvent} - Fired when the choose columns action is requested from a header cell menu. * * @dependency mosaik-text - The Text element. * * @example * Basic data table: * ```html * * * * * * * * * * * * * * * ``` * * @public */ export declare class TableElement extends TableElement_base implements ITableElementProps, ISlottable { private readonly _intl; private readonly _columnsChanged; private readonly _tableSelectionChanged; private readonly _tableChooseColumns; private _columns; private _caption; private _alternating; private _selectionType; private _selectionMode; private _resizable; private _sortMode; private _selectedRows; private _selectedCells; /** * @public */ constructor(); /** * Returns the `is` property. * * @public * @static * @readonly */ static get is(): string; /** * Returns the `intl` property. * * @public * @readonly */ get intl(): TableElementIntl; /** * Gets or sets the `columns` property. * * @public * @attr */ get columns(): string; set columns(value: string); /** * Gets or sets the `caption` property. * * @public * @attr */ get caption(): string; set caption(value: string); /** * Gets or sets the `alternating` property. * * @public * @attr */ get alternating(): boolean; set alternating(value: boolean); /** * Gets or sets the `selectionType` property. * * @public * @attr */ get selectionType(): TableSelectionType; set selectionType(value: TableSelectionType); /** * Gets or sets the `selectionMode` property. * Defines whether selection is disabled, single, or multiple. * If set to `none`, the configured `selectionType` remains available * but has no behavioral effect. * * @public * @attr */ get selectionMode(): TableSelectionMode; set selectionMode(value: TableSelectionMode); /** * Gets or sets the `resizable` property. * When true, columns are resizable by default. * * @public * @attr */ get resizable(): boolean; set resizable(value: boolean); /** * Gets or sets the `sortMode` property. * Defines whether sort is single-column (default) or multi-column. * * @public * @attr */ get sortMode(): TableSortMode; set sortMode(value: TableSortMode); /** * Called when the columns of the table has changed. * Provides reference to `ITableColumnsChangedEventDetail` as event argument. * * @public * @readonly * @eventProperty * @type IEventEmitter */ get columnsChanged(): IEventEmitter; /** * Called when the selection of the table has changed. * Provides reference to `ITableSelectionChangedEventDetail` as event argument. * * @public * @readonly * @eventProperty * @type IEventEmitter */ get tableSelectionChanged(): IEventEmitter; /** * Called when the choose columns action is requested. * Provides reference to `ITableChooseColumnsEventDetail` as event argument. * * @public * @readonly * @eventProperty * @type IEventEmitter */ get tableChooseColumns(): IEventEmitter; /** * Gets the currently selected rows. * * @public * @readonly */ get selectedRows(): ReadonlyArray; /** * Gets the currently selected cells. * * @public * @readonly */ get selectedCells(): ReadonlyArray; /** * @public * @override */ connectedCallback(): void; /** * @public * @override */ disconnectedCallback(): void; /** * Updates the column width at the specified index. * If no explicit columns are set, initializes from current header cell widths. * * @public */ updateColumnWidth(columnIndex: number, widthPx: number): void; /** * Returns metadata for each column derived from header cells. * Used by rows to propagate pinning and hiding to body/footer cells. * * @public */ getColumnMetadata(): Array<{ key: string; pinned: string; hidden: boolean; }>; /** * Returns an array of column editor items derived from header cells. * Each item contains the key, title, and current visibility state. * * @public */ getColumnEditorItems(): Array; /** * Handles the internal `tableRequestChooseColumns` event from header cells. * * @private */ private handleRequestChooseColumns; /** * Handles column resized events from header cells. * * @private */ private handleColumnResized; /** * Notifies all rows that column metadata (pinning/hiding) has changed. * Called directly by child header cells when pinning state changes. * * @private * @hidden */ notifyColumnMetadataChanged(): void; /** * Reads the current rendered widths of all header cells and returns them as pixel values. * * @private */ private initializeColumnsFromHeaderCells; /** * Auto-sizes a column to fit the widest content across header and body cells. * Uses `getContentWidth()` on each cell for accurate measurement that handles * truncated text, flex-constrained layouts and shadow DOM content. * * @public */ autoSizeColumn(columnIndex: number): void; } /** * @public */ export declare namespace TableElement { type Props = ITableElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-table': TableElement; } } export {}; //# sourceMappingURL=TableElement.d.ts.map