ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
2 lines (1 loc) • 3.98 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("vue"),B=require("ant-design-vue"),u=require("../chunks/module-chunk.js"),F=require("../_util/pick-attrs.js"),L=require("../_util/hooks/use-x-component-config.js");require("../x-provider/index.js");const O=require("./ActionMenu.js"),X=require("./context.js"),z=require("./getItemChildren.js"),E=require("./style/index.js"),G=require("../x-provider/hooks/use-x-provider-context.js");function C(c){return typeof c=="function"||Object.prototype.toString.call(c)==="[object Object]"&&!s.isVNode(c)}const H=s.defineComponent({name:"AXActions",__name:"Actions",props:{items:{default:()=>[]},rootClassName:{default:""},classNames:{default:()=>({})},styles:{default:()=>({})},block:{type:Boolean,default:!1},onClick:{type:Function},style:null,variant:{default:"borderless"},prefixCls:null,fadeIn:{type:Boolean,default:!1},fadeInLeft:{type:Boolean,default:!1},dropdownProps:null},emits:["click"],setup(c,{expose:y,emit:_}){const o=c,d=s.ref(null),m=_,{getPrefixCls:p,direction:N}=G.default(),l=p("actions",o.prefixCls),$=p(),n=L.default("actions"),[g,k,b]=E.default(l),I=s.computed(()=>o.fadeInLeft||o.fadeIn?`${$}-x-fade${o.fadeInLeft?"-left":""}`:""),f=s.computed(()=>{var t,e;return u.classnames((t=n.value.classNames)==null?void 0:t.item,(e=o.classNames)==null?void 0:e.item)}),v=s.computed(()=>{var t,e;return{...((t=n.value.styles)==null?void 0:t.item)||{},...((e=o.styles)==null?void 0:e.item)||{}}}),x=s.computed(()=>{var t,e;return u.classnames((t=n.value.classNames)==null?void 0:t.itemDropdown,(e=o.classNames)==null?void 0:e.itemDropdown)}),V=s.computed(()=>{var t,e;return{...((t=n.value.styles)==null?void 0:t.itemDropdown)||{},...((e=o.styles)==null?void 0:e.itemDropdown)||{}}}),P=s.computed(()=>({prefixCls:l,classNames:{item:f.value,itemDropdown:x.value},styles:{item:v.value,itemDropdown:V.value}})),w=s.computed(()=>{var t,e;return u.classnames(l,n.value.className,(t=n.value.classNames)==null?void 0:t.root,(e=o.classNames)==null?void 0:e.root,o.rootClassName,b,k.value,{[`${l}-rtl`]:N.value==="rtl"})}),h=s.computed(()=>{var t,e;return{...n.value.style,...typeof o.style=="object"?o.style:{},...((t=n.value.styles)==null?void 0:t.root)||{},...((e=o.styles)==null?void 0:e.root)||{}}}),q=s.computed(()=>{const t=o.variant??"borderless";return t==="border"?"filled":t}),D=(t,e,r)=>e?s.createVNode(B.Tooltip,s.mergeProps(r,{title:e}),C(t)?t:{default:()=>[t]}):t,S=(t,e,r)=>{if(e.disabled){r.preventDefault();return}if(e.onItemClick){e.onItemClick(e);return}m("click",{key:t,item:e,keyPath:[t],domEvent:r})},A=t=>{m("click",t)},T=t=>{const{icon:e,label:r,key:a,disabled:i,danger:R}=t;return s.createVNode("div",{class:u.classnames(`${l}-list-item`,f.value,{[`${l}-list-item-disabled`]:i,[`${l}-list-danger`]:R}),style:v.value,"aria-disabled":i||void 0,onClick:M=>S(a,t,M),key:a},[D(s.createVNode("div",{class:`${l}-list-item-icon`},[e]),r)])},j=s.computed(()=>F.default(o,{aria:!0,data:!0}));return y({nativeElement:d}),()=>{const t=s.createVNode(X.ActionsContextProvider,{value:P.value},{default:()=>[s.createVNode("div",s.mergeProps({ref:d,class:w.value},j.value,{style:h.value}),[s.createVNode("div",{class:u.classnames(`${l}-list`,`${l}-variant-${q.value}`,{block:o.block})},[o.items.map(a=>{var i;return a.actionRender?typeof a.actionRender=="function"?a.actionRender(a):a.actionRender:(i=z.getItemChildren(a))!=null&&i.length?s.createVNode(O.default,{key:a.key,item:a,prefixCls:l,dropdownProps:o.dropdownProps,onClick:A},null):T(a)})])])]}),e=I.value,r=e?s.createVNode(s.Transition,{appear:!0,enterFromClass:`${e}-enter ${e}-appear`,enterActiveClass:`${e}-enter ${e}-enter-active ${e}-appear ${e}-appear-active`,enterToClass:`${e}-enter ${e}-enter-active`,leaveFromClass:`${e}-leave`,leaveActiveClass:`${e}-leave ${e}-leave-active`,leaveToClass:`${e}-leave ${e}-leave-active`},C(t)?t:{default:()=>[t]}):t;return g(r)}}});exports.default=H;