UNPKG

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