import { EventEmitter, OnInit, AfterViewInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core'; import { MatTableDataSource } from '@angular/material/table'; import { MatPaginator, PageEvent } from '@angular/material/paginator'; import { MatSort, Sort, SortDirection } from '@angular/material/sort'; import { SelectionModel } from '@angular/cdk/collections'; import { Subject } from 'rxjs'; import { BreakpointObserverService } from '../../services/break-point-observer.service'; import { SafeType, IconButton, CheckboxOption } from '@ieeesa-npm/models'; import { TableColumnSchema, TableColumnType } from '../../models/table-schema.model'; import { PaginatorConfig } from '../../models/paginator-config.model'; import { TableActions } from '../../models/table-actions.model'; import { ChipOption } from '../../models/chip-option.model'; import { SearchType } from '../../models/search.model'; import { FiltersAndOptions } from '../../models/filters-options.model'; import { Menu } from '../../models/menu.model'; import { Legend } from '../../models/legend.model'; import { TableColumnMenuInfo } from '../../models/table-column-menu-info.model'; import { SlideToggleOption } from '../../models/slide-toggle-options.model'; import * as i0 from "@angular/core"; /** * Provides a Material Design styled data-table that can be used to display rows of data with sortBy, filterBy, add/edit/delete table row data, pagination, search table data. * @export * @class DataTableComponent * @implements {OnInit} * @implements {AfterViewInit} * @implements {OnDestroy} */ export declare class DataTableComponent implements OnInit, AfterViewInit, OnDestroy { private breakpointObserverService; private elRef; private renderer; private tableData; private nestedTableData; expandedElement: any; set tableDataInfo(value: any[]); get tableDataInfo(): any[]; set nestedTableDataInfo(value: any[]); get nestedTableDataInfo(): any[]; private columnSchema; set columnSchemaInfo(value: TableColumnSchema[]); get columnSchemaInfo(): TableColumnSchema[]; private nestedTableColumnSchema; set nestedTableColumnSchemaInfo(value: TableColumnSchema[]); get nestedTableColumnSchemaInfo(): TableColumnSchema[]; constants: any; tableActions: TableActions; hasNestedTable: boolean; tableColumnActions: Menu[]; tableColumnActionMenuSize: string; tableRowActions: Menu[]; nestedTableRowActions: Menu[]; caption: string; viewAll: string; private paginatorConfiguration; set paginatorConfig(value: PaginatorConfig); get paginatorConfig(): PaginatorConfig; private nestedPaginatorConfiguration; set nestedPaginatorConfig(value: PaginatorConfig); get nestedPaginatorConfig(): PaginatorConfig; private legendsInfo; set legends(value: Legend[]); get legends(): Legend[]; private currentPageIndex; set pageIndex(value: number); get pageIndex(): number; private currentPageSize; set pageSize(value: number); get pageSize(): number; searchPlaceHolderText: string; rowEditButton: IconButton; rowDeleteButton: IconButton; tableEditButton: IconButton; tableDeleteButton: IconButton; rowExpandButton: IconButton; rowCollapseButton: IconButton; isNestedTableHeaderNeeded: boolean; addButton: IconButton; defaultColumnSortDirection: SortDirection; defaultSortedColumn: string; isClearSortNeeded: boolean; filters: ChipOption[]; selectedFilterOptions: CheckboxOption[]; appliedFilterOptions: ChipOption[]; searchType: SearchType; className: string; searchSupportMessage: string; inbuiltSortingNeeded: boolean; isCellTextOverflowEllipsis: boolean; isTableHeaderNeeded: boolean; tableColumnsHeaderText: string; verticalColumnHeaderNumber: number; scrollbarSupportMessage: string; isScrollSupportMessageNeeded: boolean; isStickyHeaderNeeded: boolean; customStickyHeaderNeeded: boolean; headerElementClassName: string; minCharToSearch: any; rowSelected: EventEmitter; selectedRowToEdit: EventEmitter; selectedRowToDelete: EventEmitter; selectedRowsToDelete: EventEmitter; rowLink: EventEmitter; addRow: EventEmitter; columnDataOnRowLinkClick: EventEmitter; menuActionClick: EventEmitter; selectActionMenu: EventEmitter; paginationChange: EventEmitter; selectedFilter: EventEmitter; removeFilteredOption: EventEmitter; filteredOptions: EventEmitter; searchedValue: EventEmitter; sortChange: EventEmitter; selectedRowsInfo: EventEmitter; rowExpansionClick: EventEmitter; tableColumnMenuActionClick: EventEmitter; tableColumnMenuToggleButton: EventEmitter; rowSlideToggle: EventEmitter<{ slideToggle: SlideToggleOption; rowData: any; }>; sort: MatSort; paginator: MatPaginator; headerCellElement: HTMLElement; headerHeight: DOMRect; tableContent: ElementRef; setStickyTableHeader(): void; displayedColumns: string[]; nestedTableDisplayedColumns: string[]; isMobileView: boolean; isScrollingEnabled: boolean; resizeObserverForTableContent: ResizeObserver; resizeObserverForTableCell: ResizeObserver; dataSource: MatTableDataSource; nestedTableDataSource: MatTableDataSource; selectedRows: SelectionModel; pageLimit: number; pageOffset: number; columnType: typeof TableColumnType; isSearchActive: boolean; clearAll: any; noRecordFound: any; destroy$: Subject; showNestedTablePaginationInfo: string; private _searchResultMessage; set searchResultMessage(value: string); get searchResultMessage(): string; safeType: SafeType; rowMenuActionIcon: IconButton; canDisableCheckbox: boolean; isEllipsisRequiredForLink: boolean; constructor(breakpointObserverService: BreakpointObserverService, elRef: ElementRef, renderer: Renderer2); /** * Initializes the data table component and sets the table action buttons. * @memberof DataTableComponent */ ngOnInit(): void; /** * Initializes the sort feature of dataSource and set margin left for tableColumnsHeaderText if it isn't empty. * @memberof DataTableComponent */ ngAfterViewInit(): void; /** * Set margin left for table column header text based on width of columns. * @memberof DataTableComponent */ setMarginLeftForHeaderText(): void; /** * Sets the dataSource whenever the table data changes. * @memberof DataTableComponent */ tableDataChanges(): void; /** * SortTableData method emits the clicked table column name and sorting direction * @param {Sort} sort * @memberof DataTableComponent */ sortTableData(sort: Sort): void; /** * Handle edit actions method emits the clicked row data * @param {*} row * @memberof DataTableComponent */ onRowActionClick(row: any): void; /** * Emits the slide toggle option along with the selected row info. * @param {SlideToggleOption} slideToggleOption * @param {*} row * @memberof DataTableComponent */ rowSlideToggleChange(slideToggleOption: SlideToggleOption, row: any): void; /** * Menu item action method emits the clicked menu options * @param {*} row * @memberof DataTableComponent */ menuItemAction(row: any): void; /** * OnSelectClick method emits the rowSelected event with selected row data. * @param {*} row * @param {boolean} checked * @memberof DataTableComponent */ onSelectClick(row: any): void; /** * Emits tableColumnActionInfo event with tableColumnInfo and menuActionInfo. * @param {TableColumnSchema} column * @param {Menu} menuAction * @memberof DataTableComponent */ tableColumnActionClick(column: TableColumnSchema, menuAction: Menu): void; /** * Emits tableColumnActionElement event with the selected HTML Element. * @param {HTMLElement} element * @memberof DataTableComponent */ tableColumnActionElement(element: HTMLElement): void; /** * OnEditClick method emits the selectedRowToEdit event with the selected row data. * @param {*} row * @memberof DataTableComponent */ onEditClick(row: any): void; /** * OnDeleteClick method emits the selectedRowToDelete event with the selected row data. * @param {*} row * @memberof DataTableComponent */ onDeleteClick(row: any): void; /** *OnLinkClick method emits the event with row and column. * @param {*} row * @param {TableColumnSchema} [column] * @memberof DataTableComponent */ onLinkClick(row: any, column?: TableColumnSchema): void; /** * OnTableEditClick method emits event with selected rows data when edit button clicked. * @memberof DataTableComponent */ onTableEditClick(): void; /** * OnDeleteTableClick method emits event with selected row data when delete button clicked. * @memberof DataTableComponent */ onDeleteTableClick(): void; /** * OnAddClick method emits the add event when add button clicked. * @memberof DataTableComponent */ onAddClick(): void; /** * OnTableSearchClick method toggles the isSearchActive state when the search icon is clicked for the mobile view. * @memberof DataTableComponent */ onTableSearchClick(): void; /** * SelectedFilterInfo method emits the selectedFilter event with selected filter information. * @param {ChipOption} option * @memberof DataTableComponent */ selectedFilterTypeInfo(option: ChipOption): void; /** * Emits the rowExpansionClick event with the selected row data when the row is expanded. * @param {*} row * @memberof DataTableComponent */ onTableRowExpansionClick(row: any): void; /** * OnSelectedFilterOptions method emits the filteredOptions event with the selected options and adds "Clear all" option to clear the all selections. * @param {CheckboxOption[]} options * @memberof DataTableComponent */ onSelectedFilterOptions(selectedOptions: FiltersAndOptions[]): void; /** * OnRemovalOfFilteredOption method emits the removeFilteredOption event with removed option. * @param {ChipOption} option * @memberof DataTableComponent */ onRemovalOfFilteredOption(options: FiltersAndOptions[]): void; /** * SearchValue method emits the searched value and resets page index to zero. * @param {string} value * @memberof DataTableComponent */ searchValue(value: string): void; /** * Handles the pagination for every page. * @param {PageEvent} event * @memberof DataTableComponent */ handlePagination(event: PageEvent): void; /** * IsAllRowSelected method returns the boolean value by checking selectedRows and totalRows length. * @return {*} {boolean} * @memberof DataTableComponent */ isAllRowsSelected(): boolean; /** * ToggleAllRowsSelection method clears selectedRows when all rows are selected else selects the all rows. * @return {*} {void} * @memberof DataTableComponent */ toggleAllRowsSelection(): void; /** * Allows Angular to detect the specific table row that needs to change or be added by tracking row unique Id. * @param {number} index * @param {TableColumnSchema} column * @return {*} {number} * @memberof DataTableComponent */ trackById(index: number, column: TableColumnSchema): number; /** * Sets the table row left border as per the legend color * @param {string} color * @return {*} * @memberof DataTableComponent */ getRowBorderLeftColor(color: string): any; /** * NgOnDestroy performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed. * @memberof DataTableComponent */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }