ngx-progressbar
Version:
<p align="center"> <img height="200px" width="200px" style="text-align: center;" src="https://rawcdn.githack.com/MurhafSousli/ngx-progressbar/e5f30ba33c83690da3249ef2a665e6168b8caeb1/projects/ngx-progressbar-demo/src/assets/logo.svg"> <h1 align="cen
1 lines • 9.44 kB
Source Map (JSON)
{"version":3,"file":"ngx-progressbar-http.mjs","sources":["../../../projects/ngx-progressbar/http/src/ng-progress-http.model.ts","../../../projects/ngx-progressbar/http/src/ng-progress-http-counter.ts","../../../projects/ngx-progressbar/http/src/ng-progress-http-manager.ts","../../../projects/ngx-progressbar/http/src/ng-progress-http.directive.ts","../../../projects/ngx-progressbar/http/src/ng-progress-http.interceptor.ts","../../../projects/ngx-progressbar/http/src/ngx-progressbar-http.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\r\n\r\nexport interface NgProgressHttpOptions {\r\n silentApis?: string[];\r\n matcher?: string | undefined;\r\n}\r\n\r\nexport const NG_PROGRESS_HTTP_OPTIONS: InjectionToken<NgProgressHttpOptions> = new InjectionToken<NgProgressHttpOptions>('NG_PROGRESS_HTTP_OPTIONS', {\r\n providedIn: 'root',\r\n factory: () => null\r\n});\r\n\r\nexport function provideNgProgressHttp(options: NgProgressHttpOptions): Provider {\r\n return [\r\n {\r\n provide: NG_PROGRESS_HTTP_OPTIONS,\r\n useValue: options\r\n }\r\n ];\r\n}\r\n","import { InjectionToken, WritableSignal, signal } from '@angular/core';\r\n\r\nexport const NgProgressHttpCounter: InjectionToken<WritableSignal<number>> = new InjectionToken<WritableSignal<number>>('NgProgressHttpCounter', {\r\n providedIn: 'root',\r\n factory: () => signal(0),\r\n});\r\n","import { Injectable, Signal, computed, inject } from '@angular/core';\r\nimport { NgProgressHttpCounter } from './ng-progress-http-counter';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgProgressHttpManager {\r\n\r\n private readonly inProgressCount: Signal<number> = inject(NgProgressHttpCounter);\r\n\r\n readonly requestsCount: Signal<number> = computed(() => this.inProgressCount());\r\n\r\n readonly requestsLoading: Signal<boolean> = computed(() => !!this.inProgressCount());\r\n\r\n}\r\n","import { Directive, effect, inject, untracked } from '@angular/core';\r\nimport { NgProgressRef } from 'ngx-progressbar';\r\nimport { NgProgressHttpManager } from './ng-progress-http-manager';\r\n\r\n@Directive()\r\nclass NgProgressHttpBase {\r\n\r\n private readonly manager: NgProgressHttpManager = inject(NgProgressHttpManager);\r\n\r\n private readonly progressRef: NgProgressRef = inject(NgProgressRef, { host: true, self: true });\r\n\r\n constructor() {\r\n let initial: boolean = true;\r\n effect(() => {\r\n const requestLoading: boolean = this.manager.requestsLoading();\r\n // Ignore the initial execution if loading state is false\r\n if (initial) {\r\n initial = false;\r\n if (!requestLoading) return;\r\n }\r\n\r\n untracked(() => {\r\n if (requestLoading) {\r\n this.progressRef.start();\r\n } else if (this.progressRef.active()) {\r\n this.progressRef.complete();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: 'ng-progress[ngProgressHttp]'\r\n})\r\nexport class NgProgressHttp extends NgProgressHttpBase {\r\n}\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[ngProgressHttp]:not(ng-progress)',\r\n hostDirectives: [NgProgressRef]\r\n})\r\nexport class NgProgressHttpRef extends NgProgressHttpBase {\r\n}\r\n\r\n","import { inject, untracked, WritableSignal } from '@angular/core';\r\nimport { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http';\r\nimport { finalize, Observable } from 'rxjs';\r\nimport { NgProgressHttpCounter } from './ng-progress-http-counter';\r\nimport { NG_PROGRESS_HTTP_OPTIONS, NgProgressHttpOptions } from './ng-progress-http.model';\r\n\r\nexport function progressInterceptor(req: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> {\r\n\r\n const config: NgProgressHttpOptions = inject(NG_PROGRESS_HTTP_OPTIONS);\r\n\r\n const inProgressCount: WritableSignal<number> = inject(NgProgressHttpCounter);\r\n\r\n // Ignore by request headers\r\n if (req.headers.has('ignoreProgressBar')) {\r\n return next(req.clone({ headers: req.headers.delete('ignoreProgressBar') }));\r\n }\r\n\r\n // Ignore silent api requests\r\n if (config && checkUrl(req, config)) {\r\n return next(req);\r\n }\r\n\r\n return untracked(() => {\r\n inProgressCount.set(inProgressCount() + 1);\r\n\r\n return next(req).pipe(\r\n finalize(() => {\r\n inProgressCount.set(inProgressCount() - 1);\r\n })\r\n );\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Check if request is silent.\r\n */\r\nfunction checkUrl(req: HttpRequest<unknown>, config: NgProgressHttpOptions): boolean {\r\n const url: string = req.url.toLowerCase();\r\n\r\n if (config.matcher && config.silentApis?.length) {\r\n return checkForMatcher(url, config.matcher) && checkForSilentApis(url, config.silentApis);\r\n }\r\n if (config.silentApis?.length) {\r\n return checkForSilentApis(url, config.silentApis);\r\n }\r\n if (config.matcher) {\r\n return checkForMatcher(url, config.matcher);\r\n }\r\n return false;\r\n}\r\n\r\nfunction checkForSilentApis(url: string, silentApis: string[]): boolean {\r\n return !!silentApis.find((u: string) => url.includes(u.toLowerCase()));\r\n}\r\n\r\nfunction checkForMatcher(url: string, matcher: string): boolean {\r\n return !!url.match(matcher);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}