{"version":3,"file":"axulus-uikit-defer.mjs","sources":["../../src/app/components/defer/defer.ts","../../src/app/components/defer/axulus-uikit-defer.ts"],"sourcesContent":["import {\n  NgModule,\n  Directive,\n  ElementRef,\n  AfterViewInit,\n  OnDestroy,\n  TemplateRef,\n  EmbeddedViewRef,\n  ViewContainerRef,\n  Renderer2,\n  EventEmitter,\n  Output,\n  ContentChild,\n  ChangeDetectorRef\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Directive({\n  selector: '[pDefer]',\n  host: {\n    class: 'p-element'\n  }\n})\nexport class DeferredLoader implements AfterViewInit, OnDestroy {\n  @Output() onLoad: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild(TemplateRef) template: TemplateRef<any>;\n\n  documentScrollListener: Function;\n\n  view: EmbeddedViewRef<any>;\n\n  constructor(public el: ElementRef, public renderer: Renderer2, public viewContainer: ViewContainerRef, private cd: ChangeDetectorRef) {}\n\n  ngAfterViewInit() {\n    if (this.shouldLoad()) {\n      this.load();\n    }\n\n    if (!this.isLoaded()) {\n      this.documentScrollListener = this.renderer.listen('window', 'scroll', () => {\n        if (this.shouldLoad()) {\n          this.load();\n          this.documentScrollListener();\n          this.documentScrollListener = null;\n        }\n      });\n    }\n  }\n\n  shouldLoad(): boolean {\n    if (this.isLoaded()) {\n      return false;\n    } else {\n      let rect = this.el.nativeElement.getBoundingClientRect();\n      let docElement = document.documentElement;\n      let winHeight = docElement.clientHeight;\n\n      return winHeight >= rect.top;\n    }\n  }\n\n  load(): void {\n    this.view = this.viewContainer.createEmbeddedView(this.template);\n    this.onLoad.emit();\n    this.cd.detectChanges();\n  }\n\n  isLoaded() {\n    return this.view != null;\n  }\n\n  ngOnDestroy() {\n    this.view = null;\n\n    if (this.documentScrollListener) {\n      this.documentScrollListener();\n    }\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [DeferredLoader],\n  declarations: [DeferredLoader]\n})\nexport class DeferModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}