@mtn-ui/components 1.0.6 → 1.0.8

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.
Files changed (49) hide show
  1. package/dist/antd-wrapped/action-group/action-group.vue.js +2 -2
  2. package/dist/antd-wrapped/action-group/action-group.vue2.js +209 -159
  3. package/dist/antd-wrapped/table/table.js +6 -21
  4. package/dist/components.css +1 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +22 -17
  7. package/dist/index.mjs +383 -374
  8. package/package.json +51 -51
  9. package/dist/antd-wrapped/table/index.js +0 -7
  10. package/dist/antd-wrapped/table/props.js +0 -35
  11. package/dist/types/index.d.ts +0 -18
  12. package/dist/types/packages/components/src/_utils/__tests__/filterMenuByPermission.test.d.ts +0 -1
  13. package/dist/types/packages/components/src/_utils/__tests__/usePermission.test.d.ts +0 -1
  14. package/dist/types/packages/components/src/_utils/constants.d.ts +0 -7
  15. package/dist/types/packages/components/src/_utils/filterMenuByPermission.d.ts +0 -14
  16. package/dist/types/packages/components/src/_utils/index.d.ts +0 -7
  17. package/dist/types/packages/components/src/_utils/types.d.ts +0 -7
  18. package/dist/types/packages/components/src/_utils/usePermission.d.ts +0 -29
  19. package/dist/types/packages/components/src/antd-wrapped/action-group/__tests__/action-group.test.d.ts +0 -1
  20. package/dist/types/packages/components/src/antd-wrapped/action-group/index.d.ts +0 -4
  21. package/dist/types/packages/components/src/antd-wrapped/action-group/props.d.ts +0 -91
  22. package/dist/types/packages/components/src/antd-wrapped/action-group/types.d.ts +0 -110
  23. package/dist/types/packages/components/src/antd-wrapped/action-group/utils.d.ts +0 -17
  24. package/dist/types/packages/components/src/antd-wrapped/button/__tests__/button.test.d.ts +0 -1
  25. package/dist/types/packages/components/src/antd-wrapped/button/button.d.ts +0 -112
  26. package/dist/types/packages/components/src/antd-wrapped/button/index.d.ts +0 -5
  27. package/dist/types/packages/components/src/antd-wrapped/button/props.d.ts +0 -55
  28. package/dist/types/packages/components/src/antd-wrapped/button/types.d.ts +0 -38
  29. package/dist/types/packages/components/src/antd-wrapped/button-group/button-group.d.ts +0 -50
  30. package/dist/types/packages/components/src/antd-wrapped/button-group/index.d.ts +0 -5
  31. package/dist/types/packages/components/src/antd-wrapped/button-group/props.d.ts +0 -28
  32. package/dist/types/packages/components/src/antd-wrapped/delete-button/__tests__/delete-button.test.d.ts +0 -1
  33. package/dist/types/packages/components/src/antd-wrapped/delete-button/index.d.ts +0 -2
  34. package/dist/types/packages/components/src/antd-wrapped/delete-button/props.d.ts +0 -122
  35. package/dist/types/packages/components/src/antd-wrapped/dropdown-button/__tests__/dropdown-button.test.d.ts +0 -1
  36. package/dist/types/packages/components/src/antd-wrapped/dropdown-button/dropdown-button.d.ts +0 -106
  37. package/dist/types/packages/components/src/antd-wrapped/dropdown-button/index.d.ts +0 -5
  38. package/dist/types/packages/components/src/antd-wrapped/dropdown-button/props.d.ts +0 -49
  39. package/dist/types/packages/components/src/antd-wrapped/dropdown-button/types.d.ts +0 -36
  40. package/dist/types/packages/components/src/antd-wrapped/index.d.ts +0 -10
  41. package/dist/types/packages/components/src/antd-wrapped/table/index.d.ts +0 -68
  42. package/dist/types/packages/components/src/antd-wrapped/table/props.d.ts +0 -37
  43. package/dist/types/packages/components/src/antd-wrapped/table/table.d.ts +0 -67
  44. package/dist/types/packages/components/src/data-display/index.d.ts +0 -5
  45. package/dist/types/packages/components/src/data-display/tag/__tests__/tag.test.d.ts +0 -1
  46. package/dist/types/packages/components/src/data-display/tag/index.d.ts +0 -21
  47. package/dist/types/packages/components/src/data-display/tag/props.d.ts +0 -11
  48. package/dist/types/packages/components/src/data-display/tag/tag.d.ts +0 -20
  49. package/dist/types/packages/components/src/index.d.ts +0 -18
@@ -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-6b35de38"]]);
4
+ const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ccd228a1"]]);
5
5
  export {
6
- _ as default
6
+ a as default
7
7
  };
