UNPKG

ll-package

Version:

2 lines (1 loc) 3.76 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),M=require("../../../@babel/runtime/helpers/esm/extends.js"),t=require("vue"),X=require("../_util/wave/index.js"),O=require("./buttonTypes.js"),Y=require("../_util/props-util/index.js"),Z=require("../config-provider/hooks/useConfigInject.js"),ee=require("../config-provider/DisabledContext.js"),te=require("../vc-util/devWarning.js"),ne=require("./LoadingIcon.js"),oe=require("./style/index.js"),le=require("./button-group.js"),ae=require("../space/Compact.js"),ue=require("../_util/props-util/initDefaultProps.js"),P=/^[\u4e00-\u9fa5]{2}$/,R=P.test.bind(P);function h(n){return n==="text"||n==="link"}const se=t.defineComponent({compatConfig:{MODE:3},name:"AButton",inheritAttrs:!1,__ANT_BUTTON:!0,props:ue.default(O.buttonProps(),{type:"default"}),slots:Object,setup(n,V){let{slots:d,attrs:q,emit:I,expose:A}=V;const{prefixCls:i,autoInsertSpaceInButton:S,direction:_,size:U}=Z.default("btn",n),[k,E]=oe.default(i),p=le.GroupSizeContext.useInject(),G=ee.useInjectDisabled(),C=t.computed(()=>{var e;return(e=n.disabled)!==null&&e!==void 0?e:G.value}),r=t.shallowRef(null),f=t.shallowRef(void 0);let x=!1;const s=t.shallowRef(!1),c=t.shallowRef(!1),j=t.computed(()=>S.value!==!1),{compactSize:L,compactItemClassnames:F}=ae.useCompactItemContext(i,_),y=t.computed(()=>typeof n.loading=="object"&&n.loading.delay?n.loading.delay||!0:!!n.loading);t.watch(y,e=>{clearTimeout(f.value),typeof y.value=="number"?f.value=setTimeout(()=>{s.value=e},y.value):s.value=e},{immediate:!0});const W=t.computed(()=>{const{type:e,shape:l="default",ghost:u,block:a,danger:T}=n,o=i.value,v={large:"lg",small:"sm",middle:void 0},b=L.value||(p==null?void 0:p.size)||U.value,m=b&&v[b]||"";return[F.value,{[E.value]:!0,[`${o}`]:!0,[`${o}-${l}`]:l!=="default"&&l,[`${o}-${e}`]:e,[`${o}-${m}`]:m,[`${o}-loading`]:s.value,[`${o}-background-ghost`]:u&&!h(e),[`${o}-two-chinese-chars`]:c.value&&j.value,[`${o}-block`]:a,[`${o}-dangerous`]:!!T,[`${o}-rtl`]:_.value==="rtl"}]}),z=()=>{const e=r.value;if(!e||S.value===!1)return;const l=e.textContent;x&&R(l)?c.value||(c.value=!0):c.value&&(c.value=!1)},H=e=>{if(s.value||C.value){e.preventDefault();return}I("click",e)},J=e=>{I("mousedown",e)},K=(e,l)=>{const u=l?" ":"";if(e.type===t.Text){let a=e.children.trim();return R(a)&&(a=a.split("").join(u)),t.createVNode("span",null,[a])}return e};return t.watchEffect(()=>{te.default(!(n.ghost&&h(n.type)),"Button","`link` or `text` button can't be a `ghost` button.")}),t.onMounted(z),t.onUpdated(z),t.onBeforeUnmount(()=>{f.value&&clearTimeout(f.value)}),A({focus:()=>{var e;(e=r.value)===null||e===void 0||e.focus()},blur:()=>{var e;(e=r.value)===null||e===void 0||e.blur()}}),()=>{var e,l;const{icon:u=(e=d.icon)===null||e===void 0?void 0:e.call(d)}=n,a=Y.flattenChildren((l=d.default)===null||l===void 0?void 0:l.call(d));x=a.length===1&&!u&&!h(n.type);const{type:T,htmlType:o,href:v,title:b,target:m}=n,Q=s.value?"loading":u,N=M.default(M.default({},q),{title:b,disabled:C.value,class:[W.value,q.class,{[`${i.value}-icon-only`]:a.length===0&&!!Q}],onClick:H,onMousedown:J});C.value||delete N.disabled;const B=u&&!s.value?u:t.createVNode(ne.default,{existIcon:!!u,prefixCls:i.value,loading:!!s.value},null),D=a.map(w=>K(w,x&&j.value));if(v!==void 0)return k(t.createVNode("a",g.default(g.default({},N),{},{href:v,target:m,ref:r}),[B,D]));let $=t.createVNode("button",g.default(g.default({},N),{},{ref:r,type:o}),[B,D]);if(!h(T)){const w=function(){return $}();$=t.createVNode(X.default,{ref:"wave",disabled:!!s.value},{default:()=>[w]})}return k($)}}});exports.buttonProps=O.buttonProps;exports.default=se;