UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ 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) 2.38 kB
this.primereact=this.primereact||{},this.primereact.ripple=function(e,t,r,n,u){"use strict";function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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 a=o(t),i=c(r),l=a.memo(a.forwardRef((function(){var e=a.useRef(null),t=a.useRef(null),r=function(){return e.current&&e.current.parentElement},c=function(){t.current&&(t.current.addEventListener("mousedown",l),u.DomHandler.isTouchDevice()&&t.current.addEventListener("touchstart",o))},o=function(r){var n=u.DomHandler.getOffset(t.current),c=r.targetTouches[0].pageX-n.left+document.body.scrollTop-u.DomHandler.getWidth(e.current)/2,o=r.targetTouches[0].pageY-n.top+document.body.scrollLeft-u.DomHandler.getHeight(e.current)/2;d(c,o)},l=function(r){if(!u.DomHandler.isTouchDevice()){var n=u.DomHandler.getOffset(t.current),c=r.pageX-n.left+document.body.scrollTop-u.DomHandler.getWidth(e.current)/2,o=r.pageY-n.top+document.body.scrollLeft-u.DomHandler.getHeight(e.current)/2;d(c,o)}},d=function(r,n){if(e.current&&"none"!==getComputedStyle(e.current,null).display){if(u.DomHandler.removeClass(e.current,"p-ink-active"),!u.DomHandler.getHeight(e.current)&&!u.DomHandler.getWidth(e.current)){var c=Math.max(u.DomHandler.getOuterWidth(t.current),u.DomHandler.getOuterHeight(t.current));e.current.style.height=c+"px",e.current.style.width=c+"px"}e.current.style.top=n+"px",e.current.style.left=r+"px",u.DomHandler.addClass(e.current,"p-ink-active")}};return n.useMountEffect((function(){e.current&&(t.current=r(),c())})),n.useUpdateEffect((function(){e.current&&!t.current&&(t.current=r(),c())})),n.useUnmountEffect((function(){e.current&&(t.current=null,t.current&&(t.current.removeEventListener("mousedown",l),u.DomHandler.isTouchDevice()&&t.current.removeEventListener("touchstart",o)))})),i.default.ripple?a.createElement("span",{role:"presentation",ref:e,className:"p-ink",onAnimationEnd:function(e){u.DomHandler.removeClass(e.currentTarget,"p-ink-active")}}):null})));return l.displayName="Ripple",e.Ripple=l,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.utils);