UNPKG

ngx-progressbar

Version:

<p align="center"> <img height="200px" width="200px" style="text-align: center;" src="https://gitcdn.xyz/repo/MurhafSousli/ngx-progressbar/master/projects/ngx-progressbar-demo/src/assets/logo.svg"> <h1 align="center">Angular Progressbar</h1> </p>

78 lines (72 loc) 3.98 kB
import * as i0 from '@angular/core'; import { InjectionToken, Injectable, Optional, Inject, NgModule } from '@angular/core'; import * as i2 from '@angular/router'; import { NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router'; import { of } from 'rxjs'; import { tap, delay, filter, switchMap } from 'rxjs/operators'; import * as i1 from 'ngx-progressbar'; const NG_PROGRESS_ROUTER_CONFIG = new InjectionToken('ngProgressRouterConfig'); /** * Check if a router event type exists in an array of router event types */ function eventExists(routerEvent, events) { let res = false; events.map((event) => res = res || routerEvent instanceof event); return res; } class NgProgressRouter { constructor(progress, router, config) { this._config = { id: 'root', delay: 0, startEvents: [NavigationStart], completeEvents: [NavigationEnd, NavigationCancel, NavigationError] }; this._config = config ? Object.assign(Object.assign({}, this._config), config) : this._config; const progressRef = progress.ref(this._config.id); const startProgress = of({}).pipe(tap(() => progressRef.start())); const completeProgress = of({}).pipe(delay(this._config.delay), tap(() => progressRef.complete())); const filterEvents = [...this._config.startEvents, ...this._config.completeEvents]; router.events.pipe(filter((event) => eventExists(event, filterEvents)), switchMap((event) => eventExists(event, this._config.startEvents) ? startProgress : completeProgress)).subscribe(); } } NgProgressRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouter, deps: [{ token: i1.NgProgress }, { token: i2.Router }, { token: NG_PROGRESS_ROUTER_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); NgProgressRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouter, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouter, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.NgProgress }, { type: i2.Router }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NG_PROGRESS_ROUTER_CONFIG] }] }]; } }); class NgProgressRouterModule { // Inject the service to activate it constructor(ngProgressRouter) { } static withConfig(config) { return { ngModule: NgProgressRouterModule, providers: [ { provide: NG_PROGRESS_ROUTER_CONFIG, useValue: config } ] }; } } NgProgressRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouterModule, deps: [{ token: NgProgressRouter }], target: i0.ɵɵFactoryTarget.NgModule }); NgProgressRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouterModule }); NgProgressRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouterModule }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressRouterModule, decorators: [{ type: NgModule, args: [{}] }], ctorParameters: function () { return [{ type: NgProgressRouter }]; } }); /** * Generated bundle index. Do not edit. */ export { NG_PROGRESS_ROUTER_CONFIG, NgProgressRouterModule }; //# sourceMappingURL=ngx-progressbar-router.mjs.map