@@ -1,211 +1,261 @@
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
- import { useElementSize as ge } from "@vueuse/core";
3
- import { MoreOutlined as _e } from "@ant-design/icons-vue";
4
- import { Menu as K } from "ant-design-vue";
5
- import Ce from "../button/button.js";
6
- import be from "../button-group/button-group.js";
7
- import J from "../dropdown-button/dropdown-button.js";
8
- import { actionGroupProps as Ae } from "./props.js";
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({
1
+ import { defineComponent as Ce, useSlots as be, ref as x, inject as Pe, computed as l, shallowRef as ze, watch as ne, createElementBlock as f, openBlock as r, createVNode as j, createElementVNode as re, unref as v, mergeProps as I, withCtx as a, createBlock as u, createCommentVNode as Ae, Fragment as g, renderList as _, resolveDynamicComponent as m, createSlots as O, createTextVNode as $, toDisplayString as K, cloneVNode as oe } from "vue";
2
+ import { useElementSize as Se, useDebounceFn as Me } from "@vueuse/core";
3
+ import { MoreOutlined as xe } from "@ant-design/icons-vue";
4
+ import { Menu as w } from "ant-design-vue";
5
+ import Ie from "../button/button.js";
6
+ import Be from "../button-group/button-group.js";
7
+ import ie from "../dropdown-button/dropdown-button.js";
8
+ import { actionGroupProps as Ee } from "./props.js";
9
+ import { PERMISSION_CHECKER_KEY as Ne, defaultPermissionChecker as Te } from "@mtn-ui/shared";
10
+ import { filterValidChildren as Re, getButtonKey as se } from "./utils.js";
11
+ const G = "link", le = "small", Ve = 150, Fe = /* @__PURE__ */ Ce({
12
12
  name: "MActionGroup",
13
13
  inheritAttrs: !1,
14
14
  __name: "action-group",
15
- props: Ae,
15
+ props: Ee,
16
16
  emits: ["action-click"],
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
- ), U = s(
23
- () => T.value ? "" : n.moreText
24
- ), w = s(() => n.moreIcon || _e);
25
- function b(e) {
26
- return e ? re.value(e) : !0;
17
+ setup(ue, { emit: ae }) {
18
+ const n = ue, ce = ae, W = be(), Y = x(), C = x(), b = x(), { width: P } = Se(Y), me = Pe(Ne, x(Te));
19
+ function F(e) {
20
+ if (!e) return;
21
+ const o = e;
22
+ return o.name || o.__name || o.displayName;
23
+ }
24
+ const z = l(() => n.mode === "table"), A = l(
25
+ () => z.value ? "small" : n.size
26
+ ), B = l(
27
+ () => z.value ? "link" : "default"
28
+ ), H = l(
29
+ () => z.value ? "" : n.moreText
30
+ ), L = l(() => n.moreIcon || xe);
31
+ function E(e) {
32
+ return e ? me.value(e) : !0;
27
33
  }
28
- const v = s(() => {
34
+ const N = l(() => {
29
35
  var e;
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
- if (n.disableCollapse)
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
- });
37
- function ie() {
38
- if (!B.value || !M.value || !N.value)
39
- return n.maxItems;
40
- const e = M.value.offsetWidth, r = Array.from(
41
- B.value.querySelectorAll(".measure-item")
36
+ return Re((e = W.default) == null ? void 0 : e.call(W));
37
+ }), d = ze([]);
38
+ function q(e) {
39
+ var t, i, s;
40
+ return [
41
+ e.key ?? "",
42
+ e.label ?? "",
43
+ F(e.icon) ?? "",
44
+ F(e.component) ?? "",
45
+ Array.isArray(e.permission) ? e.permission.join(",") : e.permission ?? "",
46
+ e.permissionAction ?? "",
47
+ String(e.disabled ?? !1),
48
+ String(((t = e.componentProps) == null ? void 0 : t.confirm) ?? ""),
49
+ String(((i = e.componentProps) == null ? void 0 : i.showSuccess) ?? ""),
50
+ String(((s = e.componentProps) == null ? void 0 : s.danger) ?? "")
51
+ ].join("|");
52
+ }
53
+ ne(
54
+ () => n.actions,
55
+ (e) => {
56
+ if (!e) {
57
+ d.value = [];
58
+ return;
59
+ }
60
+ if (d.value.length !== e.length) {
61
+ d.value = e;
62
+ return;
63
+ }
64
+ const o = e.map(q).join("||"), t = d.value.map(q).join("||");
65
+ o !== t && (d.value = e);
66
+ },
67
+ { immediate: !0, deep: !1 }
68
+ );
69
+ const T = l(() => d.value.length ? d.value.filter((e) => E(e.permission)) : []), c = l(() => n.actions ? T.value.length : N.value.length);
70
+ function pe() {
71
+ if (!C.value || !b.value || !P.value)
72
+ return Math.min(n.maxItems, c.value);
73
+ const e = b.value.offsetWidth, o = Array.from(
74
+ C.value.querySelectorAll(".measure-item")
42
75
  );
43
- if (r.length === 0) return n.maxItems;
76
+ if (o.length === 0) return Math.min(n.maxItems, c.value);
44
77
  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++;
78
+ for (let s = 0; s < o.length - 1; s++) {
79
+ const y = o[s].offsetWidth + n.gap;
80
+ if (t + y <= P.value)
81
+ t += y, i++;
49
82
  else
50
83
  break;
51
84
  }
52
- const a = n.actions ? y.value.length : v.value.length;
53
- return Math.max(0, Math.min(i, n.maxItems, a));
85
+ return Math.max(0, Math.min(i, n.maxItems, c.value));
54
86
  }
55
- const se = s(() => n.actions ? y.value.slice(0, k.value) : []), G = s(() => n.actions ? y.value.slice(k.value) : []), le = s(() => {
87
+ const S = x(n.maxItems), fe = Me(() => {
88
+ S.value = pe();
89
+ }, Ve);
90
+ ne(
91
+ [P, c, () => n.maxItems, () => n.gap],
92
+ () => {
93
+ if (n.disableCollapse) {
94
+ S.value = c.value;
95
+ return;
96
+ }
97
+ if (c.value <= 1) {
98
+ S.value = c.value;
99
+ return;
100
+ }
101
+ C.value && b.value && P.value ? fe() : S.value = Math.min(n.maxItems, c.value);
102
+ },
103
+ { immediate: !0 }
104
+ );
105
+ const k = l(() => n.disableCollapse || c.value <= 1 ? c.value : C.value && b.value && P.value ? S.value : Math.min(n.maxItems, c.value)), ve = l(() => n.actions ? T.value.slice(0, k.value) : []), Z = l(() => n.actions ? T.value.slice(k.value) : []), de = l(() => {
56
106
  if (n.actions) return [];
57
- const e = v.value;
107
+ const e = N.value;
58
108
  return k.value >= e.length ? e : e.slice(0, k.value);
59
- }), H = s(() => {
109
+ }), J = l(() => {
60
110
  if (n.actions) return [];
61
- const e = v.value;
111
+ const e = N.value;
62
112
  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;
113
+ }), ye = l(() => n.actions ? [] : J.value.filter((e) => {
114
+ const o = e.props || {};
115
+ return o.permission && o.permissionAction === "hide" ? E(o.permission) : !0;
116
+ })), ke = l(() => n.disableCollapse ? !1 : (n.actions ? Z.value.length : J.value.length) > 0);
117
+ function D(e) {
118
+ return e.component || Ie;
69
119
  }
70
- function Y(e, r) {
71
- return e.key || e.label || `action-${r}`;
120
+ function Q(e, o) {
121
+ return e.key || e.label || `action-${o}`;
72
122
  }
73
- function j(e) {
123
+ function X(e) {
74
124
  const {
75
- label: r,
125
+ label: o,
76
126
  key: t,
77
127
  onClick: i,
78
- permission: a,
79
- permissionAction: c,
80
- icon: A,
81
- component: p,
82
- componentProps: P,
128
+ permission: s,
129
+ permissionAction: p,
130
+ icon: y,
131
+ component: h,
132
+ componentProps: M,
83
133
  slot: R,
84
- type: h,
85
- size: pe,
86
- disabled: fe,
87
- ...de
134
+ type: U,
135
+ size: V,
136
+ disabled: ge,
137
+ ..._e
88
138
  } = e;
89
139
  return {
90
- component: p,
91
- componentProps: P,
92
- type: h,
93
- size: pe,
94
- rest: de,
95
- permission: a,
96
- permissionAction: c,
97
- disabled: fe
140
+ component: h,
141
+ componentProps: M,
142
+ type: U,
143
+ size: V,
144
+ rest: _e,
145
+ permission: s,
146
+ permissionAction: p,
147
+ disabled: ge
98
148
  };
99
149
  }
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
- size: C.value,
104
- disabled: p || !b(c) && A === "disable",
105
- ...a
150
+ function ee(e) {
151
+ const { component: o, componentProps: t, type: i, rest: s, permission: p, permissionAction: y, disabled: h } = X(e), M = {
152
+ type: i || B.value,
153
+ size: A.value,
154
+ disabled: h || !E(p) && y === "disable",
155
+ ...s
106
156
  };
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 };
157
+ if (o && t) {
158
+ const R = { ...M, ...t };
159
+ return z.value && (R.type = "link"), R;
110
160
  }
111
- return P;
161
+ return M;
112
162
  }
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",
163
+ function he(e) {
164
+ const { component: o, componentProps: t, rest: i, permission: s, permissionAction: p, disabled: y } = X(e), h = {
165
+ type: G,
166
+ size: le,
167
+ disabled: y || !E(s) && p === "disable",
118
168
  ...i
119
169
  };
120
- if (r && t) {
121
- const { type: P, size: R, ...h } = t;
122
- return { ...p, ...h };
170
+ if (o && t) {
171
+ const { type: M, size: R, ...U } = t, V = { ...h, ...U };
172
+ return V.type = G, V;
123
173
  }
124
- return p;
174
+ return h;
125
175
  }
126
- function F(e) {
127
- e.onClick && e.onClick(e), oe("action-click", e);
176
+ function te(e) {
177
+ e.onClick && e.onClick(e), ce("action-click", e);
128
178
  }
129
- return (e, r) => (o(), f("div", {
179
+ return (e, o) => (r(), f("div", {
130
180
  ref_key: "containerRef",
131
- ref: O,
181
+ ref: Y,
132
182
  class: "mtn-action-group"
133
183
  }, [
134
- W(d(be), z({
135
- size: C.value,
184
+ j(v(Be), I({
185
+ size: A.value,
136
186
  compact: e.compact,
137
187
  vertical: e.vertical,
138
188
  block: e.block
139
189
  }, e.$attrs), {
140
- default: u(() => [
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({
146
- default: u(() => [
147
- V(" " + $(t.label), 1)
190
+ default: a(() => [
191
+ n.actions ? (r(!0), f(g, { key: 0 }, _(ve.value, (t, i) => (r(), u(m(D(t)), I({
192
+ key: Q(t, i)
193
+ }, { ref_for: !0 }, ee(t), {
194
+ onClick: (s) => te(t)
195
+ }), O({
196
+ default: a(() => [
197
+ $(" " + K(t.label), 1)
148
198
  ]),
149
199
  _: 2
150
200
  }, [
151
201
  t.icon ? {
152
202
  name: "icon",
153
- fn: u(() => [
154
- (o(), l(m(t.icon)))
203
+ fn: a(() => [
204
+ (r(), u(m(t.icon)))
155
205
  ]),
156
206
  key: "0"
157
207
  } : void 0
158
- ]), 1040, ["onClick"]))), 128)) : (o(!0), f(g, { key: 1 }, _(le.value, (t, i) => {
159
- var a, c;
160
- return o(), l(m(Z(t, {
161
- type: ((a = t.props) == null ? void 0 : a.type) ?? (T.value ? x.value : void 0),
162
- size: ((c = t.props) == null ? void 0 : c.size) ?? C.value
208
+ ]), 1040, ["onClick"]))), 128)) : (r(!0), f(g, { key: 1 }, _(de.value, (t, i) => {
209
+ var s, p;
210
+ return r(), u(m(oe(t, {
211
+ type: ((s = t.props) == null ? void 0 : s.type) ?? (z.value ? B.value : void 0),
212
+ size: ((p = t.props) == null ? void 0 : p.size) ?? A.value
163
213
  })), {
164
- key: d(Q)(t, i)
214
+ key: v(se)(t, i)
165
215
  });
166
216
  }), 128)),
167
- ce.value ? (o(), l(d(J), z({
217
+ ke.value ? (r(), u(v(ie), I({
168
218
  key: 2,
169
- text: U.value,
170
- size: C.value,
171
- type: x.value
219
+ text: H.value,
220
+ size: A.value,
221
+ type: B.value
172
222
  }, n.moreProps), {
173
- icon: u(() => [
174
- (o(), l(m(w.value)))
223
+ icon: a(() => [
224
+ (r(), u(m(L.value)))
175
225
  ]),
176
- overlay: u(() => [
177
- W(d(K), null, {
178
- default: u(() => [
179
- n.actions ? (o(!0), f(g, { key: 0 }, _(ue.value, (t, i) => (o(), l(d(K).Item, {
180
- key: Y(t, i)
226
+ overlay: a(() => [
227
+ j(v(w), null, {
228
+ default: a(() => [
229
+ n.actions ? (r(!0), f(g, { key: 0 }, _(Z.value, (t, i) => (r(), u(v(w).Item, {
230
+ key: Q(t, i)
181
231
  }, {
182
- default: u(() => [
183
- (o(), l(m(S(t)), z({ ref_for: !0 }, me(t), {
184
- onClick: (a) => F(t)
185
- }), D({
186
- default: u(() => [
187
- V(" " + $(t.label), 1)
232
+ default: a(() => [
233
+ (r(), u(m(D(t)), I({ ref_for: !0 }, he(t), {
234
+ onClick: (s) => te(t)
235
+ }), O({
236
+ default: a(() => [
237
+ $(" " + K(t.label), 1)
188
238
  ]),
189
239
  _: 2
190
240
  }, [
191
241
  t.icon ? {
192
242
  name: "icon",
193
- fn: u(() => [
194
- (o(), l(m(t.icon)))
243
+ fn: a(() => [
244
+ (r(), u(m(t.icon)))
195
245
  ]),
196
246
  key: "0"
197
247
  } : void 0
198
248
  ]), 1040, ["onClick"]))
199
249
  ]),
200
250
  _: 2
201
- }, 1024))), 128)) : (o(!0), f(g, { key: 1 }, _(ae.value, (t, i) => (o(), l(d(K).Item, {
202
- key: d(Q)(t, i)
251
+ }, 1024))), 128)) : (r(!0), f(g, { key: 1 }, _(ye.value, (t, i) => (r(), u(v(w).Item, {
252
+ key: v(se)(t, i)
203
253
  }, {
204
- default: u(() => [
205
- (o(), l(m(Z(t, {
254
+ default: a(() => [
255
+ (r(), u(m(oe(t, {
206
256
  ...t.props,
207
- type: X,
208
- size: ee
257
+ type: G,
258
+ size: le
209
259
  }))))
210
260
  ]),
211
261
  _: 2
@@ -215,51 +265,51 @@ const X = "link", ee = "small", Ve = /* @__PURE__ */ ve({
215
265
  })
216
266
  ]),
217
267
  _: 1
218
- }, 16, ["text", "size", "type"])) : he("", !0)
268
+ }, 16, ["text", "size", "type"])) : Ae("", !0)
219
269
  ]),
220
270
  _: 1
221
271
  }, 16, ["size", "compact", "vertical", "block"]),
222
- L("div", {
272
+ re("div", {
223
273
  ref_key: "measureRef",
224
- ref: B,
274
+ ref: C,
225
275
  class: "mtn-action-group-measure"
226
276
  }, [
227
- n.actions ? (o(!0), f(g, { key: 0 }, _(y.value, (t, i) => (o(), f("span", {
277
+ n.actions ? (r(!0), f(g, { key: 0 }, _(T.value, (t, i) => (r(), f("span", {
228
278
  key: i,
229
279
  class: "measure-item"
230
280
  }, [
231
- (o(), l(m(S(t)), z({ ref_for: !0 }, q(t)), D({
232
- default: u(() => [
233
- V(" " + $(t.label), 1)
281
+ (r(), u(m(D(t)), I({ ref_for: !0 }, ee(t)), O({
282
+ default: a(() => [
283
+ $(" " + K(t.label), 1)
234
284
  ]),
235
285
  _: 2
236
286
  }, [
237
287
  t.icon ? {
238
288
  name: "icon",
239
- fn: u(() => [
240
- (o(), l(m(t.icon)))
289
+ fn: a(() => [
290
+ (r(), u(m(t.icon)))
241
291
  ]),
242
292
  key: "0"
243
293
  } : void 0
244
294
  ]), 1040))
245
- ]))), 128)) : (o(!0), f(g, { key: 1 }, _(v.value, (t, i) => (o(), f("span", {
295
+ ]))), 128)) : (r(!0), f(g, { key: 1 }, _(N.value, (t, i) => (r(), f("span", {
246
296
  key: i,
247
297
  class: "measure-item"
248
298
  }, [
249
- (o(), l(m(t)))
299
+ (r(), u(m(t)))
250
300
  ]))), 128)),
251
- L("span", {
301
+ re("span", {
252
302
  ref_key: "moreTriggerRef",
253
- ref: M,
303
+ ref: b,
254
304
  class: "measure-item"
255
305
  }, [
256
- W(d(J), {
257
- text: U.value,
258
- size: C.value,
259
- type: x.value
306
+ j(v(ie), {
307
+ text: H.value,
308
+ size: A.value,
309
+ type: B.value
260
310
  }, {
261
- icon: u(() => [
262
- (o(), l(m(w.value)))
311
+ icon: a(() => [
312
+ (r(), u(m(L.value)))
263
313
  ]),
264
314
  _: 1
265
315
  }, 8, ["text", "size", "type"])
@@ -269,5 +319,5 @@ const X = "link", ee = "small", Ve = /* @__PURE__ */ ve({
269
319
  }
270
320
  });
271
321
  export {
272
- Ve as default
322
+ Fe as default
273
323
  };
@@ -1,23 +1,8 @@
1
- import { defineComponent as r, createVNode as n, mergeProps as p, isVNode as a } from "vue";
2
- import { Table as m } from "ant-design-vue";
3
- import { tableProps as c } from "./props.js";
4
- function f(e) {
5
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !a(e);
6
- }
7
- const u = /* @__PURE__ */ r({
8
- name: "MTable",
9
- props: c,
10
- setup(e, {
11
- slots: t,
12
- attrs: o
13
- }) {
14
- return () => n(m, p(e, o, {
15
- class: "mtn-table"
16
- }), f(t) ? t : {
17
- default: () => [t]
18
- });
19
- }
20
- });
1
+ var t = /* @__PURE__ */ ((r) => (r.TEXT = "text", r.TAG = "tag", r.DATE = "date", r.DATETIME = "dateTime", r.SELECT = "select", r.STATUS = "status", r.CUSTOM = "custom", r))(t || {}), L = /* @__PURE__ */ ((r) => (r.LEFT = "left", r.CENTER = "center", r.RIGHT = "right", r))(L || {}), d = /* @__PURE__ */ ((r) => (r.SMALL = "small", r.MIDDLE = "middle", r.LARGE = "large", r))(d || {}), v = /* @__PURE__ */ ((r) => (r.CHECKBOX = "checkbox", r.RADIO = "radio", r))(v || {}), A = /* @__PURE__ */ ((r) => (r.LEFT = "left", r.RIGHT = "right", r))(A || {});
21
2
  export {
22
- u as default
3
+ A as ButtonPositionEnum,
4
+ L as TableColumnAlignEnum,
5
+ t as TableColumnTypeEnum,
6
+ v as TableSelectionTypeEnum,
7
+ d as TableSizeEnum
23
8
  };
@@ -1 +1 @@
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)}
1
+ .mtn-action-group[data-v-ccd228a1]{width:100%;container-type:inline-size}.mtn-action-group-measure[data-v-ccd228a1]{position:fixed;top:-9999px;left:-9999px;display:flex;visibility:hidden;align-items:center;overflow:hidden;pointer-events:none;white-space:nowrap;opacity:0;z-index:-9999;clip-path:inset(100%)}.measure-item[data-v-ccd228a1]{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"),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;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("@mtn-ui/shared"),e=require("vue"),Ce=require("class-variance-authority"),v=require("ant-design-vue"),j=require("@vueuse/core"),O=require("@ant-design/icons-vue"),ee={type:{type:String,default:"default"},color:{type:String}},Se=Ce.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"}}),xe=e.defineComponent({name:"MTag",props:ee,setup(t,{slots:i,attrs:n}){return()=>{var u;const{type:r}=t;return e.createVNode("span",{class:S.cn(Se({type:r}),n.class)},[(u=i.default)==null?void 0:u.call(i)])}}}),te=S.withInstall(xe),ne={type:{type:String,default:"default"},size:{type:String,default:"middle"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},block:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1},shape:{type:String,default:"default"},htmlType:{type:String,default:"button"},icon:{type:Object},permission:{type:[String,Array],default:void 0},permissionAction:{type:String,default:"hide"}};function oe(t){const{permission:i,permissionAction:n="hide"}=t,r=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),u=e.computed(()=>i?r.value(i):!0),m=e.computed(()=>!u.value&&n==="hide"),f=e.computed(()=>!u.value&&n==="disable");return{hasPermission:u,shouldHide:m,shouldDisable:f}}function Pe(t,i){return t.map(n=>{if(!n||n.type==="divider"||!n.permission)return n;if(!i(n.permission)){const u=n.permissionAction||"hide";if(u==="hide")return null;if(u==="disable")return{...n,disabled:!0}}return n}).filter(Boolean)}const E=e.defineComponent({name:"MButton",props:ne,emits:["click"],setup(t,{slots:i,attrs:n,emit:r}){const{shouldHide:u,shouldDisable:m}=oe({permission:t.permission,permissionAction:t.permissionAction}),f=p=>{r("click",p)};return()=>u.value?null:e.createVNode(v.Button,e.mergeProps({type:t.type,size:t.size,loading:t.loading,disabled:t.disabled||m.value,danger:t.danger,block:t.block,ghost:t.ghost,shape:t.shape,htmlType:t.htmlType,icon:t.icon},n,{class:["mtn-button",n.class],onClick:f}),{default:()=>{var p;return(p=i.default)==null?void 0:p.call(i)},icon:()=>{var p;return(p=i.icon)==null?void 0:p.call(i)}})}}),re={size:{type:String,default:"middle"},compact:{type:Boolean,default:!0},gap:{type:[Number,String],default:8},vertical:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},H=e.defineComponent({name:"MButtonGroup",props:re,setup(t,{slots:i,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=i.default)==null?void 0:r.call(i)]}}):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=i.default)==null?void 0:r.call(i)]}})])}}),Te={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"}},R=e.defineComponent({name:"MDropdownButton",props:Te,emits:["click"],setup(t,{slots:i,attrs:n,emit:r}){const{shouldHide:u,shouldDisable:m}=oe({permission:t.permission,permissionAction:t.permissionAction}),f=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker)),p=y=>{r("click",y)};return()=>{if(u.value)return null;const y={};if(i.overlay)y.overlay=i.overlay;else if(t.menu&&t.menu.length>0){const k=Pe(t.menu,f.value);y.overlay=()=>e.h(v.Menu,{items:k})}return i.icon&&(y.icon=i.icon),!(i.default||t.text)?e.createVNode(v.Dropdown,e.mergeProps({placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class]}),{default:()=>[e.createVNode(v.Button,{type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||m.value,loading:t.loading,danger:t.danger,onClick:p},{default:()=>{var k;return[(k=i.icon)==null?void 0:k.call(i)]}})],...y}):e.createVNode(v.Dropdown.Button,e.mergeProps({type:t.type,size:t.size==="middle"?void 0:t.size,disabled:t.disabled||m.value,loading:t.loading,danger:t.danger,placement:t.placement,trigger:t.trigger},n,{class:["mtn-dropdown-button",n.class],onClick:p}),{default:()=>{var k;return[((k=i.default)==null?void 0:k.call(i))||t.text]},...y})}}}),De={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 we(t){return t?t.filter(i=>i.type!==e.Comment&&i.type!==e.Text&&i.type!==Symbol.for("v-fgt")):[]}function J(t,i){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-${i}`}const $="link",Q="small",Ae=150,ze=e.defineComponent({name:"MActionGroup",inheritAttrs:!1,__name:"action-group",props:De,emits:["action-click"],setup(t,{emit:i}){const n=t,r=i,u=e.useSlots(),m=e.ref(),f=e.ref(),p=e.ref(),{width:y}=j.useElementSize(m),N=e.inject(S.PERMISSION_CHECKER_KEY,e.ref(S.defaultPermissionChecker));function k(o){if(!o)return;const s=o;return s.name||s.__name||s.displayName}const x=e.computed(()=>n.mode==="table"),l=e.computed(()=>x.value?"small":n.size),c=e.computed(()=>x.value?"link":"default"),b=e.computed(()=>x.value?"":n.moreText),C=e.computed(()=>n.moreIcon||O.MoreOutlined);function M(o){return o?N.value(o):!0}const I=e.computed(()=>{var o;return we((o=u.default)==null?void 0:o.call(u))}),P=e.shallowRef([]);function K(o){var a,d,g;return[o.key??"",o.label??"",k(o.icon)??"",k(o.component)??"",Array.isArray(o.permission)?o.permission.join(","):o.permission??"",o.permissionAction??"",String(o.disabled??!1),String(((a=o.componentProps)==null?void 0:a.confirm)??""),String(((d=o.componentProps)==null?void 0:d.showSuccess)??""),String(((g=o.componentProps)==null?void 0:g.danger)??"")].join("|")}e.watch(()=>n.actions,o=>{if(!o){P.value=[];return}if(P.value.length!==o.length){P.value=o;return}const s=o.map(K).join("||"),a=P.value.map(K).join("||");s!==a&&(P.value=o)},{immediate:!0,deep:!1});const V=e.computed(()=>P.value.length?P.value.filter(o=>M(o.permission)):[]),h=e.computed(()=>n.actions?V.value.length:I.value.length);function fe(){if(!f.value||!p.value||!y.value)return Math.min(n.maxItems,h.value);const o=p.value.offsetWidth,s=Array.from(f.value.querySelectorAll(".measure-item"));if(s.length===0)return Math.min(n.maxItems,h.value);let a=o,d=0;for(let g=0;g<s.length-1;g++){const T=s[g].offsetWidth+n.gap;if(a+T<=y.value)a+=T,d++;else break}return Math.max(0,Math.min(d,n.maxItems,h.value))}const A=e.ref(n.maxItems),me=j.useDebounceFn(()=>{A.value=fe()},Ae);e.watch([y,h,()=>n.maxItems,()=>n.gap],()=>{if(n.disableCollapse){A.value=h.value;return}if(h.value<=1){A.value=h.value;return}f.value&&p.value&&y.value?me():A.value=Math.min(n.maxItems,h.value)},{immediate:!0});const D=e.computed(()=>n.disableCollapse||h.value<=1?h.value:f.value&&p.value&&y.value?A.value:Math.min(n.maxItems,h.value)),ye=e.computed(()=>n.actions?V.value.slice(0,D.value):[]),U=e.computed(()=>n.actions?V.value.slice(D.value):[]),ge=e.computed(()=>{if(n.actions)return[];const o=I.value;return D.value>=o.length?o:o.slice(0,D.value)}),q=e.computed(()=>{if(n.actions)return[];const o=I.value;return D.value>=o.length?[]:o.slice(D.value)}),ve=e.computed(()=>n.actions?[]:q.value.filter(o=>{const s=o.props||{};return s.permission&&s.permissionAction==="hide"?M(s.permission):!0})),ke=e.computed(()=>n.disableCollapse?!1:(n.actions?U.value.length:q.value.length)>0);function F(o){return o.component||E}function W(o,s){return o.key||o.label||`action-${s}`}function Y(o){const{label:s,key:a,onClick:d,permission:g,permissionAction:B,icon:T,component:w,componentProps:z,slot:_,type:G,size:L,disabled:be,...Be}=o;return{component:w,componentProps:z,type:G,size:L,rest:Be,permission:g,permissionAction:B,disabled:be}}function X(o){const{component:s,componentProps:a,type:d,rest:g,permission:B,permissionAction:T,disabled:w}=Y(o),z={type:d||c.value,size:l.value,disabled:w||!M(B)&&T==="disable",...g};if(s&&a){const _={...z,...a};return x.value&&(_.type="link"),_}return z}function he(o){const{component:s,componentProps:a,rest:d,permission:g,permissionAction:B,disabled:T}=Y(o),w={type:$,size:Q,disabled:T||!M(g)&&B==="disable",...d};if(s&&a){const{type:z,size:_,...G}=a,L={...w,...G};return L.type=$,L}return w}function Z(o){o.onClick&&o.onClick(o),r("action-click",o)}return(o,s)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:m,class:"mtn-action-group"},[e.createVNode(e.unref(H),e.mergeProps({size:l.value,compact:o.compact,vertical:o.vertical,block:o.block},o.$attrs),{default:e.withCtx(()=>[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(ye.value,(a,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F(a)),e.mergeProps({key:W(a,d)},{ref_for:!0},X(a),{onClick:g=>Z(a)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040,["onClick"]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(ge.value,(a,d)=>{var g,B;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(a,{type:((g=a.props)==null?void 0:g.type)??(x.value?c.value:void 0),size:((B=a.props)==null?void 0:B.size)??l.value})),{key:e.unref(J)(a,d)})}),128)),ke.value?(e.openBlock(),e.createBlock(e.unref(R),e.mergeProps({key:2,text:b.value,size:l.value,type:c.value},n.moreProps),{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C.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(U.value,(a,d)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:W(a,d)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F(a)),e.mergeProps({ref_for:!0},he(a),{onClick:g=>Z(a)}),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040,["onClick"]))]),_:2},1024))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(ve.value,(a,d)=>(e.openBlock(),e.createBlock(e.unref(v.Menu).Item,{key:e.unref(J)(a,d)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.cloneVNode(a,{...a.props,type:$,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:f,class:"mtn-action-group-measure"},[n.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(V.value,(a,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F(a)),e.mergeProps({ref_for:!0},X(a)),e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(a.label),1)]),_:2},[a.icon?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),key:"0"}:void 0]),1040))]))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(I.value,(a,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:"measure-item"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a)))]))),128)),e.createElementVNode("span",{ref_key:"moreTriggerRef",ref:p,class:"measure-item"},[e.createVNode(e.unref(R),{text:b.value,size:l.value,type:c.value},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C.value)))]),_:1},8,["text","size","type"])],512)],512)],512))}}),ie=(t,i)=>{const n=t.__vccOpts||t;for(const[r,u]of i)n[r]=u;return n},ae=ie(ze,[["__scopeId","data-v-ccd228a1"]]),Ee={...ne,loading:{type:Boolean,default:void 0},confirm:{type:[String,Boolean,Function],default:"确定要删除吗?"},confirmType:{type:String,default:"modal"},confirmTitle:{type:String,default:"确认删除"},okText:{type:String,default:"确定"},cancelText:{type:String,default:"取消"},hideIcon:{type:Boolean,default:!1},autoLoading:{type:Boolean,default:!0},beforeDelete:{type:Function,default:void 0},count:{type:Number,default:1},showSuccess:{type:Boolean,default:!1},successText:{type:String,default:"删除成功"},showError:{type:Boolean,default:!0},debounce:{type:Number,default:300},onDelete:{type:Function,default:void 0}},Ne=e.defineComponent({name:"MDeleteButton",inheritAttrs:!1,__name:"delete-button",props:Ee,emits:["delete","success","error"],setup(t,{emit:i}){const n=i,r=t,u=e.ref(!1),m=e.ref(null),f=e.computed(()=>r.loading!==void 0?r.loading:r.autoLoading?u.value:!1),p=e.computed(()=>typeof r.confirm=="function"?r.confirm(r.count):r.confirm);e.watch(f,l=>{m.value&&e.nextTick(()=>{var c;(c=m.value)==null||c.update({okButtonProps:{loading:l}})})},{flush:"post"}),e.onBeforeUnmount(()=>{m.value&&(m.value.destroy(),m.value=null)});const y=async()=>{try{if(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 C=await b;l||c(),N(C)}catch(C){throw l||c(),C}}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)},k=r.debounce>0?j.useDebounceFn(y,r.debounce):y,x=()=>{if(!p.value){k();return}if(r.confirmType==="popconfirm")return;const l=()=>{m.value=v.Modal.confirm({title:r.confirmTitle,content:p.value,okText:r.okText,cancelText:r.cancelText,okType:"danger",okButtonProps:{loading:f.value},onOk:async()=>{try{return await y(),new Promise(c=>{if(!f.value){c();return}const b=e.watch(f,C=>{C||(b(),c())})})}catch(c){throw c}},onCancel:()=>{m.value=null},afterClose:()=>{m.value=null}})};e.nextTick(l)};return(l,c)=>p.value&&l.confirmType==="popconfirm"?(e.openBlock(),e.createBlock(e.unref(v.Popconfirm),{key:0,title:p.value,"ok-text":l.okText,"cancel-text":l.cancelText,"ok-button-props":{loading:f.value,danger:!0},onConfirm:e.unref(k)},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"popconfirmIcon",{},()=>[e.createVNode(e.unref(O.ExclamationCircleOutlined),{class:"text-[--color-ant-error]"})],!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(E),e.mergeProps(l.$attrs,{type:l.type,size:l.size,danger:!0,loading:f.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,class:"group"}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},()=>[c[0]||(c[0]=e.createTextVNode("删除",-1))],!0)]),_:2},[l.hideIcon?void 0:{name:"icon",fn:e.withCtx(()=>[e.renderSlot(l.$slots,"icon",{},()=>[e.createVNode(e.unref(O.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(E),e.mergeProps({key:1},l.$attrs,{type:l.type,size:l.size,danger:!0,loading:f.value,disabled:l.disabled,permission:l.permission,"permission-action":l.permissionAction,onClick:x}),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(O.DeleteOutlined))],!0)]),key:"0"}]),1040,["type","size","loading","disabled","permission","permission-action"]))}}),le=ie(Ne,[["__scopeId","data-v-a943bc19"]]);var ue=(t=>(t.TEXT="text",t.TAG="tag",t.DATE="date",t.DATETIME="dateTime",t.SELECT="select",t.STATUS="status",t.CUSTOM="custom",t))(ue||{}),ce=(t=>(t.LEFT="left",t.CENTER="center",t.RIGHT="right",t))(ce||{}),se=(t=>(t.SMALL="small",t.MIDDLE="middle",t.LARGE="large",t))(se||{}),de=(t=>(t.CHECKBOX="checkbox",t.RADIO="radio",t))(de||{}),pe=(t=>(t.LEFT="left",t.RIGHT="right",t))(pe||{});const Me=[E,H,R,ae,le,te,v.Table],Ie={install(t){Me.forEach(i=>{t.component(i.name||"",i)})}};Object.defineProperty(exports,"Table",{enumerable:!0,get:()=>v.Table});exports.ActionGroup=ae;exports.Button=E;exports.ButtonGroup=H;exports.ButtonPositionEnum=pe;exports.DeleteButton=le;exports.DropdownButton=R;exports.TableColumnAlignEnum=ce;exports.TableColumnTypeEnum=ue;exports.TableSelectionTypeEnum=de;exports.TableSizeEnum=se;exports.Tag=te;exports.buttonGroupProps=re;exports.default=Ie;exports.tagProps=ee;