import { EventEmitter, ComponentDidUpdate } from '../../../stencil-public-runtime'; import { ColumnDef, RowSelectionChangedEventDetail, SortActionEventDetail } from '../types'; /** * @since 1.1 * @status stable * @reactive * * @slot - Table column definitions. * * @part table - The table container element (for styling the external border). * @part header - The element of the table. * @part header-row - The table header row element (). * @part header-cell - Table header cell element (). * @part column- - Applied to all table cells (, ) where `n` is zero-based column index. * @part body - The element of the table. * @part row - Table data row elements (). * @part row-even - Applied to even-numbered table rows (). * @part row-odd - Applied to odd-numbered table rows (). * @part row- - Applied to data table rows () where `type` is row type. * @part cell - Table data cell elements (). * @part icon - Icon elements () in icon-formatted columns. * @part icon- - Applied to Icon elements () in icon-formatted columns where `name` is the name of the icon. */ export declare class DataTable implements ComponentDidUpdate { private mdcDataTable; private mdcDataTableEl; private subscription; private mutationObserver; private pendingLayout; el: HTMLFlowDataTableElement; columnDefs: ColumnDef[]; _data: object[]; /** * Set to bind data to the table. May be a Flo.w reactive expression, an array of data objects * or a single data object. * * @reactive */ data: string | object[] | object; /** * The Flo.w context ID to use for application state. */ flowContext: string; /** * Set to `true` to enable row selection. */ rowSelect: boolean; /** * Set to `true` to enable full row selection (requires rowSelect). */ fullRowSelect: boolean; /** * Specify a data object property to use as a row ID. */ rowId: string; /** * Specify a data object property to use as a row type. The row type can be used * to style table rows based on row data. */ rowType: string; /** * Set to `true` to display a compact table with reduced font size and padding. */ compact: boolean; /** * Set to `true` to keep the header row in place when scrolling the table data. */ stickyHeader: boolean; /** * Set to `true` to disable horizontal scrolling of table data. */ noScroll: boolean; /** * Set to `true` to allow wrapping of table cell contents. */ wrap: boolean; /** * Emitted when the row selection state changes. Only applicable when `rowSelect` is enabled. */ flowRowSelectionChanged: EventEmitter; /** * Emitted when a column sort action is performed. Only applicable when sorting is enabled for a table column. */ flowSortAction: EventEmitter; /** * Emitted when all rows are selected using the row selection controls. * Only applicable when `rowSelect` is enabled. */ flowRowSelectedAll: EventEmitter; /** * Emitted when all rows are deselected using the row selection controls. * Only applicable when `rowSelect` is enabled. */ flowRowSelectedNone: EventEmitter; /** * Returns the selected row indexes, or row IDs if `rowId` has been set. */ selectedRows(): Promise; /** * Set the selected rows by index, or row ID if `rowId` has been set. */ setSelectedRows(rowIds: string[]): Promise; connectedCallback(): void; componentWillLoad(): void; componentDidLoad(): void; componentDidUpdate(): void; disconnectedCallback(): void; private subscribe; private unsubscribe; private updateData; private updateColumns; private cellFormatter; private handleRowClick; private renderTableHeader; private renderTableBody; private renderTableRow; private renderTableCell; render(): any; }