savor-ui 0.3.2 → 0.3.3

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 (27) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/es/components/index.mjs +1 -1
  3. package/dist/es/components/src/cascader/cascader.vue_vue_type_script_setup_true_vapor_true_lang.mjs +92 -81
  4. package/dist/es/components/src/cascader/index.d.ts +1 -0
  5. package/dist/es/components/src/cascader/types.d.ts +2 -0
  6. package/dist/es/components/src/grid/grid-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +23 -15
  7. package/dist/es/components/src/grid/grid.vue_vue_type_script_setup_true_vapor_true_lang.mjs +6 -1
  8. package/dist/es/components/src/grid/types.d.ts +1 -0
  9. package/dist/es/components/src/menu/menu-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +46 -37
  10. package/dist/es/components/src/table/table.vue_vue_type_script_setup_true_vapor_true_lang.mjs +45 -34
  11. package/dist/es/components/src/tree/index.d.ts +12 -4
  12. package/dist/es/components/src/tree/node.d.ts +2 -1
  13. package/dist/es/components/src/tree/node.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -1
  14. package/dist/es/components/src/tree/tree.d.ts +6 -2
  15. package/dist/es/components/src/tree/tree.vue_vue_type_script_setup_true_vapor_true_lang.mjs +57 -49
  16. package/dist/es/components/src/tree/types.d.ts +13 -3
  17. package/dist/es/core/components.mjs +6 -6
  18. package/dist/es/core/index.mjs +7 -7
  19. package/dist/es/theme/components/button.scss +21 -4
  20. package/dist/es/theme/components/cascader.scss +3 -0
  21. package/dist/es/theme/components/input.scss +2 -0
  22. package/dist/es/theme/components/menu.scss +13 -0
  23. package/dist/es/theme/components/table.scss +1 -0
  24. package/dist/json/vetur-attributes.json +28 -0
  25. package/dist/json/vetur-tags.json +8 -0
  26. package/dist/json/web-types.json +52 -3
  27. package/package.json +1 -1
