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