@doku-dev/doku-fragment
Version:
A new Angular UI library that moving away from Bootstrap and built from scratch.
100 lines (99 loc) • 3.79 kB
TypeScript
import { NgClass } from '@angular/common';
import { AfterViewInit, ApplicationRef, ElementRef, EnvironmentInjector, EventEmitter, Injector, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { DokuActiveSorter } from './table.interface';
import * as i0 from "@angular/core";
export declare class DokuTable implements AfterViewInit, OnChanges, OnDestroy, OnInit {
private elementRef;
private renderer;
private ngZone;
private envInjector;
private appRef;
private injector;
/**
* Initial active sorter for column.
* @default undefined
*/
activeSorter?: DokuActiveSorter;
/**
* The status of the data.
*
* - `loading`, will show loading content on the table body
* - `empty`, will show no data content on the table body
* - `error`, will show error content on the table body
*
* If status is `undefined`, it means data is provided.
*
* @default undefined
*/
status?: 'loading' | 'empty' | 'error';
/**
* Custom text or template on the table body when status is `empty`.
*
* @default undefined
*/
customNoData?: string | TemplateRef<unknown>;
/**
* Custom text or template on the table body when status is `loading`.
*
* @default undefined
*/
customLoading?: string | TemplateRef<unknown>;
/**
* Custom text or template on the table body when status is `error`.
*/
customError?: string | TemplateRef<unknown>;
/**
* Listen for column sort changes.
*/
sortChange: EventEmitter<DokuActiveSorter | undefined>;
protected _sortChange: EventEmitter<{
activeSorter?: DokuActiveSorter | undefined;
options?: {
emitEvent?: boolean | undefined;
} | undefined;
}>;
protected sortChange$: import("rxjs").Observable<{
activeSorter?: DokuActiveSorter | undefined;
options?: {
emitEvent?: boolean | undefined;
} | undefined;
}>;
private containerElement?;
private filledElement?;
private noDataElement?;
private noDataContentRef?;
private loadingElement?;
private loadingContentRef?;
private errorElement?;
private errorContentRef?;
private destroy$;
constructor(elementRef: ElementRef, renderer: Renderer2, ngZone: NgZone, envInjector: EnvironmentInjector, appRef: ApplicationRef, injector: Injector);
protected get classes(): NgClass['ngClass'];
protected get totalColumn(): number;
ngOnInit(): void;
ngOnDestroy(): void;
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
/**
* Change active sorter programmatically.
* @param activeSorter Value of the active sorter. Provide `undefined` to clear sorter.
* @param options.emitEvent Whether to emit an event for `sortChange`. Default is `true`.
*/
changeActiveSorter(activeSorter?: DokuActiveSorter, options?: {
emitEvent?: boolean;
}): void;
private onResize;
private createContainer;
private initNoDataElement;
private handleCustomNoData;
private resizeNoDataElementWidth;
private initLoadingElement;
private resizeLoadingElementWidth;
private handleCustomLoading;
private initErrorElement;
private handleCustomError;
private resizeErrorElementWidth;
private handleBodyVisibilityByStatus;
static ɵfac: i0.ɵɵFactoryDeclaration<DokuTable, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DokuTable, "[doku-table]", ["dokuTable"], { "activeSorter": "activeSorter"; "status": "status"; "customNoData": "customNoData"; "customLoading": "customLoading"; "customError": "customError"; }, { "sortChange": "sortChange"; }, never, never, true>;
}