{"version":3,"file":"primeng-scrollpanel.umd.js","sources":["../../src/app/components/scrollpanel/scrollpanel.ts","../../src/app/components/scrollpanel/primeng-scrollpanel.ts"],"sourcesContent":["import { NgModule, Component, Input, AfterViewInit, OnDestroy, ElementRef, NgZone, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, AfterContentInit, ContentChildren, QueryList, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { PrimeTemplate } from 'primeng/api';\n\n@Component({\n selector: 'p-scrollPanel',\n template: `\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./scrollpanel.css']\n})\nexport class ScrollPanel implements AfterViewInit, AfterContentInit, OnDestroy {\n\n @Input() style: any;\n\n @Input() styleClass: string;\n \n constructor(public el: ElementRef, public zone: NgZone, public cd: ChangeDetectorRef) {}\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('content') contentViewChild: ElementRef;\n\n @ViewChild('xBar') xBarViewChild: ElementRef;\n \n @ViewChild('yBar') yBarViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList;\n\n scrollYRatio: number;\n\n scrollXRatio: number;\n\n timeoutFrame: any = (fn) => setTimeout(fn, 0);\n\n initialized: boolean;\n\n lastPageY: number;\n\n lastPageX: number;\n\n isXBarClicked: boolean;\n\n isYBarClicked: boolean;\n\n contentTemplate: TemplateRef;\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.moveBar();\n this.moveBar = this.moveBar.bind(this);\n this.onXBarMouseDown = this.onXBarMouseDown.bind(this);\n this.onYBarMouseDown = this.onYBarMouseDown.bind(this);\n this.onDocumentMouseMove = this.onDocumentMouseMove.bind(this);\n this.onDocumentMouseUp = this.onDocumentMouseUp.bind(this);\n \n window.addEventListener('resize', this.moveBar);\n this.contentViewChild.nativeElement.addEventListener('scroll', this.moveBar);\n this.contentViewChild.nativeElement.addEventListener('mouseenter', this.moveBar);\n this.xBarViewChild.nativeElement.addEventListener('mousedown', this.onXBarMouseDown);\n this.yBarViewChild.nativeElement.addEventListener('mousedown', this.onYBarMouseDown);\n\n this.calculateContainerHeight();\n\n this.initialized = true;\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n calculateContainerHeight() {\n let container = this.containerViewChild.nativeElement;\n let content = this.contentViewChild.nativeElement;\n let xBar = this.xBarViewChild.nativeElement;\n\n let containerStyles = getComputedStyle(container),\n xBarStyles = getComputedStyle(xBar),\n pureContainerHeight = DomHandler.getHeight(container) - parseInt(xBarStyles['height'], 10);\n\n if (containerStyles['max-height'] != \"none\" && pureContainerHeight == 0) {\n if (content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n container.style.height = containerStyles['max-height'];\n }\n else {\n container.style.height = content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + \"px\";\n }\n }\n }\n\n moveBar() {\n let container = this.containerViewChild.nativeElement;\n let content = this.contentViewChild.nativeElement;\n\n /* horizontal scroll */\n let xBar = this.xBarViewChild.nativeElement;\n let totalWidth = content.scrollWidth;\n let ownWidth = content.clientWidth;\n let bottom = (container.clientHeight - xBar.clientHeight) * -1;\n\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n let yBar = this.yBarViewChild.nativeElement;\n let totalHeight = content.scrollHeight;\n let ownHeight = content.clientHeight;\n let right = (container.clientWidth - yBar.clientWidth) * -1;\n\n this.scrollYRatio = ownHeight / totalHeight;\n\n this.requestAnimationFrame(() => {\n if (this.scrollXRatio >= 1) {\n DomHandler.addClass(xBar, 'p-scrollpanel-hidden');\n } \n else {\n DomHandler.removeClass(xBar, 'p-scrollpanel-hidden');\n const xBarWidth = Math.max(this.scrollXRatio * 100, 10);\n const xBarLeft = content.scrollLeft * (100 - xBarWidth) / (totalWidth - ownWidth);\n xBar.style.cssText = 'width:' + xBarWidth + '%; left:' + xBarLeft + '%;bottom:' + bottom + 'px;';\n }\n\n if (this.scrollYRatio >= 1) {\n DomHandler.addClass(yBar, 'p-scrollpanel-hidden');\n } \n else {\n DomHandler.removeClass(yBar, 'p-scrollpanel-hidden');\n const yBarHeight = Math.max(this.scrollYRatio * 100, 10);\n const yBarTop = content.scrollTop * (100 - yBarHeight) / (totalHeight - ownHeight);\n yBar.style.cssText = 'height:' + yBarHeight + '%; top: calc(' + yBarTop + '% - ' + xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n });\n }\n\n onYBarMouseDown(e: MouseEvent) {\n this.isYBarClicked = true;\n this.lastPageY = e.pageY;\n DomHandler.addClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n \n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n\n onXBarMouseDown(e: MouseEvent) {\n this.isXBarClicked = true;\n this.lastPageX = e.pageX;\n DomHandler.addClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n\n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n\n onDocumentMouseMove(e: MouseEvent) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n }\n else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n }\n else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n \n }\n\n onMouseMoveForXBar(e: MouseEvent) {\n let deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n\n this.requestAnimationFrame(() => {\n this.contentViewChild.nativeElement.scrollLeft += deltaX / this.scrollXRatio;\n });\n }\n\n onMouseMoveForYBar(e: MouseEvent) {\n let deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n\n this.requestAnimationFrame(() => {\n this.contentViewChild.nativeElement.scrollTop += deltaY / this.scrollYRatio;\n });\n }\n\n scrollTop(scrollTop: number) {\n let scrollableHeight = this.contentViewChild.nativeElement.scrollHeight - this.contentViewChild.nativeElement.clientHeight;\n scrollTop = scrollTop > scrollableHeight ? scrollableHeight : scrollTop > 0 ? scrollTop : 0;\n this.contentViewChild.nativeElement.scrollTop = scrollTop;\n }\n\n onDocumentMouseUp(e: Event) {\n DomHandler.removeClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(document.body, 'p-scrollpanel-grabbed');\n\n document.removeEventListener('mousemove', this.onDocumentMouseMove);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n }\n\n requestAnimationFrame(f: Function) {\n let frame = window.requestAnimationFrame || this.timeoutFrame;\n frame(f);\n }\n\n ngOnDestroy() {\n if (this.initialized) {\n window.removeEventListener('resize', this.moveBar);\n this.contentViewChild.nativeElement.removeEventListener('scroll', this.moveBar);\n this.contentViewChild.nativeElement.removeEventListener('mouseenter', this.moveBar);\n this.xBarViewChild.nativeElement.removeEventListener('mousedown', this.onXBarMouseDown);\n this.yBarViewChild.nativeElement.removeEventListener('mousedown', this.onYBarMouseDown);\n }\n }\n\n refresh() {\n this.moveBar();\n }\n\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [ScrollPanel],\n declarations: [ScrollPanel]\n})\nexport class ScrollPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DomHandler","Component","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","NgZone","ChangeDetectorRef","Input","ViewChild","ContentChildren","PrimeTemplate","NgModule","CommonModule"],"mappings":"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"}