Changelog
November 20, 2025 ยท View on GitHub
v19.0.0
- Added angular 21 support.
v18.0.0
- Added angular 20 support.
v17.3.0
- Be Zoneless compatible before angular 20.
v17.2.0
- Drop
model()in favor ofinput()where possible.
v17.1.0
- Drop
@Inputin favor ofsignals.
v17.0.0
- Added angular 19 support.
- Drop
NgModulemodule support.
v16.1.0
- Add full standalone components support.
- Deprecate
NgHttpLoaderModuleandforRoot. PendingRequestsInterceptorhas been refactored fromclasstofunction.- Needed
gettersandsettershave been extracted in a newPendingRequestsInterceptorConfigurer. If you had injectedPendingRequestsInterceptorsomewhere, you must switch toPendingRequestsInterceptorConfigurer. This is a needed BC break. - Note that
^16.0.0is the last release supportingNgModule. - This is not semver compliant, I agree. But the direct usage of
PendingRequestsInterceptormust be very low.
v16.0.0
- Added angular 18 support.
v15.0.0
- Added angular 17 support.
v14.0.0
- Added angular 16 support.
v13.0.0
- Added angular 15 support.
v12.0.0
- Added angular 14 support.
v11.0.1
- RxJS 6 support is now really removed. I should have tagged a new major, but that was announced in
v11.0.0but forgotten, sorry!
v11.0.0
- Added angular 13 support.
- Drop RxJS 6 support.
v10.1.0
- Add minimal RxJS 7 support.
v10.0.0
- Added angular 12 support.
- BC break: The library is not
view-enginecompatible anymore.
v9.1.0
- Added the possibility to specify the backdrop
background-color. Contribution by krishnakumarp.
v9.0.0
- Added angular 11 support.
v8.0.0
- Added angular 10 support.
v7.0.0
- Added angular 9 support.
- BC break:
AbstractLoaderhas been renamed toAbstractLoaderDirective. See here and here.
v6.0.1
- The
rxjspeer dependency is now^6.5.0, because the module uses the newcreation function partition observableintroduced in v6.5.0.
v6.0.0
- Angular 8.x is now the default supported version.
- The
subscriptioninNgHttpLoaderComponenthas completely been removed in favor of anobservable. As there's no need to unsubscribe anymore,ngOnDestroyhas been removed. - The
observableinitialization has been moved tongOnInit. - The tests suite could fail (and succeed) in some unexpected ways. This was caused by some race conditions introduced in v5.0.0. Those are now (hopefully) fixed.
v5.1.0
- This release introduces 2 new options:
- backdrop (
trueby default): If set tofalse, the spinner background elements will remain clickable, without any background color. - opacity: This option lets you override the spinner opacity (0.7 by default).
- backdrop (
v5.0.1
- The
rxjspeerDependencyhas been relaxed from~6.3.3to^6.3.3so that no warning is thrown when therxjsversion has been bumped at application side.
v5.0.0
-
Prior to this release,
NgHttpLoaderComponent#isSpinnerVisiblewas a boolean. Because of unexpected behaviors when a component withChangeDetectionStrategy.OnPushperformed HTTP requests, it is now anObservable<boolean>and has been renamed toNgHttpLoaderComponent#isVisible$.
The associated template now uses anasync pipein order to perform the show/hide logic. -
PendingInterceptorServicehas been renamed toPendingRequestsInterceptor.
v4.0.0
-
HttpClientModulehas been removed from imports.
This caused some issues when external modules were imported in an application, and those modules registered their own HTTP interceptors. See this issue for reference. -
A static
forRoot()method has been added to the module declaration. You must now explicitly call this method when importingNgHttpLoaderModulein your root application module. This intends to avoid multiple providers instances when working with lazy modules in which you would want to importNgHttpLoaderModuleagain for any reason. -
The default spinner is now
Spinkit.skWave(less CPU intensive).
v3.2.0
peerDependencies section now targets angular 7. The module is still angular 6 compatible, so this is not a major release.
Users are still encouraged to upgrade their applications ASAP.
v3.1.2
- Added browserslist support.
- Some cleanup has been done in CSS files to let the CSS auto-prefixer do the job automatically regarding supported browsers.
- Spinkit CSS integration has been been replaced by SCSS.
v3.1.1
The Subscriptions that had been previously moved from constructor to ngOnInit are back in constructor. This avoids testing if the subscriptions exist in ngOnDestroy before unsubscribing them.
v3.1.0
Awesome contribution by gnom7
- Better handling of sequential HTTP requests. Particularly when mixed with the
minDurationoption. See this issue for reference.
Min. duration time: 300ms
---0ms------------------------------200ms-------280ms----------------400ms|
----|---------------------------------------------|-----------------------|
(req1 starts and spinner shows) (req1 ends) (req2 starts) (req2 ends and spinner hides)
Before this, minDuration would have been applied to both HTTP requests.
- Added the
extraDurationoption:- This option make the spinner visible a certain amount of time after the moment when it should have naturally been hidden. This avoids flickering when, for example, multiple HTTP requests are ran sequentially.
- See this issue for reference
Extra duration time: 60ms
---0ms----------200ms------260ms---- |
----|------------|----------|--------|
req starts req ends spinner hides
v3.0.0
- All existing deprecations have been removed.
- BC breaks =>
SpinnerComponenthas been renamed toNgHttpLoaderComponent.- The
<spinner>component-selector has been renamed to<ng-http-loader>.
v2.3.0
This release adds the possibility to filter HTTP requests that should not be handled by the interceptor by providing an array of HTTP headers to the component's filteredHeaders property.
v2.2.0
This release adds the possibility to filter HTTP requests that should not be handled by the interceptor by providing an array of HTTP methods to the component's filteredMethods property.
v2.1.0
This release introduces the minimum duration option. It gives the possibility to force a minimum duration during which the spinner should be visible. You can mix this parameter with the debounce delay option:
<ng-http-loader
[debounceDelay]="100"
[minDuration]="300">
</ng-http-loader>
Debounce delay: 100ms
Min. duration time: 300ms
---0ms--------100ms------------180ms-----------400ms--
----|----------|-----------------|---------------|----
req starts spinner shows req ends spinner hides
SpinnerVisibilityService#visibilityObservable and PendingInterceptorService#pendingRequestsStatus have been respectively deprecated in favor of visibilityObservable$ and pendingRequestsStatus$ (note the $).
v2.0.0
The module bundling now uses ng-packagr.
From now, you must use import { xxxxxxx } from 'ng-http-loader' without referencing the full path.
Also, NgHttpLoaderServicesModule && NgHttpLoaderComponentsModule have been removed and merged back to NgHttpLoaderModule.
The injectables now take advantage of the new Tree Shakable Providers features.
The integration in much cleaner, particularly with lazy loaded modules, and avoids the static forRoot() boilerplate.
v1.0.3
Some compiler options have been reverted, so the compilation target is es5 like before v1.0.2.
v1.0.2
The compiler options have been adjusted so ng-http-loader is now an es2015 module, and can be tree-shaked.
v1.0.1
This release is a bug fix release. It prevents the PendingInterceptorService from being triggered when using the SpinnerVisibilityService.
See this issue for more details.
v1.0.0
This release introduces full support for angular 6 & RxJS 6.
v0.9.1
This release fixes a bug on the SpinKit Sk-Wave component that only appeared after template inlining.
See this thread for details.
v0.9.0
This release adds the more friendly SpinnerVisibilityService#show() && SpinnerVisibilityService#hide() methods as public API.
The visibilitySubject introduced in v0.8.0 is now a ReplaySubject, and its getter returns now an observable.
See the Manually show and hide the spinner section.
v0.8.0
This release adds the SpinnerVisibilityService, a simple injectable service that allows you to manually show/hide the spinner.
See the Manually show and hide the spinner section.
v0.7.1
This release is a bug fix release. It slightly improves the behavior of the filteredUrlPatterns so this parameter takes care of query strings too.
v0.7.0
This release adds the entryComponent property. It allows to specify your own component instead of the built-in ones. It uses the NgComponentOutlet feature.
See the Defining your own spinner section.
v0.6.0
This release adds the debounceDelay parameter (default is 0). It allows to discard the spinner for fast and repeated HTTP requests, which can be annoying under some conditions.
See customization
The library footprint has been reduced by minifying templates and stylesheets before inlining them.
The library now takes advantage of RxJS lettable operators
v0.5.1
This release fixes a bug that could cause the spinner to not show if an HTTP request were performed before the spinner component was initialized.
The responsible Subject has been replaced by a ReplaySubject.
v0.5.0
The module is now splitted in sub-modules for more convenience. See usage.
It's an opt-in feature. The "old" module import method, by simply declaring NgHttpLoaderModule, is still fully supported.
BC break: paths of components and services have changed.
- Components are now located in the
componentsfolders. - Services are now located in the
servicesfolders.
v0.4.0
Added angular 5 full support. The last version compatible with angular 4 is version 0.3.4
v0.3.4
Fixed default spinners background.
v0.3.0
This release gives the possibility to filter HTTP requests that should not be handled by the interceptor by providing an array of URL regex to the component's filteredUrlPatterns property.
v0.2.0
Definitely switch to the new HttpClientModule api available from angular 4.3
v0.1.0
Before completely removing HttpInterceptorService, provide a parallel implementation based on the new built-in angular 4.3 interceptor