ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 2.1 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),o=require("../chunks/module-chunk.js");require("../x-provider/index.js");const P=require("../_util/hooks/use-x-component-config.js"),R=require("./style/index.js"),q=require("../_util/hooks/use-state.js"),$=require("ant-design-vue"),A=require("./useActive.js"),L=require("../x-provider/hooks/use-x-provider-context.js"),T=n.defineComponent({name:"AXSuggestion",__name:"Suggestion",props:n.mergeDefaults({prefixCls:null,className:null,rootClassName:null,style:null,children:{type:Function},open:{type:Boolean},onOpenChange:{type:Function},items:{type:Function},onSelect:{type:Function},block:{type:Boolean},styles:null,classNames:null},{open:!1}),setup(e){n.toRef(e,"prefixCls");const u=n.useSlots(),{direction:w,getPrefixCls:k}=L.default(),l=n.computed(()=>k("suggestion",e.prefixCls));`${l.value}`;const a=n.computed(()=>w.value==="rtl"),i=P.default("suggestion"),c=n.ref(),[x,r,d]=R.default(l),{width:f}=o.useElementSize(c),b=n.computed(()=>{if(e.block&&f.value)return{width:`${f.value}px`}}),[m,g]=q.default(e.open);n.watch(()=>e.open,t=>{g(t)});const[V,O]=q.default(),s=t=>{var N;g(t),(N=e.onOpenChange)==null||N.call(e,t)},v=t=>{t===!1?s(!1):(O(t),s(!0))},C=()=>{s(!1)},h=n.computed(()=>typeof e.items=="function"?e.items(V.value):e.items),y=t=>{e.onSelect&&e.onSelect(t[t.length-1]),s(!1)},[D,S]=A.default(h,m,a,y,C),F=n.computed(()=>{var t;return u.default?u.default({onTrigger:v,onKeyDown:S}):(t=e.children)==null?void 0:t.call(e,{onTrigger:v,onKeyDown:S})});return()=>x(n.createVNode($.Cascader,{options:h.value,open:m.value,value:D.value,placement:a.value?"topRight":"topLeft",onDropdownVisibleChange:t=>{t||C()},popupClassName:o.classnames(e.rootClassName,l.value,r.value,d,{[`${l.value}-block`]:e.block}),onChange:y,dropdownStyle:b.value},{default:()=>n.createVNode("div",{ref:c,class:o.classnames(l.value,i.value.className,e.rootClassName,e.className,`${l.value}-wrapper`,r.value,d),style:{...i.value.style,...e.style}},[F.value])}))}});exports.default=T;