ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
154 lines (153 loc) • 4.54 kB
JavaScript
import { defineComponent as F, ref as H, computed as a, createVNode as c, mergeProps as P } from "vue";
import { b as o } from "../chunks/module-chunk.mjs";
import S from "../_util/pick-attrs.mjs";
import "../x-provider/index.mjs";
import k from "../_util/hooks/use-x-component-config.mjs";
import z from "./hooks/useCollapsible.mjs";
import T from "./style/index.mjs";
import { ThoughtChainNodeContextProvider as V } from "./context.mjs";
import X from "./item.mjs";
import j from "../x-provider/hooks/use-x-provider-context.mjs";
const O = /* @__PURE__ */ F({
name: "AXThoughtChain",
__name: "ThoughtChain",
props: {
items: null,
collapsible: {
type: Boolean
},
defaultExpandedKeys: null,
expandedKeys: null,
onExpand: {
type: Function
},
line: {
type: [Boolean, String],
default: !0
},
size: {
default: "middle"
},
styles: {
default: () => ({})
},
classNames: {
default: () => ({})
},
prefixCls: null,
rootClassName: null
},
setup(y, {
expose: v
}) {
const e = y, d = H(null), C = a(() => {
const s = S(e, {
attr: !0,
aria: !0,
data: !0
}), {
class: m,
style: u,
size: n,
title: i,
...r
} = s;
return r;
}), {
getPrefixCls: p,
direction: f
} = j(), h = a(() => p()), l = a(() => p("thought-chain", e.prefixCls)), t = k("thoughtChain"), [x, N, g] = z(() => ({
collapsible: e.collapsible,
defaultExpandedKeys: e.defaultExpandedKeys,
expandedKeys: e.expandedKeys,
onExpand: e.onExpand
}), l.value, h.value), [_, b, E] = T(l), I = a(() => {
const {
line: s
} = e;
if (s === !1) return `${l.value}-line-false`;
if (s === "dashed") return `${l.value}-line-dashed`;
if (s === "dotted") return `${l.value}-line-dotted`;
}), K = a(() => {
var s;
return o(e.class, e.className, e.rootClassName, l.value, t.value.className, (s = t.value.classNames) == null ? void 0 : s.root, e.classNames.root, b.value, E, I.value, {
[`${l.value}-rtl`]: f.value === "rtl"
}, `${l.value}-${e.size}`);
}), $ = a(() => {
var s;
return {
...typeof t.value.style == "object" ? t.value.style : {},
...((s = t.value.styles) == null ? void 0 : s.root) || {},
...typeof e.style == "object" ? e.style : {},
...e.styles.root || {}
};
});
return v({
nativeElement: d
}), () => {
var s, m;
return _(c("div", P(C.value, {
ref: d,
class: K.value,
style: $.value
}), [c(V, {
value: {
prefixCls: l.value,
enableCollapse: x.value,
expandedKeys: N.value,
direction: f.value,
line: e.line,
classNames: {
itemHeader: o(t.value.classNames.itemHeader, e.classNames.itemHeader),
itemIcon: o((s = t.value.classNames) == null ? void 0 : s.itemIcon, e.classNames.itemIcon),
itemContent: o(t.value.classNames.itemContent, e.classNames.itemContent),
itemFooter: o(t.value.classNames.itemFooter, e.classNames.itemFooter)
},
styles: {
itemHeader: {
...t.value.styles.itemHeader,
...e.styles.itemHeader
},
itemIcon: {
...((m = t.value.styles) == null ? void 0 : m.itemIcon) || {},
...e.styles.itemIcon || {}
},
itemContent: {
...t.value.styles.itemContent,
...e.styles.itemContent
},
itemFooter: {
...t.value.styles.itemFooter,
...e.styles.itemFooter
}
}
}
}, {
default: () => {
var u;
return [(u = e.items) == null ? void 0 : u.map((n, i) => {
var r;
return c(X, {
key: n.key || `key_${i}`,
class: o(t.value.classNames.item, e.classNames.item),
style: {
...t.value.styles.item,
...e.styles.item
},
line: e.line,
info: {
...n,
icon: n.icon || i + 1
},
onClick: g,
nextStatus: ((r = e.items[i + 1]) == null ? void 0 : r.status) || n.status
}, null);
})];
}
})]));
};
}
});
export {
O as default
};