{"version":3,"file":"primeng-scrolltop.umd.js","sources":["../../src/app/components/scrolltop/scrolltop.ts","../../src/app/components/scrolltop/primeng-scrolltop.ts"],"sourcesContent":["import { NgModule, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, OnInit, OnDestroy, ElementRef, ChangeDetectorRef} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { DomHandler } from 'primeng/dom';\n\n@Component({\n    selector: 'p-scrollTop',\n    template: `\n        <button  *ngIf=\"visible\" [@animation]=\"{value: 'open', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@animation.start)=\"onEnter()\"\n            [ngClass]=\"containerClass()\" (click)=\"onClick()\" [class]=\"styleClass\" [ngStyle]=\"style\" type=\"button\">\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('void', style({\n                opacity: 0\n            })),\n            state('open', style({\n                opacity: 1\n            })),\n            transition('void => open', animate('{{showTransitionParams}}')),\n            transition('open => void', animate('{{hideTransitionParams}}')),\n        ])\n    ]\n})\nexport class ScrollTop implements OnInit, OnDestroy {\n\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    constructor(public el: ElementRef, private cd: ChangeDetectorRef) { }\n\n    ngOnInit() {\n        if (this.target === 'window')\n            this.bindDocumentScrollListener();\n        else if (this.target === 'parent')\n            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() {\n        this.el.nativeElement.children[0].style.zIndex = DomHandler.generateZIndex();\n    }\n\n    checkVisibility(scrollY) {\n        if (scrollY > this.threshold)\n            this.visible = true;\n        else\n            this.visible = false;\n\n        this.cd.markForCheck();\n    }\n\n    bindParentScrollListener() {\n        this.scrollListener = () => {\n\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')\n            this.unbindDocumentScrollListener();\n        else if (this.target === 'parent')\n            this.unbindParentScrollListener();\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":["DomHandler","trigger","state","style","transition","animate","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","CommonModule","NgModule"],"mappings":"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"}