{"version":3,"file":"axulus-uikit-scrolltop.mjs","sources":["../../src/app/components/scrolltop/scrolltop.ts","../../src/app/components/scrolltop/axulus-uikit-scrolltop.ts"],"sourcesContent":["import {\n  NgModule,\n  Component,\n  ChangeDetectionStrategy,\n  ViewEncapsulation,\n  Input,\n  OnInit,\n  OnDestroy,\n  ElementRef,\n  ChangeDetectorRef\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { animate, state, style, transition, trigger, AnimationEvent } from '@angular/animations';\nimport { DomHandler } from '@axulus/uikit/dom';\nimport { ZIndexUtils } from '@axulus/uikit/utils';\nimport { PrimeNGConfig } from '@axulus/uikit/api';\n\n@Component({\n  selector: 'p-scrollTop',\n  template: `\n    <button\n      *ngIf=\"visible\"\n      [@animation]=\"{\n        value: 'open',\n        params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }\n      }\"\n      (@animation.start)=\"onEnter($event)\"\n      (@animation.done)=\"onLeave($event)\"\n      [ngClass]=\"containerClass()\"\n      (click)=\"onClick()\"\n      [class]=\"styleClass\"\n      [ngStyle]=\"style\"\n      type=\"button\"\n    >\n      <span [class]=\"icon\" [ngClass]=\"'p-scrolltop-icon'\"></span>\n    </button>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./scrolltop.css'],\n  animations: [\n    trigger('animation', [\n      state(\n        'void',\n        style({\n          opacity: 0\n        })\n      ),\n      state(\n        'open',\n        style({\n          opacity: 1\n        })\n      ),\n      transition('void => open', animate('{{showTransitionParams}}')),\n      transition('open => void', animate('{{hideTransitionParams}}'))\n    ])\n  ],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class ScrollTop implements OnInit, OnDestroy {\n  @Input() styleClass: string;\n\n  @Input() style: any;\n\n  @Input() target: string = 'window';\n\n  @Input() threshold: number = 400;\n\n  @Input() icon: string = 'pi pi-chevron-up';\n\n  @Input() behavior: string = 'smooth';\n\n  @Input() showTransitionOptions: string = '.15s';\n\n  @Input() hideTransitionOptions: string = '.15s';\n\n  scrollListener: any;\n\n  visible: boolean = false;\n\n  overlay: any;\n\n  constructor(public el: ElementRef, private cd: ChangeDetectorRef, public config: PrimeNGConfig) {}\n\n  ngOnInit() {\n    if (this.target === 'window') this.bindDocumentScrollListener();\n    else if (this.target === 'parent') this.bindParentScrollListener();\n  }\n\n  onClick() {\n    let scrollElement = this.target === 'window' ? window : this.el.nativeElement.parentElement;\n    scrollElement.scroll({\n      top: 0,\n      behavior: this.behavior\n    });\n  }\n\n  onEnter(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'open':\n        this.overlay = event.element;\n        ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n        break;\n      case 'void':\n        this.overlay = null;\n        break;\n    }\n  }\n\n  onLeave(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'void':\n        ZIndexUtils.clear(event.element);\n        break;\n    }\n  }\n\n  checkVisibility(scrollY) {\n    if (scrollY > this.threshold) this.visible = true;\n    else this.visible = false;\n\n    this.cd.markForCheck();\n  }\n\n  bindParentScrollListener() {\n    this.scrollListener = () => {\n      this.checkVisibility(this.el.nativeElement.parentElement.scrollTop);\n    };\n\n    this.el.nativeElement.parentElement.addEventListener('scroll', this.scrollListener);\n  }\n\n  bindDocumentScrollListener() {\n    this.scrollListener = () => {\n      this.checkVisibility(DomHandler.getWindowScrollTop());\n    };\n\n    window.addEventListener('scroll', this.scrollListener);\n  }\n\n  unbindParentScrollListener() {\n    if (this.scrollListener) {\n      this.el.nativeElement.parentElement.removeEventListener('scroll', this.scrollListener);\n      this.scrollListener = null;\n    }\n  }\n\n  unbindDocumentScrollListener() {\n    if (this.scrollListener) {\n      window.removeEventListener('scroll', this.scrollListener);\n      this.scrollListener = null;\n    }\n  }\n\n  containerClass() {\n    return {\n      'p-scrolltop p-link p-component': true,\n      'p-scrolltop-sticky': this.target !== 'window'\n    };\n  }\n\n  ngOnDestroy() {\n    if (this.target === 'window') this.unbindDocumentScrollListener();\n    else if (this.target === 'parent') this.unbindParentScrollListener();\n\n    if (this.overlay) {\n      ZIndexUtils.clear(this.overlay);\n      this.overlay = null;\n    }\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [ScrollTop],\n  declarations: [ScrollTop]\n})\nexport class ScrollTopModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}