{"version":3,"file":"primeng-tooltip.umd.js","sources":["../../src/app/components/tooltip/tooltip.ts","../../src/app/components/tooltip/primeng-tooltip.ts"],"sourcesContent":["import { NgModule, Directive, ElementRef, AfterViewInit, OnDestroy, Input, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\n\n@Directive({\n selector: '[pTooltip]'\n})\nexport class Tooltip implements AfterViewInit, OnDestroy {\n\n @Input() tooltipPosition: string = 'right';\n\n @Input() tooltipEvent: string = 'hover';\n\n @Input() appendTo: any = 'body';\n\n @Input() positionStyle: string;\n\n @Input() tooltipStyleClass: string;\n\n @Input() tooltipZIndex: string = 'auto';\n\n @Input() escape: boolean = true;\n\n @Input() showDelay: number;\n\n @Input() hideDelay: number;\n\n @Input() life: number;\n\n @Input(\"tooltipDisabled\") get disabled(): boolean {\n return this._disabled;\n }\n set disabled(val:boolean) {\n this._disabled = val;\n this.deactivate();\n }\n\n _disabled: boolean;\n\n container: any;\n\n styleClass: string;\n\n tooltipText: any;\n\n showTimeout: any;\n\n hideTimeout: any;\n\n active: boolean;\n\n _text: string;\n\n mouseEnterListener: Function;\n\n mouseLeaveListener: Function;\n\n clickListener: Function;\n\n focusListener: Function;\n\n blurListener: Function;\n\n scrollHandler: any;\n\n resizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n if (this.tooltipEvent === 'hover') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onClick.bind(this);\n this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.addEventListener('click', this.clickListener);\n }\n else if (this.tooltipEvent === 'focus') {\n this.focusListener = this.onFocus.bind(this);\n this.blurListener = this.onBlur.bind(this);\n this.el.nativeElement.addEventListener('focus', this.focusListener);\n this.el.nativeElement.addEventListener('blur', this.blurListener);\n }\n });\n }\n\n onMouseEnter(e: Event) {\n if (!this.container && !this.showTimeout) {\n this.activate();\n }\n }\n\n onMouseLeave(e: Event) {\n this.deactivate();\n }\n\n onFocus(e: Event) {\n this.activate();\n }\n\n onBlur(e: Event) {\n this.deactivate();\n }\n\n onClick(e: Event) {\n this.deactivate();\n }\n\n activate() {\n this.active = true;\n this.clearHideTimeout();\n\n if (this.showDelay)\n this.showTimeout = setTimeout(() => { this.show() }, this.showDelay);\n else\n this.show();\n\n if (this.life) {\n let duration = this.showDelay ? this.life + this.showDelay : this.life;\n this.hideTimeout = setTimeout(() => { this.hide() }, duration);\n }\n }\n\n deactivate() {\n this.active = false;\n this.clearShowTimeout();\n\n if (this.hideDelay) {\n this.clearHideTimeout(); //life timeout\n this.hideTimeout = setTimeout(() => { this.hide() }, this.hideDelay);\n }\n else {\n this.hide();\n }\n }\n\n get text(): string {\n return this._text;\n }\n\n @Input('pTooltip') set text(text: string) {\n this._text = text;\n if (this.active) {\n if (this._text) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n\t\t\t\t\tthis.align();\n\t\t\t\t}\n else {\n this.show();\n }\n }\n else {\n this.hide();\n }\n }\n }\n\n create() {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n\n this.container = document.createElement('div');\n\n let tooltipArrow = document.createElement('div');\n tooltipArrow.className = 'p-tooltip-arrow';\n this.container.appendChild(tooltipArrow);\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'p-tooltip-text';\n\n this.updateText();\n\n if (this.positionStyle) {\n this.container.style.position = this.positionStyle;\n }\n\n this.container.appendChild(this.tooltipText);\n\n if (this.appendTo === 'body')\n document.body.appendChild(this.container);\n else if (this.appendTo === 'target')\n DomHandler.appendChild(this.container, this.el.nativeElement);\n else\n DomHandler.appendChild(this.container, this.appendTo);\n\n this.container.style.display = 'inline-block';\n }\n\n show() {\n if (!this.text || this.disabled) {\n return;\n }\n\n this.create();\n this.align();\n DomHandler.fadeIn(this.container, 250);\n\n if (this.tooltipZIndex === 'auto')\n this.container.style.zIndex = ++DomHandler.zindex;\n else\n this.container.style.zIndex = this.tooltipZIndex;\n\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n\n hide() {\n this.remove();\n }\n\n updateText() {\n if (this.escape) {\n this.tooltipText.innerHTML = '';\n this.tooltipText.appendChild(document.createTextNode(this._text));\n }\n else {\n this.tooltipText.innerHTML = this._text;\n }\n }\n\n align() {\n let position = this.tooltipPosition;\n\n switch (position) {\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n getHostOffset() {\n if (this.appendTo === 'body' || this.appendTo === 'target') {\n let offset = this.el.nativeElement.getBoundingClientRect();\n let targetLeft = offset.left + DomHandler.getWindowScrollLeft();\n let targetTop = offset.top + DomHandler.getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n }\n else {\n return { left: 0, top: 0 };\n }\n }\n\n alignRight() {\n this.preAlign('right');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + DomHandler.getOuterWidth(this.el.nativeElement);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignLeft() {\n this.preAlign('left');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left - DomHandler.getOuterWidth(this.container);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignTop() {\n this.preAlign('top');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top - DomHandler.getOuterHeight(this.container);\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignBottom() {\n this.preAlign('bottom');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top + DomHandler.getOuterHeight(this.el.nativeElement);\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n preAlign(position: string) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n let defaultClassName = 'p-tooltip p-component p-tooltip-' + position;\n this.container.className = this.tooltipStyleClass ? defaultClassName + ' ' + this.tooltipStyleClass : defaultClassName;\n }\n\n isOutOfBounds(): boolean {\n let offset = this.container.getBoundingClientRect();\n let targetTop = offset.top;\n let targetLeft = offset.left;\n let width = DomHandler.getOuterWidth(this.container);\n let height = DomHandler.getOuterHeight(this.container);\n let viewport = DomHandler.getViewport();\n\n return (targetLeft + width > viewport.width) || (targetLeft < 0) || (targetTop < 0) || (targetTop + height > viewport.height);\n }\n\n onWindowResize(e: Event) {\n this.hide();\n }\n\n bindDocumentResizeListener() {\n this.zone.runOutsideAngular(() => {\n this.resizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.resizeListener);\n });\n }\n\n unbindDocumentResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (this.container) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindEvents() {\n if (this.tooltipEvent === 'hover') {\n this.el.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.removeEventListener('click', this.clickListener);\n }\n else if (this.tooltipEvent === 'focus') {\n this.el.nativeElement.removeEventListener('focus', this.focusListener);\n this.el.nativeElement.removeEventListener('blur', this.blurListener);\n }\n\n this.unbindDocumentResizeListener();\n }\n\n remove() {\n if (this.container && this.container.parentElement) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.container);\n else if (this.appendTo === 'target')\n this.el.nativeElement.removeChild(this.container);\n else\n DomHandler.removeChild(this.container, this.appendTo);\n }\n\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.clearTimeouts();\n this.container = null;\n this.scrollHandler = null;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n this.remove();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Tooltip],\n declarations: [Tooltip]\n})\nexport class TooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DomHandler","ConnectedOverlayScrollHandler","Directive","ElementRef","NgZone","Input","NgModule","CommonModule"],"mappings":"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"}