UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

2 lines (1 loc) 4.86 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),re=require("../chunks/helper-chunk.js"),j=require("../chunks/module-chunk.js"),ae=require("../_util/hooks/use-event-callback.js"),ne=require("../_util/pick-attrs.js");require("../x-provider/index.js");const ce=require("./Bubble.js"),ie=require("./BubbleSystem.js"),ue=require("./BubbleDivider.js"),fe=require("./hooks/useDisplayData.js"),de=require("./hooks/useListData.js"),me=require("./style/index.js"),B=require("../_util/hooks/use-state.js"),ye=require("./context.js"),be=require("../x-provider/hooks/use-x-provider-context.js"),ve=1,he=e.defineComponent({name:"AXBubbleList",inheritAttrs:!1,__name:"BubbleList",props:{prefixCls:{},rootClassName:{},items:{},autoScroll:{type:Boolean,default:!0},roles:{},role:{},onScroll:{},classNames:{default:()=>({})},styles:{default:()=>({})}},setup(t,{expose:z}){const O=re.createPropsRestProxy(t,["prefixCls","rootClassName","items","autoScroll","roles","role","onScroll","classNames","styles","class","style"]);e.toRef(t,"class"),e.toRef(t,"role"),e.toRef(t,"roles"),e.toRef(t,"items"),e.toRef(t,"prefixCls");const X=e.useAttrs(),l=e.useSlots(),K=e.computed(()=>ne.default(e.mergeProps(O,X),{attr:!0,aria:!0})),E=e.ref(t.items),k=e.ref(t.roles??t.role);e.watch(()=>t.items,()=>{E.value=t.items}),e.watch(()=>[t.roles,t.role],([s,o])=>{k.value=s??o});const w=e.ref(null),c=e.ref(null),v=e.ref({}),{getPrefixCls:W}=be.default(),D=W("bubble",t.prefixCls),h=`${D}-list`,[F,G,J]=me.default(D),[Q,A]=B.default(!1);e.watchPostEffect(()=>{A(!0),e.onWatcherCleanup(()=>{A(!1)})});const Y=de.default(E,k),[d,Z]=fe.default(Y),[C,x]=B.default(!0),[N,H]=B.default(0),p=s=>{var n;const o=s.target;x(o.scrollHeight-Math.abs(o.scrollTop)-o.clientHeight<=ve),(n=t.onScroll)==null||n.call(t,s)};e.watch([N,c,C],()=>{t.autoScroll&&e.unref(c)&&e.unref(C)&&e.nextTick(()=>{var s;(s=e.unref(c))==null||s.scrollTo({top:e.unref(c).scrollHeight})})}),e.watch(()=>e.unref(d).length,()=>{var s;if(t.autoScroll){const o=(s=e.unref(d)[e.unref(d).length-2])==null?void 0:s.key,n=e.unref(v)[o];if(n&&e.unref(c)){const{nativeElement:r}=n,{top:f=0,bottom:i=0}=(r==null?void 0:r.getBoundingClientRect())??{},{top:u,bottom:m}=e.unref(c).getBoundingClientRect();f<m&&i>u&&(H(e.unref(N)+1),x(!0))}}});const _=ae.useEventCallback(()=>{t.autoScroll&&H(e.unref(N)+1)}),ee=e.computed(()=>({onUpdate:_})),te=e.computed(()=>j.classnames(h,t.rootClassName,t.class,t.classNames.root,G.value,J,{[`${h}-reach-end`]:C.value})),se=e.computed(()=>({...typeof t.style=="object"?t.style:{},...t.styles.root||{}}));return z({nativeElement:w,scrollBoxNativeElement:c,scrollTo:({key:s,top:o,offset:n,behavior:r="smooth",block:f})=>{const i=e.unref(c);if(!i)return;const u=o??n;if(typeof u=="number"){i.scrollTo({top:u,behavior:r});return}if(u==="bottom"){i.scrollTo({top:i.scrollHeight,behavior:r});return}if(u==="top"){i.scrollTo({top:0,behavior:r});return}if(s!==void 0){const m=e.unref(v)[s];if(m){const g=e.unref(d).findIndex(S=>S.key===s);x(g===e.unref(d).length-1),m.nativeElement.scrollIntoView({behavior:r,block:f})}}}}),()=>F(e.createVNode(ye.BubbleContextProvider,{value:ee.value},{default:()=>[e.createVNode("div",e.mergeProps(K.value,{class:te.value,style:se.value,ref:w}),[e.createVNode("div",{class:j.classnames(`${h}-scroll-box`,t.classNames.scroll),style:t.styles.scroll||{},ref:c,onScroll:p},[e.createVNode("div",{class:`${h}-scroll-content`},[e.unref(d).map(({key:s,status:o,extraInfo:n,role:r,onTypingComplete:f,classNames:i={},styles:u={},class:m,className:g,style:S,...a})=>{var L,$,M,U;const y={key:s,status:o,extraInfo:n,role:r,...a},{root:le,bubble:ge,system:Ce,divider:xe,...R}=i,{root:oe,bubble:Ne,system:Se,divider:Re,...q}=u,P={avatar:l.avatar?()=>{var b;return(b=l.avatar)==null?void 0:b.call(l,{item:y})}:a.avatar,header:((L=l.header)==null?void 0:L.call(l,{item:y}))??a.header,footer:(($=l.footer)==null?void 0:$.call(l,{item:y}))??a.footer,extra:((M=l.extra)==null?void 0:M.call(l,{item:y}))??a.extra,loadingRender:l.loading?()=>l.loading({item:y}):a.loadingRender,content:((U=l.message)==null?void 0:U.call(l,{item:y}))??a.content,typing:Q.value?a.typing:!1,onTypingComplete:()=>{f==null||f(),Z(s)}},V=b=>{b?v.value[s]=b:delete v.value[s]},I=le||m||g,T=oe||S;return r==="divider"?e.createVNode(ue.default,{key:s,content:P.content,class:I||t.classNames.divider,style:T||t.styles.divider,classNames:R,styles:q,ref:V},null):r==="system"?e.createVNode(ie.default,{key:s,content:P.content,variant:a.variant,shape:a.shape,class:I||t.classNames.system,style:T||t.styles.system,classNames:R,styles:q,ref:V},null):e.createVNode(ce.default,e.mergeProps({key:s},a,P,{_key:s,status:o,extraInfo:n,class:I||t.classNames.bubble,style:T||t.styles.bubble,classNames:R,styles:q,ref:V}),null)})])])])]}))}});exports.default=he;