ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
151 lines (150 loc) • 4.95 kB
JavaScript
import { defineComponent as T, mergeDefaults as B, toRef as C, ref as R, useSlots as V, computed as c, getCurrentInstance as A, createVNode as i, mergeProps as F, Transition as X, isVNode as O } from "vue";
import { c as D } from "../chunks/helper-chunk.mjs";
import { b as o } from "../chunks/module-chunk.mjs";
import E from "./style/index.mjs";
import "../x-provider/index.mjs";
import q from "../_util/hooks/use-x-component-config.mjs";
import { Typography as z } from "ant-design-vue";
import G from "../x-provider/hooks/use-x-provider-context.mjs";
function H(e) {
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !O(e);
}
const p = /* @__PURE__ */ T({
name: "AXPrompts",
__name: "Prompts",
props: B({
items: null,
title: null,
onItemClick: {
type: Function
},
vertical: {
type: Boolean
},
wrap: {
type: Boolean
},
fadeIn: {
type: Boolean
},
fadeInLeft: {
type: Boolean
},
styles: null,
classNames: null,
prefixCls: null,
rootClassName: null
}, {
styles: () => ({}),
classNames: () => ({})
}),
setup(e, {
expose: $
}) {
const N = D(e, ["prefixCls", "title", "class", "items", "onItemClick", "vertical", "wrap", "rootClassName", "styles", "classNames", "style", "fadeIn", "fadeInLeft"]);
C(e, "class"), C(e, "prefixCls");
const u = R(null), v = V(), {
getPrefixCls: y,
direction: I
} = G(), t = y("prompts", e.prefixCls), b = y(), l = q("prompts"), [x, g, h] = E(t), k = c(() => e.fadeInLeft || e.fadeIn ? `${b}-x-fade${e.fadeInLeft ? "-left" : ""}` : ""), P = c(() => {
var n;
return o(t, l.value.className, e.class, e.rootClassName, (n = l.value.classNames) == null ? void 0 : n.root, e.classNames.root, g.value, h, {
[`${t}-rtl`]: I.value === "rtl"
});
}), L = c(() => {
var n;
return {
...typeof e.style == "object" ? e.style : {},
...typeof l.value.style == "object" ? l.value.style : {},
...((n = l.value.styles) == null ? void 0 : n.root) || {},
...e.styles.root || {}
};
}), S = c(() => o(`${t}-list`, l.value.classNames.list, e.classNames.list, {
[`${t}-list-wrap`]: e.wrap
}, {
[`${t}-list-vertical`]: e.vertical
})), d = c(() => v.title ? v.title() : typeof e.title == "function" ? e.title() : e.title);
return $({
nativeElement: u
}), () => {
var f;
const n = A().type, m = i("div", F(N, {
ref: u,
class: P.value,
style: L.value
}), [d.value && i(z.Title, {
level: 5,
class: o(`${t}-title`, l.value.classNames.title, e.classNames.title),
style: {
...l.value.styles.title,
...e.styles.title
}
}, {
default: () => [d.value]
}), i("div", {
class: S.value,
style: {
...l.value.styles.list,
...e.styles.list
}
}, [(f = e.items) == null ? void 0 : f.map((a, w) => {
const r = a.children && a.children.length > 0;
return i("div", {
key: a.key || `key_${w}`,
style: {
...l.value.styles.item,
...e.styles.item
},
class: o(`${t}-item`, l.value.classNames.item, e.classNames.item, {
[`${t}-item-disabled`]: a.disabled,
[`${t}-item-has-nest`]: r
}),
onClick: () => {
!r && e.onItemClick && e.onItemClick({
data: a
});
}
}, [a.icon && i("div", {
class: `${t}-icon`
}, [a.icon]), i("div", {
class: o(`${t}-content`, l.value.classNames.itemContent, e.classNames.itemContent),
style: {
...l.value.styles.itemContent,
...e.styles.itemContent
}
}, [a.label && i("h6", {
class: `${t}-label`
}, [a.label]), a.description && i("p", {
class: `${t}-desc`
}, [a.description]), r && i(n, {
class: `${t}-nested`,
items: a.children,
vertical: !0,
onItemClick: e.onItemClick,
classNames: {
list: e.classNames.subList,
item: e.classNames.subItem
},
styles: {
list: e.styles.subList,
item: e.styles.subItem
}
}, null)])]);
})])]), s = k.value, j = s ? i(X, {
appear: !0,
enterFromClass: `${s}-enter ${s}-appear`,
enterActiveClass: `${s}-enter ${s}-enter-active ${s}-appear ${s}-appear-active`,
enterToClass: `${s}-enter ${s}-enter-active`,
leaveFromClass: `${s}-leave`,
leaveActiveClass: `${s}-leave ${s}-leave-active`,
leaveToClass: `${s}-leave ${s}-leave-active`
}, H(m) ? m : {
default: () => [m]
}) : m;
return x(j);
};
}
});
export {
p as default
};