UNPKG

ant-design-x-vue

Version:

Craft AI-driven interfaces effortlessly

2 lines (1 loc) 3.5 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),k=require("../attachments/Attachments2.js"),B=require("ant-design-vue"),E=require("../_util/hooks/use-x-component-config.js");require("../x-provider/index.js");const A=require("./hooks/useTypedEffect.js"),F=require("./hooks/useTypingConfig.js"),I=require("./loading.js"),X=require("./style/index.js"),j=require("./context.js"),D=require("../x-provider/hooks/use-x-provider-context.js"),M=t.defineComponent({name:"AXBubble",__name:"Bubble",props:t.mergeDefaults({prefixCls:null,rootClassName:null,styles:null,classNames:null,avatar:null,placement:null,loading:{type:Boolean},typing:null,content:null,messageRender:{type:Function},loadingRender:{type:Function},variant:null,shape:null,onTypingComplete:null,header:null,footer:null},{classNames:()=>({}),styles:()=>({}),placement:"start",loading:!1,content:"",variant:"filled"}),setup(e,{expose:g}){const y=k.createPropsRestProxy(e,["prefixCls","rootClassName","classNames","styles","avatar","placement","loading","loadingRender","typing","content","messageRender","variant","shape","onTypingComplete","header","footer"]);t.toRef(e,"content"),t.toRef(e,"prefixCls");const n=t.useSlots(),f=t.ref(e.content);t.watch(()=>e.content,()=>{f.value=e.content});const{onUpdate:u}=t.unref(j.useBubbleContextInject()),v=t.ref(null),{direction:b,getPrefixCls:h}=D.default(),a=h("bubble",e.prefixCls),l=E.default("bubble"),[C,N,V,m]=F.default(()=>e.typing),[s,r]=A.default(f,C,N,V),c=t.ref(!1);t.watch(s,()=>{u==null||u()}),t.watchEffect(()=>{var o;!r.value&&!e.loading?c.value||(c.value=!0,(o=e.onTypingComplete)==null||o.call(e)):c.value=!1});const[x,R,$]=X.default(()=>a),q=t.computed(()=>[a,e.rootClassName,l.value.className,R.value,$,`${a}-${e.placement}`,{[`${a}-rtl`]:b.value==="rtl"},{[`${a}-typing`]:r.value&&!e.loading&&!e.messageRender&&!n.message&&!m.value}]),P=t.computed(()=>n.avatar?n.avatar():t.isVNode(e.avatar)?e.avatar:t.createVNode(B.Avatar,e.avatar,null)),T=t.computed(()=>n.message?n.message({content:s.value}):e.messageRender?e.messageRender(s.value):s.value),S=t.computed(()=>e.loading?n.loading?n.loading():e.loadingRender?e.loadingRender():t.createVNode(I.default,{prefixCls:a},null):t.createVNode(t.Fragment,null,[T.value,r.value&&t.toValue(m)])),w=t.computed(()=>{const o=t.createVNode("div",{style:{...l.value.styles.content,...e.styles.content},class:[`${a}-content`,`${a}-content-${e.variant}`,{[`${a}-content-${e.shape}`]:e.shape},l.value.classNames.content,e.classNames.content]},[t.toValue(S)]),i=n.header?n.header({content:s.value}):typeof e.header=="function"?e.header(s.value):e.header,d=n.footer?n.footer({content:s.value}):typeof e.footer=="function"?e.footer(s.value):e.footer;return i||d?t.createVNode("div",{class:`${a}-content-wrapper`},[i&&t.createVNode("div",{class:[`${a}-header`,l.value.classNames.header,e.classNames.header],style:{...l.value.styles.header,...e.styles.header}},[i]),o,d&&t.createVNode("div",{class:[`${a}-footer`,l.value.classNames.footer,e.classNames.footer],style:{...l.value.styles.footer,...e.styles.footer}},[d])]):o});return g({nativeElement:v}),()=>x(t.createVNode("div",t.mergeProps({style:{...l.value.style},class:t.toValue(q)},y,{ref:v}),[(n.avatar||e.avatar)&&t.createVNode("div",{style:{...l.value.styles.avatar,...e.styles.avatar},class:[`${a}-avatar`,l.value.classNames.avatar,e.classNames.avatar]},[t.toValue(P)]),t.toValue(w)]))}});exports.default=M;