{"version":3,"file":"http-spinner.mjs","sources":["../../../projects/http-spinner/src/lib/http-spinner.service.ts","../../../projects/http-spinner/src/lib/http-spinner.component.ts","../../../projects/http-spinner/src/lib/http-spinner.module.ts","../../../projects/http-spinner/src/lib/interceptor.service.ts","../../../projects/http-spinner/src/public-api.ts","../../../projects/http-spinner/src/http-spinner.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class HttpSpinnerService {\r\n  public states: IHttpState[] = [];\r\n  public state = new BehaviorSubject<IHttpState>({} as IHttpState);\r\n\r\n  constructor() {\r\n  }\r\n}\r\n\r\nexport interface IHttpState {\r\n  url: string;\r\n  state: HttpProgressState;\r\n}\r\n\r\nexport enum HttpProgressState {\r\n  start,\r\n  end\r\n}\r\n","import {AfterViewChecked, ChangeDetectorRef, Component, Input, OnDestroy, ViewRef} from '@angular/core';\r\nimport {HttpProgressState, HttpSpinnerService, IHttpState} from './http-spinner.service';\r\nimport {Subscription} from 'rxjs';\r\n\r\n// @ts-ignore\r\n@Component({\r\n  selector: 'http-spinner',\r\n  template: `\r\n    <div *ngIf=\"loading\" class=\"loading-container\">\r\n      <div class=\"loading\">\r\n        <div *ngIf=\"customLoading\" class=\"relative\">\r\n          <svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\"\r\n               viewBox=\"0 0 173.87 96.19\">\r\n            <g id=\"Page-1\">\r\n              <g>\r\n                <g id=\"Group\">\r\n                  <path id=\"Path\" class=\"cls-1 \"\r\n                        d=\"M4.7,71.94C8.15,78.54,14.5,82.59,23,82.69l.15-.2a22.17,22.17,0,0,1-6.4-6.95c-5.95-10.75-4.1-25.9,4.55-37.95a48.83,48.83,0,0,1,3.6-4.35h0C16.25,35.59,10.7,41.19,6.3,48.79S1.25,65.34,4.7,71.94Z\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-2 \"\r\n                        d=\"M16.75,75.49a21.6,21.6,0,0,0,6.4,7c8.15,6,20.9,8.7,31.6,7.25A33.3,33.3,0,0,1,42.2,74.14c-4.75-11.8-3.55-26.65,3.75-39.7a62.36,62.36,0,0,1,15.9-18.35l-.2-.25c-12.35.5-27.4,7.55-36.75,17.4a36.09,36.09,0,0,0-3.6,4.35C12.6,49.59,10.8,64.79,16.75,75.49Z\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-3 \"\r\n                        d=\"M42.2,74.19A33.3,33.3,0,0,0,54.75,89.74h0A30.23,30.23,0,0,0,61.5,93a37,37,0,0,0,30.35-3.5,25.76,25.76,0,0,1-2.25-1.6c-14.85-12.35-13.4-38.5.2-56.5,7.3-9.6,19-17.7,30.85-19v-.2c-9.45-8.5-24.9-10.85-39.5-6.35a59.9,59.9,0,0,0-19.3,10.25A62.36,62.36,0,0,0,46,34.49C38.65,47.54,37.45,62.39,42.2,74.19Z\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-4 \"\r\n                        d=\"M91.85,89.54c8.25,5,21.6,5,31-2.9l.2-.3a16.94,16.94,0,0,1-4.25-2.4c-9.85-7.85-8.6-22.35-3-34.3A51.81,51.81,0,0,1,130.9,30.49,30.51,30.51,0,0,1,146.7,25l.05-.25c-4.45-8.4-14.15-13.3-25.2-12.45-.3.05-.6.05-1,.1-11.8,1.3-23.55,9.35-30.85,19-13.65,18-15,44.15-.2,56.5C90.3,88.49,91.05,89,91.85,89.54Z\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-5 \"\r\n                        d=\"M147.65,25c-.3,0-.65-.05-1-.05a29.64,29.64,0,0,0-15.8,5.45,51.81,51.81,0,0,0-15,19.15c-5.65,11.95-6.9,26.45,3,34.3a16.11,16.11,0,0,0,4.25,2.4c8.9,3.45,22,.6,31.35-6.05,11.55-8.2,17.9-22.55,17-34.4C170.45,34.94,161.25,23.79,147.65,25Z\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                </g>\r\n                <g>\r\n                  <path class=\"cls-6\"\r\n                        d=\"M146.75,24.79c-4.45-8.4-14.15-13.3-25.2-12.45-.3.05-.6.05-1,.1-11.8,1.3-23.55,9.35-30.85,19-13.65,18-15,44.15-.2,56.5a14.13,14.13,0,0,0,2.25,1.6c8.25,5,21.6,5,31-2.9\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-6\" d=\"M54.75,89.74A30.23,30.23,0,0,0,61.5,93a37,37,0,0,0,30.35-3.5c.05-.05.1-.05.15-.1\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-6\"\r\n                        d=\"M120.65,12.24c-9.45-8.5-24.9-10.85-39.5-6.35a59.9,59.9,0,0,0-19.3,10.25A62.36,62.36,0,0,0,46,34.49c-7.3,13.1-8.5,27.9-3.75,39.7A33.3,33.3,0,0,0,54.75,89.74\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-6\"\r\n                        d=\"M61.65,15.89c-12.35.5-27.4,7.55-36.75,17.4a36.09,36.09,0,0,0-3.6,4.35c-8.65,12-10.5,27.2-4.55,38a21.6,21.6,0,0,0,6.4,7c8.15,6,20.9,8.7,31.6,7.25h0\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-6\"\r\n                        d=\"M147.65,25c-.3,0-.65-.05-1-.05a29.64,29.64,0,0,0-15.8,5.45,51.81,51.81,0,0,0-15,19.15c-5.65,11.95-6.9,26.45,3,34.3a16.11,16.11,0,0,0,4.25,2.4c8.9,3.45,22,.6,31.35-6.05,11.55-8.2,17.9-22.55,17-34.4-.85-10.9-10.05-22.05-23.65-20.8h-.2\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                  <path class=\"cls-6\" d=\"M24.9,33.24c-8.6,2.35-14.15,7.95-18.55,15.55s-5,16.5-1.65,23.1S14.5,82.54,23,82.64\"\r\n                        transform=\"translate(-0.02 -1.14)\"/>\r\n                </g>\r\n              </g>\r\n            </g>\r\n          </svg>\r\n        </div>\r\n        <div *ngIf=\"!customLoading\">\r\n          <mat-spinner></mat-spinner>\r\n        </div>\r\n      </div>\r\n      <ng-content></ng-content>\r\n    </div>\r\n  `,\r\n  styleUrls: ['http-spinner.component.scss']\r\n})\r\nexport class HttpSpinnerComponent implements AfterViewChecked, OnDestroy {\r\n  public loading = false;\r\n  public subs?: Subscription;\r\n  @Input()\r\n  public customLoading = true;\r\n  @Input() public filterBy: string | Array<string> | null = null;\r\n\r\n  constructor(private httpStateService: HttpSpinnerService, private changeDetector: ChangeDetectorRef) {\r\n  }\r\n\r\n  ngAfterViewChecked() {\r\n    this.subs = this.httpStateService.state.subscribe((progress: IHttpState) => {\r\n      if (progress && progress.url) {\r\n        if (Array.isArray(this.filterBy)) {\r\n          const oldThis = this;\r\n          if (this.filterBy.length <= 0) {\r\n            oldThis.loading = (progress.state === HttpProgressState.start);\r\n            if (oldThis.changeDetector && !(oldThis.changeDetector as ViewRef).destroyed) {\r\n              oldThis.changeDetector.detectChanges();\r\n            }\r\n          } else if (!this.filterBy.some((y) =>\r\n            progress.url.includes(y)\r\n          )) {\r\n            oldThis.loading = (progress.state === HttpProgressState.start);\r\n            if (oldThis.changeDetector && !(oldThis.changeDetector as ViewRef).destroyed) {\r\n              oldThis.changeDetector.detectChanges();\r\n            }\r\n          }\r\n        } else {\r\n          if (!this.filterBy) {\r\n            this.loading = this.httpStateService.states.filter(y => y.state === HttpProgressState.start).length > 0;\r\n            if (this.changeDetector && !(this.changeDetector as ViewRef).destroyed) {\r\n              this.changeDetector.detectChanges();\r\n            }\r\n          } else if (progress.url.indexOf(this.filterBy) === -1) {\r\n            this.loading = (progress.state === HttpProgressState.start);\r\n            if (this.changeDetector && !(this.changeDetector as ViewRef).destroyed) {\r\n              this.changeDetector.detectChanges();\r\n            }\r\n          }\r\n        }\r\n      }\r\n    });\r\n\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subs) {\r\n      this.subs.unsubscribe();\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpSpinnerComponent } from './http-spinner.component';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {CommonModule} from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [HttpSpinnerComponent],\r\n  imports: [\r\n    MatProgressSpinnerModule,\r\n    CommonModule\r\n  ],\r\n  exports: [HttpSpinnerComponent]\r\n})\r\nexport class HttpSpinnerModule { }\r\n","import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\r\nimport {HttpProgressState, HttpSpinnerService} from './http-spinner.service';\r\nimport {Observable} from 'rxjs';\r\nimport {finalize, tap} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class InterceptorService implements HttpInterceptor {\r\n\r\n  private exceptions: string[] = [];\r\n\r\n  constructor(\r\n    private httpStateService: HttpSpinnerService) {\r\n\r\n  }\r\n\r\n  /**\r\n   * Intercepts all requests\r\n   * - in case of an error (network errors included) it repeats a request 3 times\r\n   * - all other error can be handled an error specific case\r\n   * and redirects into specific error pages if necessary\r\n   *\r\n   * There is an exception list for specific URL patterns that we don't want the application to act\r\n   * automatically\r\n   *\r\n   * The interceptor also reports back to the httpStateService when a certain requests started and ended\r\n   */\r\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    if (!this.exceptions.every((term: string) => request.url.indexOf(term) === -1)) {\r\n      return next.handle(request).pipe(tap((response: any) => {\r\n        },\r\n        (error) => {\r\n        }));\r\n    }\r\n\r\n    this.httpStateService.state.next({\r\n      url: request.url,\r\n      state: HttpProgressState.start\r\n    });\r\n    this.httpStateService.states.push({\r\n      url: request.url,\r\n      state: HttpProgressState.start\r\n    });\r\n\r\n    return next.handle(request).pipe(finalize(() => {\r\n      this.httpStateService.state.next({\r\n        url: request.url,\r\n        state: HttpProgressState.end\r\n      });\r\n      this.httpStateService.states = this.httpStateService.states.filter(y => y.url !== request.url);\r\n\r\n    }));\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of http-spinner\r\n */\r\n\r\nexport * from './lib/http-spinner.service';\r\nexport * from './lib/http-spinner.component';\r\nexport * from './lib/http-spinner.module';\r\nexport * from './lib/interceptor.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HttpSpinnerService"],"mappings":"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"}