primereact
Version:
PrimeReact is an open source UI library for React 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 Prime
2 lines (1 loc) • 9.28 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.tooltip=function(e,t,r,n,o,u){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=i(t),l=a(r);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function d(e){if(Array.isArray(e))return f(e)}function p(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function h(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(e){if(Array.isArray(e))return e}function y(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,u=[],a=!0,i=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(u.push(n.value),!t||u.length!==t);a=!0);}catch(e){i=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(i)throw o}}return u}}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e,t){return v(e)||y(e,t)||h(e,t)||g()}var E=c.memo(c.forwardRef((function(e,t){var r=b(c.useState(!1),2),a=r[0],i=r[1],f=b(c.useState(e.position),2),v=f[0],y=f[1],g=b(c.useState(""),2),w=g[0],T=g[1],x=c.useRef(null),D=c.useRef(null),O=c.useRef(null),H=c.useRef(null),j=c.useRef(!0),S=c.useRef({}),I=c.useRef(null),k=b(n.useResizeListener({listener:function(e){!u.DomHandler.isTouchDevice()&&X(e)}}),2),A=k[0],L=k[1],C=b(n.useOverlayScrollListener({target:O.current,listener:function(e){X(e)},when:a}),2),R=C[0],U=C[1],N=function(t){return M(t,"mousetrack")||e.mouseTrack},P=function(t){return"true"===M(t,"disabled")||_(t,"disabled")||e.disabled},Z=function(t){return M(t,"showondisabled")||e.showOnDisabled},W=function(){return M(O.current,"autohide")||e.autoHide},M=function(e,t){return _(e,"data-pr-".concat(t))?e.getAttribute("data-pr-".concat(t)):null},_=function(e,t){return e&&e.hasAttribute(t)},B=function(t){var r=[M(t,"showevent")||e.showEvent],n=[M(t,"hideevent")||e.hideEvent];if(N(t))r=["mousemove"],n=["mouseleave"];else{var o=M(t,"event")||e.event;"focus"===o&&(r=["focus"],n=["blur"]),"both"===o&&(r=["focus","mouseenter"],n=["blur","mouseleave"])}return{showEvents:r,hideEvents:n}},F=function(t){return{top:M(t,"mousetracktop")||e.mouseTrackTop,left:M(t,"mousetrackleft")||e.mouseTrackLeft}},z=function(t,r){if(D.current){var n=M(t,"tooltip")||e.content;n?(D.current.innerHTML="",D.current.appendChild(document.createTextNode(n)),r()):e.children&&r()}},Y=function(t){z(O.current,(function(){var r=I.current,n=r.pageX,o=r.pageY;e.autoZIndex&&!u.ZIndexUtils.get(x.current)&&u.ZIndexUtils.set("tooltip",x.current,l.default.autoZIndex,e.baseZIndex||l.default.zIndex.tooltip),x.current.style.left="",x.current.style.top="",W()&&(x.current.style.pointerEvents="none"),N(O.current)&&!H.current&&(H.current={width:u.DomHandler.getOuterWidth(x.current),height:u.DomHandler.getOuterHeight(x.current)}),$(O.current,{x:n,y:o},t)}))},K=function(t){O.current=t.currentTarget;var r,n=P(O.current);(r=Z(O.current)&&n?O.current.firstChild:O.current,!(e.content||M(r,"tooltip")||e.children))||n||(I.current=t,a?ee("updateDelay",Y):te(e.onBeforeShow,{originalEvent:t,target:O.current})&&ee("showDelay",(function(){i(!0),te(e.onShow,{originalEvent:t,target:O.current})})))},X=function(t){(re(),a)&&(te(e.onBeforeHide,{originalEvent:t,target:O.current})&&ee("hideDelay",(function(){(W()||!1!==j.current)&&(u.ZIndexUtils.clear(x.current),u.DomHandler.removeClass(x.current,"p-tooltip-active"),i(!1),te(e.onHide,{originalEvent:t,target:O.current}))})))},$=function(t,r,n){var o=0,a=0,i=n||v;if(N(t)&&r){var c={width:u.DomHandler.getOuterWidth(x.current),height:u.DomHandler.getOuterHeight(x.current)};o=r.x,a=r.y;var l=F(t),s=l.top,f=l.left;switch(i){case"left":o-=c.width+f,a-=c.height/2-s;break;case"right":o+=f,a-=c.height/2-s;break;case"top":o-=c.width/2-f,a-=c.height+s;break;case"bottom":o-=c.width/2-f,a+=s}o<=0||H.current.width>c.width?(x.current.style.left="0px",x.current.style.right=window.innerWidth-c.width-o+"px"):(x.current.style.right="",x.current.style.left=o+"px"),x.current.style.top=a+"px",u.DomHandler.addClass(x.current,"p-tooltip-active")}else{var d=u.DomHandler.findCollisionPosition(i),p=M(t,"my")||e.my||d.my,h=M(t,"at")||e.at||d.at;x.current.style.padding="0px",u.DomHandler.flipfitCollision(x.current,t,p,h,(function(t){var r=t.at,n=r.x,o=e.at?"center"!==n&&n!==t.my.x?n:r.y:t.at["".concat(d.axis)];x.current.style.padding="",y(o),q(o),u.DomHandler.addClass(x.current,"p-tooltip-active")}))}},q=function(e){if(x.current){var t=getComputedStyle(x.current);"left"===e?x.current.style.left=parseFloat(t.left)-2*parseFloat(t.paddingLeft)+"px":"top"===e&&(x.current.style.top=parseFloat(t.top)-2*parseFloat(t.paddingTop)+"px")}},G=function(){W()||(j.current=!1)},J=function(e){W()||(j.current=!0,X(e))},Q=function(e){if(e){var t=B(e),r=t.showEvents,n=t.hideEvents,o=ne(e);r.forEach((function(e){return o.addEventListener(e,K)})),n.forEach((function(e){return o.addEventListener(e,X)}))}},V=function(e){if(e){var t=B(e),r=t.showEvents,n=t.hideEvents,o=ne(e);r.forEach((function(e){return o.removeEventListener(e,K)})),n.forEach((function(e){return o.removeEventListener(e,X)}))}},ee=function(t,r){re();var n=M(O.current,t.toLowerCase())||e[t];n?S.current["".concat(t)]=setTimeout((function(){return r()}),n):r()},te=function(e){if(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var o=e.apply(void 0,r);return void 0===o&&(o=!0),o}return!0},re=function(){Object.values(S.current).forEach((function(e){return clearTimeout(e)}))},ne=function(e){if(e){if(Z(e)){if(e.hasWrapper)return e.parentElement;var t=document.createElement("span");return e.parentNode.insertBefore(t,e),t.appendChild(e),e.hasWrapper=!0,t}var r;return e.hasWrapper&&((r=e.parentElement).replaceWith.apply(r,d(n=e.parentElement.childNodes)||p(n)||h(n)||m()),delete e.hasWrapper),e}var n;return null},oe=function(e){ae(e),ue(e)},ue=function(t){ie(t||e.target,Q)},ae=function(t){ie(t||e.target,V)},ie=function(e,t){if(e=u.ObjectUtils.getRefElement(e))if(u.DomHandler.isElement(e))t(e);else{var r=function(e){u.DomHandler.find(document,e).forEach((function(e){t(e)}))};e instanceof Array?e.forEach((function(e){r(e)})):r(e)}};c.useEffect((function(){a&&O.current&&P(O.current)&&X()})),n.useMountEffect((function(){ue()})),n.useUpdateEffect((function(){return ue(),function(){ae()}}),[K,X,e.target]),n.useUpdateEffect((function(){if(a){var t=M(O.current,"position")||v,r=M(O.current,"classname");y(t),T(r),Y(t),A(),R()}else y(e.position),T(""),O.current=null,H.current=null,j.current=!0;return function(){L(),U()}}),[a]),n.useUpdateEffect((function(){a&&ee("updateDelay",(function(){z(O.current,(function(){$(O.current)}))}))}),[e.content]),n.useUnmountEffect((function(){re(),ae(),u.ZIndexUtils.clear(x.current)})),c.useImperativeHandle(t,(function(){return{props:e,updateTargetEvents:oe,loadTargetEvents:ue,unloadTargetEvents:ae,show:K,hide:X,getElement:function(){return x.current},getTarget:function(){return O.current}}}));var ce,le,se,fe,de,pe,he;if(a){var me=(de=u.ObjectUtils.findDiffKeys(e,E.defaultProps),pe=u.classNames("p-tooltip p-component",(ce={},le="p-tooltip-".concat(v),se=!0,le in ce?Object.defineProperty(ce,le,{value:se,enumerable:!0,configurable:!0,writable:!0}):ce[le]=se,ce),e.className,w),fe=O.current,he=!(e.content||M(fe,"tooltip")),c.createElement("div",s({id:e.id,ref:x,className:pe,style:e.style,role:"tooltip","aria-hidden":a},de,{onMouseEnter:G,onMouseLeave:J}),c.createElement("div",{className:"p-tooltip-arrow"}),c.createElement("div",{ref:D,className:"p-tooltip-text"},he&&e.children)));return c.createElement(o.Portal,{element:me,appendTo:e.appendTo,visible:!0})}return null})));return E.displayName="Tooltip",E.defaultProps={__TYPE:"Tooltip",id:null,target:null,content:null,disabled:!1,className:null,style:null,appendTo:null,position:"right",my:null,at:null,event:null,showEvent:"mouseenter",hideEvent:"mouseleave",autoZIndex:!0,baseZIndex:0,mouseTrack:!1,mouseTrackTop:5,mouseTrackLeft:5,showDelay:0,updateDelay:0,hideDelay:0,autoHide:!0,showOnDisabled:!1,onBeforeShow:null,onBeforeHide:null,onShow:null,onHide:null},e.Tooltip=E,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.portal,primereact.utils);