import { SelectionModel } from '@angular/cdk/collections'; import * as i0 from '@angular/core'; import { OnInit, OnChanges, AfterViewInit, ElementRef, EventEmitter, ChangeDetectorRef, SimpleChanges, PipeTransform } from '@angular/core'; import { MatPaginator, PageEvent, MatPaginatorIntl } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; import { LucideIconData } from 'lucide-angular'; import { MatSort, Sort } from '@angular/material/sort'; import { FormControl } from '@angular/forms'; import * as i1 from '@angular/common'; import { DomSanitizer, SafeHtml, SafeStyle, SafeUrl, SafeResourceUrl } from '@angular/platform-browser'; declare class PagerTranslationOptions { itemsPerPageLabel: string; firstPageLabel: string; lastPageLabel: string; nextPageLabel: string; previousPageLabel: string; rangeSepratorLabel: string; } interface Lucide { iconSvg: LucideIconData; size?: string; color?: string; class?: string; } interface MenuOptions { id: number; icon?: Lucide; matTooltip?: string; textOption?: string; idAction?: string; imageUrl?: string; } interface LabelAction { text?: string; color?: string; class?: string; } interface ISearchConfig { placeholder?: string; label?: string; errorMessage?: string; icon: Lucide; } interface HandleMenuAction { action_clicked: MenuOptions; element: any; idSubRow?: string | number; } declare enum SORT_DIRECTION { ASC = "asc", DESC = "desc" } interface SortConfig { sortableColumns: string[]; defaultSortColumn: string; defaultSortDirection: SORT_DIRECTION; } interface PaginConfig { totalElements?: number; elementsPerPage?: number; currentPage?: number; } interface TableColumnsActions { id: number; icon: Lucide; matTooltip?: string; label?: LabelAction; isMenu?: boolean; isExtraAction?: boolean; menuOptions?: MenuOptions[]; rowId?: string; textAction?: string; textPosition?: 'start' | 'end'; buttonClass?: string; } interface HandleAction { action_clicked?: TableColumnsActions; action_item_clicked?: TableColumnsActions; element: any; idSubRow?: string | number; } interface NestedGridAction { id: string | number; actions: TableColumnsActions[]; actionByItems: TableColumnsActions[]; } interface TableColumns { columnDef: string; header?: string; actions?: TableColumnsActions[]; actionByItems?: TableColumnsActions[]; nestedGridAction?: NestedGridAction[]; headerInnerHtml?: string; } declare enum PAGINATOR { PAGINATOR_1 = "paginator1", PAGINATOR_2 = "paginator2" } declare enum TEXT_POSITION { START = "start", END = "end" } interface Button { description?: string; icon?: Lucide; color?: string; style?: string; class?: string; hide?: boolean; disable?: boolean; textPosition?: TEXT_POSITION; } interface EmptyDataInfo { description?: string; icon?: Lucide; button?: Button; hideColumnsHeader?: boolean; hidePagination?: boolean; } interface CellUpdate { rowId: string | number; columnDef: string; newValue: any; rowIdentifier?: string; } interface GridUpdate { updates: CellUpdate[]; timestamp?: number; } interface ActionByItemEvent { action: TableColumnsActions; row: any; column: TableColumns; columnDef: string; rowIndex: number; } interface Task { completed: boolean; id?: number; subtasks?: Task[]; } declare class GridComponent implements OnInit, OnChanges, AfterViewInit { private paginatorIntl; private paginatorConfig; private cdr; sort: MatSort; paginator: MatPaginator | undefined; paginator2: MatPaginator | undefined; paginatorContainer: ElementRef; data: any[]; dataLength: number; uniqueList: any[]; columns: TableColumns[]; displayedColumns: string[]; pagerTranslationOptions: PagerTranslationOptions | null; isHtmlDataSource: boolean; isLoading: boolean; hasMore: boolean; isTotalPaginator: boolean; sortConfig: SortConfig; enableRowSelection: boolean; paginConfig?: PaginConfig; emptyDataInfo: EmptyDataInfo; cellUpdates?: GridUpdate; hideHeaderCheckbox: boolean; hideHeaderDeleteButton: boolean; showFirstLastButtons: boolean; pageSizeOptions: number[]; filterOptions: MenuOptions[]; pageChanged: EventEmitter; filterChanged: EventEmitter; selectedPaginator: PAGINATOR; totalElements: number; currentPageIndex: number; totalPages: number; clickEvent: EventEmitter; clickEventItem: EventEmitter; clickEventMenuAction: EventEmitter; deleteEvent: EventEmitter>; deleteRowEvent: EventEmitter; searchAgain: EventEmitter; rowSelected: EventEmitter; radioSelected: EventEmitter; actionByItemClick: EventEmitter; readonly userIcon: Lucide; seachAutocompleteconfig: ISearchConfig; menuFilterControl: FormControl; private lastUpdateTimestamp; iconTrash: Lucide; circleSlash2: Lucide; trash2: Lucide; informationIcon: Lucide; TEXT_POSITION: typeof TEXT_POSITION; selection: SelectionModel; dataSource: MatTableDataSource; resultsLength: number; length: number; elementsPerPage: number; hidePageSize: boolean; disabled: boolean; isSelect: boolean; selectedRadioElement: any; isScrolled: boolean; constructor(paginatorIntl: MatPaginatorIntl, paginatorConfig: MatPaginatorIntl, cdr: ChangeDetectorRef); ngOnInit(): void; ngAfterViewInit(): void; customizePaginator(): void; ngOnChanges(changes: SimpleChanges): void; private processCellUpdates; shouldShowProgressBar(element: any): boolean; private findRowIndex; initializePaginatorConfig(): void; calculateTotalPages(): void; onSearchAgain(): void; onPageChange(event: PageEvent): void; private initializeSort; private paginatorPaginLabel; handleSortChange(sortState: Sort): void; isSortable(columnDef: string): boolean; detectUnique(value: string): boolean; deleteSelectedRows(): void; deleteSelectedRow(element: any): void; handleAction(action: TableColumnsActions, element: unknown, templateId?: string): void; clearMenuFilters(): void; handleMenuAction(menuOption: MenuOptions, element: unknown, templateId?: string): void; onActionByItemClick(action: TableColumnsActions, element: any, column: TableColumns): void; isAllSelected(): boolean; toggleAllRows(): void; onRowSelected(event: any, element: any): void; onRadioSelected(element: any): void; isRadioSelected(element: any): boolean; checkboxLabel(row?: any): string; isActionDisabled(element: any, action: any): boolean; private setPagerTranslationOptions; includedRowId(actions?: TableColumnsActions[]): TableColumnsActions | undefined; filterActions(actions: TableColumnsActions[] | undefined, elementRowActionId: string | undefined): TableColumnsActions[] | undefined; getInitials(name: string): string; onMenuFilterChange(): void; validatorError(): void; onTableScroll(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KifGridModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class SafeDomPipe implements PipeTransform { protected sanitizer: DomSanitizer; constructor(sanitizer: DomSanitizer); transform(value: any, type: string): SafeHtml | SafeStyle | SafeUrl | SafeResourceUrl; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵpipe: i0.ɵɵPipeDeclaration; } declare class Options { label: string; name: string; } export { GridComponent, KifGridModule, Options, PAGINATOR, PagerTranslationOptions, SORT_DIRECTION, SafeDomPipe, TEXT_POSITION }; export type { ActionByItemEvent, Button, CellUpdate, EmptyDataInfo, GridUpdate, HandleAction, HandleMenuAction, Lucide, MenuOptions, NestedGridAction, PaginConfig, SortConfig, TableColumns, TableColumnsActions, Task };