UNPKG

ant-design-x-vue

Version:
132 lines (131 loc) 3.38 kB
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 };