primevue
Version:
PrimeVue is an open source UI library for Vue 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 PrimeBloc
1 lines • 48 kB
Source Map (JSON)
{"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 { uuid } from '@primeuix/utils/uuid';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } 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 = uuid('pv_id') + '_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 || uuid('pv_id') + '_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 || uuid('pv_id') + '_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 || uuid('pv_id') + '_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.hide(el, 0);\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 methods: {\n bindEvents(el, options) {\n const modifiers = el.$_ptooltipModifiers;\n\n if (modifiers.focus) {\n el.$_ptooltipFocusEvent = (event) => this.onFocus(event, options);\n el.$_ptooltipBlurEvent = this.onBlur.bind(this);\n\n el.addEventListener('focus', el.$_ptooltipFocusEvent);\n el.addEventListener('blur', el.$_ptooltipBlurEvent);\n } else {\n el.$_ptooltipMouseEnterEvent = (event) => this.onMouseEnter(event, options);\n el.$_ptooltipMouseLeaveEvent = this.onMouseLeave.bind(this);\n el.$_ptooltipClickEvent = this.onClick.bind(this);\n\n el.addEventListener('mouseenter', el.$_ptooltipMouseEnterEvent);\n el.addEventListener('mouseleave', el.$_ptooltipMouseLeaveEvent);\n el.addEventListener('click', el.$_ptooltipClickEvent);\n }\n\n el.$_ptooltipKeydownEvent = this.onKeydown.bind(this);\n el.addEventListener('keydown', el.$_ptooltipKeydownEvent);\n\n el.$_pWindowResizeEvent = this.onWindowResize.bind(this, el);\n },\n unbindEvents(el) {\n const modifiers = el.$_ptooltipModifiers;\n\n if (modifiers.focus) {\n el.removeEventListener('focus', el.$_ptooltipFocusEvent);\n el.$_ptooltipFocusEvent = null;\n\n el.removeEventListener('blur', el.$_ptooltipBlurEvent);\n el.$_ptooltipBlurEvent = null;\n } else {\n el.removeEventListener('mouseenter', el.$_ptooltipMouseEnterEvent);\n el.$_ptooltipMouseEnterEvent = null;\n\n el.removeEventListener('mouseleave', el.$_ptooltipMouseLeaveEvent);\n el.$_ptooltipMouseLeaveEvent = null;\n\n el.removeEventListener('click', el.$_ptooltipClickEvent);\n el.$_ptooltipClickEvent = null;\n }\n\n el.removeEventListener('keydown', el.$_ptooltipKeydownEvent);\n window.removeEventListener('resize', el.$_pWindowResizeEvent);\n\n if (el.$_ptooltipId) {\n this.remove(el);\n }\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 onWindowResize(el) {\n if (!isTouchDevice()) {\n this.hide(el);\n }\n\n window.removeEventListener('resize', el.$_pWindowResizeEvent);\n },\n tooltipActions(el, options) {\n if (el.$_ptooltipDisabled || !isExist(el) || !el.$_ptooltipPendingShow) {\n return;\n }\n\n el.$_ptooltipPendingShow = false;\n this.remove(el);\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', el.$_pWindowResizeEvent);\n\n tooltipElement.addEventListener('mouseleave', function onTooltipLeave() {\n $this.hide(el);\n\n tooltipElement.removeEventListener('mouseleave', onTooltipLeave);\n el.removeEventListener('mouseenter', el.$_ptooltipMouseEnterEvent);\n setTimeout(() => el.addEventListener('mouseenter', el.$_ptooltipMouseEnterEvent), 50);\n });\n\n this.bindScrollListener(el);\n ZIndex.set('tooltip', tooltipElement, el.$_ptooltipZIndex);\n },\n show(el, options, showDelay) {\n clearTimeout(el.$_ptooltipShowTimer);\n clearTimeout(el.$_ptooltipHideTimer);\n\n if (showDelay !== undefined) {\n el.$_ptooltipShowTimer = setTimeout(() => this.tooltipActions(el, options), showDelay);\n el.$_ptooltipPendingShow = true;\n } else {\n this.tooltipActions(el, options);\n el.$_ptooltipPendingShow = false;\n }\n },\n tooltipRemoval(el) {\n this.remove(el);\n this.unbindScrollListener(el);\n window.removeEventListener('resize', el.$_pWindowResizeEvent);\n },\n hide(el, hideDelay) {\n clearTimeout(el.$_ptooltipShowTimer);\n clearTimeout(el.$_ptooltipHideTimer);\n el.$_ptooltipPendingShow = false;\n\n if (hideDelay !== undefined) {\n el.$_ptooltipHideTimer = setTimeout(() => this.tooltipRemoval(el), hideDelay);\n } else {\n this.tooltipRemoval(el);\n }\n },\n getTooltipElement(el) {\n return document.getElementById(el.$_ptooltipId);\n },\n getArrowElement(el) {\n let tooltipElement = this.getTooltipElement(el);\n\n return findSingle(tooltipElement, '[data-pc-section=\"arrow\"]');\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 arrowElement = this.getArrowElement(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 arrowElement.style.top = '50%';\n arrowElement.style.right = null;\n arrowElement.style.bottom = null;\n arrowElement.style.left = '0';\n },\n alignLeft(el) {\n this.preAlign(el, 'left');\n let tooltipElement = this.getTooltipElement(el);\n let arrowElement = this.getArrowElement(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 arrowElement.style.top = '50%';\n arrowElement.style.right = '0';\n arrowElement.style.bottom = null;\n arrowElement.style.left = null;\n },\n alignTop(el) {\n this.preAlign(el, 'top');\n let tooltipElement = this.getTooltipElement(el);\n let arrowElement = this.getArrowElement(el);\n let tooltipWidth = getOuterWidth(tooltipElement);\n let elementWidth = getOuterWidth(el);\n let { width: viewportWidth } = getViewport();\n let hostOffset = this.getHostOffset(el);\n let left = hostOffset.left + (elementWidth - tooltipWidth) / 2;\n let top = hostOffset.top - getOuterHeight(tooltipElement);\n\n if (left < 0) {\n left = 0;\n } else if (left + tooltipWidth > viewportWidth) {\n left = Math.floor(hostOffset.left + elementWidth - tooltipWidth);\n }\n\n tooltipElement.style.left = left + 'px';\n tooltipElement.style.top = top + 'px';\n\n // The center of the target relative to the tooltip\n let elementRelativeCenter = hostOffset.left - this.getHostOffset(tooltipElement).left + elementWidth / 2;\n\n arrowElement.style.top = null;\n arrowElement.style.right = null;\n arrowElement.style.bottom = '0';\n arrowElement.style.left = elementRelativeCenter + 'px';\n },\n alignBottom(el) {\n this.preAlign(el, 'bottom');\n let tooltipElement = this.getTooltipElement(el);\n let arrowElement = this.getArrowElement(el);\n let tooltipWidth = getOuterWidth(tooltipElement);\n let elementWidth = getOuterWidth(el);\n let { width: viewportWidth } = getViewport();\n let hostOffset = this.getHostOffset(el);\n\n let left = hostOffset.left + (elementWidth - tooltipWidth) / 2;\n let top = hostOffset.top + getOuterHeight(el);\n\n if (left < 0) {\n left = 0;\n } else if (left + tooltipWidth > viewportWidth) {\n left = Math.floor(hostOffset.left + elementWidth - tooltipWidth);\n }\n\n tooltipElement.style.left = left + 'px';\n tooltipElement.style.top = top + 'px';\n\n // The center of the target relative to the tooltip\n let elementRelativeCenter = hostOffset.left - this.getHostOffset(tooltipElement).left + elementWidth / 2;\n\n arrowElement.style.top = '0';\n arrowElement.style.right = null;\n arrowElement.style.bottom = null;\n arrowElement.style.left = elementRelativeCenter + '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 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) : 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","uuid","$_ptooltipShowDelay","$_ptooltipHideDelay","$_ptooltipAutoHide","_typeof","isEmpty","trim","disabled","escape","fitContent","id","showDelay","hideDelay","autoHide","$_ptooltipZIndex","instance","$primevue","config","zIndex","tooltip","bindEvents","setAttribute","updated","unbindEvents","unmounted","hide","remove","$_ptooltipScrollHandler","destroy","methods","_this","modifiers","focus","$_ptooltipFocusEvent","event","onFocus","$_ptooltipBlurEvent","onBlur","bind","addEventListener","$_ptooltipMouseEnterEvent","onMouseEnter","$_ptooltipMouseLeaveEvent","onMouseLeave","$_ptooltipClickEvent","onClick","$_ptooltipKeydownEvent","onKeydown","$_pWindowResizeEvent","onWindowResize","removeEventListener","window","$_ptooltipId","bindScrollListener","_this2","ConnectedOverlayScrollHandler","unbindScrollListener","currentTarget","show","valid","getAttribute","relatedTarget","code","isTouchDevice","tooltipActions","isExist","$_ptooltipPendingShow","tooltipElement","create","align","isUnstyled","fadeIn","$this","onTooltipLeave","setTimeout","ZIndex","set","_this3","clearTimeout","$_ptooltipShowTimer","$_ptooltipHideTimer","undefined","tooltipRemoval","_this4","getTooltipElement","document","getElementById","getArrowElement","findSingle","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","arrowElement","hostOffset","getOuterWidth","getOuterHeight","right","tooltipWidth","elementWidth","_getViewport","getViewport","viewportWidth","Math","floor","elementRelativeCenter","_getViewport2","position","removeClass","concat","$_ptooltipPosition","addClass","height","viewport","_findSingle","hasClass","Object","keys","length","arg","entries","reduce","acc","_ref","_ref2","_slicedToArray","key","val"],"mappings":"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"}