{"version":3,"file":"main-class-componentes-loader.mjs","sources":["../../../../projects/main-class/componentes/loader/src/loader.component.ts","../../../../projects/main-class/componentes/loader/src/loader.component.html","../../../../projects/main-class/componentes/loader/src/loader.service.ts","../../../../projects/main-class/componentes/loader/main-class-componentes-loader.ts"],"sourcesContent":["import {Component, ElementRef, Host, Input, OnInit, Optional, ViewChild} from '@angular/core';\nimport {animate, state, style, transition, trigger} from '@angular/animations';\nimport {from, Observable, Subscription} from 'rxjs';\nimport {LoaderBase} from './loader.service';\nimport {delay} from 'rxjs/operators';\nimport {NgClass} from '@angular/common';\nimport {TranslatePipe} from '@ngx-translate/core';\n\n@Component({\n  selector: 'mcl-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.scss'],\n  animations: [\n    trigger('visibility', [\n      state('shown', style({opacity: 0.75, display: 'block'})),\n      state('hidden', style({opacity: 0, display: 'none'})),\n      transition('* => *', animate('.3s'))\n    ])\n  ],\n  imports: [\n    NgClass,\n    TranslatePipe,\n  ],\n  exportAs: 'loader'\n})\nexport class LoaderComponent implements LoaderBase, OnInit {\n\n  @Input() progresso: any;\n  @Input('show') private $shown = false;\n  @ViewChild('loader') loader?: ElementRef;\n\n  private $component!: HTMLElement | boolean;\n  @Input() labelLoading = 'Aguarde...';\n  @Input() showOnInit = false;\n\n  constructor(@Host() @Optional() private parent: ElementRef) {\n  }\n\n  ngOnInit(): void {\n    this.$shown = this.showOnInit;\n  }\n\n  public get shown(): boolean {\n    return this.$shown;\n  }\n\n  get component() {\n    return this.$component;\n  }\n\n  @Input() set component(component: HTMLElement | boolean) {\n    if (this.$component !== component) {\n      if (typeof this.$component === 'boolean') {\n        if (this.parent && this.$component) {\n          this.parent.nativeElement.parentElement.classList.remove('component-loading');\n        }\n      } else {\n        if (this.$component) {\n          this.$component.classList.remove('component-loading');\n        }\n      }\n\n      if (typeof component === 'boolean') {\n        if (this.parent && component) {\n          this.parent.nativeElement.parentElement.classList.add('component-loading');\n        }\n      } else {\n        if (component) {\n          component.classList.add('component-loading');\n        }\n\n      }\n\n      this.$component = component;\n    }\n\n  }\n\n  private buscando?: Subscription;\n\n  listen<T>(observable: Observable<T> | Promise<T>): Observable<T> {\n    if (this.buscando) {\n      this.buscando.unsubscribe();\n    }\n\n    return new Observable(observer => {\n      this.show();\n\n      this.buscando = from(observable)\n        .pipe(delay(300))\n        .subscribe(t => {\n            if (this.buscando) {\n              this.hide();\n              this.buscando = undefined;\n            }\n            observer.next(t);\n          },\n          err => {\n            if (this.buscando) {\n              this.hide();\n              this.buscando = undefined;\n            }\n\n            observer.error(err);\n          }, () => observer.complete()\n        );\n\n      return () => {\n        if (this.buscando) {\n          this.buscando.unsubscribe();\n\n          this.hide();\n          this.buscando = undefined;\n        }\n      };\n    });\n  }\n\n  get visibility() {\n    return this.$shown ? 'shown' : 'hidden';\n  }\n\n  public show() {\n    this.$shown = true;\n  }\n\n  public hide() {\n    this.$shown = false;\n  }\n\n\n}\n","<div #loader class=\"preloader\" [ngClass]=\"{'preloader-component':component}\" [@visibility]=\"visibility\">\n  <div class=\"cssload-speeding-wheel\"></div>\n  <p class=\"preloader-text\">{{'mcl.loader.aguarde' | translate}}</p>\n</div>\n","import {Injectable} from '@angular/core';\nimport {from, Observable} from 'rxjs';\n\nexport interface LoaderBase {\n  shown: boolean;\n\n  show(): void;\n\n  hide(): void;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LoaderService {\n\n  constructor() {\n  }\n\n  private executando = false;\n  private ajaxCount: Array<string> = [];\n\n  private loader?: LoaderBase;\n\n  init(loader: LoaderBase) {\n    if (this.loader) {\n      return;\n    }\n\n    this.loader = loader;\n  }\n\n  incrementaAJAX(executando: boolean = false): string {\n    this.executando = this.executando || executando;\n\n    const token = String(Math.random() * 1E10);\n\n    this.ajaxCount.push(token);\n\n    if (this.loader && this.executando &&\n      this.ajaxCount.length > 0 && !this.loader.shown) {\n      setTimeout(() => {\n\n        if (this.executando && this.ajaxCount.length > 0 && !this.loader?.shown) {\n          this.loader!.show();\n        }\n\n      }, 150);\n    }\n\n    return token;\n  }\n\n  decrementaAJAX(token: string) {\n    const index = this.ajaxCount.indexOf(token);\n    if (index >= 0) {\n      this.ajaxCount.splice(index, 1);\n\n      setTimeout(() => {\n        if (this.ajaxCount.length <= 0) {\n          if (this.loader &&\n            this.loader.shown) {\n            this.loader.hide();\n            this.executando = false;\n          }\n        }\n      }, 500);\n    }\n  }\n\n\n  public listen<T>(call: Observable<T> | Promise<T>): Observable<T> {\n    this.executando = true;\n\n    return this.doExecuta(from(call));\n  }\n\n  private doExecuta<T>(call: Observable<T>): Observable<T> {\n    return new Observable<T>(subscriber => {\n\n      const token = this.incrementaAJAX();\n\n      const unsubs = call.subscribe(resp => {\n        subscriber.next(resp);\n      }, err => {\n        this.decrementaAJAX(token);\n\n        subscriber.error(err);\n      }, () => {\n        this.decrementaAJAX(token);\n\n        subscriber.complete();\n      });\n\n      return () => {\n        this.decrementaAJAX(token);\n\n        unsubs.unsubscribe();\n      };\n    });\n  }\n\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}