import { OnInit, TemplateRef, QueryList, ChangeDetectorRef, OnDestroy, EventEmitter, SimpleChanges, OnChanges, AfterViewInit, ElementRef, Renderer2 } from '@angular/core'; import { Observable } from 'rxjs'; import { CloFilterTableService } from './clo-filter-table.service'; interface Filter { value: any; title: string; attribute: string; } interface SortBy { attributeName: string; direction: 'ASC' | 'DESC'; } /** * The row template needed to be visible for a tablet view */ export declare class CloTableRow { templateRef: TemplateRef; filter_by: string; hidden: boolean; header: boolean; selected: EventEmitter; constructor(templateRef: TemplateRef); selectRow(e: any): void; } /** * The card template needed to be visible for a tablet view */ export declare class CloTabletCard { templateRef: TemplateRef; filter_by: string; hidden: boolean; onClick: EventEmitter; constructor(templateRef: TemplateRef); OnClick(event: any): void; } /** * The card template needed to be visible for a mobile view */ export declare class CloMobileCard { templateRef: TemplateRef; filter_by: string; hidden: boolean; onClick: EventEmitter; constructor(templateRef: TemplateRef); MobileOnClick(event: any): void; } /** * Data tables display information in a way that’s easy to scan, so that users can look for patterns and insights. * * It can be filtered and searched */ export declare class CloTable implements OnInit, OnDestroy, AfterViewInit, OnChanges { private ref; private filterTableService; private renderer; observedObjects$: Observable; filteredObjects: Array; /** * When using the CloTableRow instead of iterating through an array of objects. * Default: false; */ objectsDataOnly: boolean; /** * This is used when describing the content in the table. Ex: 'Users', 'Quotes', etc. * Default: 'Results' */ objectTypeName: string; /** * This is required if connecting to a CloTableBlock */ tableId: string; isList: boolean; /** * The headers for the table */ tableHeaders: string[]; /** * Is the Table sortable */ sortable: boolean; initialSort: SortBy; /** * This returns an array of filterd objects */ filteredResults: EventEmitter; /** * When using the data to generate the rows this will be the click event */ rowClicked: EventEmitter; tableRows: QueryList; private allPossibleRows; mobileCards: QueryList; tabletCards: QueryList; tableHeader: ElementRef; table: ElementRef; private filterSubscription; private searchSubscription; private objectSubscription; /** * The objects for the table. This is where search terms for the table block are generated. REQUIRED */ objects: any; private data; sortBy: object; appliedFilters: Array; searchTerm: string; onScroll(event: any): void; searchObjects(text: string): Object[]; filterCards(searchTerm: any): void; cardsAreEmpty(): boolean; clearFilters(): void; removeFilter(filterObject: any): void; ngOnDestroy(): void; ngOnInit(): void; trackFilters(): void; applySort(attributeName: string): void; sortObjects(): void; constructor(ref: ChangeDetectorRef, filterTableService: CloFilterTableService, renderer: Renderer2); getSearchableData(): void; ngAfterViewInit(): void; rowSelected(object: any): void; ngOnChanges(changes: SimpleChanges): void; } export {};