import { EventEmitter } from '../../stencil-public-runtime'; import { ImmutableSet } from '../../helpers/immutable/immutable-set'; import { BreakpointsTokenType } from '../../types/design-token.type'; import { ResponsiveType } from '../../types/ui.type'; import { VegaTableChangePropType, VegaTableColumnConfig, VegaTableDataSourceItem, VegaTableDensityType, VegaTablePagination, VegaTableRowClickPropType, VegaTableRowSelectionConfig, VegaTableRowSelectProp, VegaTableSelectAllProp, VegaTableScrollConfig, VegaTableSortConfig, VegaTableRowSelectAllEventDetail, VegaTableRowSelectEventDetail, VegaTableRowExpandEventDetail, VegaTableGroupColumnConfig } from './interface'; import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core'; import { VegaTableCellRenderer } from './slimmers/renderers/vega-table-cell-renderer'; import { VegaTableExpandRowController } from './slimmers/controllers/vega-table-expand-row-controller'; import { VegaTableRowSelectionController } from './slimmers/controllers/vega-table-row-selection-controller'; import { VegaTableDataSourceController } from './slimmers/controllers/vega-table-data-source-controller'; import { VegaTableBodyRenderer } from './slimmers/renderers/vega-table-body-renderer'; import { VegaTableHeaderRenderer } from './slimmers/renderers/vega-table-header-renderer'; import { VegaTablePaginationRenderer } from './slimmers/renderers/vega-table-pagination-renderer'; import { VegaTableScrollContainerRenderer } from './slimmers/renderers/vega-table-scroll-container-renderer'; import { VegaTableRenderer } from './slimmers/renderers/vega-table-renderer'; import { VegaTablePaginationController } from './slimmers/controllers/vega-table-pagination-controller'; import { VegaTableEditableController } from './slimmers/controllers/vega-table-editable-controller'; import { VegaTableSortController } from './slimmers/controllers/vega-table-sort-controller'; import { VegaTableColGroupRenderer } from './slimmers/renderers/vega-table-col-group-renderer'; import { VegaTableChildrenController } from './slimmers/controllers/vega-table-children-controller'; import { VegaTableRowRenderer } from './slimmers/renderers/vega-table-row-renderer'; import { PageResizeObserverSlimmer } from '../../helpers/slimmers/page-resize-observer-slimmer'; import { SubStateNotifySlimmerBase } from '../../helpers/slimmers/sub-state/sub-state-notify-slimmer-base'; import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer'; import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer'; import { ImmutableMap } from '../../helpers/immutable/immutable-map'; import { VegaTableRenderModeController } from './slimmers/controllers/vega-table-render-mode-controller'; import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics'; import { VegaTableSorter } from './slimmers/controllers/vega-table-sorter'; import { TranslationSlimmer } from '../../helpers/slimmers/translation'; import { VegaTableColumnStructureModelController } from './slimmers/controllers/vega-table-column-structure-model-controller'; import { ColumnStructureModel } from './slimmers/controllers/dto/column-structure-model'; import { VegaTableRenderInputController } from './slimmers/controllers/vega-table-render-input-controller'; import { VegaTablePinnedRenderer } from './slimmers/renderers/vega-table-pinned-renderer'; /** * @vegaVersion 1.3.0 */ export declare class VegaTable { protected readonly globalSlimmers: GlobalSlimmers; protected translationSlimmer: TranslationSlimmer; protected readonly vegaTableRenderModeController: VegaTableRenderModeController; protected readonly vegaTableColumnStructureModelController: VegaTableColumnStructureModelController; protected readonly vegaTableRenderInputController: VegaTableRenderInputController; protected readonly vegaTablePinnedRenderer: VegaTablePinnedRenderer; protected readonly vegaTableRenderer: VegaTableRenderer; protected readonly vegaTableHeaderRenderer: VegaTableHeaderRenderer; protected readonly vegaTableBodyRenderer: VegaTableBodyRenderer; protected readonly vegaTableRowRenderer: VegaTableRowRenderer; protected readonly vegaTableCellRenderer: VegaTableCellRenderer; protected readonly vegaTablePaginationRenderer: VegaTablePaginationRenderer; protected readonly vegaTableScrollContainerRenderer: VegaTableScrollContainerRenderer; protected readonly vegaTableExpandRowController: VegaTableExpandRowController; protected readonly vegaTableRowSelectionController: VegaTableRowSelectionController; protected readonly vegaTableDataSourceController: VegaTableDataSourceController; protected readonly vegaTablePaginationController: VegaTablePaginationController; protected readonly vegaTableEditableController: VegaTableEditableController; protected readonly vegaTableSortController: VegaTableSortController; protected readonly vegaTableColGroupRenderer: VegaTableColGroupRenderer; protected readonly vegaTableChildrenController: VegaTableChildrenController; /** * The below method is e2e-test covered in * @see{module:should-render-responsive-columns-with-expandable-row-and-current-breakpoint-is-smaller-than-S} */ protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer; protected readonly rowSelectionNotifySlimmer: SubStateNotifySlimmerBase; protected readonly rowExpandableNotifySlimmer: SubStateNotifySlimmerBase; protected readonly paddingXNotifySlimmer: SubStateNotifySlimmerBase; protected readonly rowClickableNotifySlimmer: SubStateNotifySlimmerBase; protected readonly scrollConfigNotifySlimmer: SubStateNotifySlimmerBase; protected eventsPrevent: ChildNodesEventPreventSlimmer; protected changeEventEmitter: EventEmitSlimmerBase; protected selectChangeEventEmitter: EventEmitSlimmerBase; protected selectAllChangeEventEmitter: EventEmitSlimmerBase; protected rowClickEventEmitter: EventEmitSlimmerBase; protected rowExpandEventEmitter: EventEmitSlimmerBase; protected readonly rowDividerNotifySlimmer: SubStateNotifySlimmerBase; protected readonly columnDividerNotifySlimmer: SubStateNotifySlimmerBase; protected readonly densityNotifySlimmer: SubStateNotifySlimmerBase; protected readonly isTemplateRenderModeNotifySlimmer: SubStateNotifySlimmerBase; protected readonly currentDataNotifySlimmer: SubStateNotifySlimmerBase; protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer; protected rowSelectEventEmitter: EventEmitSlimmerBase; protected rowSelectAllEventEmitter: EventEmitSlimmerBase; host: HTMLVegaTableElement; selectedRowKeySet: ImmutableSet; watchSelectedRowKeySet(): void; expandedRowKeySet: ImmutableSet; currentBreakpoint: BreakpointsTokenType; /** Current running sorters */ sortersMap: ImmutableMap; watchSortersMap(): void; /** The data for vega-table to render */ currentData: VegaTableDataSourceItem[]; watchCurrentData(newValue: VegaTableDataSourceItem[], oldValue: VegaTableDataSourceItem[]): void; /** The key of current selected row */ currentClickedRowKey: string; /** Current page number of the table pagination */ currentPage: number; watchCurrentPage(): void; /** * The page size of the table pagination */ pageSize: number; editingRows: ImmutableSet; isSelectedAll: boolean; watchSelectedAll(): void; /** * Whether the table is template render mode */ isTemplateRenderMode: boolean; watchTemplateRenderMode(): void; columnStructureModel: ColumnStructureModel; watchColumnStructureModel(): void; /** * Defines the columns of the table. * * @vegaVersion 1.3.0 */ columns: VegaTableColumnConfig[]; watchColumns(): void; /** * Defines how columns can be grouped. * * @vegaVersion 2.57.0 */ groupColumns: VegaTableGroupColumnConfig[]; watchGroupColumns(): void; /** * Contains the data records to be rendered and * displayed within the table. * * @vegaVersion 1.3.0 */ dataSource: VegaTableDataSourceItem[]; watchDataSource(): void; /** * Defines the behavior and options related to * row selection in the table. * * It allows users to select one or more rows in * the table for further actions or processing. * * @vegaVersion 1.3.0 */ rowSelection: VegaTableRowSelectionConfig; watchRowSelection(): void; /** * Specifies whether rows in the table can be expanded * to show additional content or details. */ /** * Indicates whether the row is expandable. * * @vegaVersion 1.3.0 */ rowExpandable: boolean; watchRowExpandable(): void; /** * Specifies whether rows in the table can be clicked. * If enabled, a `vegaRowClick` event will be * dispatched when a row is clicked. * * @vegaVersion 1.3.0 */ rowClickable: boolean; watchRowClickable(): void; /** * Specifies whether dividers should be displayed * between rows in the table. * * @vegaVersion 1.3.0 */ rowDivider: boolean; watchRowDivider(): void; /** * Specifies whether dividers should be displayed * between columns in the table. * * @vegaVersion 1.3.0 */ columnDivider: boolean; watchColumnDivider(): void; /** * Specifies whether alternate colors should be applied * to the rows of the table. * * @vegaVersion 1.3.0 */ striped: boolean; watchStriped(): void; /** * Specifies the negative space within the table's cells. * * @vegaVersion 1.3.0 */ density: ResponsiveType; watchDensity(): void; /** * Controls the amount of horizontal padding applied to the table. * * @vegaVersion 1.3.0 */ paddingX: [string, string]; watchPaddingX(): void; /** * Specifies whether the table header should be displayed. * * @vegaVersion 1.3.0 */ showHeader: boolean; /** * Specifies the pagination configuration. * * @vegaVersion 1.5.0 */ pagination: VegaTablePagination; watchPagination(): void; /** * Provides a customized message or description that is * shown when the table's data source is empty. * * @vegaVersion 1.7.0 */ emptyDescription: string; /** * Defines a unique key for each row in the table. * * @vegaVersion 1.9.2 */ rowKey: string; /** * Customizes the behavior and appearance of the * scrollable container that wraps the table. * * @vegaVersion 1.29.0 */ scrollConfig?: VegaTableScrollConfig; watchScrollConfig(): void; /** * Defines the column sorting options * Has optional property type: single | multiple * If not specified, it defaults to multiple column sorting * * @vegaVersion 2.22.0 */ sortConfig?: VegaTableSortConfig; /** * An event emitter notifying changes in the table data. * * @vegaVersion 1.3.0 */ vegaChange: EventEmitter; /** * An event emitter notifying changes in the table data. * * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ change: EventEmitter; /** * An event emitter notifying the click event of a row * in the table. * * @vegaVersion 1.3.0 */ vegaRowClick: EventEmitter; /** * An event emitter notifying the click event of a row * in the table. * * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ rowClick: EventEmitter; /** * An event emitter notifying the expanded event of a row * in the table. * * @vegaVersion 2.24.0 */ vegaRowExpand: EventEmitter; /** * An event emitter notifying the expanded event of a row * in the table. * * @eventSemantics namespace:native * @vegaVersion 2.24.0 */ rowExpand: EventEmitter; /** * An event emitter notifying when the row selection changes. * * @vegaVersion 1.18.0 */ vegaSelectChange: EventEmitter; /** * An event emitter notifying when the selection state of all rows changes. * * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ selectChange: EventEmitter; /** * An event emitter notifying changes in the selection of checkboxes, * particularly the "Select All" checkbox in the table header. * * @vegaVersion 1.18.0 */ vegaSelectAllChange: EventEmitter; /** * An event emitter notifying changes in the selection of checkboxes, * particularly the "Select All" checkbox in the table header. * * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ selectAllChange: EventEmitter; /** * An event emitter notifying before the selected change when select/deselect one row * * @vegaVersion 2.23.0 */ vegaRowSelect: EventEmitter; /** * An event emitter notifying before the selected change when select/deselect one row * * @eventSemantics namespace:native * @vegaVersion 2.23.0 */ rowSelect: EventEmitter; /** * An event emitter notifying before the selected change when select/deselect all rows * * @vegaVersion 2.23.0 */ vegaRowSelectAll: EventEmitter; /** * An event emitter notifying before the selected change when select/deselect all rows * * @eventSemantics namespace:native * @vegaVersion 2.23.0 */ rowSelectAll: EventEmitter; /** * Invoke this method to expand the row with the specified `rowKey`, * revealing additional content. * * @param rowKey * @vegaVersion 1.3.0 */ openExpandRow(rowKey: string): Promise; /** * Invoke this method to close the expanded row with the specified `rowKey`. * * @param rowKey * @vegaVersion 1.3.0 */ closeExpandRow(rowKey: string): Promise; /** * Invoke this method to close all expanded rows. * * @vegaVersion 1.3.0 */ closeAllExpandRow(): Promise; /** * Invoke this method to toggle the expandable row with the * specified `rowKey`, expanding it if it is currently * collapsed and collapsing it if it is currently expanded. * * @param rowKey * @vegaVersion 1.3.0 */ toggleExpandRow(rowKey: string): Promise; /** * Invoke this method to clear the selected row keys, * removing any current selection. * * @vegaVersion 1.3.0 */ clearSelection(): Promise; /** * Invoke this method to retrieve the selected row keys, * provided an array or list of the keys representing * the currently selected rows. * * @vegaVersion 1.3.0 */ getSelection(): Promise; /** * Invoke this method to set the selected row keys, * specifying an array or list of keys to represent * the desired selected rows. * * @param {string[]} keys - Row keys to be set as selected. * @vegaVersion 1.3.0 */ setSelection(keys: string[]): Promise; /** * Invoke this method to start the edit mode for the row * with the specified `rowKey`. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ startRowEditMode(rowKey: string): Promise; /** * Invoke this method to stop the edit mode for the row * with the specified `rowKey`. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ stopRowEditMode(rowKey: string): Promise; /** * Invoke this method to stop the edit mode for all rows, * exiting the edit mode for each row currently * in the editing state. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ stopAllRowEditMode(): Promise; /** * Invoke this method to retrieve the data of the row with * the specified `rowKey`, obtaining the complete set of * information associated with that row. * * @param rowKey The row's unique key. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ getRowData(rowKey: string): Promise; /** * Invoke this method to retrieve all rows of data, * obtaining the complete set of information * associated with each row. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ getRowsData(): Promise; /** * Invoke this method to retrieve the table row reference * based on the provided `rowKey`. * * If the `rowKey` is empty, this method will return the * reference to the table form. * * @param optional rowKey * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ getFormRef(rowKey?: string): Promise; /** * Invoke this method to add a new row to the editable table. * * @param record the default record of the new row * @returns {Promise} the rowKey of the new row * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ addNewRow(record?: VegaTableDataSourceItem): Promise; /** * Invoke this method to save the edited row data to * the `currentData` and stop the edit mode * for that row. * * This action will not affect the editing mode of other rows. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ saveEditRow(rowKey: string): Promise; /** * Invoke this method to save the data of all edited rows to * the `currentData` and stop the edit mode for * all rows in the table. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ saveAllEditRows(): Promise; /** * Invoke this method to obtain the keys of the rows currently * in the editing mode in the table. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ getEditingRowsKey(): Promise; /** * Invoke this method to remove a row from the `currentData` * based on the specified `rowKey` in the table. * * @param rowKey The rowKey of the row to remove. * * @VegaWarning Note: This method only works with editable tables. * * @vegaVersion 1.19.0 */ removeRow(rowKey: string): Promise; render(): VegaTable; }