primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 3.76 kB
JavaScript
import{DomHandler as t,ZIndexUtils as e,UniqueComponentId as o,ConnectedOverlayScrollHandler as l}from"primevue/utils";function i(t){d(t.currentTarget)}function n(t){c(t.currentTarget)}function r(t){d(t.currentTarget)}function p(t){c(t.currentTarget)}function u(t){c(t.currentTarget)}function d(i){if(i.$_ptooltipDisabled)return;let n=function(t){const e=o()+"_tooltip";t.$_ptooltipId=e;let l=document.createElement("div");l.id=e;let i=document.createElement("div");i.className="p-tooltip-arrow",l.appendChild(i);let n=document.createElement("div");return n.className="p-tooltip-text",n.innerHTML=t.$_ptooltipValue,l.appendChild(n),document.body.appendChild(l),l.style.display="inline-block",l}(i);!function(t){const e=t.$_ptooltipModifiers;e.top?(m(t),h(t)&&$(t)):e.left?(v(t),h(t)&&(g(t),h(t)&&(m(t),h(t)&&$(t)))):e.bottom?($(t),h(t)&&m(t)):(g(t),h(t)&&(v(t),h(t)&&(m(t),h(t)&&$(t))))}(i),t.fadeIn(n,250),window.addEventListener("resize",(function e(){t.isAndroid()||c(i),this.removeEventListener("resize",e)})),function(t){t.$_ptooltipScrollHandler||(t.$_ptooltipScrollHandler=new l(t,(function(){c(t)}))),t.$_ptooltipScrollHandler.bindScrollListener()}(i),e.set("tooltip",n,i.$_ptooltipZIndex)}function c(t){a(t),function(t){t.$_ptooltipScrollHandler&&t.$_ptooltipScrollHandler.unbindScrollListener()}(t),e.clear(t)}function s(t){return document.getElementById(t.$_ptooltipId)}function a(t){if(t){let e=s(t);e&&e.parentElement&&document.body.removeChild(e),t.$_ptooltipId=null}}function f(e){let o=e.getBoundingClientRect();return{left:o.left+t.getWindowScrollLeft(),top:o.top+t.getWindowScrollTop()}}function g(e){_(e,"right");let o=s(e),l=f(e),i=l.left+t.getOuterWidth(e),n=l.top+(t.getOuterHeight(e)-t.getOuterHeight(o))/2;o.style.left=i+"px",o.style.top=n+"px"}function v(e){_(e,"left");let o=s(e),l=f(e),i=l.left-t.getOuterWidth(o),n=l.top+(t.getOuterHeight(e)-t.getOuterHeight(o))/2;o.style.left=i+"px",o.style.top=n+"px"}function m(e){_(e,"top");let o=s(e),l=f(e),i=l.left+(t.getOuterWidth(e)-t.getOuterWidth(o))/2,n=l.top-t.getOuterHeight(o);o.style.left=i+"px",o.style.top=n+"px"}function $(e){_(e,"bottom");let o=s(e),l=f(e),i=l.left+(t.getOuterWidth(e)-t.getOuterWidth(o))/2,n=l.top+t.getOuterHeight(e);o.style.left=i+"px",o.style.top=n+"px"}function _(t,e){let o=s(t);o.style.left="-999px",o.style.top="-999px",o.className="p-tooltip p-component p-tooltip-"+e}function h(e){let o=s(e),l=o.getBoundingClientRect(),i=l.top,n=l.left,r=t.getOuterWidth(o),p=t.getOuterHeight(o),u=t.getViewport();return n+r>u.width||n<0||i<0||i+p>u.height}function y(e){return t.hasClass(e,"p-inputwrapper")?t.findSingle(e,"input"):e}const b={beforeMount(t,e){let o=y(t);o.$_ptooltipModifiers=e.modifiers,"string"==typeof e.value?(o.$_ptooltipValue=e.value,o.$_ptooltipDisabled=!1):(o.$_ptooltipValue=e.value.value,o.$_ptooltipDisabled=e.value.disabled||!1),o.$_ptooltipZIndex=e.instance.$primevue&&e.instance.$primevue.config&&e.instance.$primevue.config.zIndex.tooltip,function(t){t.$_ptooltipModifiers.focus?(t.addEventListener("focus",r),t.addEventListener("blur",p)):(t.addEventListener("mouseenter",i),t.addEventListener("mouseleave",n),t.addEventListener("click",u))}(o)},unmounted(t){let o=y(t);a(o),function(t){t.$_ptooltipModifiers.focus?(t.removeEventListener("focus",r),t.removeEventListener("blur",p)):(t.removeEventListener("mouseenter",i),t.removeEventListener("mouseleave",n),t.removeEventListener("click",u))}(o),o.$_ptooltipScrollHandler&&(o.$_ptooltipScrollHandler.destroy(),o.$_ptooltipScrollHandler=null),e.clear(t)},updated(t,e){let o=y(t);o.$_ptooltipModifiers=e.modifiers,"string"==typeof e.value?(o.$_ptooltipValue=e.value,o.$_ptooltipDisabled=!1):(o.$_ptooltipValue=e.value.value,o.$_ptooltipDisabled=e.value.disabled)}};export default b;