adn-datatable
Version:
Datatable component integrable to any angular project.
129 lines (128 loc) • 4.21 kB
TypeScript
import { OnInit, OnDestroy, AfterViewInit, Renderer2, ElementRef, QueryList, SimpleChanges, OnChanges } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
export interface SearchDate {
dateColumn: string;
dateFrom: string;
dateTo: string;
}
export interface Order {
column: string;
dir: string;
}
export interface RequestBody {
userId: string;
draw: number;
start: number;
length: number;
searchText: string;
order: Order;
searchables: string[];
searchDate: SearchDate;
}
export interface Info {
admins: string[];
users: string[];
}
export interface ResponseBody {
draw: number;
recordsFiltered: number;
data: any[];
info: Info;
}
export declare class DataTableComponent implements OnDestroy, OnInit, AfterViewInit, OnChanges {
private http;
private renderer;
constructor(http: HttpClient, renderer: Renderer2);
datatableDiv: ElementRef;
datatableHeader: ElementRef;
datatableRows: QueryList<ElementRef>;
oddRowColor: string;
evenRowColor: string;
headerColor: string;
userId: string;
apiUrl: string;
ready: boolean;
tableObjectId: string;
datatableWidth: string;
enableAddUser: boolean;
existingUser: boolean;
selectAllRows: boolean;
showUsersPopup: boolean;
showGrantPopup: boolean;
showRevokePopup: boolean;
searchColumnName: any;
requestBody: RequestBody;
responseBody: ResponseBody;
dataDisplayed: any[];
infoTable: Info;
userSelected: string;
page: number;
headersName: any[];
dateHeadersName: any[];
editable: boolean;
dropdownList: any[];
selectedItems: Map<string, Array<any>>;
dropdownSettings: {
singleSelection: boolean;
text: string;
selectAllText: string;
unSelectAllText: string;
enableSearchFilter: boolean;
};
readyToDisplay: boolean;
loading: boolean;
subscription: Subscription;
subscriptionLoaded: Subscription;
dataSubject: BehaviorSubject<String>;
data$: Observable<String>;
ngOnDestroy(): void;
ngAfterViewInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnInit(): void;
selectAll(): void;
selectRow(indexRow: any): void;
changeUserCall(): void;
logSelected(): void;
headerNameClicked(column: string): void;
getData(): Observable<Object>;
modifyData(oldRow: any, newRow: any): Observable<Object>;
addUserCall(): void;
addUser(newUser: string): Observable<Object>;
deleteUserCall(user: string): void;
deleteUser(user: string): Observable<Object>;
grantAdminCall(user: string): void;
grantAdmin(user: string): Observable<Object>;
revokeAdminCall(user: string): void;
revokeAdmin(user: string): Observable<Object>;
grantAccessToUserCall(user: string): void;
grantAccessToUser(user: string, rowsSelected: string[]): Observable<Object>;
revokeAccessFromUserCall(user: string): void;
revokeAccessFromUser(user: string, rowsSelected: string[]): Observable<Object>;
emitData(): void;
toggleEdit(): void;
onValueUpdate(e: any, rowNumber: string, colName: string): void;
onDateValueUpdate(newDateValue: any, rowNumber: string, colName: string): void;
deleteRow(row: any): void;
autoGrowTextZone(e: any): void;
autoResizeTextZone(e: any): void;
regex: RegExp;
val: boolean;
isDate(value: any): boolean;
onItemSelect(item: any): void;
OnItemDeSelect(item: any): void;
onSelectAll(items: any): void;
onDeSelectAll(): void;
searchTextInColumns(searchEvent: any): void;
changingDateColumn(newDateColumnValue: any): void;
searchDateFromChange(newDateFrom: any): void;
searchDateToChange(newDateTo: any): void;
castNumber(value: any): number;
MathMin(a: number, b: number): number;
pageBack(): void;
pageForward(): void;
pageFirst(): void;
pageLast(): void;
readonly maxPage: number;
}