primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 49.1 kB
Source Map (JSON)
{"version":3,"file":"primeng-tooltip.mjs","sources":["../../src/tooltip/style/tooltipstyle.ts","../../src/tooltip/tooltip.ts","../../src/tooltip/primeng-tooltip.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-tooltip {\n position: absolute;\n display: none;\n max-width: ${dt('tooltip.max.width')};\n}\n\n.p-tooltip-right,\n.p-tooltip-left {\n padding: 0 ${dt('tooltip.gutter')};\n}\n\n.p-tooltip-top,\n.p-tooltip-bottom {\n padding: ${dt('tooltip.gutter')} 0;\n}\n\n.p-tooltip-text {\n white-space: pre-line;\n word-break: break-word;\n background: ${dt('tooltip.background')};\n color: ${dt('tooltip.color')};\n padding: ${dt('tooltip.padding')};\n box-shadow: ${dt('tooltip.shadow')};\n border-radius: ${dt('tooltip.border.radius')};\n}\n\n.p-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n scale: 2;\n}\n\n.p-tooltip-right .p-tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: calc(-1 * ${dt('tooltip.gutter')});\n border-width: ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} 0;\n border-right-color: ${dt('tooltip.background')};\n}\n\n.p-tooltip-left .p-tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: calc(-1 * ${dt('tooltip.gutter')});\n border-width: ${dt('tooltip.gutter')} 0 ${dt('tooltip.gutter')} ${dt('tooltip.gutter')};\n border-left-color: ${dt('tooltip.background')};\n}\n\n.p-tooltip-top .p-tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: calc(-1 * ${dt('tooltip.gutter')});\n border-width: ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} 0 ${dt('tooltip.gutter')};\n border-top-color: ${dt('tooltip.background')};\n border-bottom-color: ${dt('tooltip.background')};\n}\n\n.p-tooltip-bottom .p-tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: calc(-1 * ${dt('tooltip.gutter')});\n border-width: 0 ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} ${dt('tooltip.gutter')};\n border-top-color: ${dt('tooltip.background')};\n border-bottom-color: ${dt('tooltip.background')};\n}\n`;\n\nconst classes = {\n root: 'p-tooltip p-component',\n arrow: 'p-tooltip-arrow',\n text: 'p-tooltip-text'\n};\n\n@Injectable()\nexport class TooltipStyle extends BaseStyle {\n name = 'tooltip';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * Tooltip directive provides advisory information for a component.\n *\n * [Live Demo](https://www.primeng.org/tooltip)\n *\n * @module tooltipstyle\n *\n */\nexport enum TooltipClasses {\n /**\n * Class name of the root element\n */\n root = 'p-tooltip',\n /**\n * Class name of the arrow element\n */\n arrow = 'p-tooltip-arrow',\n /**\n * Class name of the text element\n */\n text = 'p-tooltip-text'\n}\n\nexport interface TooltipStyle extends BaseStyle {}\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, booleanAttribute, Directive, ElementRef, inject, Input, NgModule, NgZone, numberAttribute, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { appendChild, fadeIn, findSingle, getOuterHeight, getOuterWidth, getViewport, getWindowScrollLeft, getWindowScrollTop, hasClass, removeChild, uuid } from '@primeuix/utils';\nimport { TooltipOptions } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { TooltipStyle } from './style/tooltipstyle';\n\n/**\n * Tooltip directive provides advisory information for a component.\n * @group Components\n */\n@Directive({\n selector: '[pTooltip]',\n standalone: true,\n providers: [TooltipStyle]\n})\nexport class Tooltip extends BaseComponent implements AfterViewInit, OnDestroy {\n /**\n * Position of the tooltip.\n * @group Props\n */\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' | string | undefined;\n /**\n * Event to show the tooltip.\n * @group Props\n */\n @Input() tooltipEvent: 'hover' | 'focus' | 'both' | string | any = 'hover';\n /**\n * Target element to attach the overlay, valid values are \"body\", \"target\" or a local ng-F variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Type of CSS position.\n * @group Props\n */\n @Input() positionStyle: string | undefined;\n /**\n * Style class of the tooltip.\n * @group Props\n */\n @Input() tooltipStyleClass: string | undefined;\n /**\n * Whether the z-index should be managed automatically to always go on top or have a fixed value.\n * @group Props\n */\n @Input() tooltipZIndex: string | undefined;\n /**\n * By default the tooltip contents are rendered as text. Set to false to support html tags in the content.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) escape: boolean = true;\n /**\n * Delay to show the tooltip in milliseconds.\n * @group Props\n */\n @Input({ transform: numberAttribute }) showDelay: number | undefined;\n /**\n * Delay to hide the tooltip in milliseconds.\n * @group Props\n */\n @Input({ transform: numberAttribute }) hideDelay: number | undefined;\n /**\n * Time to wait in milliseconds to hide the tooltip even it is active.\n * @group Props\n */\n @Input({ transform: numberAttribute }) life: number | undefined;\n /**\n * Specifies the additional vertical offset of the tooltip from its default position.\n * @group Props\n */\n @Input({ transform: numberAttribute }) positionTop: number | undefined;\n /**\n * Specifies the additional horizontal offset of the tooltip from its default position.\n * @group Props\n */\n @Input({ transform: numberAttribute }) positionLeft: number | undefined;\n /**\n * Whether to hide tooltip when hovering over tooltip content.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoHide: boolean = true;\n /**\n * Automatically adjusts the element position when there is not enough space on the selected position.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) fitContent: boolean = true;\n /**\n * Whether to hide tooltip on escape key press.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnEscape: boolean = true;\n /**\n * Content of the tooltip.\n * @group Props\n */\n @Input('pTooltip') content: string | TemplateRef<HTMLElement> | undefined;\n /**\n * When present, it specifies that the component should be disabled.\n * @defaultValue false\n * @group Props\n */\n @Input('tooltipDisabled') get disabled(): boolean {\n return this._disabled as boolean;\n }\n set disabled(val: boolean) {\n this._disabled = val;\n this.deactivate();\n }\n /**\n * Specifies the tooltip configuration options for the component.\n * @group Props\n */\n @Input() tooltipOptions: TooltipOptions | undefined;\n\n _tooltipOptions = {\n tooltipLabel: null,\n tooltipPosition: 'right',\n tooltipEvent: 'hover',\n appendTo: 'body',\n positionStyle: null,\n tooltipStyleClass: null,\n tooltipZIndex: 'auto',\n escape: true,\n disabled: null,\n showDelay: null,\n hideDelay: null,\n positionTop: null,\n positionLeft: null,\n life: null,\n autoHide: true,\n hideOnEscape: true,\n id: uuid('pn_id_') + '_tooltip'\n };\n\n _disabled: boolean | undefined;\n\n container: any;\n\n styleClass: string | undefined;\n\n tooltipText: any;\n\n showTimeout: any;\n\n hideTimeout: any;\n\n active: boolean | undefined;\n\n mouseEnterListener: Nullable<Function>;\n\n mouseLeaveListener: Nullable<Function>;\n\n containerMouseleaveListener: Nullable<Function>;\n\n clickListener: Nullable<Function>;\n\n focusListener: Nullable<Function>;\n\n blurListener: Nullable<Function>;\n\n documentEscapeListener: Nullable<Function>;\n\n scrollHandler: any;\n\n resizeListener: any;\n\n _componentStyle = inject(TooltipStyle);\n\n interactionInProgress = false;\n\n constructor(\n public zone: NgZone,\n private viewContainer: ViewContainerRef\n ) {\n super();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n const tooltipEvent = this.getOption('tooltipEvent');\n\n if (tooltipEvent === 'hover' || tooltipEvent === 'both') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onInputClick.bind(this);\n this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.addEventListener('click', this.clickListener);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n }\n if (tooltipEvent === 'focus' || tooltipEvent === 'both') {\n this.focusListener = this.onFocus.bind(this);\n this.blurListener = this.onBlur.bind(this);\n\n let target = this.el.nativeElement.querySelector('.p-component');\n\n if (!target) {\n target = this.getTarget(this.el.nativeElement);\n }\n\n target.addEventListener('focus', this.focusListener);\n target.addEventListener('blur', this.blurListener);\n }\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.tooltipPosition) {\n this.setOption({ tooltipPosition: simpleChange.tooltipPosition.currentValue });\n }\n\n if (simpleChange.tooltipEvent) {\n this.setOption({ tooltipEvent: simpleChange.tooltipEvent.currentValue });\n }\n\n if (simpleChange.appendTo) {\n this.setOption({ appendTo: simpleChange.appendTo.currentValue });\n }\n\n if (simpleChange.positionStyle) {\n this.setOption({ positionStyle: simpleChange.positionStyle.currentValue });\n }\n\n if (simpleChange.tooltipStyleClass) {\n this.setOption({ tooltipStyleClass: simpleChange.tooltipStyleClass.currentValue });\n }\n\n if (simpleChange.tooltipZIndex) {\n this.setOption({ tooltipZIndex: simpleChange.tooltipZIndex.currentValue });\n }\n\n if (simpleChange.escape) {\n this.setOption({ escape: simpleChange.escape.currentValue });\n }\n\n if (simpleChange.showDelay) {\n this.setOption({ showDelay: simpleChange.showDelay.currentValue });\n }\n\n if (simpleChange.hideDelay) {\n this.setOption({ hideDelay: simpleChange.hideDelay.currentValue });\n }\n\n if (simpleChange.life) {\n this.setOption({ life: simpleChange.life.currentValue });\n }\n\n if (simpleChange.positionTop) {\n this.setOption({ positionTop: simpleChange.positionTop.currentValue });\n }\n\n if (simpleChange.positionLeft) {\n this.setOption({ positionLeft: simpleChange.positionLeft.currentValue });\n }\n\n if (simpleChange.disabled) {\n this.setOption({ disabled: simpleChange.disabled.currentValue });\n }\n\n if (simpleChange.content) {\n this.setOption({ tooltipLabel: simpleChange.content.currentValue });\n\n if (this.active) {\n if (simpleChange.content.currentValue) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n this.align();\n } else {\n this.show();\n }\n } else {\n this.hide();\n }\n }\n }\n\n if (simpleChange.autoHide) {\n this.setOption({ autoHide: simpleChange.autoHide.currentValue });\n }\n\n if (simpleChange.id) {\n this.setOption({ id: simpleChange.id.currentValue });\n }\n\n if (simpleChange.tooltipOptions) {\n this._tooltipOptions = { ...this._tooltipOptions, ...simpleChange.tooltipOptions.currentValue };\n this.deactivate();\n\n if (this.active) {\n if (this.getOption('tooltipLabel')) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n this.align();\n } else {\n this.show();\n }\n } else {\n this.hide();\n }\n }\n }\n }\n\n isAutoHide(): boolean {\n return this.getOption('autoHide');\n }\n\n onMouseEnter(e: Event) {\n if (!this.container && !this.showTimeout) {\n this.activate();\n }\n }\n\n onMouseLeave(e: MouseEvent) {\n if (!this.isAutoHide()) {\n const valid = hasClass(e.relatedTarget as any, 'p-tooltip') || hasClass(e.relatedTarget as any, 'p-tooltip-text') || hasClass(e.relatedTarget as any, 'p-tooltip-arrow');\n !valid && this.deactivate();\n } else {\n this.deactivate();\n }\n }\n\n onFocus(e: Event) {\n this.activate();\n }\n\n onBlur(e: Event) {\n this.deactivate();\n }\n\n onInputClick(e: Event) {\n this.deactivate();\n }\n\n activate() {\n if (!this.interactionInProgress) {\n this.active = true;\n this.clearHideTimeout();\n\n if (this.getOption('showDelay'))\n this.showTimeout = setTimeout(() => {\n this.show();\n }, this.getOption('showDelay'));\n else this.show();\n\n if (this.getOption('life')) {\n let duration = this.getOption('showDelay') ? this.getOption('life') + this.getOption('showDelay') : this.getOption('life');\n this.hideTimeout = setTimeout(() => {\n this.hide();\n }, duration);\n }\n\n if (this.getOption('hideOnEscape')) {\n this.documentEscapeListener = this.renderer.listen('document', 'keydown.escape', () => {\n this.deactivate();\n this.documentEscapeListener();\n });\n }\n this.interactionInProgress = true;\n }\n }\n\n deactivate() {\n this.interactionInProgress = false;\n this.active = false;\n this.clearShowTimeout();\n\n if (this.getOption('hideDelay')) {\n this.clearHideTimeout(); //life timeout\n this.hideTimeout = setTimeout(() => {\n this.hide();\n }, this.getOption('hideDelay'));\n } else {\n this.hide();\n }\n\n if (this.documentEscapeListener) {\n this.documentEscapeListener();\n }\n }\n\n create() {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n\n this.container = document.createElement('div');\n this.container.setAttribute('id', this.getOption('id'));\n this.container.setAttribute('role', 'tooltip');\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.getOption('positionStyle')) {\n this.container.style.position = this.getOption('positionStyle');\n }\n\n this.container.appendChild(this.tooltipText);\n\n if (this.getOption('appendTo') === 'body') document.body.appendChild(this.container);\n else if (this.getOption('appendTo') === 'target') appendChild(this.container, this.el.nativeElement);\n else appendChild(this.getOption('appendTo'), this.container);\n\n this.container.style.display = 'none';\n\n if (this.fitContent) {\n this.container.style.width = 'fit-content';\n }\n\n if (this.isAutoHide()) {\n this.container.style.pointerEvents = 'none';\n } else {\n this.container.style.pointerEvents = 'unset';\n this.bindContainerMouseleaveListener();\n }\n }\n\n bindContainerMouseleaveListener() {\n if (!this.containerMouseleaveListener) {\n const targetEl: any = this.container ?? this.container.nativeElement;\n\n this.containerMouseleaveListener = this.renderer.listen(targetEl, 'mouseleave', (e) => {\n this.deactivate();\n });\n }\n }\n\n unbindContainerMouseleaveListener() {\n if (this.containerMouseleaveListener) {\n this.bindContainerMouseleaveListener();\n this.containerMouseleaveListener = null;\n }\n }\n\n show() {\n if (!this.getOption('tooltipLabel') || this.getOption('disabled')) {\n return;\n }\n\n this.create();\n\n const nativeElement = this.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('p-dialog');\n\n if (pDialogWrapper) {\n setTimeout(() => {\n this.container && (this.container.style.display = 'inline-block');\n this.container && this.align();\n }, 100);\n } else {\n this.container.style.display = 'inline-block';\n this.align();\n }\n\n fadeIn(this.container, 250);\n\n if (this.getOption('tooltipZIndex') === 'auto') ZIndexUtils.set('tooltip', this.container, this.config.zIndex.tooltip);\n else this.container.style.zIndex = this.getOption('tooltipZIndex');\n\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n\n hide() {\n if (this.getOption('tooltipZIndex') === 'auto') {\n ZIndexUtils.clear(this.container);\n }\n\n this.remove();\n }\n\n updateText() {\n const content = this.getOption('tooltipLabel');\n if (content instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainer.createEmbeddedView(content);\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach((node) => this.tooltipText.appendChild(node));\n } else if (this.getOption('escape')) {\n this.tooltipText.innerHTML = '';\n this.tooltipText.appendChild(document.createTextNode(content));\n } else {\n this.tooltipText.innerHTML = content;\n }\n }\n\n align() {\n let position = this.getOption('tooltipPosition');\n\n const positionPriority = {\n top: [this.alignTop, this.alignBottom, this.alignRight, this.alignLeft],\n bottom: [this.alignBottom, this.alignTop, this.alignRight, this.alignLeft],\n left: [this.alignLeft, this.alignRight, this.alignTop, this.alignBottom],\n right: [this.alignRight, this.alignLeft, this.alignTop, this.alignBottom]\n };\n\n for (let [index, alignmentFn] of positionPriority[position].entries()) {\n if (index === 0) alignmentFn.call(this);\n else if (this.isOutOfBounds()) alignmentFn.call(this);\n else break;\n }\n }\n\n getHostOffset() {\n if (this.getOption('appendTo') === 'body' || this.getOption('appendTo') === 'target') {\n let offset = this.el.nativeElement.getBoundingClientRect();\n let targetLeft = offset.left + getWindowScrollLeft();\n let targetTop = offset.top + getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n } else {\n return { left: 0, top: 0 };\n }\n }\n\n private get activeElement(): HTMLElement {\n return this.el.nativeElement.nodeName.startsWith('P-') ? findSingle(this.el.nativeElement, '.p-component') : this.el.nativeElement;\n }\n\n alignRight() {\n this.preAlign('right');\n const el = this.activeElement;\n const offsetLeft = getOuterWidth(el);\n const offsetTop = (getOuterHeight(el) - getOuterHeight(this.container)) / 2;\n this.alignTooltip(offsetLeft, offsetTop);\n }\n\n alignLeft() {\n this.preAlign('left');\n let offsetLeft = getOuterWidth(this.container);\n let offsetTop = (getOuterHeight(this.el.nativeElement) - getOuterHeight(this.container)) / 2;\n this.alignTooltip(-offsetLeft, offsetTop);\n }\n\n alignTop() {\n this.preAlign('top');\n let offsetLeft = (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;\n let offsetTop = getOuterHeight(this.container);\n this.alignTooltip(offsetLeft, -offsetTop);\n }\n\n alignBottom() {\n this.preAlign('bottom');\n let offsetLeft = (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;\n let offsetTop = getOuterHeight(this.el.nativeElement);\n this.alignTooltip(offsetLeft, offsetTop);\n }\n\n alignTooltip(offsetLeft, offsetTop) {\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + offsetLeft;\n let top = hostOffset.top + offsetTop;\n this.container.style.left = left + this.getOption('positionLeft') + 'px';\n this.container.style.top = top + this.getOption('positionTop') + 'px';\n }\n\n setOption(option: any) {\n this._tooltipOptions = { ...this._tooltipOptions, ...option };\n }\n\n getOption(option: string) {\n return this._tooltipOptions[option as keyof typeof this.tooltipOptions];\n }\n\n getTarget(el: Element) {\n return hasClass(el, 'p-inputwrapper') ? findSingle(el, 'input') : el;\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.getOption('tooltipStyleClass') ? defaultClassName + ' ' + this.getOption('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 = getOuterWidth(this.container);\n let height = getOuterHeight(this.container);\n let viewport = 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 const tooltipEvent = this.getOption('tooltipEvent');\n\n if (tooltipEvent === 'hover' || tooltipEvent === 'both') {\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 if (tooltipEvent === 'focus' || tooltipEvent === 'both') {\n let target = this.el.nativeElement.querySelector('.p-component');\n\n if (!target) {\n target = this.getTarget(this.el.nativeElement);\n }\n\n target.removeEventListener('focus', this.focusListener);\n target.removeEventListener('blur', this.blurListener);\n }\n this.unbindDocumentResizeListener();\n }\n\n remove() {\n if (this.container && this.container.parentElement) {\n if (this.getOption('appendTo') === 'body') document.body.removeChild(this.container);\n else if (this.getOption('appendTo') === 'target') this.el.nativeElement.removeChild(this.container);\n else removeChild(this.getOption('appendTo'), this.container);\n }\n\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.unbindContainerMouseleaveListener();\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 super.ngOnDestroy();\n\n if (this.container) {\n ZIndexUtils.clear(this.container);\n }\n\n this.remove();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.documentEscapeListener) {\n this.documentEscapeListener();\n }\n }\n}\n\n@NgModule({\n imports: [Tooltip],\n exports: [Tooltip]\n})\nexport class TooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}