@tencentcloud/ai-desk-customer-wechat
Version:
AI Desk customer UIKit for wechat mini program
3 lines (2 loc) • 2.81 kB
JavaScript
;const a=require("../../../../../../../common/vendor.js"),z=require("../../../../../../adapter-vue.js"),D=require("./marked.js"),F=require("./type-writer.js"),q=require("../../../../../../utils/index.js"),b=require("../../../../../../utils/env.js"),m=require("../../../../../../@aidesk/uikit-engine/index.js"),H=require("../../../../../../utils/utils.js"),K=a.defineComponent({__name:"message-stream",props:{payload:{default:()=>({})},messageID:{default:""}},emits:["heightChanged"],setup(w,{emit:O}){const{ref:n,withDefaults:P,defineProps:B,watch:T,onMounted:x,onUnmounted:A}=z.vue,p=w,v=n(!0),f=n(!1),c=n(!1),h=n(""),i=n(""),g=n(!0),u=n(0),l=n(""),d=n(""),j=n(),R=O,_=typeof ResizeObserver>"u"?!1:!b.isTikTok,I=n("");let r,k=0,C=0;const y=new F.TypeWriter({onTyping:e=>{l.value+=e,d.value=D.parseMarkdown(l.value)},onComplete(){f.value=!1}});function E(e){f.value?y.add(e):(f.value=!0,y.add(e),y.start())}T(()=>p.payload,(e,s)=>{var o;if(e===s)return;const t=q.JSONToObject(p.payload);if(t.chunks){if(i.value=Array.isArray(t.chunks)?t.chunks.join(""):t.chunks,g.value=t.isFinished===1,i.value.length>0&&(v.value=!1),b.isWeChat||e&&!s&&g.value)l.value=i.value,u.value=i.value.length,d.value=D.parseMarkdown(l.value);else if(i.value.length>u.value){const W=(o=i.value)==null?void 0:o.slice(u.value);u.value=i.value.length,E([W])}}},{deep:!0,immediate:!0});const M=e=>{if(e!==I.value||g.value)return;const s=m.Kt.getMessageModel(e);if(s&&s.payload.data){const t=q.JSONToObject(s.payload.data),o=Array.isArray(t.chunks)?t.chunks.join(""):t.chunks;o.length>u.value&&(l.value=o,u.value=o.length,d.value=D.parseMarkdown(l.value)),o.length>0&&(v.value=!1),g.value=t.isFinished}};x(()=>{I.value=p.messageID,m.Kt.watch(m.a.CUSTOM,{hackedMessageID:M}),_?(r=new ResizeObserver(e=>{for(let s of e)S(s.contentRect.height)}),r.observe(j.value)):H.isVue3App&&(r=setInterval(()=>{a.index.createSelectorQuery().in(this).selectAll(".message-stream").boundingClientRect(s=>{if(s.length>=1){const t=s[s.length-1];S(t.height)}}).exec()},100))}),A(()=>{m.Kt.unwatch(m.a.CUSTOM,{hackedMessageID:M}),_?r&&(r.disconnect(),r=null):U()});const S=e=>{k!==e?(k=e,R("heightChanged")):_||(C+=1,C>=80&&U())},U=()=>{clearInterval(r),k=0,C=0},N=()=>{c.value=!c.value,h.value=""},L=e=>{if(b.isH5){const s=e.target;if(s&&s.tagName){const t=s.tagName.toLowerCase();(t==="img"||t==="image")&&(c.value=!0,h.value=s.src)}}};return(e,s)=>a.e$1({a:a.unref(v)},a.unref(v)?{}:{},{b:a.unref(d),c:a.o(L),d:a.unref(c)},a.unref(c)?{e:a.unref(h),f:a.o(N)}:{})}}),J=a._export_sfc(K,[["__scopeId","data-v-c3be0523"]]);wx.createComponent(J);
//# sourceMappingURL=../../../../../../../../.sourcemap/mp-weixin/ai-desk-customer-uniapp/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-stream.js.map