ngx-signal-loading-bar
Version:
A lightweight, signal-based, zoneless loading bar for Angular 20. Tracks HTTP requests via HttpClient and provides a reactive progress bar component with standalone components and interceptors.
61 lines (55 loc) • 2.57 kB
TypeScript
import * as _angular_core from '@angular/core';
import { InjectionToken, Provider } from '@angular/core';
import { HttpRequest, HttpHandlerFn, HttpEvent, HttpContextToken } from '@angular/common/http';
import { Observable } from 'rxjs';
declare class NgxSignalLoadingBar {
#private;
/**
* Height of the loading bar in pixels.
* @default 2
*/
readonly barHeight: _angular_core.InputSignal<number>;
/**
* CSS color of the loading bar.
* Accepts any valid CSS color value (hex, rgb, hsl, named colors).
* @default "#f637e3"
*/
readonly barColor: _angular_core.InputSignal<string>;
readonly loadingProgress: _angular_core.Signal<number>;
readonly barGradient: _angular_core.Signal<string>;
readonly boxShadow: _angular_core.Signal<string>;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxSignalLoadingBar, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxSignalLoadingBar, "ngx-signal-loading-bar", never, { "barHeight": { "alias": "barHeight"; "required": false; "isSignal": true; }; "barColor": { "alias": "barColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class LoadingBar {
#private;
readonly isLoading: _angular_core.Signal<boolean>;
readonly currentProgress: _angular_core.Signal<number>;
get TIMEOUT_MS(): number;
constructor();
startLoading(): void;
completeLoading(): void;
incrementRetryCount(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingBar, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoadingBar>;
}
declare const IGNORE_SIGNAL_LOADING_BAR: HttpContextToken<boolean>;
declare function loadingInterceptor(request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>>;
interface LoadingBarConfig {
/**
* Maximum number of times the loading bar will retry failed HTTP requests.
* The loader wont stop and restart multiple times and treat retries as one request.
* @default 0
*/
maxRetryCount?: number;
/**
* Timeout in milliseconds before the loading bar automatically completes.
* Set to 0 to skip timeout logic.
* @default 30000
*/
timeoutMS?: number;
}
declare const LOADING_BAR_CONFIG: InjectionToken<LoadingBarConfig>;
declare function provideLoadingBar(config: LoadingBarConfig): Provider;
export { IGNORE_SIGNAL_LOADING_BAR, LOADING_BAR_CONFIG, LoadingBar, NgxSignalLoadingBar, loadingInterceptor, provideLoadingBar };
export type { LoadingBarConfig };