{"version":3,"file":"ngx-loading-bar-core.mjs","sources":["../../../../packages/core/src/loading-bar.state.ts","../../../../packages/core/src/loading-bar.config.ts","../../../../packages/core/src/loading-bar.service.ts","../../../../packages/core/src/loading-bar.component.ts","../../../../packages/core/src/loading-bar.component.html","../../../../packages/core/src/core.module.ts","../../../../packages/core/src/ngx-loading-bar-core.ts"],"sourcesContent":["import { Subject, timer, of, Observable } from 'rxjs';\nimport { map, switchMap, take, tap, startWith, shareReplay } from 'rxjs/operators';\nimport { LoadingBarConfig } from './loading-bar.config';\n\ninterface ILoadingBarState {\n  action: 'start' | 'complete' | 'set' | 'stop' | 'increment';\n  value: number;\n  initialValue: number;\n}\n\nexport class LoadingBarState {\n  private state: ILoadingBarState = {\n    action: null,\n    value: 0,\n    initialValue: 0,\n  };\n  private requests = null;\n  private disabled = false;\n  private readonly stream$ = new Subject<ILoadingBarState>();\n  private _value$: Observable<number> | null = null;\n\n  constructor(private config: LoadingBarConfig = {}) {\n    this.config = {\n      latencyThreshold: 0,\n      ...config,\n    };\n  }\n\n  get value$() {\n    if (this._value$) {\n      return this._value$;\n    }\n\n    return (this._value$ = this.stream$.pipe(\n      startWith(this.state),\n      switchMap((s) => this.timer$(s)),\n      shareReplay(),\n      map((s) => s.value),\n    ));\n  }\n\n  start(initialValue = 2) {\n    if (this.disabled) {\n      return;\n    }\n\n    this.next({ action: 'start', initialValue });\n  }\n\n  stop() {\n    this.next({ action: 'stop' });\n  }\n\n  complete() {\n    this.next({ action: 'complete' });\n  }\n\n  disable() {\n    this.disabled = true;\n  }\n\n  set(value: number) {\n    this.next({ action: 'set', value });\n  }\n\n  increment(value = 0) {\n    this.next({ action: 'increment', value });\n  }\n\n  private next(state: Partial<ILoadingBarState>, emitEvent = true) {\n    switch (state.action) {\n      case 'start':\n        this.requests = (this.requests || 0) + 1;\n        break;\n      case 'complete':\n        this.requests = (this.requests || 1) - 1;\n        if (this.requests > 0) {\n          return;\n        }\n        break;\n      case 'stop':\n        this.requests = 0;\n        break;\n      case 'increment':\n        state.value = this._increment(state.value);\n        break;\n    }\n\n    this.state = { ...this.state, action: null, ...state };\n    if (emitEvent) {\n      this.stream$.next(this.state);\n    }\n  }\n\n  private timer$ = (s: ILoadingBarState) => {\n    let state$: Observable<Partial<ILoadingBarState>> = of(s);\n    switch (s.action) {\n      case 'start':\n      case 'increment':\n      case 'set': {\n        if (s.action === 'start' && this.config.latencyThreshold === 0 && s.value === 0) {\n          s.value = s.initialValue;\n        }\n\n        if (this.requests > 0) {\n          state$ = timer(this.config.latencyThreshold, 250).pipe(\n            map((t) => ({ ...s, value: t === 0 ? this.state.value || s.initialValue : this._increment() })),\n          );\n        }\n        break;\n      }\n      case 'complete':\n      case 'stop': {\n        // Attempt to aggregate any start/complete calls within 500ms:\n        state$ =\n          s.value === 0\n            ? of({ ...s })\n            : timer(0, 500).pipe(\n                take(2),\n                map((t) => ({ value: t === 0 ? 100 : 0 })),\n              );\n        break;\n      }\n    }\n\n    return state$.pipe(\n      map((next) => <ILoadingBarState>{ ...next, action: 'set' }),\n      tap((next) => this.next(next, false)),\n    );\n  };\n\n  private _increment(rnd = 0) {\n    const stat = this.state.value;\n    if (stat >= 99) {\n      rnd = 0;\n    }\n\n    if (rnd === 0) {\n      if (stat >= 0 && stat < 25) {\n        // Start out between 3 - 6% increments\n        rnd = Math.random() * (5 - 3 + 1) + 3;\n      } else if (stat >= 25 && stat < 65) {\n        // increment between 0 - 3%\n        rnd = Math.random() * 3;\n      } else if (stat >= 65 && stat < 90) {\n        // increment between 0 - 2%\n        rnd = Math.random() * 2;\n      } else if (stat >= 90 && stat < 99) {\n        // finally, increment it .5 %\n        rnd = 0.5;\n      } else {\n        // after 99%, don't increment:\n        rnd = 0;\n      }\n    }\n\n    return rnd + stat;\n  }\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport interface LoadingBarConfig {\n  latencyThreshold?: number;\n}\n\nexport const LOADING_BAR_CONFIG = new InjectionToken<LoadingBarConfig>('LOADING_BAR_CONFIG');\n\nexport function provideLoadingBar(config: LoadingBarConfig): Provider {\n  return { provide: LOADING_BAR_CONFIG, useValue: config };\n}\n","import { Injectable, NgZone, Optional } from '@angular/core';\nimport { PLATFORM_ID, Inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { LoadingBarState } from './loading-bar.state';\nimport { Subject, combineLatest, Observable, OperatorFunction } from 'rxjs';\nimport { switchMap, map, startWith } from 'rxjs/operators';\nimport { LOADING_BAR_CONFIG, LoadingBarConfig } from './loading-bar.config';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingBarService {\n  private readonly refs: { [id: string]: LoadingBarState } = {};\n  private readonly streams$ = new Subject<void>();\n  readonly value$ = this.streams$.pipe(\n    startWith(null),\n    switchMap(() => combineLatest(Object.keys(this.refs).map((s) => this.refs[s].value$))),\n    runInZone(this.zone),\n    map((v) => Math.max(0, ...v)),\n  );\n\n  /** @deprecated use `value$` instead. */\n  get progress$() {\n    return this.value$;\n  }\n\n  constructor(\n    @Inject(PLATFORM_ID) private platformId: Object,\n    @Optional() @Inject(LOADING_BAR_CONFIG) private config: LoadingBarConfig = {},\n    @Optional() private zone?: NgZone,\n  ) {}\n\n  /** @deprecated use `useRef` instead. */\n  start(initialValue = 2) {\n    this.useRef().start(initialValue);\n  }\n\n  /** @deprecated use `useRef` instead. */\n  set(value: number) {\n    this.useRef().set(value);\n  }\n\n  /** @deprecated use `useRef` instead. */\n  increment(value?: number) {\n    this.useRef().increment(value);\n  }\n\n  /** @deprecated use `useRef` instead. */\n  complete() {\n    this.useRef().complete();\n  }\n\n  /** @deprecated use `useRef` instead. */\n  stop() {\n    this.useRef().stop();\n  }\n\n  useRef(id: string = 'default'): LoadingBarState {\n    if (!this.refs[id]) {\n      this.refs[id] = new LoadingBarState(this.config);\n      this.streams$.next();\n\n      if (!isPlatformBrowser(this.platformId)) {\n        this.refs[id].disable();\n      }\n    }\n\n    return this.refs[id];\n  }\n}\n\n// https://stackoverflow.com/a/57452361/1406096\nexport function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n  if (!zone) {\n    return (source) => source;\n  }\n\n  return (source) =>\n    new Observable((observer) =>\n      source.subscribe(\n        (value: T) => zone.run(() => observer.next(value)),\n        (e: any) => zone.run(() => observer.error(e)),\n        () => zone.run(() => observer.complete()),\n      ),\n    );\n}\n","import { Component, Directive, Input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { LoadingBarService } from './loading-bar.service';\nimport { AsyncPipe, NgIf } from '@angular/common';\n\n@Component({\n  selector: 'ngx-loading-bar',\n  standalone: true,\n  imports: [AsyncPipe, NgIf],\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.Emulated,\n  styleUrls: ['./loading-bar.component.scss'],\n  templateUrl: './loading-bar.component.html',\n  host: {\n    '[attr.fixed]': 'fixed',\n    '[style.color]': 'color',\n  },\n})\nexport class NgxLoadingBar {\n  @Input() includeSpinner = true;\n  @Input() includeBar = true;\n  @Input() fixed = true;\n  @Input() color = '#29d';\n  @Input() value: number;\n  @Input() ref: string;\n  @Input() height: string;\n  @Input() diameter: string;\n\n  get value$() {\n    return this.ref ? this.loader.useRef(this.ref).value$ : this.loader.value$;\n  }\n\n  constructor(private loader: LoadingBarService) {}\n}\n","<ng-container *ngIf=\"value != null ? value : (value$ | async) as progress\">\n  <div *ngIf=\"includeSpinner\" class=\"ngx-spinner\">\n    <div [style.width]=\"diameter\" [style.height]=\"diameter\" class=\"ngx-spinner-icon\"></div>\n  </div>\n  <div\n    *ngIf=\"includeBar\"\n    class=\"ngx-bar\"\n    [style.background]=\"color\"\n    [style.height]=\"height\"\n    [style.width]=\"progress + '%'\"\n  ></div>\n</ng-container>\n","import { ChangeDetectionStrategy, Component, NgModule, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxLoadingBar } from './loading-bar.component';\n\n@Component({\n  selector: 'ngx-loading-bar',\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.Emulated,\n  styleUrls: ['./loading-bar.component.scss'],\n  templateUrl: './loading-bar.component.html',\n  host: {\n    '[attr.fixed]': 'fixed',\n    '[style.color]': 'color',\n  },\n})\nexport class LoadingBarComponent extends NgxLoadingBar {}\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [LoadingBarComponent],\n  exports: [LoadingBarComponent],\n})\nexport class LoadingBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.LoadingBarService"],"mappings":"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"}