| 1 |
- import{d as w,p as c,c as y,o as i,q as _,a as L,b as h,m as C,s as f,D as m,A as U,x as F,a4 as N,N as A,ad as T,l as V,r as z,K as O,j as D}from"./vue-vendor-BdC0yijC.js";import{a as G,Q as q,a0 as K,aF as Q,ao as W,aG as Y,aH as J,a1 as R,c as k,a4 as X,aa as b,aW as Z,p as x,i as ee,a6 as se,a9 as oe}from"./index-h-JKU4Nj.js";const te=w({name:"Message",components:{AIconHover:R,IconInfoCircleFill:J,IconCheckCircleFill:Y,IconExclamationCircleFill:W,IconCloseCircleFill:Q,IconClose:K,IconLoading:q},props:{type:{type:String,default:"info"},closable:{type:Boolean,default:!1},showIcon:{type:Boolean,default:!0},duration:{type:Number,default:3e3},resetOnUpdate:{type:Boolean,default:!1},resetOnHover:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:s}){const o=k("message");let r=0;const l=()=>{s("close")},t=()=>{e.duration>0&&(r=window.setTimeout(l,e.duration))},n=()=>{r&&(window.clearTimeout(r),r=0)};return F(()=>{t()}),N(()=>{e.resetOnUpdate&&(n(),t())}),A(()=>{n()}),{handleMouseEnter:()=>{e.resetOnHover&&n()},handleMouseLeave:()=>{e.resetOnHover&&t()},prefixCls:o,handleClose:l}}});function ne(e,s,o,r,l,t){const n=c("icon-info-circle-fill"),a=c("icon-check-circle-fill"),u=c("icon-exclamation-circle-fill"),E=c("icon-close-circle-fill"),j=c("icon-loading"),B=c("icon-close"),H=c("a-icon-hover");return i(),y("li",{role:"alert",class:h([e.prefixCls,`${e.prefixCls}-${e.type}`,{[`${e.prefixCls}-closable`]:e.closable}]),onMouseenter:s[1]||(s[1]=(...p)=>e.handleMouseEnter&&e.handleMouseEnter(...p)),onMouseleave:s[2]||(s[2]=(...p)=>e.handleMouseLeave&&e.handleMouseLeave(...p))},[e.showIcon&&!(e.type==="normal"&&!e.$slots.icon)?(i(),y("span",{key:0,class:h(`${e.prefixCls}-icon`)},[C(e.$slots,"icon",{},()=>[e.type==="info"?(i(),f(n,{key:0})):e.type==="success"?(i(),f(a,{key:1})):e.type==="warning"?(i(),f(u,{key:2})):e.type==="error"?(i(),f(E,{key:3})):e.type==="loading"?(i(),f(j,{key:4})):_("v-if",!0)])],2)):_("v-if",!0),L("span",{class:h(`${e.prefixCls}-content`)},[C(e.$slots,"default")],2),e.closable?(i(),y("span",{key:1,class:h(`${e.prefixCls}-close-btn`),onClick:s[0]||(s[0]=(...p)=>e.handleClose&&e.handleClose(...p))},[m(H,null,{default:U(()=>[m(B)]),_:1})],2)):_("v-if",!0)],34)}var ae=G(te,[["render",ne]]);function le(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!V(e)}var re=w({name:"MessageList",props:{messages:{type:Array,default:()=>[]},position:{type:String,default:"top"}},emits:["close","afterClose"],setup(e,s){const o=k("message-list"),{zIndex:r}=X("message",{runOnMounted:!0});return()=>{let l;return m(T,{class:[o,`${o}-${e.position}`],name:"fade-message",tag:"ul",style:{zIndex:r.value},onAfterLeave:()=>s.emit("afterClose")},le(l=e.messages.map(t=>{const n={default:b(t.content),icon:b(t.icon)};return m(ae,{key:t.id,type:t.type,duration:t.duration,closable:t.closable,resetOnUpdate:t.resetOnUpdate,resetOnHover:t.resetOnHover,onClose:()=>s.emit("close",t.id)},n)}))?l:{default:()=>[l]})}}}),ie=Object.defineProperty,ce=Object.defineProperties,ue=Object.getOwnPropertyDescriptors,M=Object.getOwnPropertySymbols,de=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,I=(e,s,o)=>s in e?ie(e,s,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[s]=o,v=(e,s)=>{for(var o in s||(s={}))de.call(s,o)&&I(e,o,s[o]);if(M)for(var o of M(s))pe.call(s,o)&&I(e,o,s[o]);return e},P=(e,s)=>ce(e,ue(s));class fe{constructor(s,o){this.messageCount=0,this.add=t=>{var n;this.messageCount++;const a=(n=t.id)!=null?n:`__arco_message_${this.messageCount}`;if(this.messageIds.has(a))return this.update(a,t);const u=z(v({id:a},t));return this.messages.value.push(u),this.messageIds.add(a),{close:()=>this.remove(a)}},this.update=(t,n)=>{for(let a=0;a<this.messages.value.length;a++)if(this.messages.value[a].id===t){const u=!ee(n.duration);Object.assign(this.messages.value[a],P(v({},n),{id:t,resetOnUpdate:u}));break}return{close:()=>this.remove(t)}},this.remove=t=>{for(let n=0;n<this.messages.value.length;n++){const a=this.messages.value[n];if(a.id===t){se(a.onClose)&&a.onClose(t),this.messages.value.splice(n,1),this.messageIds.delete(t);break}}},this.clear=()=>{this.messages.value.splice(0)},this.destroy=()=>{this.messages.value.length===0&&this.container&&(O(null,this.container),document.body.removeChild(this.container),this.container=null,d[this.position]=void 0)};const{position:r="top"}=s;this.container=oe("message"),this.messageIds=new Set,this.messages=D([]),this.position=r;const l=m(re,{messages:this.messages.value,position:r,onClose:this.remove,onAfterClose:this.destroy});(o??$._context)&&(l.appContext=o??$._context),O(l,this.container),document.body.appendChild(this.container)}}const d={},S=[...Z,"loading","normal"],g=S.reduce((e,s)=>(e[s]=(o,r)=>{x(o)&&(o={content:o});const l=v({type:s},o),{position:t="top"}=l;return d[t]||(d[t]=new fe(l,r)),d[t].add(l)},e),{});g.clear=e=>{var s;e?(s=d[e])==null||s.clear():Object.values(d).forEach(o=>o==null?void 0:o.clear())};const $=P(v({},g),{install:e=>{const s={clear:g.clear};for(const o of S)s[o]=(r,l=e._context)=>g[o](r,l);e.config.globalProperties.$message=s},_context:null});export{$ as M};
|