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) • 7.28 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),r=require("primereact/button"),n=require("primereact/csstransition"),c=require("primereact/hooks"),o=require("primereact/overlayservice"),i=require("primereact/portal"),a=require("primereact/utils");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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 s=u(e),p=l(t);function f(){return f=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},f.apply(this,arguments)}function m(e){if(Array.isArray(e))return e}function v(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,c,o=[],i=!0,a=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){a=!0,c=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw c}}return o}}function b(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 y(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}function d(){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)||v(e,t)||y(e,t)||d()}function g(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach((function(t){g(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var h=s.memo(s.forwardRef((function(e,l){var u=O(s.useState(e.visible),2),m=u[0],v=u[1],b=O(s.useState(!1),2),y=b[0],d=b[1],g=s.useRef(null),j=s.useRef(null),S=s.useRef(!1),E=s.useRef(null),P=s.useRef(null),N=function(){return P.current||e},w=function(t){return(P.current||e)[t]},C=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return a.ObjectUtils.getPropValue(w(e),r)},x=w("acceptLabel")||t.localeOption("accept"),I=w("rejectLabel")||t.localeOption("reject"),U=O(c.useOverlayListener({target:w("target"),overlay:g,listener:function(t,r){r.valid&&("outside"===r.type?e.dismissable&&!S.current&&R():R()),S.current=!1},when:m}),2),k=U[0],D=U[1],q=function(e){S.current=!0,o.OverlayService.emit("overlay-click",{originalEvent:e,target:w("target")})},A=function(){C("accept"),R("accept")},L=function(){C("reject"),R("reject")},H=function(){v(!0),d(!1),E.current=function(e){!M(e.target)&&(S.current=!0)},o.OverlayService.on("overlay-click",E.current)},R=function(e){v(!1),o.OverlayService.off("overlay-click",E.current),E.current=null,e&&C("onHide",e)},T=function(){a.ZIndexUtils.set("overlay",g.current,p.default.autoZIndex,p.default.zIndex.overlay),J()},_=function(){k(),j.current&&j.current.focus(),C("onShow")},K=function(){D()},Z=function(){a.ZIndexUtils.clear(g.current),S.current=!1},J=function(){if(w("target")){a.DomHandler.absolutePosition(g.current,w("target"));var e=a.DomHandler.getOffset(g.current),t=a.DomHandler.getOffset(w("target")),r=0;e.left<t.left&&(r=t.left-e.left),g.current.style.setProperty("--overlayArrowLeft","".concat(r,"px")),e.top<t.top&&a.DomHandler.addClass(g.current,"p-confirm-popup-flipped")}},M=function(e){return g&&g.current&&!(g.current.isSameNode(e)||g.current.contains(e))},X=function(t){if(t.tagKey===e.tagKey){var r=m!==t.visible;w("target")!==t.target&&!e.target?(R(),P.current=t,d(!0)):r&&(P.current=t,t.visible?H():R())}};s.useEffect((function(){e.visible?H():R()}),[e.visible]),s.useEffect((function(){return e.target||e.message||o.OverlayService.on("confirm-popup",X),function(){o.OverlayService.off("confirm-popup",X)}}),[e.target]),c.useUpdateEffect((function(){y&&H()}),[y]),c.useUnmountEffect((function(){E.current&&(o.OverlayService.off("overlay-click",E.current),E.current=null),o.OverlayService.off("confirm-popup",X),a.ZIndexUtils.clear(g.current)})),s.useImperativeHandle(l,(function(){return{props:e,confirm:X}}));var z,B,V,Y,$,F,G,Q=function(){var e=a.classNames("p-confirm-popup-accept p-button-sm",w("acceptClassName")),t=a.classNames("p-confirm-popup-reject p-button-sm",{"p-button-text":!w("rejectClassName")},w("rejectClassName")),n=s.createElement("div",{className:"p-confirm-popup-footer"},s.createElement(r.Button,{label:I,icon:w("rejectIcon"),className:t,onClick:L}),s.createElement(r.Button,{ref:j,label:x,icon:w("acceptIcon"),className:e,onClick:A}));if(w("footer")){var c={accept:A,reject:L,className:"p-confirm-popup-footer",acceptClassName:e,rejectClassName:t,acceptLabel:x,rejectLabel:I,element:n,props:N()};return a.ObjectUtils.getJSXElement(w("footer"),c)}return n},W=(Y=a.ObjectUtils.findDiffKeys(e,h.defaultProps),$=a.classNames("p-confirm-popup p-component",w("className")),z=N(),B=a.ObjectUtils.getJSXElement(w("message"),z),V=a.IconUtils.getJSXIcon(w("icon"),{className:"p-confirm-popup-icon"},{props:z}),F=s.createElement("div",{className:"p-confirm-popup-content"},V,s.createElement("span",{className:"p-confirm-popup-message"},B)),G=Q(),s.createElement(n.CSSTransition,{nodeRef:g,classNames:"p-connected-overlay",in:m,timeout:{enter:120,exit:100},options:w("transitionOptions"),unmountOnExit:!0,onEnter:T,onEntered:_,onExit:K,onExited:Z},s.createElement("div",f({ref:g,id:w("id"),className:$,style:w("style")},Y,{onClick:q}),F,G)));return s.createElement(i.Portal,{element:W,appendTo:w("appendTo"),visible:w("visible")})})));h.displayName="ConfirmPopup",h.defaultProps={__TYPE:"ConfirmPopup",tagKey:void 0,target:null,visible:!1,message:null,rejectLabel:null,acceptLabel:null,icon:null,rejectIcon:null,acceptIcon:null,rejectClassName:null,acceptClassName:null,className:null,style:null,appendTo:null,dismissable:!0,footer:null,onShow:null,onHide:null,accept:null,reject:null,transitionOptions:null},exports.ConfirmPopup=h,exports.confirmPopup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=S(S({},e),{visible:void 0===e.visible||e.visible})).visible&&o.OverlayService.emit("confirm-popup",e);var t=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o.OverlayService.emit("confirm-popup",S(S(S({},e),t),{visible:!0}))},r=function(){o.OverlayService.emit("confirm-popup",{visible:!1})};return{show:t,hide:r}};