@alauda-fe/common
Version:
Alauda frontend team common codes.
89 lines (88 loc) • 6.06 kB
TypeScript
import { Sort } from '@alauda/ui';
import { EventEmitter, QueryList, TemplateRef, TrackByFunction } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';
import { K8sResourceAction, KubernetesResourceList } from '../core/types/k8s/public-api';
import { StreamListLoader } from '../k8s-resource-list/types';
import { TableCellDefDirective } from './helpers.directive';
import { NormalizedTableColumnDef, TableColumnDefs, TableColumn, TableColumnDef, TableFilterFn } from './types';
import { TableUtilService } from './util.service';
import * as i0 from "@angular/core";
export declare class TableComponent<Item extends object, Context = TableUtilService<Item>> {
private readonly router;
private readonly route;
readonly util: TableUtilService<Item>;
list: StreamListLoader<KubernetesResourceList<Item>, Item>;
list$: Observable<StreamListLoader<KubernetesResourceList<Item>, Item>>;
dataSource: Item[] | Observable<Item[]>;
dataSource$: Observable<Item[] | Observable<Item[]>>;
resourceName: string;
resourceName$: Observable<string>;
resourceNameTranslated: string;
sticky: number | string;
permissions: Partial<Record<K8sResourceAction, boolean>>;
columns: ReadonlyArray<TableColumn<Item, Context>>;
columns$: Observable<Array<TableColumn<Item, Context>>>;
filterParams: Record<string, unknown>;
filterParams$: Observable<Record<string, unknown>>;
context: Context;
get finalContext(): Context;
filterFn: TableFilterFn<Item, Context>;
filterFn$: Observable<TableFilterFn<Item, Context>>;
trackBy: TrackByFunction<Item>;
noDataHint: string;
loadingErrorTemplate: TemplateRef<any>;
enablePagination: boolean;
pageSize: number;
pageSizeOptions: number[];
paginationLayout: string;
firstScrollLoad: number;
update: EventEmitter<Item>;
delete: EventEmitter<Item>;
sortChange: EventEmitter<Sort>;
tableCellDefs: QueryList<TableCellDefDirective<Item>>;
get scrollWrapper(): boolean;
get scrollWrapperHeight(): string;
currentPage$: BehaviorSubject<number>;
pageSize$: BehaviorSubject<number>;
pagination: {
total: number;
pages: number;
};
finalDataSource$: Observable<Item[]>;
finalResourceName$: Observable<string>;
columnDefs$: Observable<TableColumnDefs<Item, Context>>;
columnNames$: Observable<import("@alauda-fe/common").LiteralUnion<"action" | "name", string>[]>;
activeSort$$: ReplaySubject<Sort>;
activeSort$: Observable<Sort>;
filteredItems$: Observable<Item[]>;
pagedItems$: Observable<Item[]>;
get isListPage(): boolean;
isListPage$: Observable<boolean>;
isFunction: (value: any) => value is (...args: any[]) => any;
isK8sResource: <T extends import("../core/types/k8s/core").KubernetesResource = import("../core/types/k8s/core").KubernetesResource>(value: object) => value is T;
isFieldNotAvailable: (field: unknown) => boolean;
getValueFromPath: (item: Item, name?: string, path?: import("./types").TableColumnDefPath<Item, unknown>, context?: unknown) => string | number;
trackByName(_: number, columnDef: TableColumnDef<Item, Context>): string;
NAME: string;
CREATOR: string;
CREATED_AT: string;
ACTION: string;
constructor(router: Router, route: ActivatedRoute, util: TableUtilService<Item>);
normalizeColumnDefTranslate(column: TableColumnDef<Item, Context>): TableColumnDef<Item, Context, object, string, string | number>;
normalizeColumnDefSort(column: TableColumnDef<Item, Context>): TableColumnDef<Item, Context, object, string, string | number>;
onSortChange($event: Sort): void;
normalizeActionColumnDef(column: TableColumnDef<Item, Context>): NormalizedTableColumnDef<Item, Context>;
getColumnTemplate(column: string): TemplateRef<{
$implicit: Item;
index: number;
even: boolean;
odd: boolean;
last: boolean;
}>;
trackByFn(index: number, item: Item): string | number | Exclude<"name" extends infer T ? T extends "name" ? T extends keyof Item ? Item[T] : T extends `${infer FieldKey}[${infer IndexKey}]` ? FieldKey extends keyof Item ? import("lodash").IndexedFieldWithPossiblyUndefined<Item[FieldKey], IndexKey> : undefined : import("lodash").IndexedFieldWithPossiblyUndefined<Item, T> : never : never, null>;
onUpdate(data: Item, columnDef: TableColumnDef<Item, Context>): void;
getValue<T, F extends (...args: unknown[]) => T>(functionOrValue: T | F, ...args: Parameters<F>): T;
static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any, any>, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any, any>, "acl-table", never, { "list": { "alias": "list"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "resourceName": { "alias": "resourceName"; "required": false; }; "resourceNameTranslated": { "alias": "resourceNameTranslated"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "permissions": { "alias": "permissions"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "filterParams": { "alias": "filterParams"; "required": false; }; "context": { "alias": "context"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "noDataHint": { "alias": "noDataHint"; "required": false; }; "loadingErrorTemplate": { "alias": "loadingErrorTemplate"; "required": false; }; "enablePagination": { "alias": "enablePagination"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "paginationLayout": { "alias": "paginationLayout"; "required": false; }; "firstScrollLoad": { "alias": "firstScrollLoad"; "required": false; }; }, { "update": "update"; "delete": "delete"; "sortChange": "sortChange"; }, ["tableCellDefs"], never, false, never>;
}