@artmate/chat
Version:
借鉴字节开源react库AntX,通过vue实现的版本
2 lines (1 loc) • 3.08 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),u=require("element-plus"),B=require("@element-plus/icons-vue"),g=require("../dropdown/index.vue.js"),N=require("../hooks/useNamespace.js"),h=e.defineComponent({__name:"item",props:{direction:{},className:{},active:{type:Boolean},info:{},menu:{},inEllipsis:{type:Boolean,default:!0},line:{default:1}},emits:["click"],setup(f,{emit:m}){const l=f,p=m,r=e.ref(!1),a=N.useNamespace("conversations"),b=e.computed(()=>{var n,o;return[l.className,a.b("item"),{[a.b("item-active")]:l.active&&!((n=l.info)!=null&&n.disabled)},{[a.b("item-disabled")]:(o=l.info)==null?void 0:o.disabled}]}),v=n=>{n.stopPropagation()},s=e.ref(),k=()=>{var n,o,t,i,c;if((n=l.info)!=null&&n.disabled){r.value=!1;return}s.value&&(r.value=((o=s.value)==null?void 0:o.scrollWidth)>((t=s.value)==null?void 0:t.offsetWidth)||((i=s.value)==null?void 0:i.scrollHeight)>((c=s.value)==null?void 0:c.offsetHeight))},C=()=>{var n;(n=l.info)!=null&&n.disabled||p("click",l.info)},y=n=>{var o,t;Array.isArray(l.menu)||l.info&&((t=(o=l.menu)==null?void 0:o.onClick)==null||t.call(o,{...l.info,key:n}))};return(n,o)=>{var t;return e.openBlock(),e.createBlock(e.unref(u.ElTooltip),{visible:r.value,"onUpdate:visible":o[0]||(o[0]=i=>r.value=i),content:(t=n.info)==null?void 0:t.label,disabled:n.inEllipsis&&!r.value,placement:n.direction==="rtl"?"left":"right"},{default:e.withCtx(()=>{var i,c;return[e.createElementVNode("li",{class:e.normalizeClass(b.value),onClick:C},[e.renderSlot(n.$slots,"default",{class:"icon"},()=>[n.info.icon?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).b("icon"))},[typeof n.info.icon=="string"?(e.openBlock(),e.createBlock(e.unref(u.ElIcon),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.info.icon)))]),_:1})):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.info.icon),{key:1}))],2)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{ref_key:"textRef",ref:s,class:e.normalizeClass(e.unref(a).b("label")),style:e.normalizeStyle({textOverflow:"ellipsis","-webkit-line-clamp":n.line}),onMouseenter:k},[e.renderSlot(n.$slots,"label",{item:n.info},()=>[e.createTextVNode(e.toDisplayString(n.info.label),1)])],38),n.menu&&!((i=n.info)!=null&&i.disabled)?(e.openBlock(),e.createBlock(g.default,{key:0,disabled:(c=n.info)==null?void 0:c.disabled,menu:Array.isArray(n.menu)?n.menu:n.menu.items,placement:n.direction==="rtl"?"bottom-start":"bottom-end",trigger:"click",onCommand:y},{default:e.withCtx(()=>{var d;return[e.createVNode(e.unref(u.ElButton),{disabled:(d=n.info)==null?void 0:d.disabled,link:"",onClick:v},{default:e.withCtx(()=>[e.createVNode(e.unref(u.ElIcon),{class:e.normalizeClass(e.unref(a).b("menu-icon"))},{default:e.withCtx(()=>[e.createVNode(e.unref(B.MoreFilled))]),_:1},8,["class"])]),_:1},8,["disabled"])]}),_:1},8,["disabled","menu","placement"])):e.createCommentVNode("",!0)],2)]}),_:3},8,["visible","content","disabled","placement"])}}});exports.default=h;