ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
106 lines (105 loc) • 3.29 kB
JavaScript
import { defineComponent as $, mergeDefaults as S, toRef as m, ref as G, computed as n, watch as V, createVNode as s, mergeProps as X } from "vue";
import { a as j, c as v } from "../attachments/Attachments2.mjs";
import w from "../_util/pick-attrs.mjs";
import F from "./ConversationsItem.mjs";
import y from "./GroupTitle.mjs";
import M from "../_util/hooks/useMergedState.mjs";
import R from "../x-provider/hooks/use-x-provider-context.mjs";
import "../x-provider/context.mjs";
import "ant-design-vue";
import T from "./hooks/useGroupable.mjs";
import D from "../_util/hooks/use-x-component-config.mjs";
import L from "./style/index.mjs";
import { GroupTitleContextProvider as q } from "./context.mjs";
const _ = /* @__PURE__ */ $({
name: "AXConversations",
__name: "Conversations",
props: S({
items: null,
activeKey: null,
defaultActiveKey: null,
onActiveChange: {
type: Function
},
menu: {
type: Function
},
groupable: null,
styles: null,
classNames: null,
prefixCls: null,
rootClassName: null
}, {
styles: () => ({}),
classNames: () => ({})
}),
setup(e) {
const C = j(e, ["prefixCls", "rootClassName", "items", "activeKey", "defaultActiveKey", "onActiveChange", "menu", "styles", "classNames", "groupable", "class", "style"]);
m(e, "class"), m(e, "activeKey"), m(e, "prefixCls");
const c = G(e.activeKey), f = n(() => w(C, {
attr: !0,
aria: !0,
data: !0
})), [d, x] = M(e.defaultActiveKey, {
value: c
});
V(() => e.activeKey, () => {
c.value = e.activeKey;
});
const u = T(() => e.groupable, () => e.items), {
getPrefixCls: k,
direction: r
} = R(), l = n(() => k("conversations", e.prefixCls)), i = D("conversations"), [K, A, N] = L(l), g = n(() => v(l.value, i.value.className, e.class, e.rootClassName, A.value, N, {
[`${l.value}-rtl`]: r.value === "rtl"
})), P = (t) => {
x(t.key), e.onActiveChange && e.onActiveChange(t.key);
};
return () => K(s("ul", X(f.value, {
style: {
...typeof i.value.style == "object" ? i.value.style : {},
...typeof e.style == "object" ? e.style : {}
},
class: g.value
}), [u.value.groupList.map((t, b) => {
const o = t.data.map((a, h) => s(F, {
key: a.key || `key-${h}`,
info: a,
prefixCls: l.value,
direction: r.value,
class: v(e.classNames.item, i.value.classNames.item),
style: {
...i.value.styles.item,
...e.styles.item
},
menu: typeof e.menu == "function" ? e.menu(a) : e.menu,
active: d.value === a.key,
onClick: P
}, null));
return u.value.enableGroup ? s("li", {
key: t.name || `key-${b}`
}, [s(q, {
value: {
prefixCls: l.value
}
}, {
default: () => {
var a;
return [((a = t.title) == null ? void 0 : a.call(t, t.name, {
components: {
GroupTitle: y
}
})) || s(y, {
key: t.name
}, {
default: () => [t.name]
})];
}
}), s("ul", {
class: `${l.value}-list`
}, [o])]) : o;
})]));
}
});
export {
_ as default
};