UNPKG

react-toastify-prim

Version:
3 lines 17.3 kB
"use client"; import{isValidElement as Bt}from"react";var R=t=>typeof t=="number"&&!isNaN(t),L=t=>typeof t=="string",I=t=>typeof t=="function",Tt=t=>L(t)||R(t),F=t=>L(t)||I(t)?t:null,gt=(t,o)=>t===!1||R(t)&&t>0?t:o,U=t=>Bt(t)||L(t)||I(t)||R(t);import _t,{useEffect as zt,useLayoutEffect as Ft,useRef as Ut}from"react";function ot(t,o,e=300){let{scrollHeight:i,style:r}=t;requestAnimationFrame(()=>{r.minHeight="initial",r.height=i+"px",r.transition=`all ${e}ms`,requestAnimationFrame(()=>{r.height="0",r.padding="0",r.margin="0",setTimeout(o,e)})})}function B({enter:t,exit:o,appendPosition:e=!1,collapse:i=!0,collapseDuration:r=300}){return function({children:s,position:d,preventExitTransition:m,done:y,nodeRef:p,isIn:v,playToast:b}){let h=e?`${t}--${d}`:t,A=e?`${o}--${d}`:o,C=Ut(0);return Ft(()=>{let g=p.current,_=h.split(" "),x=a=>{a.target===p.current&&(b(),g.removeEventListener("animationend",x),g.removeEventListener("animationcancel",x),C.current===0&&a.type!=="animationcancel"&&g.classList.remove(..._))};(()=>{g.classList.add(..._),g.addEventListener("animationend",x),g.addEventListener("animationcancel",x)})()},[]),zt(()=>{let g=p.current,_=()=>{g.removeEventListener("animationend",_),i?ot(g,y,r):y()};v||(m?_():(()=>{C.current=1,g.className+=` ${A}`,g.addEventListener("animationend",_)})())},[v]),_t.createElement(_t.Fragment,null,s)}}import{cloneElement as Ht,isValidElement as Vt}from"react";function et(t,o){return{content:at(t.content,t.props),containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,reason:t.removalReason,status:o}}function at(t,o,e=!1){return Vt(t)&&!L(t.type)?Ht(t,{closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:e}):I(t)?t({closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:e}):t}import st from"react";function bt({closeToast:t,theme:o,ariaLabel:e="close"}){return st.createElement("button",{className:`Toastify__close-button Toastify__close-button--${o}`,type:"button",onClick:i=>{i.stopPropagation(),t(!0)},"aria-label":e},st.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},st.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}import nt from"react";import vt from"clsx";function ht({delay:t,isRunning:o,closeToast:e,type:i="default",hide:r,className:c,controlledProgress:s,progress:d,rtl:m,isIn:y,theme:p}){let v=r||s&&d===0,b={animationDuration:`${t}ms`,animationPlayState:o?"running":"paused"};s&&(b.transform=`scaleX(${d})`);let h=vt("Toastify__progress-bar",s?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${p}`,`Toastify__progress-bar--${i}`,{["Toastify__progress-bar--rtl"]:m}),A=I(c)?c({rtl:m,type:i,defaultClassName:h}):vt(h,c),C={[s&&d>=1?"onTransitionEnd":"onAnimationEnd"]:s&&d<1?null:()=>{y&&e()}};return nt.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":v},nt.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${p} Toastify__progress-bar--${i}`}),nt.createElement("div",{role:"progressbar","aria-hidden":v?"true":"false","aria-label":"notification timer",className:A,style:b,...C}))}import pt from"clsx";import J,{useEffect as ut,useRef as go,useState as $t}from"react";var Qt=1,rt=()=>`${Qt++}`;function Ct(t,o,e){let i=1,r=0,c=[],s=[],d=o,m=new Map,y=[],p=new Set,v=a=>(p.add(a),()=>p.delete(a)),b=()=>{s=Array.from(m.values()),p.forEach(a=>a())},h=({containerId:a,toastId:n,updateId:f})=>{let l=a?a!==t:t!==1,T=m.has(n)&&f==null;return l||T},A=(a,n)=>{m.forEach(f=>{var l;(n==null||n===f.props.toastId)&&((l=f.toggle)==null||l.call(f,a))})},C=a=>{var n,f;(f=(n=a.props)==null?void 0:n.onClose)==null||f.call(n,a.removalReason),a.isActive=!1},g=a=>{if(a==null)m.forEach(C);else{let n=m.get(a);n&&C(n)}b()},_=()=>{r-=c.length,c=[]},x=a=>{var T,S;let{toastId:n,updateId:f}=a.props,l=f==null;a.staleId&&(m.delete(a.staleId),y=y.filter(N=>N!==a.staleId)),a.isActive=!0,m.set(n,a),l&&y.push(n),b(),e(et(a,l?"added":"updated")),l&&((S=(T=a.props).onOpen)==null||S.call(T))};return{id:t,props:d,observe:v,toggle:A,removeToast:g,toasts:m,clearQueue:_,buildToast:(a,n)=>{if(h(n))return;let{toastId:f,updateId:l,data:T,staleId:S,delay:N}=n,k=l==null;k&&r++;let E={...d,style:d.toastStyle,key:i++,...Object.fromEntries(Object.entries(n).filter(([$,z])=>z!=null)),toastId:f,updateId:l,data:T,isIn:!1,className:F(n.className||d.toastClassName),progressClassName:F(n.progressClassName||d.progressClassName),autoClose:n.isLoading?!1:gt(n.autoClose,d.autoClose),closeToast($){m.get(f).removalReason=$,g(f)},deleteToast(){let $=m.get(f);if($!=null){if(e(et($,"removed")),m.delete(f),y=y.filter(z=>z!==f),r--,r<0&&(r=0),c.length>0){x(c.shift());return}b()}}};E.closeButton=d.closeButton,n.closeButton===!1||U(n.closeButton)?E.closeButton=n.closeButton:n.closeButton===!0&&(E.closeButton=U(d.closeButton)?d.closeButton:!0);let D={content:a,props:E,staleId:S};d.limit&&d.limit>0&&r>d.limit&&k?c.push(D):R(N)&&N>0?setTimeout(()=>{x(D)},N):(x(D),d.maxShownToasts&&m.size>d.maxShownToasts&&k&&g(y.shift()))},setProps(a){d=a},setToggle:(a,n)=>{let f=m.get(a);f&&(f.toggle=n)},isToastActive:a=>{var n;return(n=m.get(a))==null?void 0:n.isActive},getSnapshot:()=>s}}var P=new Map,H=[],it=new Set,Wt=t=>it.forEach(o=>o(t)),xt=()=>P.size>0;function Gt(){H.forEach(t=>lt(t.content,t.options)),H=[]}var Et=(t,{containerId:o})=>{var e;return(e=P.get(o||1))==null?void 0:e.toasts.get(t)};function W(t,o){var i;if(o)return!!((i=P.get(o))!=null&&i.isToastActive(t));let e=!1;return P.forEach(r=>{r.isToastActive(t)&&(e=!0)}),e}function It(t){if(!xt()){H=H.filter(o=>t!=null&&o.options.toastId!==t);return}if(t==null||Tt(t))P.forEach(o=>{o.removeToast(t)});else if(t&&("containerId"in t||"id"in t)){let o=P.get(t.containerId);o?o.removeToast(t.id):P.forEach(e=>{e.removeToast(t.id)})}}var Pt=(t={})=>{P.forEach(o=>{o.props.limit&&(!t.containerId||o.id===t.containerId)&&o.clearQueue()})};function lt(t,o){U(t)&&(xt()||H.push({content:t,options:o}),P.forEach(e=>{e.buildToast(t,o)}))}function St(t){var o;(o=P.get(t.containerId||1))==null||o.setToggle(t.id,t.fn)}function ft(t,o){P.forEach(e=>{(o==null||!(o!=null&&o.containerId)||(o==null?void 0:o.containerId)===e.id)&&e.toggle(t,o==null?void 0:o.id)})}function At(t){let o=t.containerId||1;return{subscribe(e){let i=Ct(o,t,Wt);P.set(o,i);let r=i.observe(e);return Gt(),()=>{r(),P.delete(o)}},setProps(e){var i;(i=P.get(o))==null||i.setProps(e)},getSnapshot(){var e;return(e=P.get(o))==null?void 0:e.getSnapshot()}}}function kt(t){return it.add(t),()=>{it.delete(t)}}function qt(t){return t&&(L(t.toastId)||R(t.toastId))?t.toastId:rt()}function V(t,o){return lt(t,o),o.toastId}function G(t,o){return{...o,type:o&&o.type||t,toastId:qt(o)}}function q(t){return(o,e)=>V(o,G(t,e))}function u(t,o){return V(t,G("default",o))}u.loading=(t,o)=>V(t,G("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...o}));function Kt(t,{pending:o,error:e,success:i},r){let c;o&&(c=L(o)?u.loading(o,r):u.loading(o.render,{...r,...o}));let s={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},d=(y,p,v)=>{if(p==null){u.dismiss(c);return}let b={type:y,...s,...r,data:v},h=L(p)?{render:p}:p;return c?u.update(c,{...b,...h}):u(h.render,{...b,...h}),v},m=I(t)?t():t;return m.then(y=>d("success",i,y)).catch(y=>d("error",e,y)),m}u.promise=Kt;u.success=q("success");u.info=q("info");u.error=q("error");u.warning=q("warning");u.warn=u.warning;u.dark=(t,o)=>V(t,G("default",{theme:"dark",...o}));function Yt(t){It(t)}u.dismiss=Yt;u.clearWaitingQueue=Pt;u.isActive=W;u.update=(t,o={})=>{let e=Et(t,o);if(e){let{props:i,content:r}=e,c={delay:0,...i,...o,toastId:o.toastId||t,updateId:rt()};c.toastId!==t&&(c.staleId=t);let s=c.render||r;delete c.render,V(s,c)}};u.done=t=>{u.update(t,{progress:1})};u.onChange=kt;u.play=t=>ft(!0,t);u.pause=t=>ft(!1,t);import{useRef as jt,useSyncExternalStore as Zt}from"react";function Nt(t){var s;let{subscribe:o,getSnapshot:e,setProps:i}=jt(At(t)).current;i(t);let r=(s=Zt(o,e,e))==null?void 0:s.slice();function c(d){if(!r)return[];let m=new Map;return t.newestOnTop&&r.reverse(),r.forEach(y=>{let{position:p}=y.props;m.has(p)||m.set(p,[]),m.get(p).push(y)}),Array.from(m,y=>d(y[0],y[1]))}return{getToastToRender:c,isToastActive:W,count:r==null?void 0:r.length}}import{useEffect as to,useRef as Ot,useState as wt}from"react";function Dt(t){let[o,e]=wt(!1),[i,r]=wt(!1),c=Ot(null),s=Ot({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:d,pauseOnHover:m,closeToast:y,onClick:p,closeOnClick:v}=t;St({id:t.toastId,containerId:t.containerId,fn:e}),to(()=>{if(t.pauseOnFocusLoss)return b(),()=>{h()}},[t.pauseOnFocusLoss]);function b(){document.hasFocus()||_(),window.addEventListener("focus",g),window.addEventListener("blur",_)}function h(){window.removeEventListener("focus",g),window.removeEventListener("blur",_)}function A(l){if(t.draggable===!0||t.draggable===l.pointerType){x();let T=c.current;s.canCloseOnClick=!0,s.canDrag=!0,T.style.transition="none",t.draggableDirection==="x"?(s.start=l.clientX,s.removalDistance=T.offsetWidth*(t.draggablePercent/100)):(s.start=l.clientY,s.removalDistance=T.offsetHeight*(t.draggablePercent===80?t.draggablePercent*1.5:t.draggablePercent)/100)}}function C(l){let{top:T,bottom:S,left:N,right:k}=c.current.getBoundingClientRect();l.nativeEvent.type!=="touchend"&&t.pauseOnHover&&l.clientX>=N&&l.clientX<=k&&l.clientY>=T&&l.clientY<=S?_():g()}function g(){e(!0)}function _(){e(!1)}function x(){s.didMove=!1,document.addEventListener("pointermove",a),document.addEventListener("pointerup",n)}function w(){document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",n)}function a(l){let T=c.current;if(s.canDrag&&T){s.didMove=!0,o&&_(),t.draggableDirection==="x"?s.delta=l.clientX-s.start:s.delta=l.clientY-s.start,s.start!==l.clientX&&(s.canCloseOnClick=!1);let S=t.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`;T.style.transform=`translate3d(${S},0)`,T.style.opacity=`${1-Math.abs(s.delta/s.removalDistance)}`}}function n(){w();let l=c.current;if(s.canDrag&&s.didMove&&l){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance){r(!0),t.closeToast(!0),t.collapseAll();return}l.style.transition="transform 0.2s, opacity 0.2s",l.style.removeProperty("transform"),l.style.removeProperty("opacity")}}let f={onPointerDown:A,onPointerUp:C};return d&&m&&(f.onMouseEnter=_,t.stacked||(f.onMouseLeave=g)),v&&(f.onClick=l=>{p&&p(l),s.canCloseOnClick&&y(!0)}),{playToast:g,pauseToast:_,isRunning:o,preventExitTransition:i,toastRef:c,eventHandlers:f}}import{useEffect as oo,useLayoutEffect as eo}from"react";var Lt=typeof window!="undefined"?eo:oo;import j from"clsx";import Z,{cloneElement as mo,isValidElement as po}from"react";import O,{cloneElement as ao,isValidElement as so}from"react";var Y=({theme:t,type:o,isLoading:e,...i})=>O.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:t==="colored"?"currentColor":`var(--toastify-icon-color-${o})`,...i});function no(t){return O.createElement(Y,{...t},O.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function ro(t){return O.createElement(Y,{...t},O.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function io(t){return O.createElement(Y,{...t},O.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function lo(t){return O.createElement(Y,{...t},O.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function fo(){return O.createElement("div",{className:"Toastify__spinner"})}var K={info:ro,warning:no,success:io,error:lo,spinner:fo},co=t=>t in K;function Mt({theme:t,type:o,isLoading:e,icon:i}){let r=null,c={theme:t,type:o};return i===!1||(I(i)?r=i({...c,isLoading:e}):so(i)?r=ao(i,c):e?r=K.spinner():co(o)&&(r=K[o](c))),r}var ct=t=>{let{isRunning:o,preventExitTransition:e,toastRef:i,eventHandlers:r,playToast:c}=Dt(t),{closeButton:s,children:d,autoClose:m,onClick:y,type:p,hideProgressBar:v,closeToast:b,transition:h,position:A,className:C,style:g,progressClassName:_,updateId:x,role:w,progress:a,rtl:n,toastId:f,deleteToast:l,isIn:T,isLoading:S,closeOnClick:N,theme:k,ariaLabel:E}=t,D=j("Toastify__toast",`Toastify__toast-theme--${k}`,`Toastify__toast--${p}`,{["Toastify__toast--rtl"]:n},{["Toastify__toast--close-on-click"]:N}),$=I(C)?C({rtl:n,position:A,type:p,defaultClassName:D}):j(D,C),z=Mt(t),yt=!!a||!m,tt={closeToast:b,type:p,theme:k},Q=null;return s===!1||(I(s)?Q=s(tt):po(s)?Q=mo(s,tt):Q=bt(tt)),Z.createElement(h,{isIn:T,done:l,position:A,preventExitTransition:e,nodeRef:i,playToast:c},Z.createElement("div",{id:f,tabIndex:0,onClick:y,"data-in":T,className:j($),...r,style:g,ref:i,...T&&{role:w,"aria-label":E}},z!=null&&Z.createElement("div",{className:j("Toastify__toast-icon",{["Toastify--animate-icon Toastify__zoom-enter"]:!S})},z),at(d,t,!o),Q,!t.customProgressBar&&Z.createElement(ht,{...x&&!yt?{key:`p-${x}`}:{},rtl:n,theme:k,delay:m,isRunning:o,isIn:T,closeToast:b,hide:v,type:p,className:_,controlledProgress:yt,progress:a||0})))};var X=(t,o=!1)=>({enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:o}),dt=B(X("bounce",!0)),uo=B(X("slide",!0)),yo=B(X("zoom")),To=B(X("flip")),mt=B(X("no-animation"));var _o={position:"top-right",transition:dt,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:t=>t.altKey&&t.code==="KeyT"};function Rt(t){let o={..._o,...t},e=t.stacked,[i,r]=$t(!0),[c,s]=$t(!1),d=go(null),{getToastToRender:m,isToastActive:y,count:p}=Nt(o),{className:v,style:b,disableCloseAllToast:h,closeAllToastClassName:A,rtl:C,containerId:g,hotKeys:_}=o;ut(()=>{i===!1&&p===0&&r(!0),p>1?s(!0):s(!1)},[p]),ut(()=>{u.dismiss()},[e]);function x(a){let n=pt("Toastify__toast-container",`Toastify__toast-container--${a}`,{["Toastify__toast-container--rtl"]:C},{["Toastify__toast-container--stacked"]:e});return I(v)?v({position:a,rtl:C,defaultClassName:n}):pt(n,F(v))}function w(){e&&(r(!0),u.play())}return Lt(()=>{var a;if(e){let n=d.current.querySelectorAll('[data-in="true"]'),f=12,l=(a=o.position)==null?void 0:a.includes("top"),T=0,S=0;Array.from(n).reverse().forEach((N,k)=>{let E=N;E.classList.add("Toastify__toast--stacked"),k>0&&(E.dataset.collapsed=`${i}`),E.dataset.pos||(E.dataset.pos=l?"top":"bot");let D=T*(i?.2:1)+(i?0:f*k);E.style.setProperty("--y",`${l?D:D*-1}px`),E.style.setProperty("--g",`${f}`),E.style.setProperty("--s",`${1-(i?S:0)}`),T+=E.offsetHeight,S+=.025})}},[i,p,e]),ut(()=>{function a(n){var l;let f=d.current;_(n)&&((l=f.querySelector('[tabIndex="0"]'))==null||l.focus(),r(!1),u.pause()),n.key==="Escape"&&(document.activeElement===f||f!=null&&f.contains(document.activeElement))&&(r(!0),u.play())}return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)}},[_]),J.createElement("section",{ref:d,className:"Toastify",id:g,onMouseEnter:()=>{e&&(r(!1),u.pause())},onMouseLeave:w,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":o["aria-label"]},m((a,n)=>{let f=n.length?{...b}:{...b,pointerEvents:"none"};return J.createElement("div",{tabIndex:-1,className:x(a),"data-stacked":e,style:f,key:`c-${a}`},!h&&c&&J.createElement(ct,{toastId:"closeAllToast",key:"closeAllToast",isIn:!0,transition:mt,closeToast:()=>{},deleteToast:()=>{},position:o.position,draggablePercent:0,theme:o.theme,type:"default",stacked:e,collapseAll:w,closeButton:!1,onClick:()=>{n.forEach(l=>u.dismiss(l.props.toastId)),s(!1)},className:pt("Toastify__close-all-toast",A)},"Dismiss All"),n.map(({content:l,props:T})=>J.createElement(ct,{...T,stacked:e,collapseAll:w,isIn:y(T.toastId,T.containerId),key:`t-${T.key}`},l)))}))}export{dt as Bounce,To as Flip,K as Icons,mt as NoAnimation,uo as Slide,Rt as ToastContainer,yo as Zoom,ot as collapseToast,B as cssTransition,u as toast}; //# sourceMappingURL=unstyled.mjs.map