UNPKG

21.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/tooltip/tooltip.ts"],"names":["Tooltip","el","zone","this","tooltipPosition","tooltipEvent","appendTo","tooltipZIndex","escape","Object","defineProperty","prototype","_disabled","val","deactivate","ngAfterViewInit","_this","runOutsideAngular","mouseEnterListener","onMouseEnter","bind","mouseLeaveListener","onMouseLeave","clickListener","onClick","nativeElement","addEventListener","focusListener","onFocus","blurListener","onBlur","e","container","showTimeout","activate","active","clearHideTimeout","showDelay","setTimeout","show","life","duration","hideTimeout","hide","clearShowTimeout","hideDelay","_text","text","offsetParent","updateText","align","create","remove","document","createElement","tooltipArrow","className","appendChild","tooltipText","positionStyle","style","position","body","DomHandler","display","disabled","fadeIn","zIndex","zindex","bindDocumentResizeListener","innerHTML","createTextNode","alignTop","isOutOfBounds","alignBottom","alignRight","alignLeft","getHostOffset","offset","getBoundingClientRect","left","getWindowScrollLeft","top","getWindowScrollTop","preAlign","hostOffset","getOuterWidth","getOuterHeight","defaultClassName","tooltipStyleClass","targetTop","targetLeft","width","height","viewport","getViewport","onWindowResize","resizeListener","window","unbindDocumentResizeListener","removeEventListener","unbindEvents","parentElement","removeChild","clearTimeouts","clearTimeout","ngOnDestroy","ElementRef","NgZone","__decorate","Input","Directive","selector","TooltipModule","NgModule","imports","CommonModule","exports","declarations"],"mappings":"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","sourcesContent":["import { NgModule, Directive, ElementRef, AfterViewInit, OnDestroy, Input, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } 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 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 = 'ui-tooltip-arrow';\n this.container.appendChild(tooltipArrow);\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'ui-tooltip-text ui-shadow ui-corner-all';\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 }\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 = 'ui-tooltip ui-widget ui-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 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.clearTimeouts();\n this.container = 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}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Tooltip],\n declarations: [Tooltip]\n})\nexport class TooltipModule { }\n"]}
\No newline at end of file