@alauda-fe/common
Version:
Alauda frontend team common codes.
43 lines (42 loc) • 1.84 kB
TypeScript
/**
* @packageDocumentation
* @module k8s-resource-list
*/
import { HttpErrorResponse } from '@angular/common/http';
import { Observable, ReplaySubject } from 'rxjs';
import { KubernetesResource, KubernetesResourceList, ResourceListParams, Status } from '../core/public-api';
import { ConfigWithParams, ConfigWithRoute, ItemsScanner, ListParams, LoadSnapshot, LoadState, StreamListLoader } from './types';
export declare class K8SResourceList<R extends KubernetesResource = KubernetesResource, Q extends object = ResourceListParams, P extends Q & ListParams = Q & ListParams> implements StreamListLoader<KubernetesResourceList<R>, R> {
private readonly reloadAction$$;
private readonly loadMoreAction$$;
private readonly itemsScanner$$;
private readonly destroy$$;
private readonly insertFn;
loadState$: Observable<LoadState<KubernetesResourceList<R>>>;
queryParams$: Observable<Q>;
rawResponse$: Observable<KubernetesResourceList<R>>;
loading$: Observable<boolean>;
loadingError$: Observable<HttpErrorResponse | Status>;
hasMore$: Observable<boolean>;
continueToken$: Observable<string>;
items$: Observable<R[]>;
bypassItems$: ReplaySubject<R[]>;
timer: number;
snapshot: LoadSnapshot<KubernetesResourceList<R>, R, Q>;
constructor({ fetcher, activatedRoute }: ConfigWithRoute<R, Q, P>);
constructor({ fetcher, fetchParams$ }: ConfigWithParams<R, Q, P>);
reload(silent?: boolean): void;
loadMore(): void;
scanItems(scanner: ItemsScanner<R>): void;
destroy(): void;
create(resource: R): void;
update(resource: R): void;
delete(resource?: R): void;
private _create;
private _update;
private _delete;
private buildLoadStateStream;
private extractContinueTokenFromState;
private initStreams;
private buildWatcher;
}