UNPKG

jadq-x-vue

Version:

Craft AI-driven interfaces effortlessly

2 lines (1 loc) 3.41 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),H=require("../chunks/helper-chunk.js"),M=require("../chunks/module-chunk.js"),U=require("../_util/hooks/use-event-callback.js"),y=require("../_util/pick-attrs.js");require("../x-provider/index.js");const z=require("./Bubble.js"),O=require("./hooks/useDisplayData.js"),X=require("./hooks/useListData.js"),$=require("./style/index.js"),v=require("../_util/hooks/use-state.js"),K=require("./context.js"),F=require("../x-provider/hooks/use-x-provider-context.js"),G=1,J=e.defineComponent({name:"AXBubbleList",inheritAttrs:!1,__name:"BubbleList",props:e.mergeDefaults({prefixCls:null,rootClassName:null,items:null,autoScroll:{type:Boolean},roles:null},{autoScroll:!0}),setup(s,{expose:E}){const I=H.createPropsRestProxy(s,["prefixCls","rootClassName","items","autoScroll","roles"]);e.toRef(s,"roles"),e.toRef(s,"items"),e.toRef(s,"prefixCls");const V=e.useAttrs(),r=e.useSlots(),w=e.computed(()=>y.default(e.mergeProps(I,V),{attr:!0,aria:!0})),C=e.ref(s.items),x=e.ref(s.roles);e.watch(()=>s.items,()=>{C.value=s.items}),e.watch(()=>s.roles,()=>{x.value=s.roles});const l=e.ref(null),d=e.ref({}),{getPrefixCls:N}=F.default(),q=N("bubble",s.prefixCls),S=`${q}-list`,[T,p,D]=$.default(q),[b,P]=v.default(!1);e.watchPostEffect(t=>{P(!0),t(()=>{P(!1)})});const A=X.default(C,x),[c,B]=O.default(A),[m,g]=v.default(!0),[h,R]=v.default(0),L=t=>{const n=t.target;g(n.scrollHeight-Math.abs(n.scrollTop)-n.clientHeight<=G)};e.watch([h,l,m],()=>{s.autoScroll&&e.unref(l)&&e.unref(m)&&(console.log("jadq----"),console.log("jadq----",s.autoScroll,e.unref(l),e.unref(m)),console.log("jadq----"),e.nextTick(()=>{e.unref(l).scrollTo({top:e.unref(l).scrollHeight})}))}),e.watch(()=>e.unref(c).length,()=>{var t;if(s.autoScroll){const n=(t=e.unref(c)[e.unref(c).length-2])==null?void 0:t.key,o=e.unref(d)[n];if(o){const{nativeElement:u}=o,{top:i=0,bottom:f=0}=(u==null?void 0:u.getBoundingClientRect())??{},{top:a,bottom:_}=e.unref(l).getBoundingClientRect();i<_&&f>a&&(R(e.unref(h)+1),g(!0))}}});const j=U.useEventCallback(()=>{s.autoScroll&&R(e.unref(h)+1)}),k=e.computed(()=>({onUpdate:j}));return E({nativeElement:l,scrollTo:({key:t,offset:n,behavior:o="smooth",block:u})=>{if(typeof n=="number")e.unref(l).scrollTo({top:n,behavior:o});else if(t!==void 0){const i=e.unref(d)[t];if(i){const f=e.unref(c).findIndex(a=>a.key===t);g(f===e.unref(c).length-1),i.nativeElement.scrollIntoView({behavior:o,block:u})}}}}),()=>T(e.createVNode(K.BubbleContextProvider,{value:k.value},{default:()=>[e.createVNode("div",e.mergeProps(w.value,{class:M.classnames(S,s.rootClassName,p.value,D,{[`${S}-reach-end`]:m.value}),ref:l,onScroll:L}),[e.renderList(e.unref(c),({key:t,onTypingComplete:n,...o})=>{var u,i,f;return e.createVNode(z.default,e.mergeProps(o,{avatar:r.avatar?()=>{var a;return(a=r.avatar)==null?void 0:a.call(r,{item:{key:t,...o}})}:o.avatar,header:((u=r.header)==null?void 0:u.call(r,{item:{key:t,...o}}))??o.header,footer:((i=r.footer)==null?void 0:i.call(r,{item:{key:t,...o}}))??o.footer,loadingRender:r.loading?()=>r.loading({item:{key:t,...o}}):o.loadingRender,content:((f=r.message)==null?void 0:f.call(r,{item:{key:t,...o}}))??o.content,key:t,ref:a=>{a?d.value[t]=a:delete d.value[t]},typing:b.value?o.typing:!1,onTypingComplete:()=>{n==null||n(),B(t)}}),null)})])]}))}});exports.default=J;