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) • 5.87 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.overlaypanel=function(e,t,r,n,l,o,a,i,u){"use strict";function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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 f=s(t),p=c(r);function d(){return d=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},d.apply(this,arguments)}function m(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,l,o,a,i=[],u=!0,c=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);u=!0);}catch(e){c=!0,l=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw l}}return i}}function v(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 b(e,t){if(e){if("string"==typeof e)return v(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)?v(e,t):void 0}}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 O(e,t){return m(e)||y(e,t)||b(e,t)||g()}var h={defaultProps:{__TYPE:"OverlayPanel",id:null,dismissable:!0,showCloseIcon:!1,style:null,className:null,appendTo:null,breakpoints:null,ariaCloseLabel:null,transitionOptions:null,onShow:null,onHide:null,children:void 0},getProps:function(e){return u.ObjectUtils.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return u.ObjectUtils.getDiffProps(e,h.defaultProps)}},P=f.forwardRef((function(e,t){var c=h.getProps(e),s=O(f.useState(!1),2),m=s[0],y=s[1],v=f.useRef(""),b=f.useRef(null),g=f.useRef(null),P=f.useRef(!1),E=f.useRef(null),S=f.useRef(null),w=O(l.useOverlayListener({target:g,overlay:b,listener:function(e,t){t.valid&&("outside"===t.type?c.dismissable&&!P.current&&R():R()),P.current=!1},when:m}),2),j=w[0],k=w[1],I=function(e){return b&&b.current&&!(b.current.isSameNode(e)||b.current.contains(e))},x=function(e,t){return null!=g.current&&g.current!==(t||e.currentTarget||e.target)},C=function(e){R(),e.preventDefault()},H=function(e){P.current=!0,o.OverlayService.emit("overlay-click",{originalEvent:e,target:g.current})},T=function(){P.current=!0},D=function(e,t){m?(R(),x(e,t)&&(g.current=t||e.currentTarget||e.target,setTimeout((function(){N(e,g.current)}),200))):N(e,t)},N=function(e,t){g.current=t||e.currentTarget||e.target,m?L():(y(!0),S.current=function(e){!I(e.target)&&(P.current=!0)},o.OverlayService.on("overlay-click",S.current))},R=function(){y(!1),o.OverlayService.off("overlay-click",S.current),S.current=null},A=function(){b.current.setAttribute(v.current,""),u.ZIndexUtils.set("overlay",b.current,p.default.autoZIndex,p.default.zIndex.overlay),L()},U=function(){j(),c.onShow&&c.onShow()},M=function(){k()},_=function(){u.ZIndexUtils.clear(b.current),c.onHide&&c.onHide()},L=function(){if(g.current&&b.current){u.DomHandler.absolutePosition(b.current,g.current);var e=u.DomHandler.getOffset(b.current),t=u.DomHandler.getOffset(g.current),r=0;e.left<t.left&&(r=t.left-e.left),b.current.style.setProperty("--overlayArrowLeft","".concat(r,"px")),e.top<t.top&&u.DomHandler.addClass(b.current,"p-overlaypanel-flipped")}},Z=function(){if(!E.current){E.current=u.DomHandler.createInlineStyle(p.default.nonce);var e="";for(var t in c.breakpoints)e+="\n @media screen and (max-width: ".concat(t,") {\n .p-overlaypanel[").concat(v.current,"] {\n width: ").concat(c.breakpoints[t]," !important;\n }\n }\n ");E.current.innerHTML=e}};l.useMountEffect((function(){v.current=u.UniqueComponentId(),c.breakpoints&&Z()})),l.useUnmountEffect((function(){E.current=u.DomHandler.removeInlineStyle(E.current),S.current&&(o.OverlayService.off("overlay-click",S.current),S.current=null),u.ZIndexUtils.clear(b.current)})),f.useImperativeHandle(t,(function(){return{props:c,toggle:D,show:N,hide:R,getElement:function(){return b.current}}}));var z,q,Y,$=function(){if(c.showCloseIcon){var e=c.ariaCloseLabel||r.localeOption("close");return f.createElement("button",{type:"button",className:"p-overlaypanel-close p-link",onClick:C,"aria-label":e},f.createElement("span",{className:"p-overlaypanel-close-icon pi pi-times","aria-hidden":"true"}),f.createElement(i.Ripple,null))}return null},B=(z=h.getOtherProps(c),q=u.classNames("p-overlaypanel p-component",c.className,{"p-input-filled":"filled"===p.default.inputStyle,"p-ripple-disabled":!1===p.default.ripple}),Y=$(),f.createElement(n.CSSTransition,{nodeRef:b,classNames:"p-overlaypanel",in:m,timeout:{enter:120,exit:100},options:c.transitionOptions,unmountOnExit:!0,onEnter:A,onEntered:U,onExit:M,onExited:_},f.createElement("div",d({ref:b,id:c.id,className:q,style:c.style},z,{onClick:H}),f.createElement("div",{className:"p-overlaypanel-content",onClick:T,onMouseDown:T},c.children),Y)));return f.createElement(a.Portal,{element:B,appendTo:c.appendTo})}));return P.displayName="OverlayPanel",e.OverlayPanel=P,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.csstransition,primereact.hooks,primereact.overlayservice,primereact.portal,primereact.ripple,primereact.utils);