ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 2.06 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"),N=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:q,getPrefixCls:k}=L.default(),l=n.computed(()=>k("suggestion",e.prefixCls));`${l.value}`;const a=n.computed(()=>q.value==="rtl"),i=P.default("suggestion"),c=n.ref(),[w,r,d]=R.default(l),{width:f}=o.useElementSize(c),x=n.computed(()=>{if(e.block&&f.value)return{width:`${f.value}px`}}),[m,b]=N.default(e.open),[V,O]=N.default(),s=t=>{var S;b(t),(S=e.onOpenChange)==null||S.call(e,t)},g=t=>{t===!1?s(!1):(O(t),s(!0))},v=()=>{s(!1)},C=n.computed(()=>typeof e.items=="function"?e.items(V.value):e.items),h=t=>{e.onSelect&&e.onSelect(t[t.length-1]),s(!1)},[D,y]=A.default(C,m,a,h,v),F=n.computed(()=>{var t;return u.default?u.default({onTrigger:g,onKeyDown:y}):(t=e.children)==null?void 0:t.call(e,{onTrigger:g,onKeyDown:y})});return()=>w(n.createVNode($.Cascader,{options:C.value,open:m.value,value:D.value,placement:a.value?"topRight":"topLeft",onDropdownVisibleChange:t=>{t||v()},popupClassName:o.classnames(e.rootClassName,l.value,r.value,d,{[`${l.value}-block`]:e.block}),onChange:h,dropdownStyle:x.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;