ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
2 lines (1 loc) • 1.83 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),O=require("ant-design-vue"),c=require("../chunks/module-chunk.js"),g=require("../_util/hooks/use-mobile.js");require("../x-provider/index.js");const r=require("./constants.js"),v=require("./style/index.js"),y=require("../x-provider/hooks/use-x-provider-context.js");function M(o){return typeof o=="function"||Object.prototype.toString.call(o)==="[object Object]"&&!t.isVNode(o)}const q=t.defineComponent({name:"AXActionsItem",inheritAttrs:!1,__name:"ActionsItem",props:{status:{default:"default"},defaultIcon:{default:void 0},label:{default:void 0},runningIcon:{default:void 0},prefixCls:{default:void 0},rootClassName:{default:""},classNames:{default:()=>({})},styles:{default:()=>({})}},setup(o){const e=o,i=t.useAttrs(),m=g.useMobile(),{direction:N,getPrefixCls:S}=y.default(),l=S("actions",e.prefixCls),[I,T,C]=v.default(l),d=`${l}-button-item`,p=t.computed(()=>{var s,n,a;return c.classnames(d,T.value,C,e.rootClassName,i.class,(s=e.classNames)==null?void 0:s.root,l,`${l}-item`,{[`${d}-rtl`]:N.value==="rtl",[`${(n=e.classNames)==null?void 0:n[e.status]}`]:(a=e.classNames)==null?void 0:a[e.status]})});return()=>{var f,_;const s=e.status,n={[r.ACTIONS_ITEM_STATUS.LOADING]:t.createVNode(c.LoadingOutlined,null,null),[r.ACTIONS_ITEM_STATUS.ERROR]:t.createVNode(c.CloseCircleOutlined,null,null),[r.ACTIONS_ITEM_STATUS.RUNNING]:e.runningIcon,[r.ACTIONS_ITEM_STATUS.DEFAULT]:e.defaultIcon},a=s&&n[s]?n[s]:e.defaultIcon,{class:V,style:A,...b}=i,u=t.createVNode("div",t.mergeProps(b,{class:p.value,style:{...A,...(f=e.styles)==null?void 0:f.root,...(_=e.styles)==null?void 0:_[s]}}),[a]);return I(m.value?u:t.createVNode(O.Tooltip,{title:e.label},M(u)?u:{default:()=>[u]}))}}});exports.default=q;