@aplus-frontend/ui
Version:
2 lines (1 loc) • 2.29 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("@aplus-frontend/antdv"),k=require("@aplus-frontend/antdv/es/button/LoadingIcon");require("../../config-provider/index.js");const g=require("../style/index.js"),v=require("../../config-provider/hooks/use-namespace.js"),y={key:1},B=e.defineComponent({name:"ApActionItem",__name:"index",props:{text:{},color:{default:"primary"},disabled:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},onAction:{type:Function},onClick:{type:Function},loading:{type:Boolean,default:!1},icon:{},iconFirst:{type:Boolean,default:!1},tooltip:{default:()=>({})}},setup(t){const i=e.useSlots(),a=e.createPropsRestProxy(t,["color","disabled","visible","loading","iconFirst","icon","tooltip"]),{b:s,m:n,e:d}=v.useNamespace("action-item"),r=e.ref(!1),c=e.computed(()=>t.iconFirst&&!!(t.icon||i.icon)),f=g.default("action-item");function u(o){e.unref(l)||t.disabled||(a.onClick?.(o),a.onAction&&(r.value=!0,a.onAction(o).finally(()=>r.value=!1)))}const l=e.computed(()=>t.loading||e.unref(r)),m=e.computed(()=>[f.value,s(),n(t.color),c.value?n("icon-first"):null,t.disabled?n("disabled"):null,l.value?n("loading"):null].filter(Boolean));return(o,C)=>e.renderSlot(o.$slots,"trigger",{loading:l.value,disabled:o.disabled,onClick:u},()=>[o.visible?(e.openBlock(),e.createElementBlock("span",e.mergeProps({key:0},o.$attrs,{class:m.value,onClick:u}),[e.createVNode(e.unref(k),{"prefix-cls":e.unref(s)(),"exist-icon":!1,loading:l.value},null,8,["prefix-cls","loading"]),o.icon||i.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(d)("icon-wrapper"))},[e.createVNode(e.unref(p.Tooltip),e.mergeProps({title:c.value?o.text:null},o.tooltip),{default:e.withCtx(()=>[e.createElementVNode("span",null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon||i.icon)))])]),_:1},16,["title"])],2)):e.createCommentVNode("",!0),c.value?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"default",{key:1},()=>[e.isVNode(o.text)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.text),{key:0})):(e.openBlock(),e.createElementBlock("span",y,e.toDisplayString(o.text||""),1))])],16)):e.createCommentVNode("",!0)])}});exports.default=B;