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
JavaScript
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