UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 2.33 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),B=require("@aplus-frontend/antdv"),W=require("@aplus-frontend/utils");require("../config-provider/index.js");const z=require("lodash-unified"),p=require("./utils/index.js"),L=require("./style/index.js"),q=require("../config-provider/hooks/use-namespace.js"),_=72,w=300,P=e.defineComponent({__name:"ap-button",props:{prefixCls:{},htmlType:{},shape:{},size:{},loading:{type:[Boolean,Object],default:void 0},disabled:{type:Boolean},ghost:{type:Boolean},block:{type:Boolean},danger:{type:Boolean},icon:{},href:{},target:{},title:{},onMousedown:{},autoInsertSpace:{type:Boolean},iconPosition:{},color:{},variant:{},type:{default:"default"},borderLinkColor:{},minWidth:{type:[Boolean,Number,String],default:!1},lazy:{type:[Boolean,Number],default:!0},onClick:{}},setup(f){const y=e.useSlots(),t=f,{b:a}=q.useNamespace("ap-action-button"),m=L.default("ap-action-button"),n=e.ref(!1),b=e.computed(()=>t.borderLinkColor||"var(--ap-button-border-link-color)"),i=e.computed(()=>t.type==="borderLink"&&!t.disabled?b.value:void 0),l=e.computed(()=>p.transferOpacityColor(i.value)),v=e.computed(()=>t.minWidth===!0?`${_}px`:typeof t.minWidth=="number"?`${t.minWidth}px`:typeof t.minWidth=="string"?t.minWidth:void 0),h=e.computed(()=>(t.type==="borderLink"?"default":t.type)||"default"),u=e.computed(()=>t.loading??n.value??!1),s=e.computed(()=>t.lazy===!0?w:typeof t.lazy=="number"&&t.lazy>=0?t.lazy:0);function g(){const o=z.omit(t,["type","borderLinkColor","minWidth","onClick","loading"]);return o?{...o,type:h.value,onclick:k}:{}}async function k(){if(u.value)return;const o=p.isAsynchronous(t.onClick),c=Date.now();try{o&&(n.value=!0,await o)}finally{if(o){const r=Date.now()-c;r<s.value&&await W.wait(s.value-r),n.value=!1}}}return(o,c)=>(e.openBlock(),e.createBlock(e.unref(B.Button),e.mergeProps({class:{[e.unref(a)()]:!0,[`${e.unref(a)()}-border-link`]:l.value,[`${e.unref(m)}`]:!0}},{...o.$attrs,...g()},{style:{color:i.value,minWidth:v.value,"--button-border-color":l.value},loading:u.value}),e.createSlots({_:2},[e.renderList(y,(r,d)=>({name:d,fn:e.withCtx(C=>[e.renderSlot(o.$slots,d,e.normalizeProps(e.guardReactiveProps(C||{})))])}))]),1040,["class","style","loading"]))}});exports.default=P;