UNPKG

ll-package

Version:

2 lines (1 loc) 3.79 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),k=require("../../../@babel/runtime/helpers/esm/extends.js"),o=require("vue"),V=require("../_util/transition.js"),j=require("./Notice.js"),M=require("../config-provider/index.js"),K=require("../_util/classNames.js");var T=function(e,N){var p={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&N.indexOf(a)<0&&(p[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,a=Object.getOwnPropertySymbols(e);c<a.length;c++)N.indexOf(a[c])<0&&Object.prototype.propertyIsEnumerable.call(e,a[c])&&(p[a[c]]=e[a[c]]);return p};let q=0;const R=Date.now();function S(){const e=q;return q+=1,`rcNotification_${R}_${e}`}const $=o.defineComponent({name:"Notification",inheritAttrs:!1,props:["prefixCls","transitionName","animation","maxCount","closeIcon","hashId"],setup(e,N){let{attrs:p,expose:a,slots:c}=N;const g=new Map,u=o.ref([]),b=o.computed(()=>{const{prefixCls:i,animation:n="fade"}=e;let r=e.transitionName;return!r&&n&&(r=`${i}-${n}`),V.getTransitionGroupProps(r)}),I=(i,n)=>{const r=i.key||S(),t=k.default(k.default({},i),{key:r}),{maxCount:C}=e,v=u.value.map(l=>l.notice.key).indexOf(r),m=u.value.concat();v!==-1?m.splice(v,1,{notice:t,holderCallback:n}):(C&&u.value.length>=C&&(t.key=m[0].notice.key,t.updateMark=S(),t.userPassKey=r,m.shift()),m.push({notice:t,holderCallback:n})),u.value=m},P=i=>{u.value=u.value.filter(n=>{let{notice:{key:r,userPassKey:t}}=n;return(t||r)!==i})};return a({add:I,remove:P,notices:u}),()=>{var i;const{prefixCls:n,closeIcon:r=(i=c.closeIcon)===null||i===void 0?void 0:i.call(c,{prefixCls:n})}=e,t=u.value.map((v,m)=>{let{notice:l,holderCallback:_}=v;const h=m===u.value.length-1?l.updateMark:void 0,{key:d,userPassKey:O}=l,{content:f}=l,s=k.default(k.default(k.default({prefixCls:n,closeIcon:typeof r=="function"?r({prefixCls:n}):r},l),l.props),{key:d,noticeKey:O||d,updateMark:h,onClose:y=>{var w;P(y),(w=l.onClose)===null||w===void 0||w.call(l)},onClick:l.onClick});return _?o.createVNode("div",{key:d,class:`${n}-hook-holder`,ref:y=>{typeof d>"u"||(y?(g.set(d,y),_(y,s)):g.delete(d))}},null):o.createVNode(j.default,x.default(x.default({},s),{},{class:K.default(s.class,e.hashId)}),{default:()=>[typeof f=="function"?f({prefixCls:n}):f]})}),C={[n]:1,[p.class]:!!p.class,[e.hashId]:!0};return o.createVNode("div",{class:C,style:p.style||{top:"65px",left:"50%"}},[o.createVNode(o.TransitionGroup,x.default({tag:"div"},b.value),{default:()=>[t]})])}}});$.newInstance=function(N,p){const a=N||{},{name:c="notification",getContainer:g,appContext:u,prefixCls:b,rootPrefixCls:I,transitionName:P,hasTransitionName:i,useStyle:n}=a,r=T(a,["name","getContainer","appContext","prefixCls","rootPrefixCls","transitionName","hasTransitionName","useStyle"]),t=document.createElement("div");g?g().appendChild(t):document.body.appendChild(t);const C=o.defineComponent({compatConfig:{MODE:3},name:"NotificationWrapper",setup(m,l){let{attrs:_}=l;const h=o.shallowRef(),d=o.computed(()=>M.globalConfigForApi.getPrefixCls(c,b)),[,O]=n(d);return o.onMounted(()=>{p({notice(f){var s;(s=h.value)===null||s===void 0||s.add(f)},removeNotice(f){var s;(s=h.value)===null||s===void 0||s.remove(f)},destroy(){o.render(null,t),t.parentNode&&t.parentNode.removeChild(t)},component:h})}),()=>{const f=M.globalConfigForApi,s=f.getRootPrefixCls(I,d.value),y=i?P:`${d.value}-${P}`;return o.createVNode(M.default,x.default(x.default({},f),{},{prefixCls:s}),{default:()=>[o.createVNode($,x.default(x.default({ref:h},_),{},{prefixCls:d.value,transitionName:y,hashId:O.value}),null)]})}}}),v=o.createVNode(C,r);v.appContext=u||v.appContext,o.render(v,t)};const A=$;exports.default=A;