@mtn-ui/components 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/antd-wrapped/action-group/action-group.vue.js +2 -2
- package/dist/antd-wrapped/action-group/action-group.vue2.js +218 -167
- package/dist/antd-wrapped/button/button.js +15 -11
- package/dist/components.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +389 -334
- package/package.json +50 -50
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("@mtn-ui/shared"),e=require("vue"),me=require("class-variance-authority"),v=require("ant-design-vue"),H=require("@vueuse/core"),E=require("@ant-design/icons-vue"),W={type:{type:String,default:"default"},color:{type:String}},ye=me.cva("inline-flex items-center px-2 py-0.5 rounded text-xs font-medium border transition-colors",{variants:{type:{default:"bg-gray-100 text-gray-800 border-gray-200",success:"bg-green-100 text-green-800 border-green-200",processing:"bg-blue-100 text-blue-800 border-blue-200",error:"bg-red-100 text-red-800 border-red-200",warning:"bg-orange-100 text-orange-800 border-orange-200"}},defaultVariants:{type:"default"}}),ge=e.defineComponent({name:"MTag",props:W,setup(t,{slots:o,attrs:n}){return()=>{var u;const{type:r}=t;return e.createVNode("span",{class:S.cn(ye({type:r}),n.class)},[(u=o.default)==null?void 0:u.call(o)])}}}),U=S.withInstall(ge),Y={type:{type:String,default:"default"},size:{type:String,default:"middle"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},block:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1},shape:{type:String,default:"default"},htmlType:{type:String,default:"button"},icon:{type:Object},permission:{type:[String,Array],default:void 0},permissionAction:{type:String,default:"hide"}};function Z(t){const{permission:o,permissionAction:n="hide"}=t,r=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),u=e.computed(()=>o?r.value(o):!0),d=e.computed(()=>!u.value&&n==="hide"),p=e.computed(()=>!u.value&&n==="disable");return{hasPermission:u,shouldHide:d,shouldDisable:p}}function ve(t,o){return t.map(n=>{if(!n||n.type==="divider"||!n.permission)return n;if(!o(n.permission)){const u=n.permissionAction||"hide";if(u==="hide")return null;if(u==="disable")return{...n,disabled:!0}}return n}).filter(Boolean)}const A=e.defineComponent({name:"MButton",props:Y,emits:["click"],setup(t,{slots:o,attrs:n,emit:r}){const{shouldHide:u,shouldDisable:d}=Z({permission:t.permission,permissionAction:t.permissionAction}),p=f=>{r("click",f)};return()=>u.value?null:e.createVNode(v.Button,e.mergeProps({type:t.type,size:t.size,loading:t.loading,disabled:t.disabled||d.value,danger:t.danger,block:t.block,ghost:t.ghost,shape:t.shape,htmlType:t.htmlType,icon:t.icon},n,{class:["mtn-button",n.class],onClick:p}),{default:()=>{var f;return[(f=o.default)==null?void 0:f.call(o)]}})}}),J={size:{type:String,default:"middle"},compact:{type:Boolean,default:!0},gap:{type:[Number,String],default:8},vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},_=e.defineComponent({name:"MButtonGroup",props:J,setup(t,{slots:o,attrs:n}){return()=>e.createVNode(e.Fragment,null,[t.compact?e.createVNode(v.Space.Compact,e.mergeProps({size:t.size,direction:t.vertical?"vertical":"horizontal",block:t.block},n,{class:["mtn-button-group","mtn-button-group--compact",n.class]}),{default:()=>{var r;return[(r=o.default)==null?void 0:r.call(o)]}}):e.createVNode(v.Space,e.mergeProps({size:typeof t.gap=="number"?t.gap:parseInt(t.gap)||8,direction:t.vertical?"vertical":"horizontal"},n,{class:["mtn-button-group","mtn-button-group--normal",n.class]}),{default:()=>{var r;return[(r=o.default)==null?void 0:r.call(o)]}})])}}),ke={text:{type:String,default:"Dropdown"},type:{type:String,default:"default"},size:{type:String,default:"middle"},menu:{type:Array,default:void 0},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},placement:{type:String,default:"bottomLeft"},trigger:{type:Array,default:()=>["click"]},permission:{type:[String,Array],default:void 0},permissionAction:{type:String,default:"hide"}},V=e.defineComponent({name:"MDropdownButton",props:ke,emits:["click"],setup(t,{slots:o,attrs:n,emit:r}){const{shouldHide:u,shouldDisable:d}=Z({permission:t.permission,permissionAction:t.permissionAction}),p=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),f=m=>{r("click",m)};return()=>{if(u.value)return null;const m={};if(o.overlay)m.overlay=o.overlay;else if(t.menu&&t.menu.length>0){const y=ve(t.menu,p.value);m.overlay=()=>e.h(v.Menu,{items:y})}return o.icon&&(m.icon=o.icon),!(o.default||t.text)?e.createVNode(v.Dropdown,e.mergeProps({placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class]}),{default:()=>[e.createVNode(v.Button,{type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||d.value,loading:t.loading,danger:t.danger,onClick:f},{default:()=>{var y;return[(y=o.icon)==null?void 0:y.call(o)]}})],...m}):e.createVNode(v.Dropdown.Button,e.mergeProps({type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||d.value,loading:t.loading,danger:t.danger,placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class],onClick:f}),{default:()=>{var y;return[((y=o.default)==null?void 0:y.call(o))||t.text]},...m})}}}),he={actions:{type:Array,default:void 0},mode:{type:String,default:"default"},maxItems:{type:Number,default:3},gap:{type:Number,default:8},moreText:{type:String,default:"更多"},moreIcon:{type:Object,default:void 0},moreProps:{type:Object,default:()=>({})},size:{type:String,default:"middle"},compact:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1},disableCollapse:{type:Boolean,default:!1}};function be(t){return t?t.filter(o=>o.type!==e.Comment&&o.type!==e.Text&&o.type!==Symbol.for("v-fgt")):[]}function G(t,o){var n,r;if(t.key!==null&&t.key!==void 0)return typeof t.key=="symbol"?t.key.toString():t.key;if(((n=t.props)==null?void 0:n.key)!==null&&((r=t.props)==null?void 0:r.key)!==void 0){const u=t.props.key;return typeof u=="symbol"?u.toString():u}return`button-${o}`}const K="link",q="small",Be=e.defineComponent({name:"MActionGroup",inheritAttrs:!1,__name:"action-group",props:he,emits:["action-click"],setup(t,{emit:o}){const n=t,r=o,u=e.useSlots(),d=e.ref(),p=e.ref(),f=e.ref(),{width:m}=H.useElementSize(d),N=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),y=e.computed(()=>n.mode==="table"),T=e.computed(()=>y.value?"small":n.size),l=e.computed(()=>y.value?"link":"default"),c=e.computed(()=>y.value?"":n.moreText),B=e.computed(()=>n.moreIcon||E.MoreOutlined);function b(i){return i?N.value(i):!0}const P=e.computed(()=>{var i;return be((i=u.default)==null?void 0:i.call(u))}),x=e.computed(()=>n.actions?n.actions.filter(i=>b(i.permission)):[]),w=e.computed(()=>{if(n.disableCollapse)return n.actions?x.value.length:P.value.length;const i=n.actions?x.value.length:P.value.length;return i<=1?i:p.value&&f.value&&m.value?oe():Math.min(n.maxItems,i)});function oe(){if(!p.value||!f.value||!m.value)return n.maxItems;const i=f.value.offsetWidth,g=Array.from(p.value.querySelectorAll(".measure-item"));if(g.length===0)return n.maxItems;let a=i,s=0;for(let h=0;h<g.length-1;h++){const C=g[h].offsetWidth+n.gap;if(a+C<=m.value)a+=C,s++;else break}const k=n.actions?x.value.length:P.value.length;return Math.max(0,Math.min(s,n.maxItems,k))}const re=e.computed(()=>n.actions?x.value.slice(0,w.value):[]),O=e.computed(()=>n.actions?x.value.slice(w.value):[]),ie=e.computed(()=>{if(n.actions)return[];const i=P.value;return w.value>=i.length?i:i.slice(0,w.value)}),L=e.computed(()=>{if(n.actions)return[];const i=P.value;return w.value>=i.length?[]:i.slice(w.value)}),ae=e.computed(()=>n.actions?O.value.filter(i=>b(i.permission)):[]),le=e.computed(()=>n.actions?[]:L.value.filter(i=>{const g=i.props||{};return g.permission&&g.permissionAction==="hide"?b(g.permission):!0})),ue=e.computed(()=>n.disableCollapse?!1:(n.actions?O.value.length:L.value.length)>0);function M(i){return i.component||A}function R(i,g){return i.key||i.label||`action-${g}`}function $(i){const{label:g,key:a,onClick:s,permission:k,permissionAction:h,icon:z,component:C,componentProps:D,slot:se,type:I,size:de,disabled:pe,...fe}=i;return{component:C,componentProps:D,type:I,size:de,rest:fe,permission:k,permissionAction:h,disabled:pe}}function F(i){const{component:g,componentProps:a,type:s,rest:k,permission:h,permissionAction:z,disabled:C}=$(i),D={type:s||l.value,size:T.value,disabled:C||!b(h)&&z==="disable",...k};return g&&a?{...D,...a}:D}function ce(i){const{component:g,componentProps:a,rest:s,permission:k,permissionAction:h,disabled:z}=$(i),C={type:K,size:q,disabled:z||!b(k)&&h==="disable",...s};if(g&&a){const{type:D,size:se,...I}=a;return{...C,...I}}return C}function j(i){i.onClick&&i.onClick(i),r("action-click",i)}return(i,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:d,class:"mtn-action-group"},[e.createVNode(e.unref(_),e.mergeProps({size:T.value,compact:i.compact,vertical:i.vertical,block:i.block},i.$attrs),{default:e.withCtx(()=>[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(re.value,(a,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(M(a)),e.mergeProps({key:R(a,s)},{ref_for:!0},F(a),{onClick:k=>j(a)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon&&!a.component?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040,["onClick"]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(ie.value,(a,s)=>{var k,h;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(a,{type:((k=a.props)==null?void 0:k.type)??(y.value?l.value:void 0),size:((h=a.props)==null?void 0:h.size)??T.value})),{key:e.unref(G)(a,s)})}),128)),ue.value?(e.openBlock(),e.createBlock(e.unref(V),e.mergeProps({key:2,text:c.value,size:T.value,type:l.value},n.moreProps),{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.value)))]),overlay:e.withCtx(()=>[e.createVNode(e.unref(v.Menu),null,{default:e.withCtx(()=>[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(ae.value,(a,s)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:R(a,s)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(M(a)),e.mergeProps({ref_for:!0},ce(a),{onClick:k=>j(a)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon&&!a.component?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040,["onClick"]))]),_:2},1024))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(le.value,(a,s)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:e.unref(G)(a,s)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(a,{...a.props,type:K,size:q}))))]),_:2},1024))),128))]),_:1})]),_:1},16,["text","size","type"])):e.createCommentVNode("",!0)]),_:1},16,["size","compact","vertical","block"]),e.createElementVNode("div",{ref_key:"measureRef",ref:p,class:"mtn-action-group-measure"},[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(x.value,(a,s)=>(e.openBlock(),e.createElementBlock("span",{key:s,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(M(a)),e.mergeProps({ref_for:!0},F(a)),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon&&!a.component?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040))]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(P.value,(a,s)=>(e.openBlock(),e.createElementBlock("span",{key:s,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a)))]))),128)),e.createElementVNode("span",{ref_key:"moreTriggerRef",ref:f,class:"measure-item"},[e.createVNode(e.unref(V),{text:c.value,size:T.value,type:l.value},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.value)))]),_:1},8,["text","size","type"])],512)],512)],512))}}),Q=(t,o)=>{const n=t.__vccOpts||t;for(const[r,u]of o)n[r]=u;return n},X=Q(Be,[["__scopeId","data-v-b8d47218"]]),Ce={...Y,loading:{type:Boolean,default:void 0},confirm:{type:[String,Boolean,Function],default:"确定要删除吗?"},confirmType:{type:String,default:"modal"},confirmTitle:{type:String,default:"确认删除"},okText:{type:String,default:"确定"},cancelText:{type:String,default:"取消"},hideIcon:{type:Boolean,default:!1},autoLoading:{type:Boolean,default:!0},beforeDelete:{type:Function,default:void 0},count:{type:Number,default:1},showSuccess:{type:Boolean,default:!1},successText:{type:String,default:"删除成功"},showError:{type:Boolean,default:!0},debounce:{type:Number,default:300},onDelete:{type:Function,default:void 0}},Se=e.defineComponent({name:"MDeleteButton",inheritAttrs:!1,__name:"delete-button",props:Ce,emits:["delete","success","error"],setup(t,{emit:o}){const n=o,r=t,u=e.ref(!1),d=e.ref(null),p=e.computed(()=>r.loading!==void 0?r.loading:r.autoLoading?u.value:!1),f=e.computed(()=>typeof r.confirm=="function"?r.confirm(r.count):r.confirm);e.watch(p,l=>{d.value&&e.nextTick(()=>{var c;(c=d.value)==null||c.update({okButtonProps:{loading:l}})})},{flush:"post"}),e.onBeforeUnmount(()=>{d.value&&(d.value.destroy(),d.value=null)});const m=async()=>{try{if(r.beforeDelete&&await r.beforeDelete()===!1)return;r.autoLoading&&r.loading===void 0&&(u.value=!0);let l=!1;const c=()=>{l||(l=!0,r.autoLoading&&r.loading===void 0&&(u.value=!1))};if(r.onDelete){const B=r.onDelete(c);if(B&&typeof B.then=="function")try{const b=await B;l||c(),N(b)}catch(b){throw l||c(),b}}else n("delete",c),r.autoLoading&&r.loading===void 0&&setTimeout(()=>{l||c()},5e3)}catch(l){r.autoLoading&&r.loading===void 0&&(u.value=!1);const c=l instanceof Error?l:new Error(String(l));n("error",c),r.showError&&v.message.error(c.message||"删除失败,请重试")}},N=l=>{r.showSuccess&&v.message.success(r.successText||"删除成功"),n("success",l)},y=r.debounce>0?H.useDebounceFn(m,r.debounce):m,T=()=>{if(!f.value){y();return}if(r.confirmType==="popconfirm")return;const l=()=>{d.value=v.Modal.confirm({title:r.confirmTitle,content:f.value,okText:r.okText,cancelText:r.cancelText,okType:"danger",okButtonProps:{loading:p.value},onOk:async()=>{try{return await m(),new Promise(c=>{if(!p.value){c();return}const B=e.watch(p,b=>{b||(B(),c())})})}catch(c){throw c}},onCancel:()=>{d.value=null},afterClose:()=>{d.value=null}})};e.nextTick(l)};return(l,c)=>f.value&&l.confirmType==="popconfirm"?(e.openBlock(),e.createBlock(e.unref(v.Popconfirm),{key:0,title:f.value,"ok-text":l.okText,"cancel-text":l.cancelText,"ok-button-props":{loading:p.value,danger:!0},onConfirm:e.unref(y)},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"popconfirmIcon",{},()=>[e.createVNode(e.unref(E.ExclamationCircleOutlined),{class:"text-[--color-ant-error]"})],!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(A),e.mergeProps(l.$attrs,{type:l.type,size:l.size,danger:!0,loading:p.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,class:"group"}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[c[0]||(c[0]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(E.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"])]),_:3},8,["title","ok-text","cancel-text","ok-button-props","onConfirm"])):(e.openBlock(),e.createBlock(e.unref(A),e.mergeProps({key:1},l.$attrs,{type:l.type,size:l.size,danger:!0,loading:p.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,onClick:T}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[c[1]||(c[1]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(E.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"]))}}),ee=Q(Se,[["__scopeId","data-v-a943bc19"]]),te={columns:{type:Array,required:!0},dataSource:{type:Array,default:()=>[]},rowKey:{type:[String,Function],default:"id"},pagination:{type:[Object,Boolean],default:void 0},loading:{type:Boolean,default:!1},bordered:{type:Boolean,default:!1},size:{type:String,default:"middle"}};function Te(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const Pe=e.defineComponent({name:"MTable",props:te,setup(t,{slots:o,attrs:n}){return()=>e.createVNode(v.Table,e.mergeProps(t,n,{class:"mtn-table"}),Te(o)?o:{default:()=>[o]})}}),ne=S.withInstall(Pe),xe=[A,_,V,X,ee,U,ne],we={install(t){xe.forEach(o=>{t.component(o.name||"",o)})}};exports.ActionGroup=X;exports.Button=A;exports.ButtonGroup=_;exports.DeleteButton=ee;exports.DropdownButton=V;exports.Table=ne;exports.Tag=U;exports.buttonGroupProps=J;exports.default=we;exports.tableProps=te;exports.tagProps=W;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const C=require("@mtn-ui/shared"),e=require("vue"),he=require("class-variance-authority"),v=require("ant-design-vue"),G=require("@vueuse/core"),L=require("@ant-design/icons-vue"),ee={type:{type:String,default:"default"},color:{type:String}},be=he.cva("inline-flex items-center px-2 py-0.5 rounded text-xs font-medium border transition-colors",{variants:{type:{default:"bg-gray-100 text-gray-800 border-gray-200",success:"bg-green-100 text-green-800 border-green-200",processing:"bg-blue-100 text-blue-800 border-blue-200",error:"bg-red-100 text-red-800 border-red-200",warning:"bg-orange-100 text-orange-800 border-orange-200"}},defaultVariants:{type:"default"}}),Be=e.defineComponent({name:"MTag",props:ee,setup(t,{slots:r,attrs:n}){return()=>{var u;const{type:i}=t;return e.createVNode("span",{class:C.cn(be({type:i}),n.class)},[(u=r.default)==null?void 0:u.call(r)])}}}),te=C.withInstall(Be),ne={type:{type:String,default:"default"},size:{type:String,default:"middle"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},block:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1},shape:{type:String,default:"default"},htmlType:{type:String,default:"button"},icon:{type:Object},permission:{type:[String,Array],default:void 0},permissionAction:{type:String,default:"hide"}};function oe(t){const{permission:r,permissionAction:n="hide"}=t,i=e.inject(C.PERMISSION_CHECKER_KEY,e.ref(C.defaultPermissionChecker)),u=e.computed(()=>r?i.value(r):!0),m=e.computed(()=>!u.value&&n==="hide"),f=e.computed(()=>!u.value&&n==="disable");return{hasPermission:u,shouldHide:m,shouldDisable:f}}function Ce(t,r){return t.map(n=>{if(!n||n.type==="divider"||!n.permission)return n;if(!r(n.permission)){const u=n.permissionAction||"hide";if(u==="hide")return null;if(u==="disable")return{...n,disabled:!0}}return n}).filter(Boolean)}const A=e.defineComponent({name:"MButton",props:ne,emits:["click"],setup(t,{slots:r,attrs:n,emit:i}){const{shouldHide:u,shouldDisable:m}=oe({permission:t.permission,permissionAction:t.permissionAction}),f=p=>{i("click",p)};return()=>u.value?null:e.createVNode(v.Button,e.mergeProps({type:t.type,size:t.size,loading:t.loading,disabled:t.disabled||m.value,danger:t.danger,block:t.block,ghost:t.ghost,shape:t.shape,htmlType:t.htmlType,icon:t.icon},n,{class:["mtn-button",n.class],onClick:f}),{default:()=>{var p;return(p=r.default)==null?void 0:p.call(r)},icon:()=>{var p;return(p=r.icon)==null?void 0:p.call(r)}})}}),re={size:{type:String,default:"middle"},compact:{type:Boolean,default:!0},gap:{type:[Number,String],default:8},vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},K=e.defineComponent({name:"MButtonGroup",props:re,setup(t,{slots:r,attrs:n}){return()=>e.createVNode(e.Fragment,null,[t.compact?e.createVNode(v.Space.Compact,e.mergeProps({size:t.size,direction:t.vertical?"vertical":"horizontal",block:t.block},n,{class:["mtn-button-group","mtn-button-group--compact",n.class]}),{default:()=>{var i;return[(i=r.default)==null?void 0:i.call(r)]}}):e.createVNode(v.Space,e.mergeProps({size:typeof t.gap=="number"?t.gap:parseInt(t.gap)||8,direction:t.vertical?"vertical":"horizontal"},n,{class:["mtn-button-group","mtn-button-group--normal",n.class]}),{default:()=>{var i;return[(i=r.default)==null?void 0:i.call(r)]}})])}}),Se={text:{type:String,default:"Dropdown"},type:{type:String,default:"default"},size:{type:String,default:"middle"},menu:{type:Array,default:void 0},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},placement:{type:String,default:"bottomLeft"},trigger:{type:Array,default:()=>["click"]},permission:{type:[String,Array],default:void 0},permissionAction:{type:String,default:"hide"}},j=e.defineComponent({name:"MDropdownButton",props:Se,emits:["click"],setup(t,{slots:r,attrs:n,emit:i}){const{shouldHide:u,shouldDisable:m}=oe({permission:t.permission,permissionAction:t.permissionAction}),f=e.inject(C.PERMISSION_CHECKER_KEY,e.ref(C.defaultPermissionChecker)),p=y=>{i("click",y)};return()=>{if(u.value)return null;const y={};if(r.overlay)y.overlay=r.overlay;else if(t.menu&&t.menu.length>0){const k=Ce(t.menu,f.value);y.overlay=()=>e.h(v.Menu,{items:k})}return r.icon&&(y.icon=r.icon),!(r.default||t.text)?e.createVNode(v.Dropdown,e.mergeProps({placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class]}),{default:()=>[e.createVNode(v.Button,{type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||m.value,loading:t.loading,danger:t.danger,onClick:p},{default:()=>{var k;return[(k=r.icon)==null?void 0:k.call(r)]}})],...y}):e.createVNode(v.Dropdown.Button,e.mergeProps({type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||m.value,loading:t.loading,danger:t.danger,placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class],onClick:p}),{default:()=>{var k;return[((k=r.default)==null?void 0:k.call(r))||t.text]},...y})}}}),Pe={actions:{type:Array,default:void 0},mode:{type:String,default:"default"},maxItems:{type:Number,default:3},gap:{type:Number,default:8},moreText:{type:String,default:"更多"},moreIcon:{type:Object,default:void 0},moreProps:{type:Object,default:()=>({})},size:{type:String,default:"middle"},compact:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1},disableCollapse:{type:Boolean,default:!1}};function xe(t){return t?t.filter(r=>r.type!==e.Comment&&r.type!==e.Text&&r.type!==Symbol.for("v-fgt")):[]}function Q(t,r){var n,i;if(t.key!==null&&t.key!==void 0)return typeof t.key=="symbol"?t.key.toString():t.key;if(((n=t.props)==null?void 0:n.key)!==null&&((i=t.props)==null?void 0:i.key)!==void 0){const u=t.props.key;return typeof u=="symbol"?u.toString():u}return`button-${r}`}const $="link",X="small",Te=150,we=e.defineComponent({name:"MActionGroup",inheritAttrs:!1,__name:"action-group",props:Pe,emits:["action-click"],setup(t,{emit:r}){const n=t,i=r,u=e.useSlots(),m=e.ref(),f=e.ref(),p=e.ref(),{width:y}=G.useElementSize(m),E=e.inject(C.PERMISSION_CHECKER_KEY,e.ref(C.defaultPermissionChecker));function k(o){if(!o)return;const s=o;return s.name||s.__name||s.displayName}const P=e.computed(()=>n.mode==="table"),l=e.computed(()=>P.value?"small":n.size),c=e.computed(()=>P.value?"link":"default"),b=e.computed(()=>P.value?"":n.moreText),S=e.computed(()=>n.moreIcon||L.MoreOutlined);function V(o){return o?E.value(o):!0}const M=e.computed(()=>xe(u.default?u.default():void 0)),x=e.shallowRef([]);function q(o){var a,d,g;return[o.key??"",o.label??"",k(o.icon)??"",k(o.component)??"",Array.isArray(o.permission)?o.permission.join(","):o.permission??"",o.permissionAction??"",String(o.disabled??!1),String(((a=o.componentProps)==null?void 0:a.confirm)??""),String(((d=o.componentProps)==null?void 0:d.showSuccess)??""),String(((g=o.componentProps)==null?void 0:g.danger)??"")].join("|")}e.watch(()=>n.actions,o=>{if(!o){x.value=[];return}if(x.value.length!==o.length){x.value=o;return}const s=o.map(q).join("||"),a=x.value.map(q).join("||");s!==a&&(x.value=o)},{immediate:!0,deep:!1});const _=e.computed(()=>x.value.length?x.value.filter(o=>V(o.permission)):[]),h=e.computed(()=>n.actions?_.value.length:M.value.length);function se(){if(!f.value||!p.value||!y.value)return Math.min(n.maxItems,h.value);const o=p.value.offsetWidth,s=Array.from(f.value.querySelectorAll(".measure-item"));if(s.length===0)return Math.min(n.maxItems,h.value);let a=o,d=0;for(let g=0;g<s.length-1;g++){const T=s[g].offsetWidth+n.gap;if(a+T<=y.value)a+=T,d++;else break}return Math.max(0,Math.min(d,n.maxItems,h.value))}const D=e.ref(n.maxItems),de=G.useDebounceFn(()=>{D.value=se()},Te);e.watch([y,h,()=>n.maxItems,()=>n.gap],()=>{if(n.disableCollapse){D.value=h.value;return}if(h.value<=1){D.value=h.value;return}f.value&&p.value&&y.value?de():D.value=Math.min(n.maxItems,h.value)},{immediate:!0});const w=e.computed(()=>n.disableCollapse||h.value<=1?h.value:f.value&&p.value&&y.value?D.value:Math.min(n.maxItems,h.value)),pe=e.computed(()=>n.actions?_.value.slice(0,w.value):[]),H=e.computed(()=>n.actions?_.value.slice(w.value):[]),fe=e.computed(()=>{if(n.actions)return[];const o=M.value;return w.value>=o.length?o:o.slice(0,w.value)}),U=e.computed(()=>{if(n.actions)return[];const o=M.value;return w.value>=o.length?[]:o.slice(w.value)}),me=e.computed(()=>n.actions?[]:U.value.filter(o=>{const s=o.props||{};return s.permission&&s.permissionAction==="hide"?V(s.permission):!0})),ye=e.computed(()=>n.disableCollapse?!1:(n.actions?H.value.length:U.value.length)>0);function R(o){return o.component||A}function W(o,s){return o.key||o.label||`action-${s}`}function Y(o){const{label:s,key:a,onClick:d,permission:g,permissionAction:B,icon:T,component:z,componentProps:N,slot:I,type:F,size:O,disabled:ve,...ke}=o;return{component:z,componentProps:N,type:F,size:O,rest:ke,permission:g,permissionAction:B,disabled:ve}}function Z(o){const{component:s,componentProps:a,type:d,rest:g,permission:B,permissionAction:T,disabled:z}=Y(o),N={type:d||c.value,size:l.value,disabled:z||!V(B)&&T==="disable",...g};if(s&&a){const I={...N,...a};return P.value&&(I.type="link"),I}return N}function ge(o){const{component:s,componentProps:a,rest:d,permission:g,permissionAction:B,disabled:T}=Y(o),z={type:$,size:X,disabled:T||!V(g)&&B==="disable",...d};if(s&&a){const{type:N,size:I,...F}=a,O={...z,...F};return O.type=$,O}return z}function J(o){o.onClick&&o.onClick(o),i("action-click",o)}return(o,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:m,class:"mtn-action-group"},[e.createVNode(e.unref(K),e.mergeProps({size:l.value,compact:o.compact,vertical:o.vertical,block:o.block},o.$attrs),{default:e.withCtx(()=>[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(pe.value,(a,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(R(a)),e.mergeProps({key:W(a,d)},{ref_for:!0},Z(a),{onClick:g=>J(a)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040,["onClick"]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(fe.value,(a,d)=>{var g,B;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(a,{type:((g=a.props)==null?void 0:g.type)??(P.value?c.value:void 0),size:((B=a.props)==null?void 0:B.size)??l.value})),{key:e.unref(Q)(a,d)})}),128)),ye.value?(e.openBlock(),e.createBlock(e.unref(j),e.mergeProps({key:2,text:b.value,size:l.value,type:c.value},n.moreProps),{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.value)))]),overlay:e.withCtx(()=>[e.createVNode(e.unref(v.Menu),null,{default:e.withCtx(()=>[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(H.value,(a,d)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:W(a,d)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(R(a)),e.mergeProps({ref_for:!0},ge(a),{onClick:g=>J(a)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040,["onClick"]))]),_:2},1024))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(me.value,(a,d)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:e.unref(Q)(a,d)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(a,{...a.props,type:$,size:X}))))]),_:2},1024))),128))]),_:1})]),_:1},16,["text","size","type"])):e.createCommentVNode("",!0)]),_:1},16,["size","compact","vertical","block"]),e.createElementVNode("div",{ref_key:"measureRef",ref:f,class:"mtn-action-group-measure"},[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(_.value,(a,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(R(a)),e.mergeProps({ref_for:!0},Z(a)),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040))]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(M.value,(a,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a)))]))),128)),e.createElementVNode("span",{ref_key:"moreTriggerRef",ref:p,class:"measure-item"},[e.createVNode(e.unref(j),{text:b.value,size:l.value,type:c.value},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.value)))]),_:1},8,["text","size","type"])],512)],512)],512))}}),ie=(t,r)=>{const n=t.__vccOpts||t;for(const[i,u]of r)n[i]=u;return n},ae=ie(we,[["__scopeId","data-v-845c43ad"]]),ze={...ne,loading:{type:Boolean,default:void 0},confirm:{type:[String,Boolean,Function],default:"确定要删除吗?"},confirmType:{type:String,default:"modal"},confirmTitle:{type:String,default:"确认删除"},okText:{type:String,default:"确定"},cancelText:{type:String,default:"取消"},hideIcon:{type:Boolean,default:!1},autoLoading:{type:Boolean,default:!0},beforeDelete:{type:Function,default:void 0},count:{type:Number,default:1},showSuccess:{type:Boolean,default:!1},successText:{type:String,default:"删除成功"},showError:{type:Boolean,default:!0},debounce:{type:Number,default:300},onDelete:{type:Function,default:void 0}},De=e.defineComponent({name:"MDeleteButton",inheritAttrs:!1,__name:"delete-button",props:ze,emits:["delete","success","error"],setup(t,{emit:r}){const n=r,i=t,u=e.ref(!1),m=e.ref(null),f=e.computed(()=>i.loading!==void 0?i.loading:i.autoLoading?u.value:!1),p=e.computed(()=>typeof i.confirm=="function"?i.confirm(i.count):i.confirm);e.watch(f,l=>{m.value&&e.nextTick(()=>{var c;(c=m.value)==null||c.update({okButtonProps:{loading:l}})})},{flush:"post"}),e.onBeforeUnmount(()=>{m.value&&(m.value.destroy(),m.value=null)});const y=async()=>{try{if(i.beforeDelete&&await i.beforeDelete()===!1)return;i.autoLoading&&i.loading===void 0&&(u.value=!0);let l=!1;const c=()=>{l||(l=!0,i.autoLoading&&i.loading===void 0&&(u.value=!1))};if(i.onDelete){const b=i.onDelete(c);if(b&&typeof b.then=="function")try{const S=await b;l||c(),E(S)}catch(S){throw l||c(),S}}else n("delete",c),i.autoLoading&&i.loading===void 0&&setTimeout(()=>{l||c()},5e3)}catch(l){i.autoLoading&&i.loading===void 0&&(u.value=!1);const c=l instanceof Error?l:new Error(String(l));n("error",c),i.showError&&v.message.error(c.message||"删除失败,请重试")}},E=l=>{i.showSuccess&&v.message.success(i.successText||"删除成功"),n("success",l)},k=i.debounce>0?G.useDebounceFn(y,i.debounce):y,P=()=>{if(!p.value){k();return}if(i.confirmType==="popconfirm")return;const l=()=>{m.value=v.Modal.confirm({title:i.confirmTitle,content:p.value,okText:i.okText,cancelText:i.cancelText,okType:"danger",okButtonProps:{loading:f.value},onOk:async()=>{try{return await y(),new Promise(c=>{if(!f.value){c();return}const b=e.watch(f,S=>{S||(b(),c())})})}catch(c){throw c}},onCancel:()=>{m.value=null},afterClose:()=>{m.value=null}})};e.nextTick(l)};return(l,c)=>p.value&&l.confirmType==="popconfirm"?(e.openBlock(),e.createBlock(e.unref(v.Popconfirm),{key:0,title:p.value,"ok-text":l.okText,"cancel-text":l.cancelText,"ok-button-props":{loading:f.value,danger:!0},onConfirm:e.unref(k)},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"popconfirmIcon",{},()=>[e.createVNode(e.unref(L.ExclamationCircleOutlined),{class:"text-[--color-ant-error]"})],!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(A),e.mergeProps(l.$attrs,{type:l.type,size:l.size,danger:!0,loading:f.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,class:"group"}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[c[0]||(c[0]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(L.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"])]),_:3},8,["title","ok-text","cancel-text","ok-button-props","onConfirm"])):(e.openBlock(),e.createBlock(e.unref(A),e.mergeProps({key:1},l.$attrs,{type:l.type,size:l.size,danger:!0,loading:f.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,onClick:P}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[c[1]||(c[1]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(L.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"]))}}),le=ie(De,[["__scopeId","data-v-a943bc19"]]),ue={columns:{type:Array,required:!0},dataSource:{type:Array,default:()=>[]},rowKey:{type:[String,Function],default:"id"},pagination:{type:[Object,Boolean],default:void 0},loading:{type:Boolean,default:!1},bordered:{type:Boolean,default:!1},size:{type:String,default:"middle"}};function Ne(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const Ae=e.defineComponent({name:"MTable",props:ue,setup(t,{slots:r,attrs:n}){return()=>e.createVNode(v.Table,e.mergeProps(t,n,{class:"mtn-table"}),Ne(r)?r:{default:()=>[r]})}}),ce=C.withInstall(Ae),Ee=[A,K,j,ae,le,te,ce],Ve={install(t){Ee.forEach(r=>{t.component(r.name||"",r)})}};exports.ActionGroup=ae;exports.Button=A;exports.ButtonGroup=K;exports.DeleteButton=le;exports.DropdownButton=j;exports.Table=ce;exports.Tag=te;exports.buttonGroupProps=re;exports.default=Ve;exports.tableProps=ue;exports.tagProps=ee;
|