notistack-mod
Version:
Notistack with ability to modify active snackbars.
3 lines (2 loc) • 16 kB
JavaScript
;function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n=require("react"),t=e(n),r=require("react-dom"),a=e(require("clsx")),o=e(require("@mui/material/Slide")),i=require("@mui/material/styles"),s=e(require("@mui/material/Collapse")),c=e(require("@mui/material/SvgIcon")),u=e(require("@mui/material/ClickAwayListener")),l=e(require("hoist-non-react-statics"));function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function f(e,n){return(f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e})(e,n)}function p(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n.indexOf(t=o[r])>=0||(a[t]=e[t]);return a}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var k=t.createContext(),b={containerRoot:{},containerAnchorOriginTopCenter:{},containerAnchorOriginBottomCenter:{},containerAnchorOriginTopRight:{},containerAnchorOriginBottomRight:{},containerAnchorOriginTopLeft:{},containerAnchorOriginBottomLeft:{}},g={maxSnack:3,dense:!1,hideIconVariant:!1,variant:"default",autoHideDuration:5e3,anchorOrigin:{vertical:"bottom",horizontal:"left"},TransitionComponent:o,transitionDuration:{enter:225,exit:195}},v=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},h=function(e){return Object.keys(e).filter((function(e){return!b[e]})).reduce((function(n,t){var r;return d({},n,((r={})[t]=e[t],r))}),{})},E={TIMEOUT:"timeout",CLICKAWAY:"clickaway",MAXSNACK:"maxsnack",INSTRUCTED:"instructed"},x=function(e){return"containerAnchorOrigin"+e},y=function(e){return"variant"+v(e)},C=function(e){return!!e||0===e},S=function(e){return"number"==typeof e||null===e};function w(e,n,t){return void 0===e&&(e={}),void 0===n&&(n={}),void 0===t&&(t={}),d({},t,n,e)}var O=["className"],D=i.styled("div")((function(e){var n,t;return(t={})["&.SnackbarContent-root"]=((n={display:"flex",flexWrap:"wrap",flexGrow:1})[e.theme.breakpoints.up("sm")]={flexGrow:"initial",minWidth:288},n),t})),L=n.forwardRef((function(e,n){var r=e.className,o=p(e,O);return t.createElement(D,Object.assign({ref:n,className:a("SnackbarContent-root",r)},o))})),I={right:"left",left:"right",bottom:"up",top:"down"},T=function(e){return"center"!==e.horizontal?I[e.horizontal]:I[e.vertical]},A=function(e){return t.createElement(c,Object.assign({},e),t.createElement("path",{d:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z"}))},q=function(e){return t.createElement(c,Object.assign({},e),t.createElement("path",{d:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,\n 6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,\n 13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"}))},M=function(e){return t.createElement(c,Object.assign({},e),t.createElement("path",{d:"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,\n 0 22,12A10,10 0 0,0 12,2Z"}))},j={fontSize:20,marginInlineEnd:8},R={default:void 0,success:t.createElement((function(e){return t.createElement(c,Object.assign({},e),t.createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41\n 10.59L10 14.17L17.59 6.58L19 8L10 17Z"}))}),{style:j}),warning:t.createElement(A,{style:j}),error:t.createElement(q,{style:j}),info:t.createElement(M,{style:j})};function H(e,n){return e.reduce((function(e,t){return null==t?e:function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];var i=[].concat(a);n&&-1===i.indexOf(n)&&i.push(n),e.apply(this,i),t.apply(this,i)}}),(function(){}))}var N="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function P(e){var t=n.useRef(e);return N((function(){t.current=e})),n.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}var V=["children","autoHideDuration","ClickAwayListenerProps","disableWindowBlurListener","onClose","onMouseEnter","onMouseLeave","open","resumeHideDuration"],W=["classes"],z=["style","dense","ariaAttributes","className","hideIconVariant","iconVariant","snack","action","content","TransitionComponent","TransitionProps","transitionDuration","onEnter","onEntered","onEntering","onExit","onExited","onExiting"],U=["persist","key","open","entered","requestClose","className","variant","content","action","ariaAttributes","anchorOrigin","message","TransitionComponent","TransitionProps","transitionDuration","onEnter","onEntered","onEntering","onExit","onExited","onExiting"],K={contentRoot:"SnackbarItem-contentRoot",lessPadding:"SnackbarItem-lessPadding",variantSuccess:"SnackbarItem-variantSuccess",variantError:"SnackbarItem-variantError",variantInfo:"SnackbarItem-variantInfo",variantWarning:"SnackbarItem-variantWarning",message:"SnackbarItem-message",action:"SnackbarItem-action",wrappedRoot:"SnackbarItem-wrappedRoot"},_=i.styled(n.forwardRef((function(e,t){var r=e.children,a=e.autoHideDuration,o=e.ClickAwayListenerProps,i=e.disableWindowBlurListener,s=void 0!==i&&i,c=e.onClose,l=e.onMouseEnter,f=e.onMouseLeave,m=e.open,k=e.resumeHideDuration,b=p(e,V),g=n.useRef(),v=P((function(){c&&c.apply(void 0,arguments)})),h=P((function(e){c&&null!=e&&(clearTimeout(g.current),g.current=setTimeout((function(){v(null,E.TIMEOUT)}),e))}));n.useEffect((function(){return m&&h(a),function(){clearTimeout(g.current)}}),[m,a,h]);var x=function(){clearTimeout(g.current)},y=n.useCallback((function(){null!=a&&h(null!=k?k:.5*a)}),[a,k,h]);return n.useEffect((function(){if(!s&&m)return window.addEventListener("focus",y),window.addEventListener("blur",x),function(){window.removeEventListener("focus",y),window.removeEventListener("blur",x)}}),[s,y,m]),n.createElement(u,d({onClickAway:function(e){c&&c(e,E.CLICKAWAY)}},o),n.createElement("div",d({onMouseEnter:function(e){l&&l(e),x()},onMouseLeave:function(e){f&&f(e),y()},ref:t},b),r))})))((function(e){var n,t=e.theme,r=i.emphasize(t.palette.background.default,"light"===(t.palette.mode||t.palette.type)?.8:.98);return(n={})["&."+K.wrappedRoot]={position:"relative",transform:"translateX(0)",top:0,right:0,bottom:0,left:0},n["."+K.contentRoot]=d({},t.typography.body2,{backgroundColor:r,color:t.palette.getContrastText(r),alignItems:"center",padding:"6px 16px",borderRadius:"4px",boxShadow:"0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)"}),n["."+K.lessPadding]={paddingLeft:20},n["."+K.variantSuccess]={backgroundColor:"#43a047",color:"#fff"},n["."+K.variantError]={backgroundColor:"#d32f2f",color:"#fff"},n["."+K.variantInfo]={backgroundColor:"#2196f3",color:"#fff"},n["."+K.variantWarning]={backgroundColor:"#ff9800",color:"#fff"},n["."+K.message]={display:"flex",alignItems:"center",padding:"8px 0"},n["."+K.action]={display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8},n})),B=function(e){var r=e.classes,o=p(e,W),i=n.useRef(),c=n.useState(!0),u=c[0],l=c[1];n.useEffect((function(){return function(){i.current&&clearTimeout(i.current)}}),[]);var f=H([o.snack.onClose,o.onClose],o.snack.key),m=o.style,k=o.ariaAttributes,b=o.className,h=o.hideIconVariant,x=o.iconVariant,C=o.snack,S=o.action,O=o.content,D=o.TransitionComponent,I=o.TransitionProps,A=o.transitionDuration,q=p(o,z),M=C.key,j=C.open,N=C.className,P=C.variant,V=C.content,B=C.action,X=C.ariaAttributes,Z=C.anchorOrigin,Q=C.message,Y=C.TransitionComponent,G=C.TransitionProps,F=C.transitionDuration,J=p(C,U),$=d({},R,x)[P],ee=d({"aria-describedby":"notistack-snackbar"},w(X,k)),ne=Y||D||g.TransitionComponent,te=w(F,A,g.transitionDuration),re=d({direction:T(Z)},w(G,I)),ae=B||S;"function"==typeof ae&&(ae=ae(M));var oe=V||O;"function"==typeof oe&&(oe=oe(M,C.message));var ie,se,ce=["onEnter","onEntering","onEntered","onExit","onExiting","onExited"].reduce((function(e,n){var t;return d({},e,((t={})[n]=H([o.snack[n],o[n]],o.snack.key),t))}),{});return t.createElement(s,{unmountOnExit:!0,timeout:175,in:u,onExited:ce.onExited},t.createElement(_,Object.assign({},q,J,{open:j,className:a(r.root,K.wrappedRoot,r[(ie=Z,se=ie.horizontal,"anchorOrigin"+v(ie.vertical)+v(se))]),onClose:f}),t.createElement(ne,Object.assign({appear:!0,in:j,timeout:te},re,{onExit:ce.onExit,onExiting:ce.onExiting,onExited:function(){i.current=setTimeout((function(){l(!u)}),125)},onEnter:ce.onEnter,onEntering:ce.onEntering,onEntered:H([ce.onEntered,function(){o.snack.requestClose&&f(null,E.INSTRCUTED)}])}),oe||t.createElement(L,Object.assign({},ee,{role:"alert",style:m,className:a(K.contentRoot,K[y(P)],r[y(P)],b,N,!h&&$&&K.lessPadding)}),t.createElement("div",{id:ee["aria-describedby"],className:K.message},h?null:$,Q),ae&&t.createElement("div",{className:K.action},ae)))))},X=["className","anchorOrigin","dense"],Z="& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper",Q={root:"SnackbarContainer-root",rootDense:"SnackbarContainer-rootDense",top:"SnackbarContainer-top",bottom:"SnackbarContainer-bottom",left:"SnackbarContainer-left",right:"SnackbarContainer-right",center:"SnackbarContainer-center"},Y=i.styled("div")((function(e){var n,t,r,a,o,i,s=e.theme;return(i={})["&."+Q.root]=((n={boxSizing:"border-box",display:"flex",maxHeight:"100%",position:"fixed",zIndex:s.zIndex.snackbar,height:"auto",width:"auto",transition:"top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms",pointerEvents:"none"})["& > .MuiCollapse-container, & > .MuiCollapse-root"]={pointerEvents:"all"},n[Z]={padding:"6px 0px",transition:"padding 300ms ease 0ms"},n.maxWidth="calc(100% - 40px)",n[s.breakpoints.down("sm")]={width:"100%",maxWidth:"calc(100% - 32px)"},n),i["&."+Q.rootDense]=((t={})[Z]={padding:"2px 0px"},t),i["&."+Q.top]={top:14,flexDirection:"column"},i["&."+Q.bottom]={bottom:14,flexDirection:"column-reverse"},i["&."+Q.left]=((r={left:20})[s.breakpoints.up("sm")]={alignItems:"flex-start"},r[s.breakpoints.down("sm")]={left:"16px"},r),i["&."+Q.right]=((a={right:20})[s.breakpoints.up("sm")]={alignItems:"flex-end"},a[s.breakpoints.down("sm")]={right:"16px"},a),i["&."+Q.center]=((o={left:"50%",transform:"translateX(-50%)"})[s.breakpoints.up("sm")]={alignItems:"center"},o),i})),G=t.memo((function(e){var n=e.className,r=e.anchorOrigin,o=e.dense,i=p(e,X),s=a(Q[r.vertical],Q[r.horizontal],Q.root,n,o&&Q.rootDense);return t.createElement(Y,Object.assign({className:s},i))})),F=["key","preventDuplicate"],J=["maxSnack","preventDuplicate","variant","anchorOrigin","iconVariant","dense","hideIconVariant","domRoot","children","classes"],$=function(e){var n,o,i,s;function c(n){var t;return(t=e.call(this,n)||this).enqueueSnackbar=function(e,n){void 0===n&&(n={});var r=n.key,a=n.preventDuplicate,o=p(n,F),i=C(r),s=i?r:(new Date).getTime()+Math.random(),c=function(e,n,t){return function(r){return"autoHideDuration"===r?S(e.autoHideDuration)?e.autoHideDuration:S(n.autoHideDuration)?n.autoHideDuration:g.autoHideDuration:e[r]||n[r]||t[r]}}(o,t.props,g),u=d({key:s},o,{message:e,open:!0,entered:!1,requestClose:!1,variant:c("variant"),anchorOrigin:c("anchorOrigin"),autoHideDuration:c("autoHideDuration")});return o.persist&&(u.autoHideDuration=void 0),t.setState((function(n){if(void 0===a&&t.props.preventDuplicate||a){var o=function(n){return i?n.key===r:n.message===e},s=n.queue.findIndex(o)>-1,c=n.snacks.findIndex(o)>-1;if(s||c)return n}return t.handleDisplaySnack(d({},n,{queue:[].concat(n.queue,[u])}))})),s},t.modifySnackbar=function(e,n){for(var r=d({},t.state),a=null,o=0;o<r.snacks.length;o+=1)if(r.snacks[o].key===e){a=Object.assign(r.snacks[o],n);break}if(null==a)for(var i=0;i<r.queue.length;i+=1)if(r.queue[i].key===e){a=Object.assign(r.queue[i],n);break}return null==a?null:(n.persist&&(a.autoHideDuration=void 0),t.setState(r),e)},t.handleDisplaySnack=function(e){return e.snacks.length>=t.maxSnack?t.handleDismissOldest(e):t.processQueue(e)},t.processQueue=function(e){var n=e.queue;return n.length>0?d({},e,{snacks:[].concat(e.snacks,[n[0]]),queue:n.slice(1,n.length)}):e},t.handleDismissOldest=function(e){if(e.snacks.some((function(e){return!e.open||e.requestClose})))return e;var n=!1,r=!1;e.snacks.reduce((function(e,n){return e+(n.open&&n.persist?1:0)}),0)===t.maxSnack&&(r=!0);var a=e.snacks.map((function(e){return n||e.persist&&!r?d({},e):(n=!0,e.entered?(e.onClose&&e.onClose(null,E.MAXSNACK,e.key),t.props.onClose&&t.props.onClose(null,E.MAXSNACK,e.key),d({},e,{open:!1})):d({},e,{requestClose:!0}))}));return d({},e,{snacks:a})},t.handleEnteredSnack=function(e,n,r){if(!C(r))throw new Error("handleEnteredSnack Cannot be called with undefined key");t.setState((function(e){return{snacks:e.snacks.map((function(e){return e.key===r?d({},e,{entered:!0}):d({},e)}))}}))},t.handleCloseSnack=function(e,n,r){if(t.props.onClose&&t.props.onClose(e,n,r),n!==E.CLICKAWAY){var a=void 0===r;t.setState((function(e){var n=e.queue;return{snacks:e.snacks.map((function(e){return a||e.key===r?d({},e,e.entered?{open:!1}:{requestClose:!0}):d({},e)})),queue:n.filter((function(e){return e.key!==r}))}}))}},t.closeSnackbar=function(e){var n=t.state.snacks.find((function(n){return n.key===e}));C(e)&&n&&n.onClose&&n.onClose(null,E.INSTRUCTED,e),t.handleCloseSnack(null,E.INSTRUCTED,e)},t.handleExitedSnack=function(e,n,r){var a=n||r;if(!C(a))throw new Error("handleExitedSnack Cannot be called with undefined key");t.setState((function(e){var n=t.processQueue(d({},e,{snacks:e.snacks.filter((function(e){return e.key!==a}))}));return 0===n.queue.length?n:t.handleDismissOldest(n)}))},t.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:t.enqueueSnackbar.bind(m(t)),closeSnackbar:t.closeSnackbar.bind(m(t)),modifySnackbar:t.modifySnackbar.bind(m(t))}},t}return o=e,(n=c).prototype=Object.create(o.prototype),n.prototype.constructor=n,f(n,o),c.prototype.render=function(){var e=this,n=this.state.contextValue,o=this.props,i=o.iconVariant,s=o.dense,c=void 0===s?g.dense:s,u=o.hideIconVariant,l=void 0===u?g.hideIconVariant:u,f=o.domRoot,m=o.children,b=o.classes,E=void 0===b?{}:b,y=p(o,J),C=this.state.snacks.reduce((function(e,n){var t,r,a=""+v((r=n.anchorOrigin).vertical)+v(r.horizontal);return d({},e,((t={})[a]=[].concat(e[a]||[],[n]),t))}),{}),S=Object.keys(C).map((function(n){var r=C[n];return t.createElement(G,{key:n,dense:c,anchorOrigin:r[0].anchorOrigin,className:a(E.containerRoot,E[x(n)])},r.map((function(n){return t.createElement(B,Object.assign({},y,{key:n.key,snack:n,dense:c,iconVariant:i,hideIconVariant:l,classes:h(E),onClose:e.handleCloseSnack,onExited:H([e.handleExitedSnack,e.props.onExited]),onEntered:H([e.handleEnteredSnack,e.props.onEntered])}))})))}));return t.createElement(k.Provider,{value:n},m,f?r.createPortal(S,f):S)},i=c,(s=[{key:"maxSnack",get:function(){return this.props.maxSnack||g.maxSnack}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,"symbol"==typeof(a=function(e,n){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key))?a:String(a),r)}var a}(i.prototype,s),Object.defineProperty(i,"prototype",{writable:!1}),c}(n.Component);exports.SnackbarContent=L,exports.SnackbarProvider=$,exports.useSnackbar=function(){return n.useContext(k)},exports.withSnackbar=function(e){var n=t.forwardRef((function(n,r){return t.createElement(k.Consumer,null,(function(a){return t.createElement(e,d({},n,{ref:r,enqueueSnackbar:a.enqueueSnackbar,closeSnackbar:a.closeSnackbar,modifySnackbar:a.modifySnackbar}))}))}));return l(n,e),n};
//# sourceMappingURL=notistack-mod.cjs.production.min.js.map