UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

62 lines (61 loc) 2.3 kB
import { HttpErrorResponse } from '@angular/common/http'; import { Signal } from '@angular/core'; import { Params } from '@angular/router'; import { Observable } from 'rxjs'; import { WatchAPIResponse } from '../api/public-api'; import { KubernetesResource, KubernetesResourceList, Status } from '../core/public-api'; export declare class K8SResourcePagedList<R extends KubernetesResource = KubernetesResource, P = unknown> { private readonly config; private readonly reload$$; private readonly addedUid; private readonly deletedUid; params$: Observable<ListFetchParams<P>>; loadState$: Observable<LoadState<R>>; loading$: Observable<boolean>; items$: Observable<R[]>; totalItems$: Observable<number>; loadError$: Observable<Status | HttpErrorResponse>; $loading: Signal<boolean>; $items: Signal<R[]>; $totalItems: Signal<number>; $loadError: Signal<Status | HttpErrorResponse>; constructor(config: PagedListConfig<R, P>); reload(): void; private sourceLoadState; private loadStateWithPolling; private loadStateWithWatcher; } export interface PagedListConfig<R, P> { params: Signal<ListFetchParams<P>> | Observable<ListFetchParams<P>>; fetcher: (listParams: FetchSeed, extraParams: P) => Observable<KubernetesResourceList<R>>; watcher?: (listParams: FetchSeed, extraParams: P) => Observable<WatchAPIResponse<R>>; polling?: number; } export interface ListFetchParams<P = never> { pageIndex?: number | string; pageSize?: number | string; sortField?: string; sortOrder?: 'asc' | 'desc'; keyword?: string; fieldSelector?: string; labelSelector?: string; extra?: P; } export interface FetchSeed extends Record<string, string> { limit?: string; continue?: string; fieldSelector?: string; } interface LoadState<R> { items: R[]; totalItems: number; loading: boolean; loadSuccess: boolean; loadError?: HttpErrorResponse | Status; } export declare function extractPagedListParams<P>(defaultParams?: ListFetchParams, extraParams?: (queryParams: Params) => P): Readonly<{ stream: () => Observable<ListFetchParams<P>>; signal: () => Signal<ListFetchParams<P>>; }>; export declare function queryListParams(): (queryParams: Params) => void; export {};