ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
50 lines (49 loc) • 1.4 kB
JavaScript
import { defineComponent as c, useSlots as g, computed as p, createVNode as o } from "vue";
import { b as r, R as m } from "../chunks/module-chunk.mjs";
import { Typography as d } from "ant-design-vue";
import { useGroupTitleContextInject as f } from "./context.mjs";
const T = /* @__PURE__ */ c({
name: "AXConversationsGroupTitle",
__name: "GroupTitle",
props: {
collapsible: {
type: Boolean
},
expanded: {
type: Boolean
},
onToggle: {
type: Function
},
className: null,
style: null
},
setup(u) {
const l = u, t = g(), i = f(), a = p(() => {
var e;
return (e = t.default) == null ? void 0 : e.call(t);
}), s = p(() => !!l.collapsible);
return () => {
const e = i.value.prefixCls;
return o("div", {
class: r(`${e}-group-title`, l.className, {
[`${e}-group-title-collapsible`]: s.value
}),
style: l.style,
onClick: () => {
var n;
s.value && ((n = l.onToggle) == null || n.call(l));
}
}, [a.value && o("div", {
class: `${e}-group-label`
}, [o(d.Text, null, {
default: () => [a.value]
})]), s.value && o("div", {
class: r(`${e}-group-collapse-trigger`, `${e}-group-collapse-trigger-${l.expanded ? "open" : "close"}`)
}, [o(m, null, null)])]);
};
}
});
export {
T as default
};