UNPKG

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
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 };