ll-package
Version:
2 lines (1 loc) • 1.76 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),u=require("vue");require("../button/index.js");const q=require("../button/buttonTypes.js"),y=require("./hooks/useDestroyed.js"),C=require("./type.js"),B=require("./props-util/index.js"),O=require("../button/button.js"),P={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:C.objectType(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function v(n){return!!(n&&n.then)}const R=u.defineComponent({compatConfig:{MODE:3},name:"ActionButton",props:P,setup(n,m){let{slots:b}=m;const l=u.shallowRef(!1),c=u.shallowRef(),r=u.shallowRef(!1);let f;const d=y.default();u.onMounted(()=>{n.autofocus&&(f=setTimeout(()=>{var e,t;return(t=(e=B.findDOMNode(c.value))===null||e===void 0?void 0:e.focus)===null||t===void 0?void 0:t.call(e)}))}),u.onBeforeUnmount(()=>{clearTimeout(f)});const a=function(){for(var e,t=arguments.length,o=new Array(t),i=0;i<t;i++)o[i]=arguments[i];(e=n.close)===null||e===void 0||e.call(n,...o)},g=e=>{v(e)&&(r.value=!0,e.then(function(){d.value||(r.value=!1),a(...arguments),l.value=!1},t=>(d.value||(r.value=!1),l.value=!1,Promise.reject(t))))},h=e=>{const{actionFn:t}=n;if(l.value)return;if(l.value=!0,!t){a();return}let o;if(n.emitEvent){if(o=t(e),n.quitOnNullishReturnValue&&!v(o)){l.value=!1,a(e);return}}else if(t.length)o=t(n.close),l.value=!1;else if(o=t(),!o){a();return}g(o)};return()=>{const{type:e,prefixCls:t,buttonProps:o}=n;return u.createVNode(O.default,s.default(s.default(s.default({},q.convertLegacyProps(e)),{},{onClick:h,loading:r.value,prefixCls:t},o),{},{ref:c}),b)}}});exports.default=R;
;