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