@mtn-ui/components 1.0.9 → 1.0.10

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("@mtn-ui/shared"),e=require("vue"),Pe=require("class-variance-authority"),k=require("ant-design-vue"),J=require("@vueuse/core"),F=require("@ant-design/icons-vue"),Q={type:{type:String,default:"default"},color:{type:String}},Te=Pe.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"}}),we=e.defineComponent({name:"MTag",props:Q,setup(t,{slots:a,attrs:o}){return()=>{var c;const{type:r}=t;return e.createVNode("span",{class:T.cn(Te({type:r}),o.class)},[(c=a.default)==null?void 0:c.call(a)])}}}),ee=T.withInstall(we),te={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 ne(t){const{permission:a,permissionAction:o="hide"}=t,r=e.inject(T.PERMISSION_CHECKER_KEY,e.ref(T.defaultPermissionChecker)),c=e.computed(()=>a?r.value(a):!0),f=e.computed(()=>!c.value&&o==="hide"),d=e.computed(()=>!c.value&&o==="disable");return{hasPermission:c,shouldHide:f,shouldDisable:d}}function De(t,a){return t.map(o=>{if(!o||o.type==="divider"||!o.permission)return o;if(!a(o.permission)){const c=o.permissionAction||"hide";if(c==="hide")return null;if(c==="disable")return{...o,disabled:!0}}return o}).filter(Boolean)}const V=e.defineComponent({name:"MButton",props:te,emits:["click"],setup(t,{slots:a,attrs:o,emit:r}){const{shouldHide:c,shouldDisable:f}=ne({permission:t.permission,permissionAction:t.permissionAction}),d=p=>{r("click",p)};return()=>c.value?null:e.createVNode(k.Button,e.mergeProps({type:t.type,size:t.size,loading:t.loading,disabled:t.disabled||f.value,danger:t.danger,block:t.block,ghost:t.ghost,shape:t.shape,htmlType:t.htmlType,icon:t.icon},o,{class:["mtn-button",o.class],onClick:d}),{default:()=>{var p;return(p=a.default)==null?void 0:p.call(a)},icon:()=>{var p;return(p=a.icon)==null?void 0:p.call(a)}})}}),oe={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}},U=e.defineComponent({name:"MButtonGroup",props:oe,setup(t,{slots:a,attrs:o}){return()=>e.createVNode(e.Fragment,null,[t.compact?e.createVNode(k.Space.Compact,e.mergeProps({size:t.size,direction:t.vertical?"vertical":"horizontal",block:t.block},o,{class:["mtn-button-group","mtn-button-group--compact",o.class]}),{default:()=>{var r;return[(r=a.default)==null?void 0:r.call(a)]}}):e.createVNode(k.Space,e.mergeProps({size:typeof t.gap=="number"?t.gap:parseInt(t.gap)||8,direction:t.vertical?"vertical":"horizontal"},o,{class:["mtn-button-group","mtn-button-group--normal",o.class]}),{default:()=>{var r;return[(r=a.default)==null?void 0:r.call(a)]}})])}}),ze={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"}},G=e.defineComponent({name:"MDropdownButton",props:ze,emits:["click"],setup(t,{slots:a,attrs:o,emit:r}){const{shouldHide:c,shouldDisable:f}=ne({permission:t.permission,permissionAction:t.permissionAction}),d=e.inject(T.PERMISSION_CHECKER_KEY,e.ref(T.defaultPermissionChecker)),p=y=>{r("click",y)};return()=>{if(c.value)return null;const y={};if(a.overlay)y.overlay=a.overlay;else if(t.menu&&t.menu.length>0){const g=De(t.menu,d.value);y.overlay=()=>e.h(k.Menu,{items:g})}return a.icon&&(y.icon=a.icon),!(a.default||t.text)?e.createVNode(k.Dropdown,e.mergeProps({placement:t.placement,trigger:t.trigger},o,{class:["mtn-dropdown-button",o.class]}),{default:()=>[e.createVNode(k.Button,{type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||f.value,loading:t.loading,danger:t.danger,onClick:p},{default:()=>{var g;return[(g=a.icon)==null?void 0:g.call(a)]}})],...y}):e.createVNode(k.Dropdown.Button,e.mergeProps({type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||f.value,loading:t.loading,danger:t.danger,placement:t.placement,trigger:t.trigger},o,{class:["mtn-dropdown-button",o.class],onClick:p}),{default:()=>{var g;return[((g=a.default)==null?void 0:g.call(a))||t.text]},...y})}}}),Ae={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 Ee(t){return t?t.filter(a=>a.type!==e.Comment&&a.type!==e.Text&&a.type!==Symbol.for("v-fgt")):[]}function Ne(t,a){var o,r;if(t.key!==null&&t.key!==void 0)return typeof t.key=="symbol"?t.key.toString():t.key;if(((o=t.props)==null?void 0:o.key)!==null&&((r=t.props)==null?void 0:r.key)!==void 0){const c=t.props.key;return typeof c=="symbol"?c.toString():c}return`button-${a}`}const H="link",Z="small",Me=150,Ve=e.defineComponent({name:"MActionGroup",inheritAttrs:!1,__name:"action-group",props:Ae,emits:["action-click"],setup(t,{emit:a}){const o=t,r=a,c=e.useSlots(),f=e.useAttrs(),d=e.ref(),p=e.ref(),y=e.ref(),_=e.inject(T.PERMISSION_CHECKER_KEY,e.ref(T.defaultPermissionChecker)),g=e.computed(()=>o.mode==="table"),w=e.computed(()=>g.value?"small":o.size),l=e.computed(()=>g.value?"link":"default"),u=e.computed(()=>g.value?"":o.moreText),x=e.computed(()=>o.moreIcon||F.MoreOutlined);function S(n){return n?_.value(n):!0}const K=e.computed(()=>{var n;return Ee((n=c.default)==null?void 0:n.call(c))}),D=e.shallowRef([]);function q(n){var b,v,B;const s=n.icon&&(n.icon.name||n.icon.__name)||"",i=n.component&&(n.component.name||n.component.__name)||"";return[n.key??"",n.label??"",s,i,Array.isArray(n.permission)?n.permission.join(","):n.permission??"",n.permissionAction??"",String(n.disabled??!1),String(((b=n.componentProps)==null?void 0:b.confirm)??""),String(((v=n.componentProps)==null?void 0:v.showSuccess)??""),String(((B=n.componentProps)==null?void 0:B.danger)??"")].join("|")}e.watch(()=>o.actions,n=>{if(!n){D.value=[];return}if(D.value.length!==n.length){D.value=n;return}const s=n.map(q).join("||"),i=D.value.map(q).join("||");s!==i&&(D.value=n)},{immediate:!0,deep:!1});const j=e.computed(()=>D.value.length?D.value.filter(n=>S(n.permission)):[]),C=e.computed(()=>o.actions?j.value.length:K.value.length),I=e.computed(()=>o.actions?j.value.map((n,s)=>({key:he(n,s),label:n.label||"",icon:n.icon||null,component:ke(n),props:be(n),menuProps:Be(n),handler:()=>Ce(n)})):K.value.filter(n=>{const s=n.props||{};return s.permission&&s.permissionAction==="hide"?S(s.permission):!0}).map((n,s)=>{var v,B;const i=Ne(n,s),m=e.cloneVNode(n,{type:((v=n.props)==null?void 0:v.type)??(g.value?l.value:void 0),size:((B=n.props)==null?void 0:B.size)??w.value}),b=e.cloneVNode(n,{...n.props,type:H,size:Z});return{key:i,label:"",icon:null,component:m,props:{},menuProps:{},handler:null,vnode:m,menuVnode:b}})),W=e.computed(()=>I.value.slice(0,Y.value)),$=e.computed(()=>I.value.slice(Y.value)),pe=e.computed(()=>({size:w.value,compact:o.compact,vertical:o.vertical,block:o.block,...f})),fe=e.computed(()=>({text:u.value,size:w.value,type:l.value,...o.moreProps})),O=e.ref(o.maxItems);function me(){if(!d.value||!p.value||!y.value)return Math.min(o.maxItems,C.value);const n=d.value.clientWidth,s=p.value.querySelectorAll(".measure-item");if(s.length===0)return Math.min(o.maxItems,C.value);const i=C.value,m=[];for(let h=0;h<Math.min(i,s.length);h++)m.push(s[h].offsetWidth);const b=y.value.offsetWidth??0;let v=0,B=0;for(let h=0;h<m.length;h++){const P=m[h],A=v===0?P:v+o.gap+P,E=m.length-(h+1)>0?v===0?b:o.gap+b:0;if(A+E<=n){v=A,B++;continue}break}return Math.max(0,Math.min(B,o.maxItems,i))}const L=()=>{if(o.disableCollapse){O.value=C.value;return}if(C.value<=1){O.value=C.value;return}O.value=me()},z=J.useDebounceFn(()=>{L()},Me),N=(n=!1)=>{n?(typeof z=="function"&&"cancel"in z&&z.cancel(),L()):z()};N.cancel=()=>{typeof z=="function"&&"cancel"in z&&z.cancel()};let M=null;const ye=async()=>{await e.nextTick(),L(),d.value&&typeof ResizeObserver<"u"&&(M=new ResizeObserver(n=>{n[0].contentRect.width>0&&N()}),M.observe(d.value))},ge=()=>{M&&d.value&&M.unobserve(d.value),M=null,"cancel"in N&&N.cancel()};e.onMounted(async()=>{L(),await e.nextTick(),ye()}),e.onUnmounted(()=>{ge()}),e.watch([j,C,()=>o.maxItems,()=>o.gap],async()=>{await e.nextTick(),N(!0)},{deep:!1});const Y=e.computed(()=>o.disableCollapse||C.value<=1?C.value:p.value&&y.value&&d.value?O.value:Math.min(o.maxItems,C.value)),ve=e.computed(()=>o.disableCollapse?!1:$.value.length>0);function ke(n){return n.component||V}function he(n,s){return n.key||n.label||`action-${s}`}function X(n){const{label:s,key:i,onClick:m,permission:b,permissionAction:v,icon:B,component:h,componentProps:P,slot:A,type:R,size:E,disabled:Se,...xe}=n;return{component:h,componentProps:P,type:R,size:E,rest:xe,permission:b,permissionAction:v,disabled:Se}}function be(n){const{component:s,componentProps:i,type:m,rest:b,permission:v,permissionAction:B,disabled:h}=X(n),P={type:m||l.value,size:w.value,disabled:h||!S(v)&&B==="disable",...b};if(s&&i){const A={...P,...i};return g.value&&(A.type="link"),A}return P}function Be(n){const{component:s,componentProps:i,rest:m,permission:b,permissionAction:v,disabled:B}=X(n),h={type:H,size:Z,disabled:B||!S(b)&&v==="disable",...m};if(s&&i){const{type:P,size:A,...R}=i,E={...h,...R};return E.type=H,E}return h}function Ce(n){n.onClick&&n.onClick(n),r("action-click",n)}return(n,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:d,class:"mtn-action-group"},[e.createVNode(e.unref(U),e.normalizeProps(e.guardReactiveProps(pe.value)),{default:e.withCtx(()=>[o.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(W.value,i=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),e.mergeProps({key:i.key,ref_for:!0},i.props,{onClick:i.handler}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.label),1)]),_:2},[i.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),key:"0"}:void 0]),1040,["onClick"]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(W.value,i=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.vnode),{key:i.key}))),128)),ve.value?(e.openBlock(),e.createBlock(e.unref(G),e.normalizeProps(e.mergeProps({key:2},fe.value)),{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.value)))]),overlay:e.withCtx(()=>[e.createVNode(e.unref(k.Menu),null,{default:e.withCtx(()=>[o.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList($.value,i=>(e.openBlock(),e.createBlock(e.unref(k.Menu).Item,{key:i.key},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),e.mergeProps({ref_for:!0},i.menuProps,{onClick:i.handler}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.label),1)]),_:2},[i.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),key:"0"}:void 0]),1040,["onClick"]))]),_:2},1024))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList($.value,i=>(e.openBlock(),e.createBlock(e.unref(k.Menu).Item,{key:i.key},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.menuVnode)))]),_:2},1024))),128))]),_:1})]),_:1},16)):e.createCommentVNode("",!0)]),_:1},16),e.createElementVNode("div",{ref_key:"measureRef",ref:p,class:"mtn-action-group-measure",style:e.normalizeStyle({gap:`${o.gap}px`})},[o.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(I.value,(i,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),e.mergeProps({ref_for:!0},i.props),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.label),1)]),_:2},[i.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),key:"0"}:void 0]),1040))]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(I.value,(i,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.vnode)))]))),128)),e.createElementVNode("span",{ref_key:"moreTriggerRef",ref:y,class:"measure-item"},[e.createVNode(e.unref(G),{text:u.value,size:w.value,type:l.value},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.value)))]),_:1},8,["text","size","type"])],512)],4)],512))}}),re=(t,a)=>{const o=t.__vccOpts||t;for(const[r,c]of a)o[r]=c;return o},ae=re(Ve,[["__scopeId","data-v-29d941f4"]]),_e={...te,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}},Ie=e.defineComponent({name:"MDeleteButton",inheritAttrs:!1,__name:"delete-button",props:_e,emits:["delete","success","error"],setup(t,{emit:a}){const o=a,r=t,c=e.ref(!1),f=e.ref(null),d=e.computed(()=>r.loading!==void 0?r.loading:r.autoLoading?c.value:!1),p=e.computed(()=>typeof r.confirm=="function"?r.confirm(r.count):r.confirm);e.watch(d,l=>{f.value&&e.nextTick(()=>{var u;(u=f.value)==null||u.update({okButtonProps:{loading:l}})})},{flush:"post"}),e.onBeforeUnmount(()=>{f.value&&(f.value.destroy(),f.value=null)});const y=async()=>{try{if(r.beforeDelete&&await r.beforeDelete()===!1)return;r.autoLoading&&r.loading===void 0&&(c.value=!0);let l=!1;const u=()=>{l||(l=!0,r.autoLoading&&r.loading===void 0&&(c.value=!1))};if(r.onDelete){const x=r.onDelete(u);if(x&&typeof x.then=="function")try{const S=await x;l||u(),_(S)}catch(S){throw l||u(),S}}else o("delete",u),r.autoLoading&&r.loading===void 0&&setTimeout(()=>{l||u()},5e3)}catch(l){r.autoLoading&&r.loading===void 0&&(c.value=!1);const u=l instanceof Error?l:new Error(String(l));o("error",u),r.showError&&k.message.error(u.message||"删除失败,请重试")}},_=l=>{r.showSuccess&&k.message.success(r.successText||"删除成功"),o("success",l)},g=r.debounce>0?J.useDebounceFn(y,r.debounce):y,w=()=>{if(!p.value){g();return}if(r.confirmType==="popconfirm")return;const l=()=>{f.value=k.Modal.confirm({title:r.confirmTitle,content:p.value,okText:r.okText,cancelText:r.cancelText,okType:"danger",okButtonProps:{loading:d.value},onOk:async()=>{try{return await y(),new Promise(u=>{if(!d.value){u();return}const x=e.watch(d,S=>{S||(x(),u())})})}catch(u){throw u}},onCancel:()=>{f.value=null},afterClose:()=>{f.value=null}})};e.nextTick(l)};return(l,u)=>p.value&&l.confirmType==="popconfirm"?(e.openBlock(),e.createBlock(e.unref(k.Popconfirm),{key:0,title:p.value,"ok-text":l.okText,"cancel-text":l.cancelText,"ok-button-props":{loading:d.value,danger:!0},onConfirm:e.unref(g)},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"popconfirmIcon",{},()=>[e.createVNode(e.unref(F.ExclamationCircleOutlined),{class:"text-[--color-ant-error]"})],!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(V),e.mergeProps(l.$attrs,{type:l.type,size:l.size,danger:!0,loading:d.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,class:"group"}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[u[0]||(u[0]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(F.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(V),e.mergeProps({key:1},l.$attrs,{type:l.type,size:l.size,danger:!0,loading:d.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,onClick:w}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[u[1]||(u[1]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(F.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"]))}}),ie=re(Ie,[["__scopeId","data-v-a943bc19"]]);var le=(t=>(t.TEXT="text",t.TAG="tag",t.DATE="date",t.DATETIME="dateTime",t.SELECT="select",t.STATUS="status",t.CUSTOM="custom",t))(le||{}),ce=(t=>(t.LEFT="left",t.CENTER="center",t.RIGHT="right",t))(ce||{}),ue=(t=>(t.SMALL="small",t.MIDDLE="middle",t.LARGE="large",t))(ue||{}),se=(t=>(t.CHECKBOX="checkbox",t.RADIO="radio",t))(se||{}),de=(t=>(t.LEFT="left",t.RIGHT="right",t))(de||{});const Oe=[V,U,G,ae,ie,ee,k.Table],Le={install(t){Oe.forEach(a=>{t.component(a.name||"",a)})}};Object.defineProperty(exports,"Table",{enumerable:!0,get:()=>k.Table});exports.ActionGroup=ae;exports.Button=V;exports.ButtonGroup=U;exports.ButtonPositionEnum=de;exports.DeleteButton=ie;exports.DropdownButton=G;exports.TableColumnAlignEnum=ce;exports.TableColumnTypeEnum=le;exports.TableSelectionTypeEnum=se;exports.TableSizeEnum=ue;exports.Tag=ee;exports.buttonGroupProps=oe;exports.default=Le;exports.tagProps=Q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("@mtn-ui/shared"),e=require("vue"),Pe=require("class-variance-authority"),k=require("ant-design-vue"),J=require("@vueuse/core"),F=require("@ant-design/icons-vue"),Q={type:{type:String,default:"default"},color:{type:String}},Te=Pe.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"}}),we=e.defineComponent({name:"MTag",props:Q,setup(t,{slots:a,attrs:o}){return()=>{var c;const{type:r}=t;return e.createVNode("span",{class:T.cn(Te({type:r}),o.class)},[(c=a.default)==null?void 0:c.call(a)])}}}),ee=T.withInstall(we),te={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 ne(t){const{permission:a,permissionAction:o="hide"}=t,r=e.inject(T.PERMISSION_CHECKER_KEY,e.ref(T.defaultPermissionChecker)),c=e.computed(()=>a?r.value(a):!0),f=e.computed(()=>!c.value&&o==="hide"),d=e.computed(()=>!c.value&&o==="disable");return{hasPermission:c,shouldHide:f,shouldDisable:d}}function De(t,a){return t.map(o=>{if(!o||o.type==="divider"||!o.permission)return o;if(!a(o.permission)){const c=o.permissionAction||"hide";if(c==="hide")return null;if(c==="disable")return{...o,disabled:!0}}return o}).filter(Boolean)}const M=e.defineComponent({name:"MButton",props:te,emits:["click"],setup(t,{slots:a,attrs:o,emit:r}){const{shouldHide:c,shouldDisable:f}=ne({permission:t.permission,permissionAction:t.permissionAction}),d=p=>{r("click",p)};return()=>c.value?null:e.createVNode(k.Button,e.mergeProps({type:t.type,size:t.size,loading:t.loading,disabled:t.disabled||f.value,danger:t.danger,block:t.block,ghost:t.ghost,shape:t.shape,htmlType:t.htmlType,icon:t.icon},o,{class:["mtn-button",o.class],onClick:d}),{default:()=>{var p;return(p=a.default)==null?void 0:p.call(a)},icon:()=>{var p;return(p=a.icon)==null?void 0:p.call(a)}})}}),oe={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}},U=e.defineComponent({name:"MButtonGroup",props:oe,setup(t,{slots:a,attrs:o}){return()=>e.createVNode(e.Fragment,null,[t.compact?e.createVNode(k.Space.Compact,e.mergeProps({size:t.size,direction:t.vertical?"vertical":"horizontal",block:t.block},o,{class:["mtn-button-group","mtn-button-group--compact",o.class]}),{default:()=>{var r;return[(r=a.default)==null?void 0:r.call(a)]}}):e.createVNode(k.Space,e.mergeProps({size:typeof t.gap=="number"?t.gap:parseInt(t.gap)||8,direction:t.vertical?"vertical":"horizontal"},o,{class:["mtn-button-group","mtn-button-group--normal",o.class]}),{default:()=>{var r;return[(r=a.default)==null?void 0:r.call(a)]}})])}}),ze={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"}},G=e.defineComponent({name:"MDropdownButton",props:ze,emits:["click"],setup(t,{slots:a,attrs:o,emit:r}){const{shouldHide:c,shouldDisable:f}=ne({permission:t.permission,permissionAction:t.permissionAction}),d=e.inject(T.PERMISSION_CHECKER_KEY,e.ref(T.defaultPermissionChecker)),p=y=>{r("click",y)};return()=>{if(c.value)return null;const y={};if(a.overlay)y.overlay=a.overlay;else if(t.menu&&t.menu.length>0){const g=De(t.menu,d.value);y.overlay=()=>e.h(k.Menu,{items:g})}return a.icon&&(y.icon=a.icon),!(a.default||t.text)?e.createVNode(k.Dropdown,e.mergeProps({placement:t.placement,trigger:t.trigger},o,{class:["mtn-dropdown-button",o.class]}),{default:()=>[e.createVNode(k.Button,{type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||f.value,loading:t.loading,danger:t.danger,onClick:p},{default:()=>{var g;return[(g=a.icon)==null?void 0:g.call(a)]}})],...y}):e.createVNode(k.Dropdown.Button,e.mergeProps({type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||f.value,loading:t.loading,danger:t.danger,placement:t.placement,trigger:t.trigger},o,{class:["mtn-dropdown-button",o.class],onClick:p}),{default:()=>{var g;return[((g=a.default)==null?void 0:g.call(a))||t.text]},...y})}}}),Ae={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 Ee(t){return t?t.filter(a=>a.type!==e.Comment&&a.type!==e.Text&&a.type!==Symbol.for("v-fgt")):[]}function Ne(t,a){var o,r;if(t.key!==null&&t.key!==void 0)return typeof t.key=="symbol"?t.key.toString():t.key;if(((o=t.props)==null?void 0:o.key)!==null&&((r=t.props)==null?void 0:r.key)!==void 0){const c=t.props.key;return typeof c=="symbol"?c.toString():c}return`button-${a}`}const H="link",Z="small",_e=150,Me=e.defineComponent({name:"MActionGroup",inheritAttrs:!1,__name:"action-group",props:Ae,emits:["action-click"],setup(t,{emit:a}){const o=t,r=a,c=e.useSlots(),f=e.useAttrs(),d=e.ref(),p=e.ref(),y=e.ref(),V=e.inject(T.PERMISSION_CHECKER_KEY,e.ref(T.defaultPermissionChecker)),g=e.computed(()=>o.mode==="table"),w=e.computed(()=>g.value?"small":o.size),l=e.computed(()=>g.value?"link":"default"),u=e.computed(()=>g.value?"":o.moreText),x=e.computed(()=>o.moreIcon||F.MoreOutlined);function S(n){return n?V.value(n):!0}const K=e.computed(()=>{var n;return Ee((n=c.default)==null?void 0:n.call(c))}),D=e.shallowRef([]);function q(n){var b,v,B;const s=n.icon&&(n.icon.name||n.icon.__name)||"",i=n.component&&(n.component.name||n.component.__name)||"";return[n.key??"",n.label??"",s,i,Array.isArray(n.permission)?n.permission.join(","):n.permission??"",n.permissionAction??"",String(n.disabled??!1),String(((b=n.componentProps)==null?void 0:b.confirm)??""),String(((v=n.componentProps)==null?void 0:v.showSuccess)??""),String(((B=n.componentProps)==null?void 0:B.danger)??"")].join("|")}e.watch(()=>o.actions,n=>{if(!n){D.value=[];return}if(D.value.length!==n.length){D.value=n;return}const s=n.map(q).join("||"),i=D.value.map(q).join("||");s!==i&&(D.value=n)},{immediate:!0,deep:!1});const j=e.computed(()=>D.value.length?D.value.filter(n=>S(n.permission)):[]),C=e.computed(()=>o.actions?j.value.length:K.value.length),I=e.computed(()=>o.actions?j.value.map((n,s)=>({key:he(n,s),label:n.label||"",icon:n.icon||null,component:ke(n),props:be(n),menuProps:Be(n),handler:()=>Ce(n)})):K.value.filter(n=>{const s=n.props||{};return s.permission&&s.permissionAction==="hide"?S(s.permission):!0}).map((n,s)=>{var v,B;const i=Ne(n,s),m=e.cloneVNode(n,{type:((v=n.props)==null?void 0:v.type)??(g.value?l.value:void 0),size:((B=n.props)==null?void 0:B.size)??w.value}),b=e.cloneVNode(n,{...n.props,type:H,size:Z});return{key:i,label:"",icon:null,component:m,props:{},menuProps:{},handler:null,vnode:m,menuVnode:b}})),W=e.computed(()=>I.value.slice(0,Y.value)),$=e.computed(()=>I.value.slice(Y.value)),pe=e.computed(()=>({size:w.value,compact:o.compact,vertical:o.vertical,block:o.block,...f})),fe=e.computed(()=>({text:u.value,size:w.value,type:l.value,...o.moreProps})),O=e.ref(o.maxItems);function me(){if(!d.value||!p.value||!y.value)return Math.min(o.maxItems,C.value);const n=d.value.clientWidth,s=p.value.querySelectorAll(".measure-item");if(s.length===0)return Math.min(o.maxItems,C.value);const i=C.value,m=[];for(let h=0;h<Math.min(i,s.length);h++)m.push(s[h].offsetWidth);const b=y.value.offsetWidth??0;let v=0,B=0;for(let h=0;h<m.length;h++){const P=m[h],A=v===0?P:v+o.gap+P,E=m.length-(h+1)>0?v===0?b:o.gap+b:0;if(A+E<=n){v=A,B++;continue}break}return Math.max(0,Math.min(B,o.maxItems,i))}const L=()=>{if(o.disableCollapse){O.value=C.value;return}if(C.value<=1){O.value=C.value;return}O.value=me()},z=J.useDebounceFn(()=>{L()},_e),N=(n=!1)=>{n?(typeof z=="function"&&"cancel"in z&&z.cancel(),L()):z()};N.cancel=()=>{typeof z=="function"&&"cancel"in z&&z.cancel()};let _=null;const ye=async()=>{await e.nextTick(),L(),d.value&&typeof ResizeObserver<"u"&&(_=new ResizeObserver(n=>{n[0].contentRect.width>0&&N()}),_.observe(d.value))},ge=()=>{_&&d.value&&_.unobserve(d.value),_=null,"cancel"in N&&N.cancel()};e.onMounted(async()=>{L(),await e.nextTick(),ye()}),e.onUnmounted(()=>{ge()}),e.watch([j,C,()=>o.maxItems,()=>o.gap],async()=>{await e.nextTick(),N(!0)},{deep:!1});const Y=e.computed(()=>o.disableCollapse||C.value<=1?C.value:p.value&&y.value&&d.value?O.value:Math.min(o.maxItems,C.value)),ve=e.computed(()=>o.disableCollapse?!1:$.value.length>0);function ke(n){return n.component||M}function he(n,s){return n.key||n.label||`action-${s}`}function X(n){const{label:s,key:i,onClick:m,permission:b,permissionAction:v,icon:B,component:h,componentProps:P,slot:A,type:R,size:E,disabled:Se,...xe}=n;return{component:h,componentProps:P,type:R,size:E,rest:xe,permission:b,permissionAction:v,disabled:Se}}function be(n){const{component:s,componentProps:i,type:m,rest:b,permission:v,permissionAction:B,disabled:h}=X(n),P={type:m||l.value,size:w.value,disabled:h||!S(v)&&B==="disable",...b};if(s&&i){const A={...P,...i};return g.value&&(A.type="link"),A}return P}function Be(n){const{component:s,componentProps:i,rest:m,permission:b,permissionAction:v,disabled:B}=X(n),h={type:H,size:Z,disabled:B||!S(b)&&v==="disable",...m};if(s&&i){const{type:P,size:A,...R}=i,E={...h,...R};return E.type=H,E}return h}function Ce(n){n.onClick&&n.onClick(n),r("action-click",n)}return(n,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:d,class:"mtn-action-group"},[e.createVNode(e.unref(U),e.normalizeProps(e.guardReactiveProps(pe.value)),{default:e.withCtx(()=>[o.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(W.value,i=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),e.mergeProps({key:i.key,ref_for:!0},i.props,{onClick:i.handler}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.label),1)]),_:2},[i.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),key:"0"}:void 0]),1040,["onClick"]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(W.value,i=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.vnode),{key:i.key}))),128)),ve.value?(e.openBlock(),e.createBlock(e.unref(G),e.normalizeProps(e.mergeProps({key:2},fe.value)),{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.value)))]),overlay:e.withCtx(()=>[e.createVNode(e.unref(k.Menu),null,{default:e.withCtx(()=>[o.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList($.value,i=>(e.openBlock(),e.createBlock(e.unref(k.Menu).Item,{key:i.key},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),e.mergeProps({ref_for:!0},i.menuProps,{onClick:i.handler}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.label),1)]),_:2},[i.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),key:"0"}:void 0]),1040,["onClick"]))]),_:2},1024))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList($.value,i=>(e.openBlock(),e.createBlock(e.unref(k.Menu).Item,{key:i.key},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.menuVnode)))]),_:2},1024))),128))]),_:1})]),_:1},16)):e.createCommentVNode("",!0)]),_:1},16),e.createElementVNode("div",{ref_key:"measureRef",ref:p,class:"mtn-action-group-measure",style:e.normalizeStyle({gap:`${o.gap}px`})},[o.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(I.value,(i,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),e.mergeProps({ref_for:!0},i.props),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.label),1)]),_:2},[i.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),key:"0"}:void 0]),1040))]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(I.value,(i,m)=>(e.openBlock(),e.createElementBlock("span",{key:m,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.vnode)))]))),128)),e.createElementVNode("span",{ref_key:"moreTriggerRef",ref:y,class:"measure-item"},[e.createVNode(e.unref(G),{text:u.value,size:w.value,type:l.value},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.value)))]),_:1},8,["text","size","type"])],512)],4)],512))}}),re=(t,a)=>{const o=t.__vccOpts||t;for(const[r,c]of a)o[r]=c;return o},ae=re(Me,[["__scopeId","data-v-29d941f4"]]),Ve={...te,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}},Ie=e.defineComponent({name:"MDeleteButton",inheritAttrs:!1,__name:"delete-button",props:Ve,emits:["delete","success","error"],setup(t,{emit:a}){const o=a,r=t,c=e.ref(!1),f=e.ref(null),d=e.computed(()=>r.loading!==void 0?r.loading:r.autoLoading?c.value:!1),p=e.computed(()=>typeof r.confirm=="function"?r.confirm(r.count):r.confirm);e.watch(d,l=>{f.value&&e.nextTick(()=>{var u;(u=f.value)==null||u.update({okButtonProps:{loading:l}})})},{flush:"post"}),e.onBeforeUnmount(()=>{f.value&&(f.value.destroy(),f.value=null)});const y=async()=>{try{if(r.beforeDelete&&await r.beforeDelete()===!1)return;r.autoLoading&&r.loading===void 0&&(c.value=!0);let l=!1;const u=()=>{l||(l=!0,r.autoLoading&&r.loading===void 0&&(c.value=!1))};if(r.onDelete){const x=r.onDelete(u);if(x&&typeof x.then=="function")try{const S=await x;l||u(),V(S)}catch(S){throw l||u(),S}}else o("delete",u),r.autoLoading&&r.loading===void 0&&setTimeout(()=>{l||u()},5e3)}catch(l){r.autoLoading&&r.loading===void 0&&(c.value=!1);const u=l instanceof Error?l:new Error(String(l));o("error",u),r.showError&&k.message.error(u.message||"删除失败,请重试")}},V=l=>{r.showSuccess&&k.message.success(r.successText||"删除成功"),o("success",l)},g=r.debounce>0?J.useDebounceFn(y,r.debounce):y,w=()=>{if(!p.value){g();return}if(r.confirmType==="popconfirm")return;const l=()=>{f.value=k.Modal.confirm({title:r.confirmTitle,content:p.value,okText:r.okText,cancelText:r.cancelText,okType:"danger",okButtonProps:{loading:d.value},onOk:async()=>{try{return await y(),new Promise(u=>{if(!d.value){u();return}const x=e.watch(d,S=>{S||(x(),u())})})}catch(u){throw u}},onCancel:()=>{f.value=null},afterClose:()=>{f.value=null}})};e.nextTick(l)};return(l,u)=>p.value&&l.confirmType==="popconfirm"?(e.openBlock(),e.createBlock(e.unref(k.Popconfirm),{key:0,title:p.value,"ok-text":l.okText,"cancel-text":l.cancelText,"ok-button-props":{loading:d.value,danger:!0},onConfirm:e.unref(g)},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"popconfirmIcon",{},()=>[e.createVNode(e.unref(F.ExclamationCircleOutlined),{class:"text-[--color-ant-error]"})],!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(M),e.mergeProps(l.$attrs,{type:l.type,size:l.size,danger:!0,loading:d.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,class:"group"}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[u[0]||(u[0]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(F.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(M),e.mergeProps({key:1},l.$attrs,{type:l.type,size:l.size,danger:!0,loading:d.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,onClick:w}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[u[1]||(u[1]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(F.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"]))}}),ie=re(Ie,[["__scopeId","data-v-a943bc19"]]);var le=(t=>(t.TEXT="text",t.TAG="tag",t.DATE="date",t.DATETIME="dateTime",t.SELECT="select",t.STATUS="status",t.CUSTOM="custom",t))(le||{}),ce=(t=>(t.LEFT="left",t.CENTER="center",t.RIGHT="right",t))(ce||{}),ue=(t=>(t.SMALL="small",t.MIDDLE="middle",t.LARGE="large",t))(ue||{}),se=(t=>(t.CHECKBOX="checkbox",t.RADIO="radio",t))(se||{}),de=(t=>(t.LEFT="left",t.RIGHT="right",t))(de||{});const Oe=[M,U,G,ae,ie,ee,k.Table],Le={install(t){Oe.forEach(a=>{const o=a.name||a.__name;if(o){const r=t._context.components;(!r||!r[o])&&t.component(o,a)}})}};Object.defineProperty(exports,"Table",{enumerable:!0,get:()=>k.Table});exports.ActionGroup=ae;exports.Button=M;exports.ButtonGroup=U;exports.ButtonPositionEnum=de;exports.DeleteButton=ie;exports.DropdownButton=G;exports.TableColumnAlignEnum=ce;exports.TableColumnTypeEnum=le;exports.TableSelectionTypeEnum=se;exports.TableSizeEnum=ue;exports.Tag=ee;exports.buttonGroupProps=oe;exports.default=Le;exports.tagProps=Q;
package/dist/index.js CHANGED
@@ -1,35 +1,39 @@
1
- import { Tag as r } from "./data-display/tag/index.js";
1
+ import { Tag as e } from "./data-display/tag/index.js";
2
2
  import m from "./antd-wrapped/button/button.js";
3
- import n from "./antd-wrapped/button-group/button-group.js";
4
- import { buttonGroupProps as g } from "./antd-wrapped/button-group/props.js";
5
- import e from "./antd-wrapped/dropdown-button/dropdown-button.js";
6
- import p from "./antd-wrapped/action-group/action-group.vue.js";
7
- import u from "./antd-wrapped/delete-button/delete-button.vue.js";
8
- import { Table as i } from "ant-design-vue";
9
- import { Table as P } from "ant-design-vue";
10
- import { ButtonPositionEnum as A, TableColumnAlignEnum as C, TableColumnTypeEnum as D, TableSelectionTypeEnum as S, TableSizeEnum as h } from "./antd-wrapped/table/table.js";
11
- import { tagProps as z } from "./data-display/tag/props.js";
12
- const l = [m, n, e, p, u, r, i], E = {
13
- install(t) {
3
+ import p from "./antd-wrapped/button-group/button-group.js";
4
+ import { buttonGroupProps as G } from "./antd-wrapped/button-group/props.js";
5
+ import i from "./antd-wrapped/dropdown-button/dropdown-button.js";
6
+ import u from "./antd-wrapped/action-group/action-group.vue.js";
7
+ import f from "./antd-wrapped/delete-button/delete-button.vue.js";
8
+ import { Table as a } from "ant-design-vue";
9
+ import { Table as _ } from "ant-design-vue";
10
+ import { ButtonPositionEnum as A, TableColumnAlignEnum as D, TableColumnTypeEnum as S, TableSelectionTypeEnum as h, TableSizeEnum as w } from "./antd-wrapped/table/table.js";
11
+ import { tagProps as j } from "./data-display/tag/props.js";
12
+ const l = [m, p, i, u, f, e, a], d = {
13
+ install(n) {
14
14
  l.forEach((o) => {
15
- t.component(o.name || "", o);
15
+ const t = o.name || o.__name;
16
+ if (t) {
17
+ const r = n._context.components;
18
+ (!r || !r[t]) && n.component(t, o);
19
+ }
16
20
  });
17
21
  }
18
22
  };
19
23
  export {
20
- p as ActionGroup,
24
+ u as ActionGroup,
21
25
  m as Button,
22
- n as ButtonGroup,
26
+ p as ButtonGroup,
23
27
  A as ButtonPositionEnum,
24
- u as DeleteButton,
25
- e as DropdownButton,
26
- P as Table,
27
- C as TableColumnAlignEnum,
28
- D as TableColumnTypeEnum,
29
- S as TableSelectionTypeEnum,
30
- h as TableSizeEnum,
31
- r as Tag,
32
- g as buttonGroupProps,
33
- E as default,
34
- z as tagProps
28
+ f as DeleteButton,
29
+ i as DropdownButton,
30
+ _ as Table,
31
+ D as TableColumnAlignEnum,
32
+ S as TableColumnTypeEnum,
33
+ h as TableSelectionTypeEnum,
34
+ w as TableSizeEnum,
35
+ e as Tag,
36
+ G as buttonGroupProps,
37
+ d as default,
38
+ j as tagProps
35
39
  };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { cn as Ue, withInstall as je, PERMISSION_CHECKER_KEY as le, defaultPermissionChecker as se } from "@mtn-ui/shared";
2
- import { defineComponent as G, createVNode as B, inject as ue, ref as D, computed as p, mergeProps as x, Fragment as R, h as Fe, Comment as He, Text as Ke, useSlots as We, useAttrs as Ye, shallowRef as Xe, watch as ee, cloneVNode as ye, onMounted as qe, nextTick as H, onUnmounted as Ze, createElementBlock as M, openBlock as s, createElementVNode as ge, unref as P, normalizeProps as ve, guardReactiveProps as Je, withCtx as m, createBlock as h, createCommentVNode as Qe, renderList as $, resolveDynamicComponent as A, createSlots as K, createTextVNode as W, toDisplayString as re, normalizeStyle as et, onBeforeUnmount as tt, renderSlot as F } from "vue";
2
+ import { defineComponent as G, createVNode as B, inject as ue, ref as M, computed as p, mergeProps as x, Fragment as R, h as Fe, Comment as He, Text as Ke, useSlots as We, useAttrs as Ye, shallowRef as Xe, watch as ee, cloneVNode as ye, onMounted as qe, nextTick as H, onUnmounted as Ze, createElementBlock as I, openBlock as s, createElementVNode as ge, unref as P, normalizeProps as ve, guardReactiveProps as Je, withCtx as m, createBlock as h, createCommentVNode as Qe, renderList as $, resolveDynamicComponent as A, createSlots as K, createTextVNode as W, toDisplayString as re, normalizeStyle as et, onBeforeUnmount as tt, renderSlot as F } from "vue";
3
3
  import { cva as nt } from "class-variance-authority";
4
4
  import { Button as ze, Space as be, Dropdown as ke, Menu as Q, Popconfirm as ot, message as he, Modal as rt, Table as at } from "ant-design-vue";
5
5
  import { Table as Vt } from "ant-design-vue";
@@ -107,7 +107,7 @@ const st = {
107
107
  }
108
108
  };
109
109
  function Te(e) {
110
- const { permission: r, permissionAction: n = "hide" } = e, o = ue(le, D(se)), l = p(() => r ? o.value(r) : !0), y = p(() => !l.value && n === "hide"), d = p(() => !l.value && n === "disable");
110
+ const { permission: r, permissionAction: n = "hide" } = e, o = ue(le, M(se)), l = p(() => r ? o.value(r) : !0), y = p(() => !l.value && n === "hide"), d = p(() => !l.value && n === "disable");
111
111
  return {
112
112
  hasPermission: l,
113
113
  shouldHide: y,
@@ -304,7 +304,7 @@ const te = /* @__PURE__ */ G({
304
304
  } = Te({
305
305
  permission: e.permission,
306
306
  permissionAction: e.permissionAction
307
- }), d = ue(le, D(se)), f = (v) => {
307
+ }), d = ue(le, M(se)), f = (v) => {
308
308
  o("click", v);
309
309
  };
310
310
  return () => {
@@ -470,8 +470,8 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
470
470
  props: yt,
471
471
  emits: ["action-click"],
472
472
  setup(e, { emit: r }) {
473
- const n = e, o = r, l = We(), y = Ye(), d = D(), f = D(), v = D(), Y = ue(le, D(se)), b = p(() => n.mode === "table"), E = p(() => b.value ? "small" : n.size), i = p(() => b.value ? "link" : "default"), u = p(() => b.value ? "" : n.moreText), I = p(() => n.moreIcon || it);
474
- function w(t) {
473
+ const n = e, o = r, l = We(), y = Ye(), d = M(), f = M(), v = M(), Y = ue(le, M(se)), b = p(() => n.mode === "table"), E = p(() => b.value ? "small" : n.size), i = p(() => b.value ? "link" : "default"), u = p(() => b.value ? "" : n.moreText), w = p(() => n.moreIcon || it);
474
+ function _(t) {
475
475
  return t ? Y.value(t) : !0;
476
476
  }
477
477
  const ce = p(() => {
@@ -510,7 +510,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
510
510
  },
511
511
  { immediate: !0, deep: !1 }
512
512
  );
513
- const ne = p(() => O.value.length ? O.value.filter((t) => w(t.permission)) : []), T = p(() => n.actions ? ne.value.length : ce.value.length), X = p(() => n.actions ? ne.value.map((t, c) => ({
513
+ const ne = p(() => O.value.length ? O.value.filter((t) => _(t.permission)) : []), T = p(() => n.actions ? ne.value.length : ce.value.length), X = p(() => n.actions ? ne.value.map((t, c) => ({
514
514
  key: Le(t, c),
515
515
  label: t.label || "",
516
516
  icon: t.icon || null,
@@ -520,7 +520,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
520
520
  handler: () => Ve(t)
521
521
  })) : ce.value.filter((t) => {
522
522
  const c = t.props || {};
523
- return c.permission && c.permissionAction === "hide" ? w(c.permission) : !0;
523
+ return c.permission && c.permissionAction === "hide" ? _(c.permission) : !0;
524
524
  }).map((t, c) => {
525
525
  var k, C;
526
526
  const a = vt(t, c), g = ye(t, {
@@ -548,19 +548,19 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
548
548
  menuVnode: z
549
549
  // 保存菜单模式的 vnode
550
550
  };
551
- })), fe = p(() => X.value.slice(0, pe.value)), oe = p(() => X.value.slice(pe.value)), we = p(() => ({
551
+ })), fe = p(() => X.value.slice(0, pe.value)), oe = p(() => X.value.slice(pe.value)), _e = p(() => ({
552
552
  size: E.value,
553
553
  compact: n.compact,
554
554
  vertical: n.vertical,
555
555
  block: n.block,
556
556
  ...y
557
- })), Ie = p(() => ({
557
+ })), we = p(() => ({
558
558
  text: u.value,
559
559
  size: E.value,
560
560
  type: i.value,
561
561
  ...n.moreProps
562
- })), q = D(n.maxItems);
563
- function Me() {
562
+ })), q = M(n.maxItems);
563
+ function Ie() {
564
564
  if (!d.value || !f.value || !v.value)
565
565
  return Math.min(n.maxItems, T.value);
566
566
  const t = d.value.clientWidth, c = f.value.querySelectorAll(".measure-item");
@@ -571,7 +571,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
571
571
  const z = v.value.offsetWidth ?? 0;
572
572
  let k = 0, C = 0;
573
573
  for (let S = 0; S < g.length; S++) {
574
- const _ = g[S], N = k === 0 ? _ : k + n.gap + _, V = g.length - (S + 1) > 0 ? k === 0 ? z : n.gap + z : 0;
574
+ const D = g[S], N = k === 0 ? D : k + n.gap + D, V = g.length - (S + 1) > 0 ? k === 0 ? z : n.gap + z : 0;
575
575
  if (N + V <= t) {
576
576
  k = N, C++;
577
577
  continue;
@@ -589,7 +589,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
589
589
  q.value = T.value;
590
590
  return;
591
591
  }
592
- q.value = Me();
592
+ q.value = Ie();
593
593
  }, L = Ce(() => {
594
594
  Z();
595
595
  }, bt), U = (t = !1) => {
@@ -599,17 +599,17 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
599
599
  typeof L == "function" && "cancel" in L && L.cancel();
600
600
  };
601
601
  let j = null;
602
- const De = async () => {
602
+ const Me = async () => {
603
603
  await H(), Z(), d.value && typeof ResizeObserver < "u" && (j = new ResizeObserver((t) => {
604
604
  t[0].contentRect.width > 0 && U();
605
605
  }), j.observe(d.value));
606
- }, _e = () => {
606
+ }, De = () => {
607
607
  j && d.value && j.unobserve(d.value), j = null, "cancel" in U && U.cancel();
608
608
  };
609
609
  qe(async () => {
610
- Z(), await H(), De();
610
+ Z(), await H(), Me();
611
611
  }), Ze(() => {
612
- _e();
612
+ De();
613
613
  }), ee(
614
614
  [ne, T, () => n.maxItems, () => n.gap],
615
615
  async () => {
@@ -633,7 +633,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
633
633
  permissionAction: k,
634
634
  icon: C,
635
635
  component: S,
636
- componentProps: _,
636
+ componentProps: D,
637
637
  slot: N,
638
638
  type: J,
639
639
  size: V,
@@ -642,7 +642,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
642
642
  } = t;
643
643
  return {
644
644
  component: S,
645
- componentProps: _,
645
+ componentProps: D,
646
646
  type: J,
647
647
  size: V,
648
648
  rest: Ge,
@@ -652,27 +652,27 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
652
652
  };
653
653
  }
654
654
  function Ne(t) {
655
- const { component: c, componentProps: a, type: g, rest: z, permission: k, permissionAction: C, disabled: S } = me(t), _ = {
655
+ const { component: c, componentProps: a, type: g, rest: z, permission: k, permissionAction: C, disabled: S } = me(t), D = {
656
656
  type: g || i.value,
657
657
  size: E.value,
658
- disabled: S || !w(k) && C === "disable",
658
+ disabled: S || !_(k) && C === "disable",
659
659
  ...z
660
660
  };
661
661
  if (c && a) {
662
- const N = { ..._, ...a };
662
+ const N = { ...D, ...a };
663
663
  return b.value && (N.type = "link"), N;
664
664
  }
665
- return _;
665
+ return D;
666
666
  }
667
667
  function Re(t) {
668
668
  const { component: c, componentProps: a, rest: g, permission: z, permissionAction: k, disabled: C } = me(t), S = {
669
669
  type: ae,
670
670
  size: Be,
671
- disabled: C || !w(z) && k === "disable",
671
+ disabled: C || !_(z) && k === "disable",
672
672
  ...g
673
673
  };
674
674
  if (c && a) {
675
- const { type: _, size: N, ...J } = a, V = { ...S, ...J };
675
+ const { type: D, size: N, ...J } = a, V = { ...S, ...J };
676
676
  return V.type = ae, V;
677
677
  }
678
678
  return S;
@@ -680,14 +680,14 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
680
680
  function Ve(t) {
681
681
  t.onClick && t.onClick(t), o("action-click", t);
682
682
  }
683
- return (t, c) => (s(), M("div", {
683
+ return (t, c) => (s(), I("div", {
684
684
  ref_key: "containerRef",
685
685
  ref: d,
686
686
  class: "mtn-action-group"
687
687
  }, [
688
- B(P(Ae), ve(Je(we.value)), {
688
+ B(P(Ae), ve(Je(_e.value)), {
689
689
  default: m(() => [
690
- n.actions ? (s(!0), M(R, { key: 0 }, $(fe.value, (a) => (s(), h(A(a.component), x({
690
+ n.actions ? (s(!0), I(R, { key: 0 }, $(fe.value, (a) => (s(), h(A(a.component), x({
691
691
  key: a.key,
692
692
  ref_for: !0
693
693
  }, a.props, {
@@ -705,17 +705,17 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
705
705
  ]),
706
706
  key: "0"
707
707
  } : void 0
708
- ]), 1040, ["onClick"]))), 128)) : (s(!0), M(R, { key: 1 }, $(fe.value, (a) => (s(), h(A(a.vnode), {
708
+ ]), 1040, ["onClick"]))), 128)) : (s(!0), I(R, { key: 1 }, $(fe.value, (a) => (s(), h(A(a.vnode), {
709
709
  key: a.key
710
710
  }))), 128)),
711
- Ee.value ? (s(), h(P(ie), ve(x({ key: 2 }, Ie.value)), {
711
+ Ee.value ? (s(), h(P(ie), ve(x({ key: 2 }, we.value)), {
712
712
  icon: m(() => [
713
- (s(), h(A(I.value)))
713
+ (s(), h(A(w.value)))
714
714
  ]),
715
715
  overlay: m(() => [
716
716
  B(P(Q), null, {
717
717
  default: m(() => [
718
- n.actions ? (s(!0), M(R, { key: 0 }, $(oe.value, (a) => (s(), h(P(Q).Item, {
718
+ n.actions ? (s(!0), I(R, { key: 0 }, $(oe.value, (a) => (s(), h(P(Q).Item, {
719
719
  key: a.key
720
720
  }, {
721
721
  default: m(() => [
@@ -737,7 +737,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
737
737
  ]), 1040, ["onClick"]))
738
738
  ]),
739
739
  _: 2
740
- }, 1024))), 128)) : (s(!0), M(R, { key: 1 }, $(oe.value, (a) => (s(), h(P(Q).Item, {
740
+ }, 1024))), 128)) : (s(!0), I(R, { key: 1 }, $(oe.value, (a) => (s(), h(P(Q).Item, {
741
741
  key: a.key
742
742
  }, {
743
743
  default: m(() => [
@@ -760,7 +760,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
760
760
  class: "mtn-action-group-measure",
761
761
  style: et({ gap: `${n.gap}px` })
762
762
  }, [
763
- n.actions ? (s(!0), M(R, { key: 0 }, $(X.value, (a, g) => (s(), M("span", {
763
+ n.actions ? (s(!0), I(R, { key: 0 }, $(X.value, (a, g) => (s(), I("span", {
764
764
  key: g,
765
765
  class: "measure-item"
766
766
  }, [
@@ -778,7 +778,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
778
778
  key: "0"
779
779
  } : void 0
780
780
  ]), 1040))
781
- ]))), 128)) : (s(!0), M(R, { key: 1 }, $(X.value, (a, g) => (s(), M("span", {
781
+ ]))), 128)) : (s(!0), I(R, { key: 1 }, $(X.value, (a, g) => (s(), I("span", {
782
782
  key: g,
783
783
  class: "measure-item"
784
784
  }, [
@@ -795,7 +795,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
795
795
  type: i.value
796
796
  }, {
797
797
  icon: m(() => [
798
- (s(), h(A(I.value)))
798
+ (s(), h(A(w.value)))
799
799
  ]),
800
800
  _: 1
801
801
  }, 8, ["text", "size", "type"])
@@ -893,7 +893,7 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
893
893
  props: St,
894
894
  emits: ["delete", "success", "error"],
895
895
  setup(e, { emit: r }) {
896
- const n = r, o = e, l = D(!1), y = D(null), d = p(() => o.loading !== void 0 ? o.loading : o.autoLoading ? l.value : !1), f = p(() => typeof o.confirm == "function" ? o.confirm(o.count) : o.confirm);
896
+ const n = r, o = e, l = M(!1), y = M(null), d = p(() => o.loading !== void 0 ? o.loading : o.autoLoading ? l.value : !1), f = p(() => typeof o.confirm == "function" ? o.confirm(o.count) : o.confirm);
897
897
  ee(d, (i) => {
898
898
  y.value && H(() => {
899
899
  var u;
@@ -914,13 +914,13 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
914
914
  i || (i = !0, o.autoLoading && o.loading === void 0 && (l.value = !1));
915
915
  };
916
916
  if (o.onDelete) {
917
- const I = o.onDelete(u);
918
- if (I && typeof I.then == "function")
917
+ const w = o.onDelete(u);
918
+ if (w && typeof w.then == "function")
919
919
  try {
920
- const w = await I;
921
- i || u(), Y(w);
922
- } catch (w) {
923
- throw i || u(), w;
920
+ const _ = await w;
921
+ i || u(), Y(_);
922
+ } catch (_) {
923
+ throw i || u(), _;
924
924
  }
925
925
  } else
926
926
  n("delete", u), o.autoLoading && o.loading === void 0 && setTimeout(() => {
@@ -954,8 +954,8 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
954
954
  u();
955
955
  return;
956
956
  }
957
- const I = ee(d, (w) => {
958
- w || (I(), u());
957
+ const w = ee(d, (_) => {
958
+ _ || (w(), u());
959
959
  });
960
960
  });
961
961
  } catch (u) {
@@ -1044,10 +1044,14 @@ const ae = "link", Be = "small", bt = 150, kt = /* @__PURE__ */ G({
1044
1044
  }
1045
1045
  }), zt = /* @__PURE__ */ xe(Bt, [["__scopeId", "data-v-a943bc19"]]);
1046
1046
  var Ct = /* @__PURE__ */ ((e) => (e.TEXT = "text", e.TAG = "tag", e.DATE = "date", e.DATETIME = "dateTime", e.SELECT = "select", e.STATUS = "status", e.CUSTOM = "custom", e))(Ct || {}), Pt = /* @__PURE__ */ ((e) => (e.LEFT = "left", e.CENTER = "center", e.RIGHT = "right", e))(Pt || {}), Tt = /* @__PURE__ */ ((e) => (e.SMALL = "small", e.MIDDLE = "middle", e.LARGE = "large", e))(Tt || {}), At = /* @__PURE__ */ ((e) => (e.CHECKBOX = "checkbox", e.RADIO = "radio", e))(At || {}), xt = /* @__PURE__ */ ((e) => (e.LEFT = "left", e.RIGHT = "right", e))(xt || {});
1047
- const wt = [te, Ae, ie, ht, zt, dt, at], Lt = {
1047
+ const _t = [te, Ae, ie, ht, zt, dt, at], Lt = {
1048
1048
  install(e) {
1049
- wt.forEach((r) => {
1050
- e.component(r.name || "", r);
1049
+ _t.forEach((r) => {
1050
+ const n = r.name || r.__name;
1051
+ if (n) {
1052
+ const o = e._context.components;
1053
+ (!o || !o[n]) && e.component(n, r);
1054
+ }
1051
1055
  });
1052
1056
  }
1053
1057
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mtn-ui/components",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "type": "module",
5
5
  "description": "Core components for mtn-ui",
6
6
  "main": "./dist/index.cjs",