UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

2 lines (1 loc) 1.88 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),A=require("ant-design-vue"),u=require("../chunks/module-chunk.js");require("../x-provider/index.js");const I=require("./context.js"),C=require("./getItemChildren.js"),M=require("../x-provider/hooks/use-x-provider-context.js"),b=t.defineComponent({name:"AXActionMenu",__name:"ActionMenu",props:{item:null,prefixCls:null,dropdownProps:null},emits:["click"],setup(f,{emit:y}){const n=f,_=y,a=(o,s)=>{const i=o[0];for(const e of s)if(e.key===i){if(o.length===1)return e;const r=C.getItemChildren(e);if(r!=null&&r.length)return a(o.slice(1),r)}return null},{getPrefixCls:w}=M.default(),l=w("actions",n.prefixCls),c=I.useActionsContextInject(),N=t.computed(()=>{var o;return((o=n.item)==null?void 0:o.icon)??t.createVNode(u.EllipsisOutlined,null,null)}),m=t.computed(()=>C.getItemChildren(n.item)||[]),k=t.computed(()=>n.item.triggerSubMenuAction||"hover"),x=t.computed(()=>n.dropdownProps||{}),P=t.computed(()=>({items:m.value,onClick:({key:o,keyPath:s,domEvent:i})=>{const e=a(s,m.value);if(e!=null&&e.onItemClick){e.onItemClick(e);return}_("click",{key:o,keyPath:[...s,n.item.key],domEvent:i,item:e})}}));return()=>{var d,p,v,g;const{overlayClassName:o,overlayStyle:s,arrow:i,trigger:e,...r}=x.value,S=(d=c.value.classNames)==null?void 0:d.item,h=(p=c.value.styles)==null?void 0:p.item,q=(v=c.value.classNames)==null?void 0:v.itemDropdown,D=(g=c.value.styles)==null?void 0:g.itemDropdown;return t.createVNode(A.Dropdown,t.mergeProps(r,{menu:P.value,overlayClassName:u.classnames(`${l}-sub-item`,`${l}-dropdown`,q,o),overlayStyle:{...D,...s},arrow:i??!0,trigger:e??[k.value]}),{default:()=>[t.createVNode("div",{class:u.classnames(`${l}-list-item`,S),style:h},[t.createVNode("div",{class:`${l}-list-item-icon`},[N.value])])]})}}});exports.default=b;