@@ -50,7 +50,10 @@ var j = /*@__PURE__*/ m({
50
50
  setup(e) {
51
51
  return () => e.renderFn(e.row, e.index);
52
52
  }
53
- }, j = m, M = g, N = r("table"), P = v(), F = v(0), I = v([]), L = v({}), me = v([]), he = s(() => {
53
+ }, j = m, M = g, N = r("table"), P = v(), F = v({
54
+ scrollLeft: 0,
55
+ maxScrollLeft: 0
56
+ }), I = v([]), L = v({}), me = v([]), he = s(() => {
54
57
  let e = [];
55
58
  if (!j.border || j.border.length === 0) return e;
56
59
  for (let t of j.border) e.push(N.m(`border-${t}`));
@@ -150,8 +153,12 @@ var j = /*@__PURE__*/ m({
150
153
  }
151
154
  return t;
152
155
  }, Se = (e) => {
153
- F.value = e.target.scrollLeft;
154
- }, W = s(() => (U.value, F.value, I.value, H.value, {
156
+ let t = e.target, n = t.scrollWidth - t.clientWidth;
157
+ F.value = {
158
+ scrollLeft: t.scrollLeft,
159
+ maxScrollLeft: n
160
+ };
161
+ }, W = s(() => (U.value, I.value, H.value, {
155
162
  header: H.value.map((e, t) => e.map((e, n) => Ce(e, t, n))),
156
163
  body: z.value.map((e, t) => U.value.map((e, t) => Ce(e, 0, t)))
157
164
  })), Ce = (t, n, r) => {
@@ -177,42 +184,46 @@ var j = /*@__PURE__*/ m({
177
184
  }
178
185
  }
179
186
  return i;
180
- }, G = s(() => (U.value, F.value, z.value, H.value, {
181
- header: H.value.map((e, t) => e.map((e, n) => we(e, t, n))),
182
- body: z.value.map((e, t) => U.value.map((e, t) => we(e, 0, t)))
183
- })), we = (e, t, n) => {
184
- let r = [];
185
- e.align && r.push(N.m(`align-${e.align}`)), (e.ellipsis || e.ellipsisTooltip) && r.push(N.m("ellipsis"));
186
- let i = e._fixed || e.fixed, a = e;
187
- if (i) {
188
- r.push(N.m(`fixed-${i}`));
189
- let e = !1, t = !1, o = U.value.some((e) => e.fixed === "left"), s = U.value.some((e) => e.fixed === "right"), c = P.value ? P.value.scrollWidth - P.value.clientWidth : 0;
190
- if (a._isHeader) {
191
- if (i === "left" && o) {
187
+ }, G = s(() => {
188
+ U.value, z.value, H.value, F.value;
189
+ let { scrollLeft: e, maxScrollLeft: t } = F.value;
190
+ return {
191
+ header: H.value.map((n, r) => n.map((n, i) => we(n, r, i, e, t))),
192
+ body: z.value.map((n, r) => U.value.map((n, r) => we(n, 0, r, e, t)))
193
+ };
194
+ }), we = (e, t, n, r = 0, i = 0) => {
195
+ let a = [];
196
+ e.align && a.push(N.m(`align-${e.align}`)), (e.ellipsis || e.ellipsisTooltip) && a.push(N.m("ellipsis"));
197
+ let o = e._fixed || e.fixed, s = e;
198
+ if (o) {
199
+ a.push(N.m(`fixed-${o}`));
200
+ let e = !1, t = !1, c = U.value.some((e) => e.fixed === "left"), l = U.value.some((e) => e.fixed === "right");
201
+ if (P.value && P.value.scrollWidth - P.value.clientWidth, s._isHeader) {
202
+ if (o === "left" && c) {
192
203
  let t = !1;
193
- if (a._lastLeafIndex !== void 0) {
204
+ if (s._lastLeafIndex !== void 0) {
194
205
  let e = -1;
195
206
  for (let t = U.value.length - 1; t >= 0; t--) if (U.value[t].fixed === "left") {
196
207
  e = t;
197
208
  break;
198
209
  }
199
- t = a._lastLeafIndex === e;
210
+ t = s._lastLeafIndex === e;
200
211
  }
201
212
  e = t;
202
213
  }
203
- if (i === "right" && s) {
214
+ if (o === "right" && l) {
204
215
  let e = !1;
205
- if (a._firstLeafIndex !== void 0) {
216
+ if (s._firstLeafIndex !== void 0) {
206
217
  let t = U.value.findIndex((e) => e.fixed === "right");
207
- e = a._firstLeafIndex === t;
218
+ e = s._firstLeafIndex === t;
208
219
  }
209
220
  t = e;
210
221
  }
211
- } else e = i === "left" && (n === U.value.length - 1 || U.value[n + 1] && U.value[n + 1].fixed !== "left"), t = i === "right" && (n === 0 || U.value[n - 1] && U.value[n - 1].fixed !== "right");
212
- let l = P.value ? P.value.scrollLeft > 0 : !1, u = P.value ? P.value.scrollLeft < c - 1 : !1;
213
- (i === "left" && e && l || i === "right" && t && u) && r.push(N.m("has-shadow"));
222
+ } else e = o === "left" && (n === U.value.length - 1 || U.value[n + 1] && U.value[n + 1].fixed !== "left"), t = o === "right" && (n === 0 || U.value[n - 1] && U.value[n - 1].fixed !== "right");
223
+ let u = r > 0, d = r < i - 1;
224
+ (o === "left" && e && u || o === "right" && t && d) && a.push(N.m("has-shadow"));
214
225
  }
215
- return r;
226
+ return a;
216
227
  }, K = () => {
217
228
  _(() => {
218
229
  P.value && P.value.scrollWidth > P.value.clientWidth && (P.value.scrollLeft = 0);
@@ -293,7 +304,7 @@ var j = /*@__PURE__*/ m({
293
304
  let a = G.value, o = t.value, s = n.value, c = e.value, l = W.value;
294
305
  b(r, [D(N).e("header-cell"), a.header[o][s]]), S(r, "colspan", c.colspan || 1), S(r, "rowspan", c.rowspan || 1), C(r, l.header[o][s]), w(i, E(c.label));
295
306
  }), r;
296
- }, 522), (e, n) => `${t.value}-${n}-${F.value}`, 17), n;
307
+ }, 522), (e, n) => `${t.value}-${n}`, 17), n;
297
308
  }, (e, t) => t, 9), y(() => b(ze, D(N).e("body"))), x(ze, null, 0), u(() => z.value, (e, t) => {
298
309
  let n = ue();
299
310
  return y(() => {
@@ -339,8 +350,8 @@ var j = /*@__PURE__*/ m({
339
350
  }), x(t, 0, 0), d(() => e.value._hasChildren && n.value.treeNode, () => {
340
351
  let t = k(), n = o(t);
341
352
  return y(() => {
342
- let r = D(N);
343
- b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: e.value._expanded }]), b(n, r.e("tree-node-arrow"));
353
+ let r = D(N), i = e.value._expanded;
354
+ b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: i }]), b(n, r.e("tree-node-arrow")), C(n, { transform: i ? "rotate(90deg)" : "" });
344
355
  }), x(n, null, 0), c(D(i)), t.$evtclick = f(() => B(e.value)), t;
345
356
  }), y(() => w(r, " " + E(e.value[n.value.field]))), t;
346
357
  }), () => {
@@ -355,8 +366,8 @@ var j = /*@__PURE__*/ m({
355
366
  }), x(t, 0, 0), d(() => e.value._hasChildren && n.value.treeNode, () => {
356
367
  let t = k(), n = o(t);
357
368
  return y(() => {
358
- let r = D(N);
359
- b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: e.value._expanded }]), b(n, r.e("tree-node-arrow"));
369
+ let r = D(N), i = e.value._expanded;
370
+ b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: i }]), b(n, r.e("tree-node-arrow")), C(n, { transform: i ? "rotate(90deg)" : "" });
360
371
  }), x(n, null, 0), c(D(i)), t.$evtclick = f(() => B(e.value)), t;
361
372
  }), y(() => w(r, " " + E(e.value[n.value.field]))), t;
362
373
  }, 1669), 1157)), () => d(() => n.value.render, () => c(T, {
@@ -379,8 +390,8 @@ var j = /*@__PURE__*/ m({
379
390
  }), x(t, 0, 0), d(() => e.value._hasChildren && n.value.treeNode, () => {
380
391
  let t = k(), n = o(t);
381
392
  return y(() => {
382
- let r = D(N);
383
- b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: e.value._expanded }]), b(n, r.e("tree-node-arrow"));
393
+ let r = D(N), i = e.value._expanded;
394
+ b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: i }]), b(n, r.e("tree-node-arrow")), C(n, { transform: i ? "rotate(90deg)" : "" });
384
395
  }), x(n, null, 0), c(D(i)), t.$evtclick = f(() => B(e.value)), t;
