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.89 kB
import*as e from"react";import{localeOption as t}from"primereact/api";import{Button as r}from"primereact/button";import{Dialog as n}from"primereact/dialog";import{useUpdateEffect as o,useUnmountEffect as i}from"primereact/hooks";import{OverlayService as a}from"primereact/overlayservice";import{Portal as c}from"primereact/portal";import{ObjectUtils as l,classNames as u,IconUtils as f}from"primereact/utils";function s(){return s=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},s.apply(this,arguments)}function p(e){if(Array.isArray(e))return e}function m(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}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 g(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 v(){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 y(e,t){return p(e)||m(e,t)||g(e,t)||v()}function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function j(e,t){if("object"!==d(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function O(e){var t=j(e,"string");return"symbol"===d(t)?t:String(t)}function h(e,t,r){return(t=O(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var P={defaultProps:{__TYPE:"ConfirmDialog",tagKey:void 0,visible:void 0,message:null,rejectLabel:null,acceptLabel:null,icon:null,rejectIcon:null,acceptIcon:null,rejectClassName:null,acceptClassName:null,className:null,appendTo:null,footer:null,breakpoints:null,onHide:null,accept:null,reject:null,children:void 0},getProps:function(e){return l.getMergedProps(e,P.defaultProps)},getOtherProps:function(e){return l.getDiffProps(e,P.defaultProps)}};function S(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 w(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var N=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=w(w({},e),{visible:void 0===e.visible||e.visible})).visible&&a.emit("confirm-dialog",e);return{show:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a.emit("confirm-dialog",w(w(w({},e),t),{visible:!0}))},hide:function(){a.emit("confirm-dialog",{visible:!1})}}},E=e.memo(e.forwardRef((function(p,m){var b=P.getProps(p),g=y(e.useState(b.visible),2),v=g[0],d=g[1],j=y(e.useState(!1),2),O=j[0],h=j[1],S=e.useRef(null),w=function(){return S.current||b},N=function(e){return(S.current||b)[e]},E=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 l.getPropValue(N(e),r)},C=N("acceptLabel")||t("accept"),I=N("rejectLabel")||t("reject"),k=function(){E("accept"),L("accept")},A=function(){E("reject"),L("reject")},D=function(){d(!0)},L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"cancel";d(!1),E("onHide",e)},T=function(e){if(e.tagKey===b.tagKey){var t=v!==e.visible;N("target")!==e.target&&!b.target?(L(),S.current=e,h(!0)):t&&(S.current=e,e.visible?D():L())}};e.useEffect((function(){b.visible?D():L()}),[b.visible]),e.useEffect((function(){return b.target||b.message||a.on("confirm-dialog",T),function(){a.off("confirm-dialog",T)}}),[b.target]),o((function(){O&&D()}),[O]),i((function(){a.off("confirm-dialog",T)})),e.useImperativeHandle(m,(function(){return{props:b,confirm:T}}));var H,x,J,K,X,F,M=function(){var t=u("p-confirm-dialog-accept",N("acceptClassName")),n=u("p-confirm-dialog-reject",{"p-button-text":!N("rejectClassName")},N("rejectClassName")),o=e.createElement(e.Fragment,null,e.createElement(r,{label:I,icon:N("rejectIcon"),className:n,onClick:A}),e.createElement(r,{label:C,icon:N("acceptIcon"),className:t,onClick:k,autoFocus:!0}));if(N("footer")){var i={accept:k,reject:A,acceptClassName:t,rejectClassName:n,acceptLabel:C,rejectLabel:I,element:o,props:w()};return l.getJSXElement(N("footer"),i)}return o},R=(H=w(),x=u("p-confirm-dialog",N("className")),J=P.getOtherProps(H),K=l.getJSXElement(N("message"),H),X=f.getJSXIcon(N("icon"),{className:"p-confirm-dialog-icon"},{props:H}),F=M(),e.createElement(n,s({visible:v},J,{className:x,footer:F,onHide:L,breakpoints:N("breakpoints")}),X,e.createElement("span",{className:"p-confirm-dialog-message"},K)));return e.createElement(c,{element:R,appendTo:N("appendTo")})})));E.displayName="ConfirmDialog";export{E as ConfirmDialog,N as confirmDialog};