primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 4.37 kB
JavaScript
import{DomHandler as t,ZIndexUtils as e,UniqueComponentId as o,ConnectedOverlayScrollHandler as l}from"primevue/utils";function i(t){s(t.currentTarget)}function n(t){a(t.currentTarget)}function p(t){s(t.currentTarget)}function r(t){a(t.currentTarget)}function u(t){a(t.currentTarget)}function s(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");n.className="p-tooltip-text",t.$_ptooltipEscape?n.innerHTML=t.$_ptooltipValue:(n.innerHTML="",n.appendChild(document.createTextNode(t.$_ptooltipValue)));return l.appendChild(n),document.body.appendChild(l),l.style.display="inline-block",l}(i);!function(t){const e=t.$_ptooltipModifiers;e.top?($(t),h(t)&&(_(t),h(t)&&$(t))):e.left?(v(t),h(t)&&(g(t),h(t)&&($(t),h(t)&&(_(t),h(t)&&v(t))))):e.bottom?(_(t),h(t)&&($(t),h(t)&&_(t))):(g(t),h(t)&&(v(t),h(t)&&($(t),h(t)&&(_(t),h(t)&&g(t)))))}(i),t.fadeIn(n,250),window.addEventListener("resize",(function e(){t.isAndroid()||a(i),this.removeEventListener("resize",e)})),function(t){t.$_ptooltipScrollHandler||(t.$_ptooltipScrollHandler=new l(t,(function(){a(t)}))),t.$_ptooltipScrollHandler.bindScrollListener()}(i),e.set("tooltip",n,i.$_ptooltipZIndex)}function a(t){c(t),function(t){t.$_ptooltipScrollHandler&&t.$_ptooltipScrollHandler.unbindScrollListener()}(t),e.clear(t)}function d(t){return document.getElementById(t.$_ptooltipId)}function c(t){if(t){let e=d(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){m(e,"right");let o=d(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){m(e,"left");let o=d(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 $(e){m(e,"top");let o=d(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){m(e,"bottom");let o=d(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 m(t,e){let o=d(t);o.style.left="-999px",o.style.top="-999px",o.className=`p-tooltip p-component p-tooltip-${e} ${t.$_ptooltipClass||""}`}function h(e){let o=d(e),l=o.getBoundingClientRect(),i=l.top,n=l.left,p=t.getOuterWidth(o),r=t.getOuterHeight(o),u=t.getViewport();return n+p>u.width||n<0||i<0||i+r>u.height}function E(e){return t.hasClass(e,"p-inputwrapper")?t.findSingle(e,"input"):e}function b(t){return t.modifiers&&Object.keys(t.modifiers).length?t.modifiers:t.arg&&"object"==typeof t.arg?Object.entries(t.arg).reduce(((t,[e,o])=>("event"!==e&&"position"!==e||(t[o]=!0),t)),{}):{}}const y={beforeMount(t,e){let o=E(t);o.$_ptooltipModifiers=b(e),e.value&&("string"==typeof e.value?(o.$_ptooltipValue=e.value,o.$_ptooltipDisabled=!1,o.$_ptooltipEscape=!1,o.$_ptooltipClass=null):(o.$_ptooltipValue=e.value.value,o.$_ptooltipDisabled=e.value.disabled||!1,o.$_ptooltipEscape=e.value.escape||!1,o.$_ptooltipClass=e.value.class),o.$_ptooltipZIndex=e.instance.$primevue&&e.instance.$primevue.config&&e.instance.$primevue.config.zIndex.tooltip,function(t){t.$_ptooltipModifiers.focus?(t.addEventListener("focus",p),t.addEventListener("blur",r)):(t.addEventListener("mouseenter",i),t.addEventListener("mouseleave",n),t.addEventListener("click",u))}(o))},unmounted(t){let o=E(t);c(o),function(t){t.$_ptooltipModifiers.focus?(t.removeEventListener("focus",p),t.removeEventListener("blur",r)):(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=E(t);o.$_ptooltipModifiers=b(e),e.value&&("string"==typeof e.value?(o.$_ptooltipValue=e.value,o.$_ptooltipDisabled=!1,o.$_ptooltipEscape=!1,o.$_ptooltipClass=null):(o.$_ptooltipValue=e.value.value,o.$_ptooltipDisabled=e.value.disabled||!1,o.$_ptooltipEscape=e.value.escape||!1,o.$_ptooltipClass=e.value.class))}};export default y;