385
396
  }), y(() => w(r, " " + E(e.value[n.value.field]))), t;
386
397
  }), () => {
@@ -395,12 +406,12 @@ var j = /*@__PURE__*/ m({
395
406
  }), x(t, 0, 0), d(() => e.value._hasChildren && n.value.treeNode, () => {
396
407
  let t = k(), n = o(t);
397
408
  return y(() => {
398
- let r = D(N);
399
- b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: e.value._expanded }]), b(n, r.e("tree-node-arrow"));
409
+ let r = D(N), i = e.value._expanded;
410
+ b(t, [r.e("tree-node-toggle"), { [r.is("expanded")]: i }]), b(n, r.e("tree-node-arrow")), C(n, { transform: i ? "rotate(90deg)" : "" });
400
411
  }), x(n, null, 0), c(D(i)), t.$evtclick = f(() => B(e.value)), t;
401
412
  }), y(() => w(r, " " + E(e.value[n.value.field]))), t;
402
413
  }, 2949)), 2309), 2053), s;
403
- }, 778), (e, n) => `${t.value}-${n}-${F.value}`, 17), n.$evtclick = f(() => De(e.value)), n;
414
+ }, 778), (e, n) => `${t.value}-${n}`, 17), n.$evtclick = f(() => De(e.value)), n;
404
415
  }, (e, t) => e._id, 9), y(() => {
405
416
  let e = D(N);
406
417
  b($, [e.e("empty")]), b(Be, [{ [e.e("empty-border")]: z.value.length !== 0 && D(Fe) !== 0 }]);
@@ -1,13 +1,17 @@
1
+ import { TreeNode } from './types';
1
2
  import { PublicProps, VNode, Plugin } from 'vue';
2
- import { FieldNamesProps, TreeNode } from './types';
3
3
  export declare const STree: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
4
4
  attrs: any;
5
5
  slots: {};
6
- emit: ((event: "update:selectKeys", value: (string | number)[]) => void) & ((event: "update:checkedKeys", value: (string | number)[]) => void) & ((event: "update:indeterminateKeys", value: (string | number)[]) => void);
6
+ emit: (((evt: "nodeSelect", node: TreeNode) => void) & ((evt: "nodeClick", node: TreeNode) => void) & ((evt: "nodeCheck", node: TreeNode, checked: boolean) => void) & ((evt: "nodeExpand", node: TreeNode, expanded: boolean) => void)) & (((event: "update:selectKeys", value: (string | number)[]) => void) & ((event: "update:checkedKeys", value: (string | number)[]) => void) & ((event: "update:indeterminateKeys", value: (string | number)[]) => void));
7
7
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
8
  props: PublicProps & {
9
9
  data: any[];
10
- fieldNames?: FieldNamesProps | undefined;
10
+ fieldNames?: {
11
+ label?: string;
12
+ key?: string;
13
+ children?: string;
14
+ } | undefined;
11
15
  defaultExpandAll?: boolean | undefined;
12
16
  defaultExpandedKeys?: (number | string)[] | undefined;
13
17
  selectable?: boolean | undefined;
@@ -19,6 +23,10 @@ export declare const STree: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
19
23
  multiple?: boolean | undefined;
20
24
  virtual?: boolean | undefined;
21
25
  loadMore?: ((node: TreeNode) => Promise< TreeNode[]>) | undefined;
26
+ onNodeSelect?: ((node: TreeNode) => any) | undefined;
27
+ onNodeClick?: ((node: TreeNode) => any) | undefined;
28
+ onNodeCheck?: ((node: TreeNode, checked: boolean) => any) | undefined;
29
+ onNodeExpand?: ((node: TreeNode, expanded: boolean) => any) | undefined;
22
30
  "onUpdate:selectKeys"?: ((value: (string | number)[]) => any) | undefined;
23
31
  "onUpdate:checkedKeys"?: ((value: (string | number)[]) => any) | undefined;
24
32
  "onUpdate:indeterminateKeys"?: ((value: (string | number)[]) => any) | undefined;
@@ -28,7 +36,7 @@ export declare const STree: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
28
36
  expose: (exposed: {}) => void;
29
37
  attrs: any;
30
38
  slots: {};
31
- emit: ((event: "update:selectKeys", value: (string | number)[]) => void) & ((event: "update:checkedKeys", value: (string | number)[]) => void) & ((event: "update:indeterminateKeys", value: (string | number)[]) => void);
39
+ emit: (((evt: "nodeSelect", node: TreeNode) => void) & ((evt: "nodeClick", node: TreeNode) => void) & ((evt: "nodeCheck", node: TreeNode, checked: boolean) => void) & ((evt: "nodeExpand", node: TreeNode, expanded: boolean) => void)) & (((event: "update:selectKeys", value: (string | number)[]) => void) & ((event: "update:checkedKeys", value: (string | number)[]) => void) & ((event: "update:indeterminateKeys", value: (string | number)[]) => void));
32
40
  }>) => VNode & {
33
41
  __ctx?: Awaited<typeof __VLS_setup>;
34
42
  }) & Plugin;
@@ -11,6 +11,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
11
11
  checkable: boolean;
