{"version":3,"file":"primeng-scrolltop.mjs","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, AnimationEvent } from '@angular/animations';\nimport { DomHandler } from 'primeng/dom';\nimport { ZIndexUtils } from 'primeng/utils'\nimport { PrimeNGConfig } from 'primeng/api';\n\n@Component({\n    selector: 'p-scrollTop',\n    template: `\n        <button  *ngIf=\"visible\" [@animation]=\"{value: 'open', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@animation.start)=\"onEnter($event)\" (@animation.done)=\"onLeave($event)\"\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    host: {\n        'class': 'p-element'\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    overlay: any;\n\n    constructor(public el: ElementRef, private cd: ChangeDetectorRef, public config: PrimeNGConfig) { }\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(event: AnimationEvent) {\n\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)\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        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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"}