{"version":3,"file":"index.mjs","sources":["../../src/tooltip/BaseTooltip.js","../../src/tooltip/Tooltip.js"],"sourcesContent":["import BaseDirective from '@primevue/core/basedirective';\nimport TooltipStyle from 'primevue/tooltip/style';\n\nconst BaseTooltip = BaseDirective.extend({\n style: TooltipStyle\n});\n\nexport default BaseTooltip;\n","import { addClass, createElement, fadeIn, findSingle, getAttribute, getOuterHeight, getOuterWidth, getViewport, getWindowScrollLeft, getWindowScrollTop, hasClass, isExist, isTouchDevice, removeClass } from '@primeuix/utils/dom';\nimport { isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport BaseTooltip from './BaseTooltip';\n\nconst Tooltip = BaseTooltip.extend('tooltip', {\n beforeMount(el, options) {\n let target = this.getTarget(el);\n\n target.$_ptooltipModifiers = this.getModifiers(options);\n\n if (!options.value) return;\n else if (typeof options.value === 'string') {\n target.$_ptooltipValue = options.value;\n target.$_ptooltipDisabled = false;\n target.$_ptooltipEscape = true;\n target.$_ptooltipClass = null;\n target.$_ptooltipFitContent = true;\n target.$_ptooltipIdAttr = UniqueComponentId() + '_tooltip';\n target.$_ptooltipShowDelay = 0;\n target.$_ptooltipHideDelay = 0;\n target.$_ptooltipAutoHide = true;\n } else if (typeof options.value === 'object' && options.value) {\n if (isEmpty(options.value.value) || options.value.value.trim() === '') return;\n else {\n target.$_ptooltipValue = options.value.value;\n target.$_ptooltipDisabled = !!options.value.disabled === options.value.disabled ? options.value.disabled : false;\n target.$_ptooltipEscape = !!options.value.escape === options.value.escape ? options.value.escape : true;\n target.$_ptooltipClass = options.value.class || '';\n target.$_ptooltipFitContent = !!options.value.fitContent === options.value.fitContent ? options.value.fitContent : true;\n target.$_ptooltipIdAttr = options.value.id || UniqueComponentId() + '_tooltip';\n target.$_ptooltipShowDelay = options.value.showDelay || 0;\n target.$_ptooltipHideDelay = options.value.hideDelay || 0;\n target.$_ptooltipAutoHide = !!options.value.autoHide === options.value.autoHide ? options.value.autoHide : true;\n }\n }\n\n target.$_ptooltipZIndex = options.instance.$primevue?.config?.zIndex?.tooltip;\n\n this.bindEvents(target, options);\n\n el.setAttribute('data-pd-tooltip', true);\n },\n updated(el, options) {\n let target = this.getTarget(el);\n\n target.$_ptooltipModifiers = this.getModifiers(options);\n this.unbindEvents(target);\n\n if (!options.value) {\n return;\n }\n\n if (typeof options.value === 'string') {\n target.$_ptooltipValue = options.value;\n target.$_ptooltipDisabled = false;\n target.$_ptooltipEscape = true;\n target.$_ptooltipClass = null;\n target.$_ptooltipIdAttr = target.$_ptooltipIdAttr || UniqueComponentId() + '_tooltip';\n target.$_ptooltipShowDelay = 0;\n target.$_ptooltipHideDelay = 0;\n target.$_ptooltipAutoHide = true;\n\n this.bindEvents(target, options);\n } else if (typeof options.value === 'object' && options.value) {\n if (isEmpty(options.value.value) || options.value.value.trim() === '') {\n this.unbindEvents(target, options);\n\n return;\n } else {\n target.$_ptooltipValue = options.value.value;\n target.$_ptooltipDisabled = !!options.value.disabled === options.value.disabled ? options.value.disabled : false;\n target.$_ptooltipEscape = !!options.value.escape === options.value.escape ? options.value.escape : true;\n target.$_ptooltipClass = options.value.class || '';\n target.$_ptooltipFitContent = !!options.value.fitContent === options.value.fitContent ? options.value.fitContent : true;\n target.$_ptooltipIdAttr = options.value.id || target.$_ptooltipIdAttr || UniqueComponentId() + '_tooltip';\n target.$_ptooltipShowDelay = options.value.showDelay || 0;\n target.$_ptooltipHideDelay = options.value.hideDelay || 0;\n target.$_ptooltipAutoHide = !!options.value.autoHide === options.value.autoHide ? options.value.autoHide : true;\n\n this.bindEvents(target, options);\n }\n }\n },\n unmounted(el, options) {\n let target = this.getTarget(el);\n\n this.remove(target);\n this.unbindEvents(target, options);\n\n if (target.$_ptooltipScrollHandler) {\n target.$_ptooltipScrollHandler.destroy();\n target.$_ptooltipScrollHandler = null;\n }\n },\n timer: undefined,\n methods: {\n bindEvents(el, options) {\n const modifiers = el.$_ptooltipModifiers;\n\n if (modifiers.focus) {\n el.$_focusevent = (event) => this.onFocus(event, options);\n\n el.addEventListener('focus', el.$_focusevent);\n el.addEventListener('blur', this.onBlur.bind(this));\n } else {\n el.$_mouseenterevent = (event) => this.onMouseEnter(event, options);\n\n el.addEventListener('mouseenter', el.$_mouseenterevent);\n el.addEventListener('mouseleave', this.onMouseLeave.bind(this));\n el.addEventListener('click', this.onClick.bind(this));\n }\n\n el.addEventListener('keydown', this.onKeydown.bind(this));\n },\n unbindEvents(el) {\n const modifiers = el.$_ptooltipModifiers;\n\n if (modifiers.focus) {\n el.removeEventListener('focus', el.$_focusevent);\n el.$_focusevent = null;\n\n el.removeEventListener('blur', this.onBlur.bind(this));\n } else {\n el.removeEventListener('mouseenter', el.$_mouseenterevent);\n el.$_mouseenterevent = null;\n\n el.removeEventListener('mouseleave', this.onMouseLeave.bind(this));\n el.removeEventListener('click', this.onClick.bind(this));\n }\n\n el.removeEventListener('keydown', this.onKeydown.bind(this));\n },\n bindScrollListener(el) {\n if (!el.$_ptooltipScrollHandler) {\n el.$_ptooltipScrollHandler = new ConnectedOverlayScrollHandler(el, () => {\n this.hide(el);\n });\n }\n\n el.$_ptooltipScrollHandler.bindScrollListener();\n },\n unbindScrollListener(el) {\n if (el.$_ptooltipScrollHandler) {\n el.$_ptooltipScrollHandler.unbindScrollListener();\n }\n },\n onMouseEnter(event, options) {\n const el = event.currentTarget;\n const showDelay = el.$_ptooltipShowDelay;\n\n this.show(el, options, showDelay);\n },\n onMouseLeave(event) {\n const el = event.currentTarget;\n const hideDelay = el.$_ptooltipHideDelay;\n const autoHide = el.$_ptooltipAutoHide;\n\n if (!autoHide) {\n const valid =\n getAttribute(event.target, 'data-pc-name') === 'tooltip' ||\n getAttribute(event.target, 'data-pc-section') === 'arrow' ||\n getAttribute(event.target, 'data-pc-section') === 'text' ||\n getAttribute(event.relatedTarget, 'data-pc-name') === 'tooltip' ||\n getAttribute(event.relatedTarget, 'data-pc-section') === 'arrow' ||\n getAttribute(event.relatedTarget, 'data-pc-section') === 'text';\n\n !valid && this.hide(el, hideDelay);\n } else {\n this.hide(el, hideDelay);\n }\n },\n onFocus(event, options) {\n const el = event.currentTarget;\n const showDelay = el.$_ptooltipShowDelay;\n\n this.show(el, options, showDelay);\n },\n onBlur(event) {\n const el = event.currentTarget;\n const hideDelay = el.$_ptooltipHideDelay;\n\n this.hide(el, hideDelay);\n },\n onClick(event) {\n const el = event.currentTarget;\n const hideDelay = el.$_ptooltipHideDelay;\n\n this.hide(el, hideDelay);\n },\n onKeydown(event) {\n const el = event.currentTarget;\n const hideDelay = el.$_ptooltipHideDelay;\n\n event.code === 'Escape' && this.hide(event.currentTarget, hideDelay);\n },\n tooltipActions(el, options) {\n if (el.$_ptooltipDisabled || !isExist(el)) {\n return;\n }\n\n let tooltipElement = this.create(el, options);\n\n this.align(el);\n !this.isUnstyled() && fadeIn(tooltipElement, 250);\n\n const $this = this;\n\n window.addEventListener('resize', function onWindowResize() {\n if (!isTouchDevice()) {\n $this.hide(el);\n }\n\n window.removeEventListener('resize', onWindowResize);\n });\n\n tooltipElement.addEventListener('mouseleave', function onTooltipLeave() {\n $this.hide(el);\n\n tooltipElement.removeEventListener('mouseleave', onTooltipLeave);\n });\n\n this.bindScrollListener(el);\n ZIndex.set('tooltip', tooltipElement, el.$_ptooltipZIndex);\n },\n show(el, options, showDelay) {\n if (showDelay !== undefined) {\n this.timer = setTimeout(() => this.tooltipActions(el, options), showDelay);\n } else {\n this.tooltipActions(el, options);\n }\n },\n tooltipRemoval(el) {\n this.remove(el);\n this.unbindScrollListener(el);\n },\n hide(el, hideDelay) {\n clearTimeout(this.timer);\n\n if (hideDelay !== undefined) {\n setTimeout(() => this.tooltipRemoval(el), hideDelay);\n } else {\n this.tooltipRemoval(el);\n }\n },\n getTooltipElement(el) {\n return document.getElementById(el.$_ptooltipId);\n },\n create(el) {\n const modifiers = el.$_ptooltipModifiers;\n\n const tooltipArrow = createElement('div', {\n class: !this.isUnstyled() && this.cx('arrow'),\n 'p-bind': this.ptm('arrow', {\n context: modifiers\n })\n });\n\n const tooltipText = createElement('div', {\n class: !this.isUnstyled() && this.cx('text'),\n 'p-bind': this.ptm('text', {\n context: modifiers\n })\n });\n\n if (!el.$_ptooltipEscape) {\n tooltipText.innerHTML = el.$_ptooltipValue;\n } else {\n tooltipText.innerHTML = '';\n tooltipText.appendChild(document.createTextNode(el.$_ptooltipValue));\n }\n\n const container = createElement(\n 'div',\n {\n id: el.$_ptooltipIdAttr,\n role: 'tooltip',\n style: {\n display: 'inline-block',\n width: el.$_ptooltipFitContent ? 'fit-content' : undefined,\n pointerEvents: !this.isUnstyled() && el.$_ptooltipAutoHide && 'none'\n },\n class: [!this.isUnstyled() && this.cx('root'), el.$_ptooltipClass],\n [this.$attrSelector]: '',\n 'p-bind': this.ptm('root', {\n context: modifiers\n })\n },\n tooltipArrow,\n tooltipText\n );\n\n document.body.appendChild(container);\n\n el.$_ptooltipId = container.id;\n this.$el = container;\n\n return container;\n },\n remove(el) {\n if (el) {\n let tooltipElement = this.getTooltipElement(el);\n\n if (tooltipElement && tooltipElement.parentElement) {\n ZIndex.clear(tooltipElement);\n document.body.removeChild(tooltipElement);\n }\n\n el.$_ptooltipId = null;\n }\n },\n align(el) {\n const modifiers = el.$_ptooltipModifiers;\n\n if (modifiers.top) {\n this.alignTop(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignBottom(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignTop(el);\n }\n }\n } else if (modifiers.left) {\n this.alignLeft(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignRight(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignTop(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignBottom(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignLeft(el);\n }\n }\n }\n }\n } else if (modifiers.bottom) {\n this.alignBottom(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignTop(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignBottom(el);\n }\n }\n } else {\n this.alignRight(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignLeft(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignTop(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignBottom(el);\n\n if (this.isOutOfBounds(el)) {\n this.alignRight(el);\n }\n }\n }\n }\n }\n },\n getHostOffset(el) {\n let offset = el.getBoundingClientRect();\n let targetLeft = offset.left + getWindowScrollLeft();\n let targetTop = offset.top + getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n },\n alignRight(el) {\n this.preAlign(el, 'right');\n let tooltipElement = this.getTooltipElement(el);\n let hostOffset = this.getHostOffset(el);\n let left = hostOffset.left + getOuterWidth(el);\n let top = hostOffset.top + (getOuterHeight(el) - getOuterHeight(tooltipElement)) / 2;\n\n tooltipElement.style.left = left + 'px';\n tooltipElement.style.top = top + 'px';\n },\n alignLeft(el) {\n this.preAlign(el, 'left');\n let tooltipElement = this.getTooltipElement(el);\n let hostOffset = this.getHostOffset(el);\n let left = hostOffset.left - getOuterWidth(tooltipElement);\n let top = hostOffset.top + (getOuterHeight(el) - getOuterHeight(tooltipElement)) / 2;\n\n tooltipElement.style.left = left + 'px';\n tooltipElement.style.top = top + 'px';\n },\n alignTop(el) {\n this.preAlign(el, 'top');\n let tooltipElement = this.getTooltipElement(el);\n let hostOffset = this.getHostOffset(el);\n let left = hostOffset.left + (getOuterWidth(el) - getOuterWidth(tooltipElement)) / 2;\n let top = hostOffset.top - getOuterHeight(tooltipElement);\n\n tooltipElement.style.left = left + 'px';\n tooltipElement.style.top = top + 'px';\n },\n alignBottom(el) {\n this.preAlign(el, 'bottom');\n let tooltipElement = this.getTooltipElement(el);\n let hostOffset = this.getHostOffset(el);\n let left = hostOffset.left + (getOuterWidth(el) - getOuterWidth(tooltipElement)) / 2;\n let top = hostOffset.top + getOuterHeight(el);\n\n tooltipElement.style.left = left + 'px';\n tooltipElement.style.top = top + 'px';\n },\n preAlign(el, position) {\n let tooltipElement = this.getTooltipElement(el);\n\n tooltipElement.style.left = -999 + 'px';\n tooltipElement.style.top = -999 + 'px';\n removeClass(tooltipElement, `p-tooltip-${tooltipElement.$_ptooltipPosition}`);\n !this.isUnstyled() && addClass(tooltipElement, `p-tooltip-${position}`);\n tooltipElement.$_ptooltipPosition = position;\n tooltipElement.setAttribute('data-p-position', position);\n\n let arrowElement = findSingle(tooltipElement, '[data-pc-section=\"arrow\"]');\n\n arrowElement.style.top = position === 'bottom' ? '0' : position === 'right' || position === 'left' || (position !== 'right' && position !== 'left' && position !== 'top' && position !== 'bottom') ? '50%' : null;\n arrowElement.style.bottom = position === 'top' ? '0' : null;\n arrowElement.style.left = position === 'right' || (position !== 'right' && position !== 'left' && position !== 'top' && position !== 'bottom') ? '0' : position === 'top' || position === 'bottom' ? '50%' : null;\n arrowElement.style.right = position === 'left' ? '0' : null;\n },\n isOutOfBounds(el) {\n let tooltipElement = this.getTooltipElement(el);\n let offset = tooltipElement.getBoundingClientRect();\n let targetTop = offset.top;\n let targetLeft = offset.left;\n let width = getOuterWidth(tooltipElement);\n let height = getOuterHeight(tooltipElement);\n let viewport = getViewport();\n\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n },\n getTarget(el) {\n return hasClass(el, 'p-inputwrapper') ? findSingle(el, 'input') : el;\n },\n getModifiers(options) {\n // modifiers\n if (options.modifiers && Object.keys(options.modifiers).length) {\n return options.modifiers;\n }\n\n // arg\n if (options.arg && typeof options.arg === 'object') {\n return Object.entries(options.arg).reduce((acc, [key, val]) => {\n if (key === 'event' || key === 'position') acc[val] = true;\n\n return acc;\n }, {});\n }\n\n return {};\n }\n }\n});\n\nexport default Tooltip;\n"],"names":["BaseTooltip","BaseDirective","extend","style","TooltipStyle","Tooltip","beforeMount","el","options","_options$instance$$pr","target","getTarget","$_ptooltipModifiers","getModifiers","value","$_ptooltipValue","$_ptooltipDisabled","$_ptooltipEscape","$_ptooltipClass","$_ptooltipFitContent","$_ptooltipIdAttr","UniqueComponentId","$_ptooltipShowDelay","$_ptooltipHideDelay","$_ptooltipAutoHide","_typeof","isEmpty","trim","disabled","escape","fitContent","id","showDelay","hideDelay","autoHide","$_ptooltipZIndex","instance","$primevue","config","zIndex","tooltip","bindEvents","setAttribute","updated","unbindEvents","unmounted","remove","$_ptooltipScrollHandler","destroy","timer","undefined","methods","_this","modifiers","focus","$_focusevent","event","onFocus","addEventListener","onBlur","bind","$_mouseenterevent","onMouseEnter","onMouseLeave","onClick","onKeydown","removeEventListener","bindScrollListener","_this2","ConnectedOverlayScrollHandler","hide","unbindScrollListener","currentTarget","show","valid","getAttribute","relatedTarget","code","tooltipActions","isExist","tooltipElement","create","align","isUnstyled","fadeIn","$this","window","onWindowResize","isTouchDevice","onTooltipLeave","ZIndex","set","_this3","setTimeout","tooltipRemoval","_this4","clearTimeout","getTooltipElement","document","getElementById","$_ptooltipId","tooltipArrow","createElement","cx","ptm","context","tooltipText","innerHTML","appendChild","createTextNode","container","_defineProperty","role","display","width","pointerEvents","$attrSelector","body","$el","parentElement","clear","removeChild","top","alignTop","isOutOfBounds","alignBottom","left","alignLeft","alignRight","bottom","getHostOffset","offset","getBoundingClientRect","targetLeft","getWindowScrollLeft","targetTop","getWindowScrollTop","preAlign","hostOffset","getOuterWidth","getOuterHeight","position","removeClass","concat","$_ptooltipPosition","addClass","arrowElement","findSingle","right","height","viewport","getViewport","hasClass","Object","keys","length","arg","entries","reduce","acc","_ref","_ref2","_slicedToArray","key","val"],"mappings":"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"}