ll-package
Version:
2 lines (1 loc) • 2.17 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("../../../@babel/runtime/helpers/esm/extends.js"),d=require("vue"),m=require("./HookNotification.js");var P=function(t,u){var l={};for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&u.indexOf(e)<0&&(l[e]=t[e]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,e=Object.getOwnPropertySymbols(t);n<e.length;n++)u.indexOf(e[n])<0&&Object.prototype.propertyIsEnumerable.call(t,e[n])&&(l[e[n]]=t[e[n]]);return l};const K=()=>document.body;let C=0;function q(){const t={};for(var u=arguments.length,l=new Array(u),e=0;e<u;e++)l[e]=arguments[e];return l.forEach(n=>{n&&Object.keys(n).forEach(y=>{const g=n[y];g!==void 0&&(t[y]=g)})}),t}function A(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{getContainer:u=K,motion:l,prefixCls:e,maxCount:n,getClassName:y,getStyles:g,onAllRemoved:x}=t,O=P(t,["getContainer","motion","prefixCls","maxCount","getClassName","getStyles","onAllRemoved"]),s=d.shallowRef([]),b=d.shallowRef(),k=(o,r)=>{const i=o.key||m.getUuid(),c=h.default(h.default({},o),{key:i}),v=s.value.map(S=>S.notice.key).indexOf(i),f=s.value.concat();v!==-1?f.splice(v,1,{notice:c,holderCallback:r}):(n&&s.value.length>=n&&(c.key=f[0].notice.key,c.updateMark=m.getUuid(),c.userPassKey=i,f.shift()),f.push({notice:c,holderCallback:r})),s.value=f},p=o=>{s.value=s.value.filter(r=>{let{notice:{key:i,userPassKey:c}}=r;return(c||i)!==o})},w=()=>{s.value=[]},N=()=>d.createVNode(m.default,{ref:b,prefixCls:e,maxCount:n,notices:s.value,remove:p,getClassName:y,getStyles:g,animation:l,hashId:t.hashId,onAllRemoved:x,getContainer:u},null),a=d.shallowRef([]),R={open:o=>{const r=q(O,o);(r.key===null||r.key===void 0)&&(r.key=`vc-notification-${C}`,C+=1),a.value=[...a.value,{type:"open",config:r}]},close:o=>{a.value=[...a.value,{type:"close",key:o}]},destroy:()=>{a.value=[...a.value,{type:"destroy"}]}};return d.watch(a,()=>{a.value.length&&(a.value.forEach(o=>{switch(o.type){case"open":k(o.config);break;case"close":p(o.key);break;case"destroy":w();break}}),a.value=[])}),[R,N]}exports.default=A;
;