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