12
12
  } & {
13
13
  onSelect?: ((node: TreeNode) => any) | undefined;
14
+ onClick?: ((node: TreeNode) => any) | undefined;
14
15
  onToggle?: ((node: TreeNode) => any) | undefined;
15
16
  onCheck?: ((checked: boolean, node: TreeNode) => any) | undefined;
16
17
  }> & (typeof globalThis extends {
@@ -19,7 +20,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
19
20
  expose: (exposed: {}) => void;
20
21
  attrs: any;
21
22
  slots: {};
22
- emit: ((evt: "select", node: TreeNode) => void) & ((evt: "toggle", node: TreeNode) => void) & ((evt: "check", checked: boolean, node: TreeNode) => void);
23
+ emit: ((evt: "select", node: TreeNode) => void) & ((evt: "click", node: TreeNode) => void) & ((evt: "toggle", node: TreeNode) => void) & ((evt: "check", checked: boolean, node: TreeNode) => void);
23
24
  }>) => VNode & {
24
25
  __ctx?: Awaited<typeof __VLS_setup>;
25
26
  };
@@ -24,6 +24,7 @@ var D = /*@__PURE__*/ u({
24
24
  emits: [
25
25
  "toggle",
26
26
  "select",
27
+ "click",
27
28
  "check"
28
29
  ],
29
30
  setup(u, { emit: d }) {
@@ -32,7 +33,7 @@ var D = /*@__PURE__*/ u({
32
33
  let k = (e) => {
33
34
  O("toggle", e);
34
35
  }, A = (e) => {
35
- O("select", e);
36
+ O("select", e), O("click", e);
36
37
  }, j = (e) => {
37
38
  O("check", e, x.node);
38
39
  }, M = E(), N = o(M), P = o(N), F = p(P, 1), I = p(F, 2);
@@ -1,4 +1,4 @@
1
- import { TreeProps } from './types';
1
+ import { TreeNode, TreeProps } from './types';
2
2
  import { PublicProps, VNode } from 'vue';
3
3
  declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
4
  props: PublicProps & __VLS_PrettifyLocal<(TreeProps & {
@@ -6,6 +6,10 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
6
6
  checkedKeys?: (string | number)[];
7
7
  indeterminateKeys?: (string | number)[];
8
8
  }) & {
9
+ onNodeSelect?: ((node: TreeNode) => any) | undefined;
10
+ onNodeClick?: ((node: TreeNode) => any) | undefined;
11
+ onNodeCheck?: ((node: TreeNode, checked: boolean) => any) | undefined;
12
+ onNodeExpand?: ((node: TreeNode, expanded: boolean) => any) | undefined;
9
13
  "onUpdate:selectKeys"?: ((value: (string | number)[]) => any) | undefined;
10
14
  "onUpdate:checkedKeys"?: ((value: (string | number)[]) => any) | undefined;
11
15
  "onUpdate:indeterminateKeys"?: ((value: (string | number)[]) => any) | undefined;
@@ -15,7 +19,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
15
19
  expose: (exposed: {}) => void;
16
20
  attrs: any;
17
21
  slots: {};
18
- emit: ((event: "update:selectKeys", value: (string | number)[]) => void) & ((event: "update:checkedKeys", value: (string | number)[]) => void) & ((event: "update:indeterminateKeys", value: (string | number)[]) => void);
22
+ emit: (((evt: "nodeSelect", node: TreeNode) => void) & ((evt: "nodeClick", node: TreeNode) => void) & ((evt: "nodeCheck", node: TreeNode, checked: boolean) => void) & ((evt: "nodeExpand", node: TreeNode, expanded: boolean) => void)) & (((event: "update:selectKeys", value: (string | number)[]) => void) & ((event: "update:checkedKeys", value: (string | number)[]) => void) & ((event: "update:indeterminateKeys", value: (string | number)[]) => void));
19
23
  }>) => VNode & {
20
24
  __ctx?: Awaited<typeof __VLS_setup>;
21
25
  };
@@ -42,21 +42,26 @@ var b = h("<div>", 1), x = /*@__PURE__*/ s({
42
42
  indeterminateKeys: { default: () => [] },
43
43
  indeterminateKeysModifiers: {}
44
44
  }),
45
- emits: [
45
+ emits: /*@__PURE__*/ c([
46
+ "nodeSelect",
47
+ "nodeClick",
48
+ "nodeCheck",
49
+ "nodeExpand"
50
+ ], [
46
51
  "update:selectKeys",
47
52
  "update:checkedKeys",
48
53
  "update:indeterminateKeys"
49
- ],
50
- setup(s) {
51
- let c = s, h = e("tree"), x = _(s, "selectKeys"), S = u(0), C = () => D.value.length * 31, w = u([]), T = (e, t) => {
52
- let { label: n, key: r, children: i } = c.fieldNames, a = (e, t) => e?.length ? e.map((e) => {
54
+ ]),
55
+ setup(s, { emit: c }) {
56
+ let h = s, x = c, S = e("tree"), C = _(s, "selectKeys"), w = u(0), T = () => k.value.length * 31, E = u([]), D = (e, t) => {
57
+ let { label: n, key: r, children: i } = h.fieldNames, a = (e, t) => e?.length ? e.map((e) => {
53
58
  let o = e[i] || [], s = {
54
59
  label: e[n],
55
60
  key: e[r],
56
61
  children: [],
57
62
  rawNode: { ...e },
58
63
  level: t ? t.level + 1 : 0,
59
- isLeaf: e.isLeaf ? e.isLeaf : c.loadMore ? !1 : !o?.length,
64
+ isLeaf: e.isLeaf ? e.isLeaf : h.loadMore ? !1 : !o?.length,
60
65
  disabled: !!e.disabled,
61
66
  parentKey: t?.key
62
67
  };
@@ -64,11 +69,11 @@ var b = h("<div>", 1), x = /*@__PURE__*/ s({
64
69
  }) : [];
65
70
  return Array.isArray(e) ? a(e, t) : [];
66
71
  };
67
- y(() => c.data, (e) => {
68
- w.value = T(e);
72
+ y(() => h.data, (e) => {
73
+ E.value = D(e);
69
74
  }, { immediate: !0 });
70
- let E = u([]), D = i(() => {
71
- let e = E.value, t = w.value || [];
75
+ let O = u([]), k = i(() => {
76
+ let e = O.value, t = E.value || [];
72
77
  if (t.length === 0) return [];
73
78
  let n = [], r = [...t].reverse();
74
79
  for (; r.length;) {
@@ -77,60 +82,63 @@ var b = h("<div>", 1), x = /*@__PURE__*/ s({
77
82
  }
78
83
  return n;
79
84
  });
80
- y(() => D.value, () => {
81
- S.value = C();
82
- }, { immediate: !0 }), y(() => c.defaultExpandedKeys, (e) => {
83
- E.value = [...new Set(e)];
85
+ y(() => k.value, () => {
86
+ w.value = T();
87
+ }, { immediate: !0 }), y(() => h.defaultExpandedKeys, (e) => {
88
+ O.value = [...new Set(e)];
84
89
  }, { immediate: !0 });
85
- let O = (e) => E.value.includes(e.key), k = (e) => {
86
- E.value = E.value.filter((t) => t !== e.key);
87
- }, A = u(/* @__PURE__ */ new Set()), j = async (e) => {
88
- if (!e.children.length && !e.isLeaf && !A.value.has(e.key)) {
89
- A.value.add(e.key);
90
- let t = await c.loadMore?.(e);
91
- t?.length && (e.rawNode.children = t, e.children = T(t, e)), A.value.delete(e.key);
90
+ let A = (e) => O.value.includes(e.key), j = (e) => {
91
+ O.value = O.value.filter((t) => t !== e.key);
92
+ }, M = u(/* @__PURE__ */ new Set()), N = async (e) => {
93
+ if (!e.children.length && !e.isLeaf && !M.value.has(e.key)) {
94
+ M.value.add(e.key);
95
+ let t = await h.loadMore?.(e);
96
+ t?.length && (e.rawNode.children = t, e.children = D(t, e)), M.value.delete(e.key);
92
97
  }
93
- }, M = async (e) => {
94
- E.value.push(e.key), await j(e);
95
- }, N = async (e) => {
96
- E.value.includes(e.key) ? k(e) : await M(e);
97
- }, P = (e) => {
98
- !c.selectable || e.disabled || (c.multiple ? x.value.includes(e.key) ? x.value = x.value.filter((t) => t !== e.key) : x.value = [...x.value, e.key] : x.value = [e.key]);
99
- }, F = _(s, "checkedKeys"), I = _(s, "indeterminateKeys"), L = (e, t) => {
100
- t.disabled || (e ? (F.value = [...F.value, t.key], I.value = I.value.filter((e) => e !== t.key)) : F.value = F.value.filter((e) => e !== t.key), t.children?.length && t.children.forEach((t) => {
101
- t.disabled || L(e, t);
98
+ }, P = async (e) => {
99
+ O.value.push(e.key), await N(e);
100
+ }, F = async (e) => {
101
+ O.value.includes(e.key) ? (j(e), x("nodeExpand", e, !0)) : (await P(e), x("nodeExpand", e, !1));
102
+ }, I = (e) => {
103
+ !h.selectable || e.disabled || (h.multiple ? C.value.includes(e.key) ? C.value = C.value.filter((t) => t !== e.key) : C.value = [...C.value, e.key] : C.value = [e.key], x("nodeSelect", e));
104
+ }, L = _(s, "checkedKeys"), R = _(s, "indeterminateKeys"), z = (e, t) => {
105
+ t.disabled || (e ? (L.value = [...L.value, t.key], R.value = R.value.filter((e) => e !== t.key)) : L.value = L.value.filter((e) => e !== t.key), t.children?.length && t.children.forEach((t) => {
106
+ t.disabled || z(e, t);
102
107
  }));
103
- }, R = (e) => D.value.find((t) => t.key === e), z = (e) => {
108
+ }, B = (e) => k.value.find((t) => t.key === e), V = (e) => {
104
109
  if (!e.disabled && e.parentKey) {
105
- let t = R(e.parentKey);
110
+ let t = B(e.parentKey);
106
111
  if (t) {
107
112
  let e = !0, n = !1;
108
- for (let r of t.children) F.value.includes(r.key) ? n = !0 : I.value.includes(r.key) ? (e = !1, n = !0) : e = !1;
109
- e ? (F.value = [...F.value, t.key], I.value = I.value.filter((e) => e !== t.key)) : n ? (F.value = F.value.filter((e) => e !== t.key), I.value = [...I.value, t.key]) : (F.value = F.value.filter((e) => e !== t.key), I.value = I.value.filter((e) => e !== t.key)), z(t);
113
+ for (let r of t.children) L.value.includes(r.key) ? n = !0 : R.value.includes(r.key) ? (e = !1, n = !0) : e = !1;
114
+ e ? (L.value = [...L.value, t.key], R.value = R.value.filter((e) => e !== t.key)) : n ? (L.value = L.value.filter((e) => e !== t.key), R.value = [...R.value, t.key]) : (L.value = L.value.filter((e) => e !== t.key), R.value = R.value.filter((e) => e !== t.key)), V(t);
110
115
  }
111
116
  }
112
- }, B = (e, t) => {
113
- L(e, t), z(t);
117
+ }, H = (e, t) => {
118
+ z(e, t), V(t), x("nodeCheck", t, e);
119
+ }, U = (e) => {
120
+ x("nodeClick", e);
114
121
  };
115
122
  l(t, { slots: v() });
116
- let V = b();
123
+ let W = b();
117
124
  return d(() => {
118
- f(V, [g(h).b()]), m(V, { height: S.value + "px" });
119
- }), p(V, null, 0), a(r, {
125
+ f(W, [g(S).b()]), m(W, { height: w.value + "px" });
126
+ }), p(W, null, 0), a(r, {
120
127
  name: "tree-list",
121
128
  tag: "div"
122
- }, () => o(() => D.value, (e) => a(n, {
129
+ }, () => o(() => k.value, (e) => a(n, {
123
130
  node: () => e.value,
124
- expanded: () => O(e.value),
125
- onToggle: () => N,
126
- loading: () => A.value.has(e.value.key),
127
- onSelect: () => P,
128
- selected: () => x.value.includes(e.value.key),
131
+ expanded: () => A(e.value),
132
+ onToggle: () => F,
133
+ loading: () => M.value.has(e.value.key),
134
+ onSelect: () => I,
135
+ selected: () => C.value.includes(e.value.key),
129
136
  checkable: () => !!s.checkable,
130
- checked: () => F.value.includes(e.value.key),
131
- indeterminate: () => I.value.includes(e.value.key),
132
- onCheck: () => B
133
- }), (e) => e.key, 34)), V;
137
+ checked: () => L.value.includes(e.value.key),
138
+ indeterminate: () => R.value.includes(e.value.key),
139
+ onCheck: () => H,
140
+ onClick: () => U
141
+ }), (e) => e.key, 34)), W;
134
142
  }
135
143
  });
136
144
  //#endregion
@@ -11,7 +11,11 @@ export interface TreeProps {
11
11
  /** 树节点数据 */
12
12
  data: any[];
13
13
  /** 字段名配置 */
14
- fieldNames?: FieldNamesProps;
14
+ fieldNames?: {
15
+ label?: string;
16
+ key?: string;
17
+ children?: string;
18
+ };
15
19
  /** 是否默认展开所有节点 */
16
20
  defaultExpandAll?: boolean;
17
21
  /** 默认展开的节点键值数组 */
@@ -35,9 +39,15 @@ export interface TreeProps {
35
39
  /** 加载更多节点的回调函数 */
36
40
  loadMore?: (node: TreeNode) => Promise<TreeNode[]>;
37
41
  }
38
- export interface TreeEvent {
42
+ export interface TreeEmits {
39
43
  /** 选择节点变化事件 */
40
- selectChange: [keys: (string | number)[]];
44
+ nodeSelect: [node: TreeNode];
45
+ /** 节点点击事件 */
46
+ nodeClick: [node: TreeNode];
47
+ /** 节点勾选变化事件 */
48
+ nodeCheck: [node: TreeNode, checked: boolean];
49
+ /** 节点展开变化事件 */
50
+ nodeExpand: [node: TreeNode, expanded: boolean];
41
51
  }
42
52
  export interface TreeNode {
43
53
  /** 节点标签 */
@@ -12,10 +12,10 @@ import { SBadge as f } from "../components/src/badge/index.mjs";
12
12
  import { SButton as p, SButtonGroup as m } from "../components/src/button/index.mjs";
13
13
  import { SCard as h } from "../components/src/card/index.mjs";
14
14
  import { SCarousel as g } from "../components/src/carousel/index.mjs";
15
- import { SCascader as _ } from "../components/src/cascader/index.mjs";
16
- import { SCheckbox as v, SCheckboxGroup as y } from "../components/src/checkbox/index.mjs";
17
- import { SCollapse as b, SCollapseItem as x } from "../components/src/collapse/index.mjs";
18
- import { SEmpty as S } from "../components/src/empty/index.mjs";
15
+ import { SEmpty as _ } from "../components/src/empty/index.mjs";
16
+ import { SCascader as v } from "../components/src/cascader/index.mjs";
17
+ import { SCheckbox as y, SCheckboxGroup as b } from "../components/src/checkbox/index.mjs";
18
+ import { SCollapse as x, SCollapseItem as S } from "../components/src/collapse/index.mjs";
19
19
  import { SIcon as C } from "../components/src/icon/index.mjs";
20
20
  import { STag as w } from "../components/src/tag/index.mjs";
21
21
  import { SSelect as T } from "../components/src/select/index.mjs";
@@ -69,11 +69,11 @@ var Ee = [
69
69
  m,
70
70
  h,
71
71
  g,
72
- _,
73
72
  v,
74
73
  y,
75
74
  b,
76
75
  x,
76
+ S,
77
77
  E,
78
78
  n,
79
79
  D,
@@ -85,7 +85,7 @@ var Ee = [
85
85
  M,
86
86
  P,
87
87
  F,
88
- S,
88
+ _,
89
89
  a,
90
90
  o,
91
91
  I,
@@ -18,12 +18,12 @@ import { SBadge as y } from "../components/src/badge/index.mjs";
18
18
  import { SButton as b, SButtonGroup as x } from "../components/src/button/index.mjs";
19
19
  import { SCard as S } from "../components/src/card/index.mjs";
20
20
  import { SCarousel as C } from "../components/src/carousel/index.mjs";
21
- import { SCascader as w } from "../components/src/cascader/index.mjs";
22
- import { checkboxGroupContextKey as T } from "../components/src/checkbox/types.mjs";
23
- import { SCheckbox as E, SCheckboxGroup as D } from "../components/src/checkbox/index.mjs";
24
- import { collapseContextKey as O } from "../components/src/collapse/types.mjs";
25
- import { SCollapse as k, SCollapseItem as A } from "../components/src/collapse/index.mjs";
26
- import { SEmpty as j } from "../components/src/empty/index.mjs";
21
+ import { SEmpty as w } from "../components/src/empty/index.mjs";
22
+ import { SCascader as T } from "../components/src/cascader/index.mjs";
23
+ import { checkboxGroupContextKey as E } from "../components/src/checkbox/types.mjs";
24
+ import { SCheckbox as D, SCheckboxGroup as O } from "../components/src/checkbox/index.mjs";
25
+ import { collapseContextKey as k } from "../components/src/collapse/types.mjs";
26
+ import { SCollapse as A, SCollapseItem as j } from "../components/src/collapse/index.mjs";
27
27
  import { SIcon as M } from "../components/src/icon/index.mjs";
28
28
  import { STag as N } from "../components/src/tag/index.mjs";
29
29
  import { SSelect as P } from "../components/src/select/index.mjs";
@@ -81,4 +81,4 @@ import Ye from "./components.mjs";
81
81
  //#region index.ts
82
82
  var Xe = e(Ye);
83
83
  //#endregion
84
- export { n as SAnchor, r as SAnchorLink, _ as SAutoComplete, v as SAvatar, h as SBackTop, y as SBadge, b as SButton, x as SButtonGroup, S as SCard, C as SCarousel, w as SCascader, E as SCheckbox, D as SCheckboxGroup, k as SCollapse, A as SCollapseItem, F as SColorPicker, c as SConfigProvider, I as SDatePicker, L as SDatetimePicker, z as SDescriptions, B as SDescriptionsItem, V as SDivider, W as SDoption, H as SDrawer, G as SDropdown, K as SDsubmenu, j as SEmpty, d as SForm, f as SFormItem, q as SGalleria, Y as SGrid, X as SGridItem, M as SIcon, Q as SImage, $ as SImageGroup, ee as SImagePreview, p as SInput, te as SInputNumber, ne as SInputTag, ie as SLayout, ae as SLayoutAside, oe as SLayoutContent, se as SLayoutFooter, ce as SLayoutHeader, le as SLink, ue as SList, me as SMenu, he as SMenuGroup, ge as SMenuItem, ye as SMeterGroup, xe as SModal, Se as SPagination, Ce as SPanel, l as SPopover, we as SProgress, Ee as SRadio, De as SRadioGroup, g as SScrollbar, Oe as SSegmented, P as SSelect, ke as SSkeleton, Ae as SSpace, je as SStatistic, _e as SSubMenu, Me as SSwitch, Fe as STab, Ie as STabPane, Ne as STable, Le as STabs, N as STag, Re as SText, ze as STextarea, Ve as STimeline, He as STimelineItem, u as STooltip, We as STree, Ge as SUpload, Ke as SWaterfall, qe as SWatermark, Je as SWheel, t as anchorContextKey, m as buttonGroupContextKey, T as checkboxGroupContextKey, O as collapseContextKey, s as configProviderContextKey, Xe as default, R as descriptionsContextKey, U as dropdownContextKey, i as formContextKey, a as formItemContextKey, o as formItemStatusContextKey, J as gridContextKey, Z as imageGroupContextKey, de as menuContextKey, fe as menuLevelContextKey, Te as radioGroupContextKey, pe as subMenuContextKey, Pe as tabsContextKey, Be as timelineContextKey, Ue as treeContextKey, re as useLayer, ve as useMessage, be as useModal };
84
+ export { n as SAnchor, r as SAnchorLink, _ as SAutoComplete, v as SAvatar, h as SBackTop, y as SBadge, b as SButton, x as SButtonGroup, S as SCard, C as SCarousel, T as SCascader, D as SCheckbox, O as SCheckboxGroup, A as SCollapse, j as SCollapseItem, F as SColorPicker, c as SConfigProvider, I as SDatePicker, L as SDatetimePicker, z as SDescriptions, B as SDescriptionsItem, V as SDivider, W as SDoption, H as SDrawer, G as SDropdown, K as SDsubmenu, w as SEmpty, d as SForm, f as SFormItem, q as SGalleria, Y as SGrid, X as SGridItem, M as SIcon, Q as SImage, $ as SImageGroup, ee as SImagePreview, p as SInput, te as SInputNumber, ne as SInputTag, ie as SLayout, ae as SLayoutAside, oe as SLayoutContent, se as SLayoutFooter, ce as SLayoutHeader, le as SLink, ue as SList, me as SMenu, he as SMenuGroup, ge as SMenuItem, ye as SMeterGroup, xe as SModal, Se as SPagination, Ce as SPanel, l as SPopover, we as SProgress, Ee as SRadio, De as SRadioGroup, g as SScrollbar, Oe as SSegmented, P as SSelect, ke as SSkeleton, Ae as SSpace, je as SStatistic, _e as SSubMenu, Me as SSwitch, Fe as STab, Ie as STabPane, Ne as STable, Le as STabs, N as STag, Re as SText, ze as STextarea, Ve as STimeline, He as STimelineItem, u as STooltip, We as STree, Ge as SUpload, Ke as SWaterfall, qe as SWatermark, Je as SWheel, t as anchorContextKey, m as buttonGroupContextKey, E as checkboxGroupContextKey, k as collapseContextKey, s as configProviderContextKey, Xe as default, R as descriptionsContextKey, U as dropdownContextKey, i as formContextKey, a as formItemContextKey, o as formItemStatusContextKey, J as gridContextKey, Z as imageGroupContextKey, de as menuContextKey, fe as menuLevelContextKey, Te as radioGroupContextKey, pe as subMenuContextKey, Pe as tabsContextKey, Be as timelineContextKey, Ue as treeContextKey, re as useLayer, ve as useMessage, be as useModal };
@@ -77,6 +77,12 @@
77
77
  color: getCssVar("color", "text-3");
78
78
  border: 1px solid getCssVar("color", "fill-2");
79
79
  &:hover {
80
+ background-color: getCssVar("color", "bg-2");
81
+ color: getCssVar("color", "text-3");
82
+ border: 1px solid getCssVar("color", "fill-2");
83
+ }
84
+ &:active {
85
+ background-color: getCssVar("color", "bg-2");
80
86
  color: getCssVar("color", "text-3");
81
87
  border: 1px solid getCssVar("color", "fill-2");
82
88
  }
@@ -94,6 +100,17 @@
94
100
  border: 1px solid getCssVar("color", "fill-3");
95
101
  color: getCssVar("color", "text-1");
96
102
  }
103
+ @include when(disabled, loading) {
104
+ cursor: not-allowed;
105
+ color: getCssVar("color", "text-3");
106
+ background-color: transparent;
107
+ border: 1px solid transparent;
108
+ &:hover {
109
+ color: getCssVar("color", "text-3");
110
+ background-color: transparent;
111
+ border: 1px solid transparent;
112
+ }
113
+ }
97
114
  }
98
115
  @include this-is(link) {
99
116
  background-color: transparent;
@@ -131,11 +148,11 @@
131
148
  }
132
149
  @include when(disabled, loading) {
133
150
  cursor: not-allowed;
134
- background-color: getCssVar("color", #{$type}-4);
135
- border: 1px solid getCssVar("color", #{$type}-4);
151
+ background-color: getCssVar("color", #{$type}-3);
152
+ border: 1px solid getCssVar("color", #{$type}-3);
136
153
  &:hover {
137
- background-color: getCssVar("color", #{$type}-4);
138
- border: 1px solid getCssVar("color", #{$type}-4);
154
+ background-color: getCssVar("color", #{$type}-3);
155
+ border: 1px solid getCssVar("color", #{$type}-3);
139
156
  }
140
157
  }
141
158
  @include this-is(text) {
@@ -11,6 +11,9 @@
11
11
  border: 1px solid getCssVar("color", "fill-3");
12
12
  box-shadow: getCssVar("shadow", "1");
13
13
  }
14
+ @include e(suffix-icon) {
15
+ transition: transform 0.3s getCssVar("bezier", "1");
16
+ }
14
17
  @include e(panel) {
15
18
  height: 100%;
16
19
  display: flex;
@@ -24,11 +24,13 @@
24
24
  background-color: getCssVar("color", "bg-2");
25
25
  &:hover {
26
26
  background-color: getCssVar("color", "bg-2");
27
+ border: 1px solid getCssVar("color", "fill-3");
27
28
  }
28
29
  @include when(filled) {
29
30
  background-color: getCssVar("color", "fill-2");
30
31
  &:hover {
31
32
  background-color: getCssVar("color", "fill-2");
33
+ border: 1px solid getCssVar("color", "fill-2");
32
34
  }
33
35
  }
34
36
  }
@@ -124,6 +124,16 @@
124
124
  display: flex;
125
125
  align-items: center;
126
126
  width: 100%;
127
+ @include when(collapse) {
128
+ @include be(menu, item-title) {
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: center;
132
+ }
133
+ @include be(menu, item-label) {
134
+ display: none;
135
+ }
136
+ }
127
137
  }
128
138
  @include e(item-title) {
129
139
  height: 40px;
@@ -219,6 +229,9 @@
219
229
  }
220
230
  }
221
231
  }
232
+ @include be(menu, item-label) {
233
+ display: flex !important;
234
+ }
222
235
  }
223
236
  @include e(group) {
224
237
  display: flex;
@@ -314,6 +314,7 @@
314
314
  align-items: center;
315
315
  justify-content: center;
316
316
  font-size: 16px;
317
+ transition: transform 0.3s;
317
318
  }
318
319
 
319
320
  @include m(ellipsis) {