# Changelog ## 14.0.0 - Upgrade to Angular 19 (still compatible v17.3.0 and above). - fix: `ngProgressHttp` gives an error with http requests inside effects, closes [#386](https://github.com/MurhafSousli/ngx-progressbar/issues/386) ## 13.0.0 - feat: `NgProgressRef` directive has `(started)` and `(completed)` outputs, instead of subjects. - feat: `NgProgressRef` directive has all `NgProgress` component inputs excepts the irrelevant styling inputs. - feat: Add `fadeOutSpeed` input to set the fade out transition after the progress completes. - feat: Add `--ng-progress-spinner-speed` CSS variable to set the spinner speed. - enhance: Use `NgProgressRef` as *hostDirective* in `NgProgress` component and forward its inputs and outputs. - enhance: avoid triggering the main effects twice in `ProgressRef` directive due to config update. - refactor: Use transform function for `min` and `max` inputs. ### Breaking changes - Remove `setConfig()` function from `ProgressRef` directive, you can now set the inputs directly. - Remove `start()`, `complete()`, `inc()` and `set()` functions from the component reference. ## 12.0.2 - refactor: Use `untracked` in effects instead of `allowSignalWrites` and `setTimeout`. ## 12.0.1 - Upgrade to Angular 18 (still compatible v17.3.0 and above). - feat: Introduce CSS variables for more flexible customization, see [styling](https://github.com/MurhafSousli/ngx-progressbar/wiki/styling). - feat: Provide `provideNgProgressOptions()` to override global options. - feat: Provide `provideNgProgressHttp()` to override http related options. - feat: Provide `provideNgProgressRouter()` to override router related options. - feat: Ability to use boolean inputs as attributes. - refactor: Utilize signals API. ### Breaking changes - The `fixed` option has been removed in favor of `relative` option which does the opposite. - The `meteor` option has been removed in favor of `flat` option which does the opposite. - The `spinner` default option has been changed to `false`. - The service `NgProgress` has been removed. - The component `NgProgressComponent` has been renamed to `NgProgress`. - The options interface `NgProgressConfig` has been renamed to `NgProgressOptions`. - Remove `thick` option, use `--ng-progress-thickness` and `--ng-progress-spinner-thickness` CSS variables instead. - Remove `color` option, use `--ng-progress-color` CSS variable instead. - Remove `ease` option, use `--ng-progress-ease` CSS variable instead. - The option `delay` has been renamed to `minDuration` in progressbar router options. ## 11.1.0 - feat: Migrate to Angular standalone components in [1a6f780](https://github.com/MurhafSousli/ngx-progressbar/pull/360/commits/1a6f780c2796b5762c47bd25f38079f613783dfe). - refactor: Update rxjs imports in [6f426b1](https://github.com/MurhafSousli/ngx-progressbar/pull/360/commits/6f426b165187a5791da13f823903eff9fa91f409). ## 11.0.0 - Update to Angular 16 in [5f05486](https://github.com/MurhafSousli/ngx-progressbar/pull/357/commits/5f054867396415c5490592bf6a3d13d68d1aa62e). - Refactor(core): Update progressbar styles directly to avoid triggering change detection frequently in [42f4bf5](https://github.com/MurhafSousli/ngx-progressbar/pull/357/commits/42f4bf529b13c45ef8f2a413179b090b451828c5). ## 10.0.0 - Update to Angular 15 in [a4f365a](https://github.com/MurhafSousli/ngx-progressbar/pull/356/commits/a4f365ad139a817b38d533b391b3bec7f671c1d0). ## 9.0.0 - Update to Angular 14 in [d7e70a9](https://github.com/MurhafSousli/ngx-progressbar/pull/341/commits/d7e70a9965e94d47e133b0ab5490142bb80df943). ## 8.0.0 - feat: Add matcher feature to http module, closes [#254](https://github.com/MurhafSousli/ngx-progressbar/issues/254) in [a6ab70b](https://github.com/MurhafSousli/ngx-progressbar/pull/331/commits/a6ab70b3c2c9f15c2c0e71c45a88e9745f61202c) and [ce3c0d6](https://github.com/MurhafSousli/ngx-progressbar/pull/331/commits/ce3c0d6b86632c873689330cddea6a977aecf07a). - fix: Remove case-sensitive from `silentApis`, closes [#283](https://github.com/MurhafSousli/ngx-progressbar/issues/283) in [32da22c](https://github.com/MurhafSousli/ngx-progressbar/pull/331/commits/32da22c85e9d9ea8897f7cfb6f11ef1c69226a1a). - refactor: Change `zoom` to `transform: scale`, closes [#275](https://github.com/MurhafSousli/ngx-progressbar/issues/275) in [c78dff6](https://github.com/MurhafSousli/ngx-progressbar/pull/331/commits/c78dff66506aaedf41cd6d82e52944bbafa5748c). - Added unit tests ### Breaking changes **Before:** - `silentApis` used to check the url using `url.startsWith()` **After:** - `silentApis` checks the url using `url.includes()` When `silentApis` is used along with `matcher` regex, it will check if the URL matches both cases, learn more at [wiki page](https://github.com/MurhafSousli/ngx-progressbar/wiki/HttpClient-requests). ## 7.0.0 - Upgrade to Angular 13, closes [#319](https://github.com/MurhafSousli/ngx-progressbar/issues/319) in [fdf89a2](https://github.com/MurhafSousli/ngx-progressbar/pull/325/commits/fdf89a216f3b137e00b6f6f303840f32ad9f30e8). - Rename dir attribute to direction, closes [#322](https://github.com/MurhafSousli/ngx-progressbar/issues/322) in [45634a2](https://github.com/MurhafSousli/ngx-progressbar/pull/325/commits/45634a20dae08df7b57b2f5f5a54ca09d2302e30). ## 6.1.1 - Upgrade to Angular 12 ## 6.1.0 - feat: Use the strict mode, in [25f0976](https://github.com/MurhafSousli/ngx-progressbar/pull/294/commits/25f09769a4ae2a5be0945fdbbe7f0a252ce18bd6). - fix typo for config stream in `NgProgressRef` ### Breaking changes - Rename `NgProgressRef.getState` to `NgProgressRef.snapshot` ## 6.0.4 - Upgrade to Angular 11 ## 6.0.3 - fix: get a new progressRef after the current one has been destroyed, in [69af8fe](https://github.com/MurhafSousli/ngx-progressbar/pull/278/commits/69af8feaac600c0a3c38e116364e9f56bcd81c16). ## 6.0.2 - feat: Upgrade library to Angular 9 in [8b1929a](https://github.com/MurhafSousli/ngx-progressbar/pull/273/commits/8b1929abe3d091b96e12bc545ac83e01022761cc). - fix: Remove warning when the package is installed in Angular 9 in [bdfd1b7](https://github.com/MurhafSousli/ngx-progressbar/pull/271/commits/bdfd1b7844412a50a9aa4c288a38f21d326c07ad). ## 6.0.1 - fix: Cancel any finalizing delays if the progress started again too soon before it was fully completed, closes [#253](https://github.com/MurhafSousli/ngx-progressbar/issues/253) in [e68c7af](https://github.com/MurhafSousli/ngx-progressbar/commit/e68c7af9bf4570a0f4645a65f2bb08ba6ea1bdb2). ## 6.0.0 ### Breaking changes #### Before Before version 6, there were 3 packages each one published in its own npm package `npm i @ngx-progressbar/core @ngx-progressbar/http @ngx-progressbar/router` ```ts import { NgProgressModule } from '@ngx-progressbar/core'; import { NgProgressHttpModule } from '@ngx-progressbar/http'; import { NgProgressRouterModule } from '@ngx-progressbar/router'; ``` #### After After version 6, all the packages is combined and published in one npm package `npm i ngx-progressbar` ```ts import { NgProgressModule } from 'ngx-progressbar'; import { NgProgressHttpModule } from 'ngx-progressbar/http'; import { NgProgressRouterModule } from 'ngx-progressbar/router'; ``` ## 5.3.2 - fix(test): avoid destroying progressRef which is not yet initialized, closes [#217](https://github.com/MurhafSousli/ngx-progressbar/issues/217) in [850c65f](/MurhafSousli/ngx-progressbar/pull/246/commits/850c65f1f2681225ed091ba770dfdb65d92d382c) ## 5.3.1 - feat(http): Ignore HTTP request by appending `ignoreProgressBar` to request's headers, closes [#234](https://github.com/MurhafSousli/ngx-progressbar/issues/234) in [a625d01](https://github.com/MurhafSousli/ngx-progressbar/pull/238/commits/a625d01bfb7d3831fafb6b758512088ba93cfc24). - enhance(core): Increase spinner speed, in [0381cd3](https://github.com/MurhafSousli/ngx-progressbar/pull/239/commits/0381cd3fa1901902feaa7ef6f02576db2d34cd6e). - refactor(core, http, router): Deprecate `forRoot(config?)` usage, config can be provided using `withConfig(config)` instead, in [1b76e0b](https://github.com/MurhafSousli/ngx-progressbar/pull/239/commits/1b76e0bfb7381bb82e6d1bd18dea1bf73c7dcf10). > This removes the need to import `NgProgressModule` in your root module, in other word, you no longer need to include this library in the main bundle if you are using it in lazy loaded modules. ### Breaking changes - Change `NgProgressModule.forRoot()` to `NgProgressModule` - If you use custom config `NgProgressModule.forRoot(config)`, then change it to `NgProgressModule.withConfig(config)` > The same applies on `NgProgressHttpModule` and `NgProgressRouterModule` ## 5.2.1 - Update packages peerDependecies to remove npm warnings in Angular 7 - Update project to Angular 7 ## 5.2.0 - feat(core): Add `[fixed]` option, to disable the default progress bar fixed position, closes [#212](https://github.com/MurhafSousli/ngx-progressbar/issues/212) in [fff21f3](https://github.com/MurhafSousli/ngx-progressbar/pull/214/commits/fff21f3ffda3d6d515928236a33d5fec1dd549a3). - feat(router): Add `startEvents` and `completeEvents` options, closes [#211](https://github.com/MurhafSousli/ngx-progressbar/issues/211) in [0f7effe](https://github.com/MurhafSousli/ngx-progressbar/pull/214/commits/0f7effe0f607e583421a078d3a2a56ce9e0209fa). - refactor(core): Refactor progressbar destroyer function. - refactor(core): change progressbar state from `NgProgressRef.state$` to `NgProgressRef.state`. - refactor(core): Use `Map<string, NgProgressRef>` for instances instead of just an object. - refactor(core): Remove helper functions exposed in `NgProgress`. ### Breaking Changes - The following functions has been remove from `NgProgress` service: `setConfig()`, `start()`, `set()`, `inc()`, `complete()`, `isStarted()`, `started()`, `completed()`, `destroy()`. **Before:** It was possible to use these functions from `NgProgress` service directly ```ts ngProgress.start(); ``` **After:** These functions are accessed by the `NgProgressRef` instance ```ts const progressRef: NgProgressRef = ngProgress.ref(); progressRef.start(); ``` - If you are using `NgProgressRef` to integrate it with other progress bar components **Before:** ```xml <ng-container *ngIf="progressRef.state$ | async; let state"> <mat-progress-bar *ngIf="state.active" [value]="state.value"></mat-progress-bar> </ng-container> ``` **After:** ```xml <ng-container *ngIf="progressRef.state | async; let state"> <mat-progress-bar *ngIf="state.active" [value]="state.value"></mat-progress-bar> </ng-container> ``` ## 5.1.2 - fix(router): Progressbar is not completing when navigation ends, closes [#202](https://github.com/MurhafSousli/ngx-progressbar/issues/202) in [6d8b644](https://github.com/MurhafSousli/ngx-progressbar/pull/203/commits/6d8b644e6d8fe873aad20bb0b92e6e52e262c088). - fix(router): Fix router config.delay is undefined error, in [9dae94b](https://github.com/MurhafSousli/ngx-progressbar/pull/207/commits/9dae94bfa21644495c2e6af76d85b356b178b898). ## 5.1.0 - feat(http): Add optional config to set progressRef id and silent APIs, closes [#83](https://github.com/MurhafSousli/ngx-progressbar/issues/83) in [3c1d72c](https://github.com/MurhafSousli/ngx-progressbar/pull/178/commits/3c1d72c9e203f9b299f7dda2b2eefd0ce66a78c6) (Thanks to @bboyz269). - feat(router): Add optional config to set progressRef id and a delay to complete the progress bar, closes [#181](https://github.com/MurhafSousli/ngx-progressbar/issues/181) in [d274745](https://github.com/MurhafSousli/ngx-progressbar/pull/201/commits/d274745a9721f91f92c42987263b632d817b6bb9). - refactor(NgProgress): Use, `{providedIn: 'root'}` instead of `useFactory` function in [d31cacd](https://github.com/MurhafSousli/ngx-progressbar/pull/201/commits/d31cacd62d9731c1caddd898f83bb1b28c9704b7). ### Breaking changes Before, to add the automagic features, we used to import `NgProgressHttpModule` and `NgProgressRouterModule`. Now we must use `forRoot()` on these modules => `NgProgressHttpModule.forRoot()` and `NgProgressRouterModule.forRoot()`. ## 5.0.1 - fix(build): fix `warning " > @ngx-progressbar/core@5.0.0" has incorrect peer dependency "@angular/core@5.0.0".` ## 5.0.0 - fixbug(build): fix build aot failure with angular 6, closes [#143](https://github.com/MurhafSousli/ngx-progressbar/issues/143), [#167](https://github.com/MurhafSousli/ngx-progressbar/issues/167), [#166](https://github.com/MurhafSousli/ngx-progressbar/issues/166), [#165](https://github.com/MurhafSousli/ngx-progressbar/issues/165), [#164](https://github.com/MurhafSousli/ngx-progressbar/issues/164), [#163](https://github.com/MurhafSousli/ngx-progressbar/issues/163), [#162](https://github.com/MurhafSousli/ngx-progressbar/issues/162), [#161](https://github.com/MurhafSousli/ngx-progressbar/issues/161), [#160](https://github.com/MurhafSousli/ngx-progressbar/issues/160) ## 5.0.0-rc.1 - fix(NgProgressService): NgProgress.completed: return completed observable, [#157](https://github.com/MurhafSousli/ngx-progressbar/pull/157) ## 5.0.0-rc.0 - Upgrade to Angular 6, closes [#143](https://github.com/MurhafSousli/ngx-progressbar/issues/143) in [#156](https://github.com/MurhafSousli/ngx-progressbar/pull/156). ## 4.3.0 - feat(core): add debounceTime option, closes [#141](https://github.com/MurhafSousli/ngx-progressbar/issues/141) in [#151](https://github.com/MurhafSousli/ngx-progressbar/pull/151) ## 4.2.0 - feat(core): Add `trickleFunc` input. This allows users to change the trickling amount based on progress state, closes [#146](https://github.com/MurhafSousli/ngx-progressbar/issues/146) in [#148](https://github.com/MurhafSousli/ngx-progressbar/pull/148). ## 4.1.1 - Use rxjs deep imports to avoid the whole lib to be bundled, [#132](https://github.com/MurhafSousli/ngx-progressbar/pull/132). ## 4.1.0 - feat(Support IE11): Remove css variable, closes [#123](https://github.com/MurhafSousli/ngx-progressbar/issues/123). - refactor(NgProgressComponent): prefix component classes with `ng-` to avoid the side effects with other libraries, closes [#125](https://github.com/MurhafSousli/ngx-progressbar/issues/125). ## 4.0.1 - fix(NgProgressComponent): Initialize progress bar without inputs, closes [#118](https://github.com/MurhafSousli/ngx-progressbar/issues/118). - refactor(NgProgressComponent): Use `style.transform` instead of `ngStyle` to animate the progress. ## 4.0.0 - Move **NgProgress** logic to **NgProgressRef**. - Refactor(NgProgress): became a central service to access progress bars instances (NgProgressRef). - Refactor(NgProgressRef): shorten code, reduce complexity. - Refactor(NgProgressBarComponent): Initialize inputs from the global config. - Improve performance: Use a pure css solution for the progress bar. - Refactor(NgProgressModule): Remove the service factory. ### Features - Supports multiple progress bars, closes [#113](https://github.com/MurhafSousli/ngx-progressbar/issues/113). ```html <ng-progress></ng-progress> <ng-progress id="instance1"></ng-progress> <ng-progress id="instance2"></ng-progress> ``` - Ability to set global config for all progress bars using `forRoot(config)`. - Ability to set *background-color* of the progress bar holder using `.bar-placeholder` class. - Adds `(started)` and `(complete)` output to the component. - Adds `start()`, `set(n)`, `inc(n)`, `complete()` methods to the component. For example: ```html <ng-progress #progressBar></ng-progress> <button (click)="progressBar.start()">Start</button> <button (click)="progressBar.complete()">Complete</button> ``` ### Breaking Changes - `@ngx-progressbar/http-client` package is deprecated in version 4.x, use `@ngx-progressbar/http` instead. - `[toggle]` input has been removed from the component. - `NgProgress.done()` has been renamed to `NgProgress.complete()`. - `NgProgress.ended` has been renamed to `NgProgress.completed()`. - Since `HttpModule` is deprecated, **NgProgress** no longer supports it. - `NgProgressHttpClientModule` has been renamed to `NgProgressHttpModule`, so now the `HttpClient` automagic feature is published on `@ngx-progressbar/http` ## 3.0.2 - Refactor(ProgressBar) - track multiple concurrent requests in [#105](https://github.com/MurhafSousli/ngx-progressbar/pull/105) ## 3.0.1 - Fixed the problem with AOT build in v3.0.0 ## 3.0.0 ### Breaking Changes - Main package is now `@ngx-progressbar/core` - Auto-magic features will be used by importing its module: - For Http requests, use `@ngx-progressbar/http` - For HttpClient requests, use `@ngx-progressbar/http-client` - For Router events, use `@ngx-progressbar/router` - remove `[positionUsing]` option to use translate3d only - rename `[showSpinner]` option to `[spinner]` ### Features - Improve rendering performance - Add `[spinnerPosition]` options to set the spinner position, `left` | `right` - Add `progress.started()` event - Add `progress.ended()` event - Add option to disable progressbar tail (meteor) - Fix progressbar tail (meteor) in right to left direction ## 2.1.1 - Allow `<ng-progress>` component to be destroyed, fixes [#27](https://github.com/MurhafSousli/ngx-progressbar/issues/27), [#28](https://github.com/MurhafSousli/ngx-progressbar/issues/28), [#33](https://github.com/MurhafSousli/ngx-progressbar/issues/33), [#41](https://github.com/MurhafSousli/ngx-progressbar/issues/41), [#81](https://github.com/MurhafSousli/ngx-progressbar/issues/81), [#82](https://github.com/MurhafSousli/ngx-progressbar/issues/82) in [#86](https://github.com/MurhafSousli/ngx-progressbar/issues/86) - Add `NgProgressState` interface for Progress state - **Breaking Changes**: `NgProgressService` has been renamed to `NgProgress` ## 2.1.0 ### Broken Release ## 2.0.8 - fix: remove unused code in [#68](https://github.com/MurhafSousli/ngx-progressbar/issues/68) ## 2.0.7 - fix: after `progress.done()` call `progress.start()` immediately will not work, closes [#65](https://github.com/MurhafSousli/ngx-progressbar/issues/65), [#66](https://github.com/MurhafSousli/ngx-progressbar/issues/66) in [#67](https://github.com/MurhafSousli/ngx-progressbar/issues/67). Thanks to @xinshangshangxin ## 2.0.6 - Remove **NgProgressBrowserXhr** from **NgProgressModule** providers ## 2.0.5 - Remove Http peerDepenedcy, closes [#61](https://github.com/MurhafSousli/ngx-progressbar/issues/61) ## 2.0.4 - feat(NgProgressHttpInterceptor): Adds automagic feature to `HttpClient` (Angular >= 4.3) ## 2.0.3 - Refactor(ProgressComponent) Increase `z-index`, closes #37 - General refactor for all files, improve linting - Use inline styles and templates - `NgProgressCustomBrowserXhr` has renamed to `NgProgressBrowserXhr` ## ~~2.0.2~~ - Broken release ## 2.0.0 - Rename npm package to `ngx-progressbar`. - Update peerDependecies. ## 1.3.0 - (fix) Progressbar transition animation (which was introduced in v1.2.0), closes [#16](https://github.com/MurhafSousli/ngx-progressbar/issues/16) - (refactor) ProgressBarComponent - (feat) Support systemjs - (feat) XHR provider for multiple http requests (BETA), closes [#15](https://github.com/MurhafSousli/ngx-progressbar/issues/15) ## 1.2.0 - (fix) Progressbar stuck after one time, closes [#10](https://github.com/MurhafSousli/ngx-progressbar/issues/10) - (fix) AOT failing, cloese [#8](https://github.com/MurhafSousli/ngx-progressbar/issues/8) - (feat) adds maximum input, closes [#9](https://github.com/MurhafSousli/ngx-progressbar/issues/9) ## 1.1.6 - (fix) default input values ## 1.1.4 ### Fixes Bugs - margin positioning ## 1.1.2 - fixes: Service.Done() doesn't complete the progress if it wasn't trickling - (fix) No Animation on IE, Edge by using css animation-js polyfills ## 1.1.1 - Use rxjs operators to imrpove code quality - Remove extra unnecessory subjects which been used in previous versions - Remove unnecessory style - Use single subject for update progress state - Move logic to the service and make components as dump as possible - Improve animation - Support AOT ### Breaking Changes - Coloring animation is deprecated - `[trickle]` input is deprecated ## 1.0.3 - **Improvement:** Uses `OnPush` change detection strategy on the outer component to improve performance. ## 1.0.1 Stable release -**New Feature:** Thicker size using the input `[thick]=true`. -**Fixes Bug:** Adds transition for the spinner and the progress bar tail *** ## 0.1.5 Initial release