@mtn-ui/components 1.0.4 → 1.0.6
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 +1 -1
- package/dist/antd-wrapped/action-group/action-group.vue2.js +113 -109
- 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 +232 -224
- package/package.json +4 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./action-group.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const _ = /* @__PURE__ */ t(o, [["__scopeId", "data-v-
|
|
4
|
+
const _ = /* @__PURE__ */ t(o, [["__scopeId", "data-v-6b35de38"]]);
|
|
5
5
|
export {
|
|
6
6
|
_ as default
|
|
7
7
|
};
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import { defineComponent as ve, useSlots as
|
|
1
|
+
import { defineComponent as ve, useSlots as ye, ref as I, inject as ke, computed as s, createElementBlock as f, openBlock as o, createVNode as W, createElementVNode as L, unref as d, mergeProps as z, withCtx as u, createBlock as l, createCommentVNode as he, Fragment as g, renderList as _, resolveDynamicComponent as m, createSlots as D, createTextVNode as V, toDisplayString as $, cloneVNode as Z } from "vue";
|
|
2
2
|
import { useElementSize as ge } from "@vueuse/core";
|
|
3
|
-
import { MoreOutlined as
|
|
3
|
+
import { MoreOutlined as _e } from "@ant-design/icons-vue";
|
|
4
4
|
import { Menu as K } from "ant-design-vue";
|
|
5
|
-
import
|
|
5
|
+
import Ce from "../button/button.js";
|
|
6
6
|
import be from "../button-group/button-group.js";
|
|
7
|
-
import
|
|
7
|
+
import J from "../dropdown-button/dropdown-button.js";
|
|
8
8
|
import { actionGroupProps as Ae } from "./props.js";
|
|
9
|
-
import { PERMISSION_CHECKER_KEY as
|
|
10
|
-
import { filterValidChildren as Be, getButtonKey as
|
|
11
|
-
const
|
|
9
|
+
import { PERMISSION_CHECKER_KEY as Pe, defaultPermissionChecker as ze } from "@mtn-ui/shared";
|
|
10
|
+
import { filterValidChildren as Be, getButtonKey as Q } from "./utils.js";
|
|
11
|
+
const X = "link", ee = "small", Ve = /* @__PURE__ */ ve({
|
|
12
12
|
name: "MActionGroup",
|
|
13
13
|
inheritAttrs: !1,
|
|
14
14
|
__name: "action-group",
|
|
15
15
|
props: Ae,
|
|
16
16
|
emits: ["action-click"],
|
|
17
|
-
setup(
|
|
18
|
-
const n =
|
|
19
|
-
() =>
|
|
20
|
-
),
|
|
21
|
-
() =>
|
|
17
|
+
setup(te, { emit: ne }) {
|
|
18
|
+
const n = te, oe = ne, E = ye(), O = I(), B = I(), M = I(), { width: N } = ge(O), re = ke(Pe, I(ze)), T = s(() => n.mode === "table"), C = s(
|
|
19
|
+
() => T.value ? "small" : n.size
|
|
20
|
+
), x = s(
|
|
21
|
+
() => T.value ? "link" : "default"
|
|
22
22
|
), U = s(
|
|
23
|
-
() =>
|
|
24
|
-
), w = s(() => n.moreIcon ||
|
|
25
|
-
function
|
|
26
|
-
return e ?
|
|
23
|
+
() => T.value ? "" : n.moreText
|
|
24
|
+
), w = s(() => n.moreIcon || _e);
|
|
25
|
+
function b(e) {
|
|
26
|
+
return e ? re.value(e) : !0;
|
|
27
27
|
}
|
|
28
28
|
const v = s(() => {
|
|
29
29
|
var e;
|
|
30
|
-
return Be((e =
|
|
31
|
-
}),
|
|
30
|
+
return Be((e = E.default) == null ? void 0 : e.call(E));
|
|
31
|
+
}), y = s(() => n.actions ? n.actions.filter((e) => b(e.permission)) : []), k = s(() => {
|
|
32
32
|
if (n.disableCollapse)
|
|
33
|
-
return n.actions ?
|
|
34
|
-
const e = n.actions ?
|
|
35
|
-
return e <= 1 ? e :
|
|
33
|
+
return n.actions ? y.value.length : v.value.length;
|
|
34
|
+
const e = n.actions ? y.value.length : v.value.length;
|
|
35
|
+
return e <= 1 ? e : B.value && M.value && N.value ? ie() : Math.min(n.maxItems, e);
|
|
36
36
|
});
|
|
37
|
-
function
|
|
38
|
-
if (!
|
|
37
|
+
function ie() {
|
|
38
|
+
if (!B.value || !M.value || !N.value)
|
|
39
39
|
return n.maxItems;
|
|
40
|
-
const e =
|
|
41
|
-
|
|
40
|
+
const e = M.value.offsetWidth, r = Array.from(
|
|
41
|
+
B.value.querySelectorAll(".measure-item")
|
|
42
42
|
);
|
|
43
|
-
if (
|
|
44
|
-
let t = e,
|
|
45
|
-
for (let c = 0; c <
|
|
46
|
-
const p =
|
|
47
|
-
if (t + p <=
|
|
48
|
-
t += p,
|
|
43
|
+
if (r.length === 0) return n.maxItems;
|
|
44
|
+
let t = e, i = 0;
|
|
45
|
+
for (let c = 0; c < r.length - 1; c++) {
|
|
46
|
+
const p = r[c].offsetWidth + n.gap;
|
|
47
|
+
if (t + p <= N.value)
|
|
48
|
+
t += p, i++;
|
|
49
49
|
else
|
|
50
50
|
break;
|
|
51
51
|
}
|
|
52
|
-
const a = n.actions ?
|
|
53
|
-
return Math.max(0, Math.min(
|
|
52
|
+
const a = n.actions ? y.value.length : v.value.length;
|
|
53
|
+
return Math.max(0, Math.min(i, n.maxItems, a));
|
|
54
54
|
}
|
|
55
|
-
const
|
|
55
|
+
const se = s(() => n.actions ? y.value.slice(0, k.value) : []), G = s(() => n.actions ? y.value.slice(k.value) : []), le = s(() => {
|
|
56
56
|
if (n.actions) return [];
|
|
57
57
|
const e = v.value;
|
|
58
|
-
return
|
|
59
|
-
}),
|
|
58
|
+
return k.value >= e.length ? e : e.slice(0, k.value);
|
|
59
|
+
}), H = s(() => {
|
|
60
60
|
if (n.actions) return [];
|
|
61
61
|
const e = v.value;
|
|
62
|
-
return
|
|
63
|
-
}),
|
|
64
|
-
const
|
|
65
|
-
return
|
|
66
|
-
})),
|
|
67
|
-
function
|
|
68
|
-
return e.component ||
|
|
62
|
+
return k.value >= e.length ? [] : e.slice(k.value);
|
|
63
|
+
}), ue = s(() => n.actions ? G.value.filter((e) => b(e.permission)) : []), ae = s(() => n.actions ? [] : H.value.filter((e) => {
|
|
64
|
+
const r = e.props || {};
|
|
65
|
+
return r.permission && r.permissionAction === "hide" ? b(r.permission) : !0;
|
|
66
|
+
})), ce = s(() => n.disableCollapse ? !1 : (n.actions ? G.value.length : H.value.length) > 0);
|
|
67
|
+
function S(e) {
|
|
68
|
+
return e.component || Ce;
|
|
69
69
|
}
|
|
70
|
-
function
|
|
71
|
-
return e.key || e.label || `action-${
|
|
70
|
+
function Y(e, r) {
|
|
71
|
+
return e.key || e.label || `action-${r}`;
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function j(e) {
|
|
74
74
|
const {
|
|
75
|
-
label:
|
|
75
|
+
label: r,
|
|
76
76
|
key: t,
|
|
77
|
-
onClick:
|
|
77
|
+
onClick: i,
|
|
78
78
|
permission: a,
|
|
79
79
|
permissionAction: c,
|
|
80
|
-
icon:
|
|
80
|
+
icon: A,
|
|
81
81
|
component: p,
|
|
82
|
-
componentProps:
|
|
83
|
-
slot:
|
|
84
|
-
type:
|
|
82
|
+
componentProps: P,
|
|
83
|
+
slot: R,
|
|
84
|
+
type: h,
|
|
85
85
|
size: pe,
|
|
86
86
|
disabled: fe,
|
|
87
87
|
...de
|
|
88
88
|
} = e;
|
|
89
89
|
return {
|
|
90
90
|
component: p,
|
|
91
|
-
componentProps:
|
|
92
|
-
type:
|
|
91
|
+
componentProps: P,
|
|
92
|
+
type: h,
|
|
93
93
|
size: pe,
|
|
94
94
|
rest: de,
|
|
95
95
|
permission: a,
|
|
@@ -97,94 +97,98 @@ const Q = "link", X = "small", $e = /* @__PURE__ */ ve({
|
|
|
97
97
|
disabled: fe
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
-
function
|
|
101
|
-
const { component:
|
|
102
|
-
type:
|
|
100
|
+
function q(e) {
|
|
101
|
+
const { component: r, componentProps: t, type: i, rest: a, permission: c, permissionAction: A, disabled: p } = j(e), P = {
|
|
102
|
+
type: i || x.value,
|
|
103
103
|
size: C.value,
|
|
104
|
-
disabled: p || !
|
|
104
|
+
disabled: p || !b(c) && A === "disable",
|
|
105
105
|
...a
|
|
106
106
|
};
|
|
107
|
-
|
|
107
|
+
if (r && t) {
|
|
108
|
+
const R = (r == null ? void 0 : r.name) === "MDeleteButton" || (r == null ? void 0 : r.__name) === "MDeleteButton", h = { ...P };
|
|
109
|
+
return !t.type && !i && R && delete h.type, { ...h, ...t };
|
|
110
|
+
}
|
|
111
|
+
return P;
|
|
108
112
|
}
|
|
109
|
-
function
|
|
110
|
-
const { component:
|
|
111
|
-
type:
|
|
112
|
-
size:
|
|
113
|
-
disabled:
|
|
114
|
-
...
|
|
113
|
+
function me(e) {
|
|
114
|
+
const { component: r, componentProps: t, rest: i, permission: a, permissionAction: c, disabled: A } = j(e), p = {
|
|
115
|
+
type: X,
|
|
116
|
+
size: ee,
|
|
117
|
+
disabled: A || !b(a) && c === "disable",
|
|
118
|
+
...i
|
|
115
119
|
};
|
|
116
|
-
if (
|
|
117
|
-
const { type:
|
|
118
|
-
return { ...p, ...
|
|
120
|
+
if (r && t) {
|
|
121
|
+
const { type: P, size: R, ...h } = t;
|
|
122
|
+
return { ...p, ...h };
|
|
119
123
|
}
|
|
120
124
|
return p;
|
|
121
125
|
}
|
|
122
|
-
function
|
|
123
|
-
e.onClick && e.onClick(e),
|
|
126
|
+
function F(e) {
|
|
127
|
+
e.onClick && e.onClick(e), oe("action-click", e);
|
|
124
128
|
}
|
|
125
|
-
return (e,
|
|
129
|
+
return (e, r) => (o(), f("div", {
|
|
126
130
|
ref_key: "containerRef",
|
|
127
131
|
ref: O,
|
|
128
132
|
class: "mtn-action-group"
|
|
129
133
|
}, [
|
|
130
|
-
|
|
134
|
+
W(d(be), z({
|
|
131
135
|
size: C.value,
|
|
132
136
|
compact: e.compact,
|
|
133
137
|
vertical: e.vertical,
|
|
134
138
|
block: e.block
|
|
135
139
|
}, e.$attrs), {
|
|
136
140
|
default: u(() => [
|
|
137
|
-
n.actions ? (o(!0), f(
|
|
138
|
-
key:
|
|
139
|
-
}, { ref_for: !0 },
|
|
140
|
-
onClick: (a) =>
|
|
141
|
-
}),
|
|
141
|
+
n.actions ? (o(!0), f(g, { key: 0 }, _(se.value, (t, i) => (o(), l(m(S(t)), z({
|
|
142
|
+
key: Y(t, i)
|
|
143
|
+
}, { ref_for: !0 }, q(t), {
|
|
144
|
+
onClick: (a) => F(t)
|
|
145
|
+
}), D({
|
|
142
146
|
default: u(() => [
|
|
143
147
|
V(" " + $(t.label), 1)
|
|
144
148
|
]),
|
|
145
149
|
_: 2
|
|
146
150
|
}, [
|
|
147
|
-
t.icon
|
|
151
|
+
t.icon ? {
|
|
148
152
|
name: "icon",
|
|
149
153
|
fn: u(() => [
|
|
150
154
|
(o(), l(m(t.icon)))
|
|
151
155
|
]),
|
|
152
156
|
key: "0"
|
|
153
157
|
} : void 0
|
|
154
|
-
]), 1040, ["onClick"]))), 128)) : (o(!0), f(
|
|
158
|
+
]), 1040, ["onClick"]))), 128)) : (o(!0), f(g, { key: 1 }, _(le.value, (t, i) => {
|
|
155
159
|
var a, c;
|
|
156
|
-
return o(), l(m(
|
|
157
|
-
type: ((a = t.props) == null ? void 0 : a.type) ?? (
|
|
160
|
+
return o(), l(m(Z(t, {
|
|
161
|
+
type: ((a = t.props) == null ? void 0 : a.type) ?? (T.value ? x.value : void 0),
|
|
158
162
|
size: ((c = t.props) == null ? void 0 : c.size) ?? C.value
|
|
159
163
|
})), {
|
|
160
|
-
key: d(
|
|
164
|
+
key: d(Q)(t, i)
|
|
161
165
|
});
|
|
162
166
|
}), 128)),
|
|
163
|
-
|
|
167
|
+
ce.value ? (o(), l(d(J), z({
|
|
164
168
|
key: 2,
|
|
165
169
|
text: U.value,
|
|
166
170
|
size: C.value,
|
|
167
|
-
type:
|
|
171
|
+
type: x.value
|
|
168
172
|
}, n.moreProps), {
|
|
169
173
|
icon: u(() => [
|
|
170
174
|
(o(), l(m(w.value)))
|
|
171
175
|
]),
|
|
172
176
|
overlay: u(() => [
|
|
173
|
-
|
|
177
|
+
W(d(K), null, {
|
|
174
178
|
default: u(() => [
|
|
175
|
-
n.actions ? (o(!0), f(
|
|
176
|
-
key:
|
|
179
|
+
n.actions ? (o(!0), f(g, { key: 0 }, _(ue.value, (t, i) => (o(), l(d(K).Item, {
|
|
180
|
+
key: Y(t, i)
|
|
177
181
|
}, {
|
|
178
182
|
default: u(() => [
|
|
179
|
-
(o(), l(m(
|
|
180
|
-
onClick: (a) =>
|
|
181
|
-
}),
|
|
183
|
+
(o(), l(m(S(t)), z({ ref_for: !0 }, me(t), {
|
|
184
|
+
onClick: (a) => F(t)
|
|
185
|
+
}), D({
|
|
182
186
|
default: u(() => [
|
|
183
187
|
V(" " + $(t.label), 1)
|
|
184
188
|
]),
|
|
185
189
|
_: 2
|
|
186
190
|
}, [
|
|
187
|
-
t.icon
|
|
191
|
+
t.icon ? {
|
|
188
192
|
name: "icon",
|
|
189
193
|
fn: u(() => [
|
|
190
194
|
(o(), l(m(t.icon)))
|
|
@@ -194,14 +198,14 @@ const Q = "link", X = "small", $e = /* @__PURE__ */ ve({
|
|
|
194
198
|
]), 1040, ["onClick"]))
|
|
195
199
|
]),
|
|
196
200
|
_: 2
|
|
197
|
-
}, 1024))), 128)) : (o(!0), f(
|
|
198
|
-
key: d(
|
|
201
|
+
}, 1024))), 128)) : (o(!0), f(g, { key: 1 }, _(ae.value, (t, i) => (o(), l(d(K).Item, {
|
|
202
|
+
key: d(Q)(t, i)
|
|
199
203
|
}, {
|
|
200
204
|
default: u(() => [
|
|
201
|
-
(o(), l(m(
|
|
205
|
+
(o(), l(m(Z(t, {
|
|
202
206
|
...t.props,
|
|
203
|
-
type:
|
|
204
|
-
size:
|
|
207
|
+
type: X,
|
|
208
|
+
size: ee
|
|
205
209
|
}))))
|
|
206
210
|
]),
|
|
207
211
|
_: 2
|
|
@@ -215,22 +219,22 @@ const Q = "link", X = "small", $e = /* @__PURE__ */ ve({
|
|
|
215
219
|
]),
|
|
216
220
|
_: 1
|
|
217
221
|
}, 16, ["size", "compact", "vertical", "block"]),
|
|
218
|
-
|
|
222
|
+
L("div", {
|
|
219
223
|
ref_key: "measureRef",
|
|
220
|
-
ref:
|
|
224
|
+
ref: B,
|
|
221
225
|
class: "mtn-action-group-measure"
|
|
222
226
|
}, [
|
|
223
|
-
n.actions ? (o(!0), f(
|
|
224
|
-
key:
|
|
227
|
+
n.actions ? (o(!0), f(g, { key: 0 }, _(y.value, (t, i) => (o(), f("span", {
|
|
228
|
+
key: i,
|
|
225
229
|
class: "measure-item"
|
|
226
230
|
}, [
|
|
227
|
-
(o(), l(m(
|
|
231
|
+
(o(), l(m(S(t)), z({ ref_for: !0 }, q(t)), D({
|
|
228
232
|
default: u(() => [
|
|
229
233
|
V(" " + $(t.label), 1)
|
|
230
234
|
]),
|
|
231
235
|
_: 2
|
|
232
236
|
}, [
|
|
233
|
-
t.icon
|
|
237
|
+
t.icon ? {
|
|
234
238
|
name: "icon",
|
|
235
239
|
fn: u(() => [
|
|
236
240
|
(o(), l(m(t.icon)))
|
|
@@ -238,21 +242,21 @@ const Q = "link", X = "small", $e = /* @__PURE__ */ ve({
|
|
|
238
242
|
key: "0"
|
|
239
243
|
} : void 0
|
|
240
244
|
]), 1040))
|
|
241
|
-
]))), 128)) : (o(!0), f(
|
|
242
|
-
key:
|
|
245
|
+
]))), 128)) : (o(!0), f(g, { key: 1 }, _(v.value, (t, i) => (o(), f("span", {
|
|
246
|
+
key: i,
|
|
243
247
|
class: "measure-item"
|
|
244
248
|
}, [
|
|
245
249
|
(o(), l(m(t)))
|
|
246
250
|
]))), 128)),
|
|
247
|
-
|
|
251
|
+
L("span", {
|
|
248
252
|
ref_key: "moreTriggerRef",
|
|
249
|
-
ref:
|
|
253
|
+
ref: M,
|
|
250
254
|
class: "measure-item"
|
|
251
255
|
}, [
|
|
252
|
-
|
|
256
|
+
W(d(J), {
|
|
253
257
|
text: U.value,
|
|
254
258
|
size: C.value,
|
|
255
|
-
type:
|
|
259
|
+
type: x.value
|
|
256
260
|
}, {
|
|
257
261
|
icon: u(() => [
|
|
258
262
|
(o(), l(m(w.value)))
|
|
@@ -265,5 +269,5 @@ const Q = "link", X = "small", $e = /* @__PURE__ */ ve({
|
|
|
265
269
|
}
|
|
266
270
|
});
|
|
267
271
|
export {
|
|
268
|
-
|
|
272
|
+
Ve as default
|
|
269
273
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineComponent as u, createVNode as
|
|
2
|
-
import { Button as
|
|
3
|
-
import { buttonProps as
|
|
4
|
-
import { usePermission as
|
|
1
|
+
import { defineComponent as u, createVNode as d, mergeProps as l } from "vue";
|
|
2
|
+
import { Button as r } from "ant-design-vue";
|
|
3
|
+
import { buttonProps as f } from "./props.js";
|
|
4
|
+
import { usePermission as h } from "../../_utils/usePermission.js";
|
|
5
5
|
const y = /* @__PURE__ */ u({
|
|
6
6
|
name: "MButton",
|
|
7
|
-
props:
|
|
7
|
+
props: f,
|
|
8
8
|
emits: ["click"],
|
|
9
9
|
setup(e, {
|
|
10
10
|
slots: n,
|
|
@@ -12,19 +12,19 @@ const y = /* @__PURE__ */ u({
|
|
|
12
12
|
emit: o
|
|
13
13
|
}) {
|
|
14
14
|
const {
|
|
15
|
-
shouldHide:
|
|
16
|
-
shouldDisable:
|
|
17
|
-
} =
|
|
15
|
+
shouldHide: a,
|
|
16
|
+
shouldDisable: c
|
|
17
|
+
} = h({
|
|
18
18
|
permission: e.permission,
|
|
19
19
|
permissionAction: e.permissionAction
|
|
20
20
|
}), m = (i) => {
|
|
21
21
|
o("click", i);
|
|
22
22
|
};
|
|
23
|
-
return () =>
|
|
23
|
+
return () => a.value ? null : d(r, l({
|
|
24
24
|
type: e.type,
|
|
25
25
|
size: e.size,
|
|
26
26
|
loading: e.loading,
|
|
27
|
-
disabled: e.disabled ||
|
|
27
|
+
disabled: e.disabled || c.value,
|
|
28
28
|
danger: e.danger,
|
|
29
29
|
block: e.block,
|
|
30
30
|
ghost: e.ghost,
|
|
@@ -37,7 +37,11 @@ const y = /* @__PURE__ */ u({
|
|
|
37
37
|
}), {
|
|
38
38
|
default: () => {
|
|
39
39
|
var i;
|
|
40
|
-
return
|
|
40
|
+
return (i = n.default) == null ? void 0 : i.call(n);
|
|
41
|
+
},
|
|
42
|
+
icon: () => {
|
|
43
|
+
var i;
|
|
44
|
+
return (i = n.icon) == null ? void 0 : i.call(n);
|
|
41
45
|
}
|
|
42
46
|
});
|
|
43
47
|
}
|
package/dist/components.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.mtn-action-group[data-v-
|
|
1
|
+
.mtn-action-group[data-v-6b35de38]{width:100%;container-type:inline-size}.mtn-action-group-measure[data-v-6b35de38]{position:absolute;display:flex;visibility:hidden;align-items:center;height:0;overflow:hidden;pointer-events:none;white-space:nowrap}.measure-item[data-v-6b35de38]{display:inline-flex}[data-v-a943bc19] .ant-btn-dangerous{transition:transform .1s ease}[data-v-a943bc19] .ant-btn-dangerous:active{transform:scale(.95)}
|
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 S=require("@mtn-ui/shared"),e=require("vue"),me=require("class-variance-authority"),v=require("ant-design-vue"),W=require("@vueuse/core"),V=require("@ant-design/icons-vue"),U={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:U,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)])}}}),Y=S.withInstall(ge),Z={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 J(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),p=e.computed(()=>!u.value&&n==="hide"),m=e.computed(()=>!u.value&&n==="disable");return{hasPermission:u,shouldHide:p,shouldDisable:m}}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 N=e.defineComponent({name:"MButton",props:Z,emits:["click"],setup(t,{slots:o,attrs:n,emit:r}){const{shouldHide:u,shouldDisable:p}=J({permission:t.permission,permissionAction:t.permissionAction}),m=d=>{r("click",d)};return()=>u.value?null:e.createVNode(v.Button,e.mergeProps({type:t.type,size:t.size,loading:t.loading,disabled:t.disabled||p.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:m}),{default:()=>{var d;return(d=o.default)==null?void 0:d.call(o)},icon:()=>{var d;return(d=o.icon)==null?void 0:d.call(o)}})}}),Q={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}},O=e.defineComponent({name:"MButtonGroup",props:Q,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"}},M=e.defineComponent({name:"MDropdownButton",props:ke,emits:["click"],setup(t,{slots:o,attrs:n,emit:r}){const{shouldHide:u,shouldDisable:p}=J({permission:t.permission,permissionAction:t.permissionAction}),m=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),d=y=>{r("click",y)};return()=>{if(u.value)return null;const y={};if(o.overlay)y.overlay=o.overlay;else if(t.menu&&t.menu.length>0){const g=ve(t.menu,m.value);y.overlay=()=>e.h(v.Menu,{items:g})}return o.icon&&(y.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||p.value,loading:t.loading,danger:t.danger,onClick:d},{default:()=>{var g;return[(g=o.icon)==null?void 0:g.call(o)]}})],...y}):e.createVNode(v.Dropdown.Button,e.mergeProps({type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||p.value,loading:t.loading,danger:t.danger,placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class],onClick:d}),{default:()=>{var g;return[((g=o.default)==null?void 0:g.call(o))||t.text]},...y})}}}),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 K(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 q="link",H="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(),p=e.ref(),m=e.ref(),d=e.ref(),{width:y}=W.useElementSize(p),E=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),g=e.computed(()=>n.mode==="table"),P=e.computed(()=>g.value?"small":n.size),a=e.computed(()=>g.value?"link":"default"),c=e.computed(()=>g.value?"":n.moreText),B=e.computed(()=>n.moreIcon||V.MoreOutlined);function b(i){return i?E.value(i):!0}const T=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:T.value.length;const i=n.actions?x.value.length:T.value.length;return i<=1?i:m.value&&d.value&&y.value?re():Math.min(n.maxItems,i)});function re(){if(!m.value||!d.value||!y.value)return n.maxItems;const i=d.value.offsetWidth,s=Array.from(m.value.querySelectorAll(".measure-item"));if(s.length===0)return n.maxItems;let l=i,f=0;for(let h=0;h<s.length-1;h++){const C=s[h].offsetWidth+n.gap;if(l+C<=y.value)l+=C,f++;else break}const k=n.actions?x.value.length:T.value.length;return Math.max(0,Math.min(f,n.maxItems,k))}const ie=e.computed(()=>n.actions?x.value.slice(0,w.value):[]),L=e.computed(()=>n.actions?x.value.slice(w.value):[]),ae=e.computed(()=>{if(n.actions)return[];const i=T.value;return w.value>=i.length?i:i.slice(0,w.value)}),R=e.computed(()=>{if(n.actions)return[];const i=T.value;return w.value>=i.length?[]:i.slice(w.value)}),le=e.computed(()=>n.actions?L.value.filter(i=>b(i.permission)):[]),ue=e.computed(()=>n.actions?[]:R.value.filter(i=>{const s=i.props||{};return s.permission&&s.permissionAction==="hide"?b(s.permission):!0})),ce=e.computed(()=>n.disableCollapse?!1:(n.actions?L.value.length:R.value.length)>0);function I(i){return i.component||N}function $(i,s){return i.key||i.label||`action-${s}`}function F(i){const{label:s,key:l,onClick:f,permission:k,permissionAction:h,icon:z,component:C,componentProps:A,slot:_,type:D,size:de,disabled:fe,...pe}=i;return{component:C,componentProps:A,type:D,size:de,rest:pe,permission:k,permissionAction:h,disabled:fe}}function j(i){const{component:s,componentProps:l,type:f,rest:k,permission:h,permissionAction:z,disabled:C}=F(i),A={type:f||a.value,size:P.value,disabled:C||!b(h)&&z==="disable",...k};if(s&&l){const _=(s==null?void 0:s.name)==="MDeleteButton"||(s==null?void 0:s.__name)==="MDeleteButton",D={...A};return!l.type&&!f&&_&&delete D.type,{...D,...l}}return A}function se(i){const{component:s,componentProps:l,rest:f,permission:k,permissionAction:h,disabled:z}=F(i),C={type:q,size:H,disabled:z||!b(k)&&h==="disable",...f};if(s&&l){const{type:A,size:_,...D}=l;return{...C,...D}}return C}function G(i){i.onClick&&i.onClick(i),r("action-click",i)}return(i,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:p,class:"mtn-action-group"},[e.createVNode(e.unref(O),e.mergeProps({size:P.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(ie.value,(l,f)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(I(l)),e.mergeProps({key:$(l,f)},{ref_for:!0},j(l),{onClick:k=>G(l)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(l.label),1)]),_:2},[l.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon)))]),key:"0"}:void 0]),1040,["onClick"]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(ae.value,(l,f)=>{var k,h;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(l,{type:((k=l.props)==null?void 0:k.type)??(g.value?a.value:void 0),size:((h=l.props)==null?void 0:h.size)??P.value})),{key:e.unref(K)(l,f)})}),128)),ce.value?(e.openBlock(),e.createBlock(e.unref(M),e.mergeProps({key:2,text:c.value,size:P.value,type:a.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(le.value,(l,f)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:$(l,f)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(I(l)),e.mergeProps({ref_for:!0},se(l),{onClick:k=>G(l)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(l.label),1)]),_:2},[l.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon)))]),key:"0"}:void 0]),1040,["onClick"]))]),_:2},1024))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(ue.value,(l,f)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:e.unref(K)(l,f)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(l,{...l.props,type:q,size:H}))))]),_: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:m,class:"mtn-action-group-measure"},[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(x.value,(l,f)=>(e.openBlock(),e.createElementBlock("span",{key:f,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(I(l)),e.mergeProps({ref_for:!0},j(l)),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(l.label),1)]),_:2},[l.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon)))]),key:"0"}:void 0]),1040))]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(T.value,(l,f)=>(e.openBlock(),e.createElementBlock("span",{key:f,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l)))]))),128)),e.createElementVNode("span",{ref_key:"moreTriggerRef",ref:d,class:"measure-item"},[e.createVNode(e.unref(M),{text:c.value,size:P.value,type:a.value},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.value)))]),_:1},8,["text","size","type"])],512)],512)],512))}}),X=(t,o)=>{const n=t.__vccOpts||t;for(const[r,u]of o)n[r]=u;return n},ee=X(Be,[["__scopeId","data-v-6b35de38"]]),Ce={...Z,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),p=e.ref(null),m=e.computed(()=>r.loading!==void 0?r.loading:r.autoLoading?u.value:!1),d=e.computed(()=>typeof r.confirm=="function"?r.confirm(r.count):r.confirm);e.watch(m,a=>{p.value&&e.nextTick(()=>{var c;(c=p.value)==null||c.update({okButtonProps:{loading:a}})})},{flush:"post"}),e.onBeforeUnmount(()=>{p.value&&(p.value.destroy(),p.value=null)});const y=async()=>{try{if(r.beforeDelete&&await r.beforeDelete()===!1)return;r.autoLoading&&r.loading===void 0&&(u.value=!0);let a=!1;const c=()=>{a||(a=!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;a||c(),E(b)}catch(b){throw a||c(),b}}else n("delete",c),r.autoLoading&&r.loading===void 0&&setTimeout(()=>{a||c()},5e3)}catch(a){r.autoLoading&&r.loading===void 0&&(u.value=!1);const c=a instanceof Error?a:new Error(String(a));n("error",c),r.showError&&v.message.error(c.message||"删除失败,请重试")}},E=a=>{r.showSuccess&&v.message.success(r.successText||"删除成功"),n("success",a)},g=r.debounce>0?W.useDebounceFn(y,r.debounce):y,P=()=>{if(!d.value){g();return}if(r.confirmType==="popconfirm")return;const a=()=>{p.value=v.Modal.confirm({title:r.confirmTitle,content:d.value,okText:r.okText,cancelText:r.cancelText,okType:"danger",okButtonProps:{loading:m.value},onOk:async()=>{try{return await y(),new Promise(c=>{if(!m.value){c();return}const B=e.watch(m,b=>{b||(B(),c())})})}catch(c){throw c}},onCancel:()=>{p.value=null},afterClose:()=>{p.value=null}})};e.nextTick(a)};return(a,c)=>d.value&&a.confirmType==="popconfirm"?(e.openBlock(),e.createBlock(e.unref(v.Popconfirm),{key:0,title:d.value,"ok-text":a.okText,"cancel-text":a.cancelText,"ok-button-props":{loading:m.value,danger:!0},onConfirm:e.unref(g)},{icon:e.withCtx(()=>[e.renderSlot(a.$slots,"popconfirmIcon",{},()=>[e.createVNode(e.unref(V.ExclamationCircleOutlined),{class:"text-[--color-ant-error]"})],!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(N),e.mergeProps(a.$attrs,{type:a.type,size:a.size,danger:!0,loading:m.value,disabled:a.disabled,permission:a.permission,"permission-action":a.permissionAction,class:"group"}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(a.$slots,"default",{},()=>[c[0]||(c[0]=e.createTextVNode("删除",-1))],!0)]),_:2},[a.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(a.$slots,"icon",{},()=>[e.createVNode(e.unref(V.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(N),e.mergeProps({key:1},a.$attrs,{type:a.type,size:a.size,danger:!0,loading:m.value,disabled:a.disabled,permission:a.permission,"permission-action":a.permissionAction,onClick:P}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(a.$slots,"default",{},()=>[c[1]||(c[1]=e.createTextVNode("删除",-1))],!0)]),_:2},[a.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(a.$slots,"icon",{},()=>[e.createVNode(e.unref(V.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"]))}}),te=X(Se,[["__scopeId","data-v-a943bc19"]]),ne={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 Pe(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const Te=e.defineComponent({name:"MTable",props:ne,setup(t,{slots:o,attrs:n}){return()=>e.createVNode(v.Table,e.mergeProps(t,n,{class:"mtn-table"}),Pe(o)?o:{default:()=>[o]})}}),oe=S.withInstall(Te),xe=[N,O,M,ee,te,Y,oe],we={install(t){xe.forEach(o=>{t.component(o.name||"",o)})}};exports.ActionGroup=ee;exports.Button=N;exports.ButtonGroup=O;exports.DeleteButton=te;exports.DropdownButton=M;exports.Table=oe;exports.Tag=Y;exports.buttonGroupProps=Q;exports.default=we;exports.tableProps=ne;exports.tagProps=U;
|