sweetalert2-react-content
Version:
Official sweetalert2 enhancer adding support for React elements as content.
4 lines (3 loc) • 1.89 kB
JavaScript
// sweetalert2-react-content v5.1.2
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react"),require("react-dom/client")):"function"==typeof define&&define.amd?define(["react","react-dom/client"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).sweetalert2ReactContent=e(t.React,t.ReactDOM)}(this,(function(t,e){"use strict";const n=[{key:"title",getter:t=>t.getTitle()},{key:"html",getter:t=>t.getHtmlContainer()},{key:"confirmButtonText",getter:t=>t.getConfirmButton()},{key:"denyButtonText",getter:t=>t.getDenyButton()},{key:"cancelButtonText",getter:t=>t.getCancelButton()},{key:"footer",getter:t=>t.getFooter()},{key:"closeButtonHtml",getter:t=>t.getCloseButton()},{key:"iconHtml",getter:t=>t.getIconContent()},{key:"loaderHtml",getter:t=>t.getLoader()}],o=()=>{};return function(r){function i(e){const o={},r={},i=n.map((t=>t.key));return Object.entries(e).forEach((e=>{let[n,s]=e;i.includes(n)&&t.isValidElement(s)?(o[n]=s,r[n]=" "):r[n]=s})),[o,r]}function s(t,o){Object.entries(o).forEach((o=>{let[i,s]=o;const a=n.find((t=>t.key===i)).getter(r),c=e.createRoot(a);c.render(s),t.__roots.push(c)}))}function a(t){t.__roots.forEach((t=>{t.unmount()})),t.__roots=[]}return class extends r{static argsToParams(e){if(t.isValidElement(e[0])||t.isValidElement(e[1])){const t={};return["title","html","icon"].forEach(((n,o)=>{void 0!==e[o]&&(t[n]=e[o])})),t}return r.argsToParams(e)}_main(t,e){this.__roots=[],this.__params=Object.assign({},e,t);const[n,r]=i(this.__params),c=r.willOpen||o,l=r.didOpen||o,u=r.didDestroy||o;return super._main(Object.assign({},r,{willOpen:t=>{s(this,n),c(t)},didOpen:t=>{setTimeout((()=>{l(t)}))},didDestroy:t=>{u(t),a(this)}}))}update(t){Object.assign(this.__params,t),a(this);const[e,n]=i(this.__params);super.update(n),s(this,e)}}}}));
//# sourceMappingURL=sweetalert2-react-content.umd.min.js.map