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.1 kB
JavaScript
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 a}from"primereact/hooks";import{OverlayService as i}from"primereact/overlayservice";import{Portal as c}from"primereact/portal";import{classNames as l,ObjectUtils 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,a=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw o}}return a}}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 d(e,t){return p(e)||m(e,t)||g(e,t)||v()}function y(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 O(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){y(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=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=O(O({},e),{visible:void 0===e.visible||e.visible})).visible&&i.emit("confirm-dialog",e);var t=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i.emit("confirm-dialog",O(O(O({},e),t),{visible:!0}))},r=function(){i.emit("confirm-dialog",{visible:!1})};return{show:t,hide:r}},w=e.memo(e.forwardRef((function(p,m){var b=d(e.useState(p.visible),2),g=b[0],v=b[1],y=d(e.useState(!1),2),j=y[0],O=y[1],h=e.useRef(null),N=function(){return h.current||p},E=function(e){return(h.current||p)[e]},P=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 u.getPropValue(E(e),r)},C=E("acceptLabel")||t("accept"),S=E("rejectLabel")||t("reject"),I=function(){P("accept"),D("accept")},k=function(){P("reject"),D("reject")},A=function(){v(!0)},D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"cancel";v(!1),P("onHide",e)},L=function(e){if(e.tagKey===p.tagKey){var t=g!==e.visible;E("target")!==e.target&&!p.target?(D(),h.current=e,O(!0)):t&&(h.current=e,e.visible?A():D())}};e.useEffect((function(){p.visible?A():D()}),[p.visible]),e.useEffect((function(){return p.target||p.message||i.on("confirm-dialog",L),function(){i.off("confirm-dialog",L)}}),[p.target]),o((function(){j&&A()}),[j]),a((function(){i.off("confirm-dialog",L)})),e.useImperativeHandle(m,(function(){return{props:p,confirm:L}}));var T,H,K,x,J,X,F=function(){var t=l("p-confirm-dialog-accept",E("acceptClassName")),n=l("p-confirm-dialog-reject",{"p-button-text":!E("rejectClassName")},E("rejectClassName")),o=e.createElement(e.Fragment,null,e.createElement(r,{label:S,icon:E("rejectIcon"),className:n,onClick:k}),e.createElement(r,{label:C,icon:E("acceptIcon"),className:t,onClick:I,autoFocus:!0}));if(E("footer")){var a={accept:I,reject:k,acceptClassName:t,rejectClassName:n,acceptLabel:C,rejectLabel:S,element:o,props:N()};return u.getJSXElement(E("footer"),a)}return o},R=(T=N(),H=l("p-confirm-dialog",E("className")),K=u.findDiffKeys(T,w.defaultProps),x=u.getJSXElement(E("message"),T),J=f.getJSXIcon(E("icon"),{className:"p-confirm-dialog-icon"},{props:T}),X=F(),e.createElement(n,s({visible:g},K,{className:H,footer:X,onHide:D,breakpoints:E("breakpoints")}),J,e.createElement("span",{className:"p-confirm-dialog-message"},x)));return e.createElement(c,{element:R,appendTo:E("appendTo")})})));w.displayName="ConfirmDialog",w.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};export{w as ConfirmDialog,h as confirmDialog};