ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 2.98 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),d=require("../chunks/helper-chunk.js"),o=require("../chunks/module-chunk.js"),P=require("../_util/pick-attrs.js"),S=require("./ConversationsItem.js"),v=require("./GroupTitle.js"),V=require("../_util/hooks/useMergedState.js");require("../x-provider/index.js");const j=require("./hooks/useGroupable.js"),G=require("../_util/hooks/use-x-component-config.js"),M=require("./style/index.js"),R=require("./context.js"),T=require("../x-provider/hooks/use-x-provider-context.js"),$=t.defineComponent({name:"AXConversations",__name:"Conversations",props:t.mergeDefaults({items:{type:Array,required:!1},activeKey:{type:String,required:!1},defaultActiveKey:{type:String,required:!1},onActiveChange:{type:Function,required:!1},menu:{type:Function,skipCheck:!0,required:!1},groupable:{required:!1},styles:{type:Object,required:!1},classNames:{type:Object,required:!1},prefixCls:{type:String,required:!1},rootClassName:{type:String,required:!1}},{styles:()=>({}),classNames:()=>({})}),setup(e,{expose:m}){m();const y=d.createPropsRestProxy(e,["prefixCls","rootClassName","items","activeKey","defaultActiveKey","onActiveChange","menu","styles","classNames","groupable","class","style"]);t.toRef(e,"class"),t.toRef(e,"activeKey"),t.toRef(e,"prefixCls");const i=t.ref(e.activeKey),f=t.computed(()=>P.default(y,{attr:!0,aria:!0,data:!0})),[C,q]=V.default(e.defaultActiveKey,{value:i});t.watch(()=>e.activeKey,()=>{i.value=e.activeKey});const u=j.default(()=>e.groupable,()=>e.items),{getPrefixCls:k,direction:n}=T.default(),l=t.computed(()=>k("conversations",e.prefixCls)),r=G.default("conversations"),[g,x,h]=M.default(l),N=t.computed(()=>o.classnames(l.value,r.value.className,e.class,e.rootClassName,x.value,h,{[`${l.value}-rtl`]:n.value==="rtl"})),b=s=>{q(s.key),e.onActiveChange&&e.onActiveChange(s.key)};return()=>g(t.createVNode("ul",t.mergeProps(f.value,{style:{...typeof r.value.style=="object"?r.value.style:{},...typeof e.style=="object"?e.style:{}},class:N.value}),[u.value.groupList.map((s,A)=>{const c=s.data.map((a,K)=>t.createVNode(S.default,{key:a.key||`key-${K}`,info:a,prefixCls:l.value,direction:n.value,class:o.classnames(e.classNames.item,r.value.classNames.item),style:{...r.value.styles.item,...e.styles.item},menu:typeof e.menu=="function"?e.menu(a):e.menu,active:C.value===a.key,onClick:b},null));return u.value.enableGroup?t.createVNode("li",{key:s.name||`key-${A}`},[t.createVNode(R.GroupTitleContextProvider,{value:{prefixCls:l.value}},{default:()=>{var a;return[((a=s.title)==null?void 0:a.call(s,s.name,{components:{GroupTitle:v.default}}))||t.createVNode(v.default,{key:s.name},{default:()=>[s.name]})]}}),t.createVNode("ul",{class:`${l.value}-list`},[c])]):c})]))}}),w=d._export_sfc($,[["__file","/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/conversations/Conversations.vue"]]);exports.default=w;