ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
132 lines (131 loc) • 3.38 kB
JavaScript
import { defineComponent as $, mergeDefaults as D, toRef as L, useSlots as X, computed as s, ref as j, watch as z, createVNode as q } from "vue";
import { q as B, b as p } from "../chunks/module-chunk.mjs";
import "../x-provider/index.mjs";
import E from "../_util/hooks/use-x-component-config.mjs";
import I from "./style/index.mjs";
import x from "../_util/hooks/use-state.mjs";
import { Cascader as P } from "ant-design-vue";
import T from "./useActive.mjs";
import K from "../x-provider/hooks/use-x-provider-context.mjs";
import { _ as U } from "../chunks/helper-chunk.mjs";
const W = /* @__PURE__ */ $({
name: "AXSuggestion",
__name: "Suggestion",
props: D({
prefixCls: {
type: String,
required: !1
},
className: {
type: String,
required: !1
},
rootClassName: {
type: String,
required: !1
},
style: {
required: !1
},
children: {
type: Function,
required: !1
},
open: {
type: Boolean,
required: !1
},
onOpenChange: {
type: Function,
required: !1
},
items: {
type: [Array, Function],
required: !0
},
onSelect: {
type: Function,
required: !1
},
block: {
type: Boolean,
required: !1
},
styles: {
type: Object,
required: !1
},
classNames: {
type: Object,
required: !1
}
}, {
open: !1
}),
setup(e, {
expose: w
}) {
w(), L(e, "prefixCls");
const a = X(), {
direction: N,
getPrefixCls: b
} = K(), n = s(() => b("suggestion", e.prefixCls));
`${n.value}`;
const l = s(() => N.value === "rtl"), i = E("suggestion"), r = j(), [O, u, c] = I(n), {
width: f
} = B(r), k = s(() => {
if (e.block && f.value)
return {
width: `${f.value}px`
};
}), [d, m] = x(e.open);
z(() => e.open, (t) => {
m(t);
});
const [A, F] = x(), o = (t) => {
var S;
m(t), (S = e.onOpenChange) == null || S.call(e, t);
}, g = (t) => {
t === !1 ? o(!1) : (F(t), o(!0));
}, v = () => {
o(!1);
}, C = s(() => typeof e.items == "function" ? e.items(A.value) : e.items), y = (t) => {
e.onSelect && e.onSelect(t[t.length - 1]), o(!1);
}, [R, h] = T(C, d, l, y, v), V = s(() => {
var t;
return a.default ? a.default({
onTrigger: g,
onKeyDown: h
}) : (t = e.children) == null ? void 0 : t.call(e, {
onTrigger: g,
onKeyDown: h
});
});
return () => O(q(P, {
options: C.value,
open: d.value,
value: R.value,
placement: l.value ? "topRight" : "topLeft",
onDropdownVisibleChange: (t) => {
t || v();
},
popupClassName: p(e.rootClassName, n.value, u.value, c, {
[`${n.value}-block`]: e.block
}),
onChange: y,
dropdownStyle: k.value
}, {
default: () => q("div", {
ref: r,
class: p(n.value, i.value.className, e.rootClassName, e.className, `${n.value}-wrapper`, u.value, c),
style: {
...i.value.style,
...e.style
}
}, [V.value])
}));
}
}), ne = /* @__PURE__ */ U(W, [["__file", "/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/suggestion/Suggestion.vue"]]);
export {
ne as default
};