bkui-vue 0.0.1-beta.62 → 0.0.1-beta.65

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 (59) hide show
  1. package/dist/index.cjs.js +30 -30
  2. package/dist/index.esm.js +893 -561
  3. package/dist/index.umd.js +30 -30
  4. package/dist/style.css +1 -1
  5. package/lib/alert/alert.css +2 -0
  6. package/lib/alert/alert.less +2 -0
  7. package/lib/alert/alert.variable.css +2 -0
  8. package/lib/alert/index.js +1 -1
  9. package/lib/button/button.less +1 -1
  10. package/lib/checkbox/checkbox.css +3 -2
  11. package/lib/checkbox/checkbox.less +3 -2
  12. package/lib/checkbox/checkbox.variable.css +3 -2
  13. package/lib/collapse/collapse.css +17 -1
  14. package/lib/collapse/collapse.d.ts +11 -14
  15. package/lib/collapse/collapse.less +24 -2
  16. package/lib/collapse/collapse.variable.css +116 -1
  17. package/lib/collapse/index.d.ts +31 -15
  18. package/lib/collapse/index.js +1 -1
  19. package/lib/collapse/utils.d.ts +11 -0
  20. package/lib/date-picker/date-picker.d.ts +11 -1
  21. package/lib/date-picker/index.d.ts +26 -4
  22. package/lib/date-picker/index.js +1 -1
  23. package/lib/date-picker/props.d.ts +4 -0
  24. package/lib/radio/radio.css +6 -6
  25. package/lib/radio/radio.less +7 -7
  26. package/lib/radio/radio.variable.css +7 -7
  27. package/lib/select/select.css +3 -0
  28. package/lib/select/select.less +4 -0
  29. package/lib/select/select.variable.css +3 -0
  30. package/lib/tab/index.d.ts +10 -13
  31. package/lib/tab/index.js +1 -1
  32. package/lib/tab/props.d.ts +3 -0
  33. package/lib/tab/tab-nav.d.ts +11 -7
  34. package/lib/tab/tab.css +19 -0
  35. package/lib/tab/tab.d.ts +3 -4
  36. package/lib/tab/tab.less +25 -19
  37. package/lib/tab/tab.variable.css +19 -0
  38. package/lib/table/table.css +1 -0
  39. package/lib/table/table.less +1 -0
  40. package/lib/table/table.variable.css +1 -0
  41. package/lib/tree/constant.d.ts +24 -0
  42. package/lib/tree/index.d.ts +100 -8
  43. package/lib/tree/index.js +1 -1
  44. package/lib/tree/props.d.ts +27 -0
  45. package/lib/tree/tree.css +2 -1
  46. package/lib/tree/tree.d.ts +45 -2
  47. package/lib/tree/tree.less +2 -1
  48. package/lib/tree/tree.variable.css +2 -1
  49. package/lib/tree/use-node-action.d.ts +6 -3
  50. package/lib/tree/{use-async.d.ts → use-node-async.d.ts} +0 -0
  51. package/lib/tree/use-node-attribute.d.ts +11 -3
  52. package/lib/tree/use-node-drag.d.ts +3 -0
  53. package/lib/tree/use-tree-init.d.ts +12 -0
  54. package/lib/tree/util.d.ts +2 -23
  55. package/lib/upload/index.js +1 -1
  56. package/lib/upload/upload.css +1 -1
  57. package/lib/upload/upload.less +1 -1
  58. package/lib/upload/upload.variable.css +1 -1
  59. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -2674,18 +2674,18 @@ folder.inheritAttrs = false;
2674
2674
  JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 1024 1024","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;"},"elements":[{"type":"element","name":"path","attributes":{"d":"M860.8 128H163.2a32 32 0 0 0-27.36 52l295.2 336 0.96 0V896l160-82.72V516.8l0.96 0 295.2-336A32 32 0 0 0 860.8 128Z"}}]}');
2675
2675
  JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 64C264 64 64 264 64 512c0 57.6 11.2 113.6 32 166.4V896c0 17.6 14.4 32 32 32h217.6C576 1019.2 836.8 908.8 928 678.4S908.8 187.2 678.4 96C625.6 75.2 569.6 64 512 64zM500.8 721.6c-27.2 0-48-20.8-48-48s20.8-48 48-48c27.2 0 48 20.8 48 48S528 721.6 500.8 721.6zM587.2 507.2c-36.8 20.8-48 35.2-48 62.4v14.4H464v-16c-3.2-44.8 11.2-70.4 51.2-92.8 36.8-22.4 48-35.2 48-60.8s-20.8-44.8-52.8-44.8c-28.8-1.6-52.8 19.2-56 48 0 1.6 0 1.6 0 3.2h-76.8c1.6-70.4 49.6-118.4 136-118.4 80 0 132.8 44.8 132.8 110.4C648 454.4 627.2 484.8 587.2 507.2z"}}]}');
2676
2676
  JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 64C264 64 64 264 64 512s200 448 448 448 448-200 448-448S760 64 512 64zM500.8 721.6c-27.2 0-48-20.8-48-48s20.8-48 48-48c27.2 0 48 20.8 48 48S528 721.6 500.8 721.6zM587.2 507.2c-36.8 20.8-48 35.2-48 62.4v14.4H464v-16c-3.2-44.8 11.2-70.4 51.2-92.8 36.8-22.4 48-35.2 48-60.8s-20.8-44.8-52.8-44.8c-28.8-1.6-52.8 19.2-56 48 0 1.6 0 1.6 0 3.2h-76.8c1.6-70.4 49.6-118.4 136-118.4 80 0 132.8 44.8 132.8 110.4C648 454.4 627.2 484.8 587.2 507.2z"}}]}');
2677
- const data$c = JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 128c212.8 0 384 171.2 384 384S724.8 896 512 896 128 724.8 128 512 299.2 128 512 128M512 64C264 64 64 264 64 512s200 448 448 448 448-200 448-448S760 64 512 64z"}},{"type":"element","name":"path","attributes":{"d":"M548.8 673.6A48 48 0 0 1 500.8 721.6 48 48 0 0 1 452.8 673.6 48 48 0 0 1 548.8 673.6z"}},{"type":"element","name":"path","attributes":{"d":"M513.6 302.4c80 0 132.8 44.8 132.8 110.4 0 41.6-20.8 72-60.8 96-40 24-48 35.2-48 62.4v14.4H464v-16c-3.2-44.8 11.2-70.4 51.2-92.8 36.8-22.4 48-35.2 48-60.8s-20.8-44.8-52.8-44.8c-28.8-1.6-52.8 19.2-56 48 0 1.6 0 1.6 0 3.2h-76.8C377.6 352 427.2 302.4 513.6 302.4z"}}]}');
2678
- const help = (props, context) => {
2677
+ JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 128c212.8 0 384 171.2 384 384S724.8 896 512 896 128 724.8 128 512 299.2 128 512 128M512 64C264 64 64 264 64 512s200 448 448 448 448-200 448-448S760 64 512 64z"}},{"type":"element","name":"path","attributes":{"d":"M548.8 673.6A48 48 0 0 1 500.8 721.6 48 48 0 0 1 452.8 673.6 48 48 0 0 1 548.8 673.6z"}},{"type":"element","name":"path","attributes":{"d":"M513.6 302.4c80 0 132.8 44.8 132.8 110.4 0 41.6-20.8 72-60.8 96-40 24-48 35.2-48 62.4v14.4H464v-16c-3.2-44.8 11.2-70.4 51.2-92.8 36.8-22.4 48-35.2 48-60.8s-20.8-44.8-52.8-44.8c-28.8-1.6-52.8 19.2-56 48 0 1.6 0 1.6 0 3.2h-76.8C377.6 352 427.2 302.4 513.6 302.4z"}}]}');
2678
+ JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 1024 1303.273","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;"},"elements":[{"type":"element","name":"path","attributes":{"d":"M664.4363636363637 0C676.8000000000001 0 688.5818181818182 4.945454545454545 697.3090909090909 13.672727272727274L697.3090909090909 13.672727272727274 1010.3272727272728 326.6909090909091C1019.0545454545455 335.41818181818184 1024 347.3454545454546 1024 359.70909090909095L1024 359.70909090909095 1024 1256.7272727272727C1024 1282.4727272727273 1003.2 1303.2727272727273 977.4545454545455 1303.2727272727273L977.4545454545455 1303.2727272727273 46.54545454545455 1303.2727272727273C20.8 1303.2727272727273 0 1282.4727272727273 0 1256.7272727272727L0 1256.7272727272727 0 46.54545454545455C0 20.8 20.8 0 46.54545454545455 0L46.54545454545455 0ZM637.6727272727272 744.7272727272727L474.76363636363635 954.1818181818182 358.40000000000003 814.5454545454546 195.4909090909091 1024 847.1272727272727 1024 637.6727272727272 744.7272727272727ZM465.4545454545455 558.5454545454545C414.041856 558.5454545454545 372.3636363636364 600.2236741818182 372.3636363636364 651.6363636363636 372.3636363636364 703.0490530909091 414.041856 744.7272727272727 465.4545454545455 744.7272727272727 516.8672349090909 744.7272727272727 558.5454545454545 703.0490530909091 558.5454545454545 651.6363636363636 558.5454545454545 600.2236741818182 516.8672349090909 558.5454545454545 465.4545454545455 558.5454545454545ZM642.9090909090909 107.34545454545454L642.9090909090909 381.0909090909091 916.6545454545455 381.0909090909091 642.9090909090909 107.34545454545454Z"}}]}');
2679
+ const data$c = JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 64C264 64 64 264 64 512s200 448 448 448 448-200 448-448S760 64 512 64zM512 896C299.2 896 128 724.8 128 512S299.2 128 512 128s384 171.2 384 384S724.8 896 512 896z"}},{"type":"element","name":"path","attributes":{"d":"M494.4 403.2c-28.8 6.4-56 20.8-76.8 41.6-24 22.4 1.6 44.8 16 27.2 9.6-12.8 24-22.4 40-28.8 11.2-1.6 17.6 1.6 19.2 9.6 1.6 14.4 0 27.2-4.8 41.6-4.8 19.2-14.4 51.2-25.6 94.4-22.4 76.8-33.6 124.8-30.4 140.8 3.2 17.6 12.8 32 28.8 41.6 17.6 8 38.4 9.6 57.6 4.8 30.4-6.4 57.6-22.4 80-44.8 25.6-25.6-3.2-43.2-17.6-28.8-9.6 12.8-24 22.4-40 25.6-14.4 3.2-22.4-3.2-25.6-16-1.6-14.4 1.6-28.8 6.4-41.6 40-136 57.6-212.8 52.8-232-3.2-14.4-12.8-27.2-25.6-33.6C532.8 398.4 512 398.4 494.4 403.2z"}},{"type":"element","name":"path","attributes":{"d":"M608 304A48 48 0 0 1 560 352 48 48 0 0 1 512 304 48 48 0 0 1 608 304z"}}]}');
2680
+ const infoLine = (props, context) => {
2679
2681
  const p2 = __spreadValues(__spreadValues({}, props), context.attrs);
2680
2682
  return createVNode(bkIcon, mergeProps(p2, {
2681
2683
  "data": data$c,
2682
- "name": "help"
2684
+ "name": "infoLine"
2683
2685
  }), null);
2684
2686
  };
2685
- help.displayName = "help";
2686
- help.inheritAttrs = false;
2687
- JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 1024 1303.273","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;"},"elements":[{"type":"element","name":"path","attributes":{"d":"M664.4363636363637 0C676.8000000000001 0 688.5818181818182 4.945454545454545 697.3090909090909 13.672727272727274L697.3090909090909 13.672727272727274 1010.3272727272728 326.6909090909091C1019.0545454545455 335.41818181818184 1024 347.3454545454546 1024 359.70909090909095L1024 359.70909090909095 1024 1256.7272727272727C1024 1282.4727272727273 1003.2 1303.2727272727273 977.4545454545455 1303.2727272727273L977.4545454545455 1303.2727272727273 46.54545454545455 1303.2727272727273C20.8 1303.2727272727273 0 1282.4727272727273 0 1256.7272727272727L0 1256.7272727272727 0 46.54545454545455C0 20.8 20.8 0 46.54545454545455 0L46.54545454545455 0ZM637.6727272727272 744.7272727272727L474.76363636363635 954.1818181818182 358.40000000000003 814.5454545454546 195.4909090909091 1024 847.1272727272727 1024 637.6727272727272 744.7272727272727ZM465.4545454545455 558.5454545454545C414.041856 558.5454545454545 372.3636363636364 600.2236741818182 372.3636363636364 651.6363636363636 372.3636363636364 703.0490530909091 414.041856 744.7272727272727 465.4545454545455 744.7272727272727 516.8672349090909 744.7272727272727 558.5454545454545 703.0490530909091 558.5454545454545 651.6363636363636 558.5454545454545 600.2236741818182 516.8672349090909 558.5454545454545 465.4545454545455 558.5454545454545ZM642.9090909090909 107.34545454545454L642.9090909090909 381.0909090909091 916.6545454545455 381.0909090909091 642.9090909090909 107.34545454545454Z"}}]}');
2688
- JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 64C264 64 64 264 64 512s200 448 448 448 448-200 448-448S760 64 512 64zM512 896C299.2 896 128 724.8 128 512S299.2 128 512 128s384 171.2 384 384S724.8 896 512 896z"}},{"type":"element","name":"path","attributes":{"d":"M494.4 403.2c-28.8 6.4-56 20.8-76.8 41.6-24 22.4 1.6 44.8 16 27.2 9.6-12.8 24-22.4 40-28.8 11.2-1.6 17.6 1.6 19.2 9.6 1.6 14.4 0 27.2-4.8 41.6-4.8 19.2-14.4 51.2-25.6 94.4-22.4 76.8-33.6 124.8-30.4 140.8 3.2 17.6 12.8 32 28.8 41.6 17.6 8 38.4 9.6 57.6 4.8 30.4-6.4 57.6-22.4 80-44.8 25.6-25.6-3.2-43.2-17.6-28.8-9.6 12.8-24 22.4-40 25.6-14.4 3.2-22.4-3.2-25.6-16-1.6-14.4 1.6-28.8 6.4-41.6 40-136 57.6-212.8 52.8-232-3.2-14.4-12.8-27.2-25.6-33.6C532.8 398.4 512 398.4 494.4 403.2z"}},{"type":"element","name":"path","attributes":{"d":"M608 304A48 48 0 0 1 560 352 48 48 0 0 1 512 304 48 48 0 0 1 608 304z"}}]}');
2687
+ infoLine.displayName = "infoLine";
2688
+ infoLine.inheritAttrs = false;
2689
2689
  const data$b = JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","class":"bk-icon","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;","overflow":"hidden","viewBox":"0 0 1024 1024"},"elements":[{"type":"element","name":"path","attributes":{"d":"M512 64A448 448 0 1 1 64 512 448 448 0 0 1 512 64ZM493.92 402.56a156 156 0 0 0-77.12 42.24c-24.32 22.88 1.44 44 16 27.52a82.56 82.56 0 0 1 40.48-28.16c11.04-2.24 17.6 1.28 19.36 10.4A118.88 118.88 0 0 1 488.16 496q-7.2 29.76-26.4 93.92-34.72 116.32-30.08 140.8a54.72 54.72 0 0 0 28.8 40.96 88 88 0 0 0 58.4 5.12 161.76 161.76 0 0 0 80-45.44c25.76-24.96-3.52-43.04-17.28-28a76.32 76.32 0 0 1-39.36 26.08c-14.24 2.88-22.72-2.4-25.28-16A104.96 104.96 0 0 1 522.88 672Q582.24 469.12 576 439.84a46.24 46.24 0 0 0-25.6-33.6A89.6 89.6 0 0 0 493.92 402.56Zm67.84-39.84A49.92 49.92 0 1 0 512 312.96 49.76 49.76 0 0 0 561.76 362.72Z"}}]}');
2690
2690
  const info = (props, context) => {
2691
2691
  const p2 = __spreadValues(__spreadValues({}, props), context.attrs);
@@ -2858,7 +2858,7 @@ var Component$A = defineComponent({
2858
2858
  "class": typeClass
2859
2859
  }, [createVNode("div", {
2860
2860
  "class": "bk-alert-wraper"
2861
- }, [this.showIcon && createVNode(help, {
2861
+ }, [this.showIcon && createVNode(infoLine, {
2862
2862
  "class": "bk-alert-icon-info"
2863
2863
  }, null), createVNode("div", {
2864
2864
  "class": "bk-alert-content"
@@ -2866,7 +2866,7 @@ var Component$A = defineComponent({
2866
2866
  "class": "bk-alert-title"
2867
2867
  }, [this.title]), createVNode("div", {
2868
2868
  "class": "bk-alert-description"
2869
- }, null)]), createVNode("span", {
2869
+ }, null)]), this.closable && createVNode("span", {
2870
2870
  "class": closeButtonClasses,
2871
2871
  "onClick": this.handleClose
2872
2872
  }, [this.closeText])])]);
@@ -9407,6 +9407,85 @@ var BkCheckboxGroup = defineComponent({
9407
9407
  }
9408
9408
  });
9409
9409
  const BkCheckbox = withInstallProps(Component$q, { Group: BkCheckboxGroup });
9410
+ const trimArr$1 = function(s2) {
9411
+ return (s2 || "").split(" ").filter((item) => !!item.trim());
9412
+ };
9413
+ function removeClass$1(el, cls) {
9414
+ if (!el || !cls)
9415
+ return;
9416
+ const classes2 = trimArr$1(cls);
9417
+ let curClass = el.getAttribute("class") || "";
9418
+ if (el.classList) {
9419
+ el.classList.remove(...classes2);
9420
+ return;
9421
+ }
9422
+ classes2.forEach((item) => {
9423
+ curClass = curClass.replace(` ${item} `, " ");
9424
+ });
9425
+ const className = trimArr$1(curClass).join(" ");
9426
+ el.setAttribute("class", className);
9427
+ }
9428
+ function addClass$1(el, cls) {
9429
+ if (!el)
9430
+ return;
9431
+ let className = el.getAttribute("class") || "";
9432
+ const curClass = trimArr$1(className);
9433
+ const classes2 = (cls || "").split(" ").filter((item) => !curClass.includes(item) && !!item.trim());
9434
+ if (el.classList) {
9435
+ el.classList.add(...classes2);
9436
+ } else {
9437
+ className += ` ${classes2.join(" ")}`;
9438
+ el.setAttribute("class", className);
9439
+ }
9440
+ }
9441
+ const collapseMotion$1 = (emit) => ({
9442
+ css: true,
9443
+ onBeforeEnter: (el) => {
9444
+ addClass$1(el, "collapse-transition");
9445
+ if (!el.dataset)
9446
+ el.dataset = {};
9447
+ el.style.height = "0px";
9448
+ },
9449
+ onEnter: (el) => {
9450
+ el.dataset.oldOverflow = el.style.overflow;
9451
+ if (el.scrollHeight !== 0) {
9452
+ el.style.height = `${el.scrollHeight}px`;
9453
+ el.style.maxHeight = `${el.scrollHeight}px`;
9454
+ } else {
9455
+ el.style.height = "0px";
9456
+ }
9457
+ el.style.overflow = "hidden";
9458
+ },
9459
+ onAfterEnter: (el) => {
9460
+ el.style.height = "";
9461
+ el.style.maxHeight = "";
9462
+ el.style.overflow = el.dataset.oldOverflow;
9463
+ removeClass$1(el, "collapse-transition");
9464
+ emit("before-enter");
9465
+ },
9466
+ onBeforeLeave: (el) => {
9467
+ if (!el.dataset)
9468
+ el.dataset = {};
9469
+ el.dataset.oldOverflow = el.style.overflow;
9470
+ el.style.height = `${el.scrollHeight}px`;
9471
+ el.style.maxHeight = `${el.scrollHeight}px`;
9472
+ el.style.overflow = "hidden";
9473
+ },
9474
+ onLeave: (el) => {
9475
+ if (el.scrollHeight !== 0) {
9476
+ addClass$1(el, "collapse-transition");
9477
+ el.style.transitionProperty = "height";
9478
+ el.style.height = "0px";
9479
+ }
9480
+ },
9481
+ onAfterLeave: (el) => {
9482
+ removeClass$1(el, "collapse-transition");
9483
+ el.style.height = "";
9484
+ el.style.maxHeight = "";
9485
+ el.style.overflow = el.dataset.oldOverflow;
9486
+ emit("after-leave");
9487
+ }
9488
+ });
9410
9489
  var Component$p = defineComponent({
9411
9490
  name: "Collapse",
9412
9491
  props: {
@@ -9414,16 +9493,27 @@ var Component$p = defineComponent({
9414
9493
  idFiled: PropTypes.string.def("$index"),
9415
9494
  titleField: PropTypes.string.def("name"),
9416
9495
  contentField: PropTypes.string.def("content"),
9417
- activeIndex: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number).def([]), PropTypes.number.def(-1)]),
9418
- activeName: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string).def([]), PropTypes.string.def("")]),
9419
- accordion: PropTypes.bool.def(true)
9496
+ modelValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number).def([]), PropTypes.arrayOf(PropTypes.string).def([]), PropTypes.number.def(-1)]),
9497
+ accordion: PropTypes.bool.def(false)
9420
9498
  },
9499
+ emits: ["item-click", "update:modelValue", "after-leave", "before-enter"],
9421
9500
  setup(props, {
9501
+ emit,
9422
9502
  slots
9423
9503
  }) {
9424
- const localActiveItems = ref(null);
9425
- watch(() => [props.activeName, props.activeIndex], () => {
9426
- localActiveItems.value = null;
9504
+ const localActiveItems = ref([]);
9505
+ const transition = ref(collapseMotion$1(emit));
9506
+ watch(() => [props.modelValue], () => {
9507
+ const value = props.modelValue;
9508
+ if (Array.isArray(value)) {
9509
+ localActiveItems.value = [...value];
9510
+ } else if (typeof value !== "undefined") {
9511
+ localActiveItems.value = [value];
9512
+ } else {
9513
+ localActiveItems.value = [];
9514
+ }
9515
+ }, {
9516
+ immediate: true
9427
9517
  });
9428
9518
  const collapseData = computed(() => (props.list || []).map((item, index) => {
9429
9519
  if (typeof item === "string" || typeof item === "number" || typeof item === "boolean") {
@@ -9436,59 +9526,47 @@ var Component$p = defineComponent({
9436
9526
  $index: index
9437
9527
  }, item);
9438
9528
  }));
9439
- const activeItemIndexList = computed(() => {
9440
- var _a;
9441
- if (localActiveItems.value !== null) {
9442
- return localActiveItems.value.map((item) => item.$index);
9443
- }
9444
- if (props.activeName !== null && props.activeName !== void 0 && props.activeName !== "") {
9445
- const activeNames = resolvePropsActiveValue(props.activeName);
9446
- return activeNames.map((name2) => collapseData.value.findIndex((item) => item[props.idFiled] === name2));
9447
- }
9448
- return resolvePropsActiveValue((_a = props.activeIndex) != null ? _a : 0);
9449
- });
9450
- const resolvePropsActiveValue = (prop) => {
9451
- if (Array.isArray(prop)) {
9452
- return props.accordion ? resolvePropsActiveValue(prop[0]) : prop;
9453
- }
9454
- if (typeof prop === "string" || typeof prop === "number") {
9455
- return [prop];
9456
- }
9457
- return [];
9458
- };
9459
9529
  const handleItemClick = (item) => {
9460
- if (localActiveItems.value === null) {
9461
- localActiveItems.value = [item];
9530
+ if (item.disabled)
9531
+ return;
9532
+ if (props.accordion) {
9533
+ const activeItemIndex = localActiveItems.value.findIndex((local) => local === item[props.idFiled]);
9534
+ if (activeItemIndex >= 0) {
9535
+ localActiveItems.value.splice(activeItemIndex, 1);
9536
+ } else {
9537
+ localActiveItems.value = [item[props.idFiled]];
9538
+ }
9462
9539
  } else {
9463
- if (props.accordion) {
9464
- localActiveItems.value = [item];
9540
+ const activeItemIndex = localActiveItems.value.findIndex((local) => local === item[props.idFiled]);
9541
+ if (activeItemIndex >= 0) {
9542
+ localActiveItems.value.splice(activeItemIndex, 1);
9465
9543
  } else {
9466
- const activeItemIndex = localActiveItems.value.findIndex((local) => local.$index === item.$index);
9467
- if (activeItemIndex >= 0) {
9468
- localActiveItems.value.splice(activeItemIndex, 1);
9469
- } else {
9470
- localActiveItems.value.push(item);
9471
- }
9544
+ localActiveItems.value.push(item[props.idFiled]);
9472
9545
  }
9473
9546
  }
9547
+ emit("item-click", item);
9548
+ emit("update:modelValue", localActiveItems.value);
9474
9549
  };
9475
- const isItemActive = (item) => activeItemIndexList.value.some((activeIndex) => activeIndex === item.$index);
9550
+ const isItemActive = (item) => localActiveItems.value.includes(item[props.idFiled]);
9476
9551
  const renderItems = () => collapseData.value.map((item) => {
9477
- var _a, _b, _c, _d;
9552
+ var _a, _b;
9478
9553
  return createVNode("div", {
9479
- "class": "bk-collapse-item"
9554
+ "class": `bk-collapse-item ${item.disabled ? "is-disabled" : ""} ${isItemActive(item) ? "bk-collapse-item-active" : ""}`
9480
9555
  }, [createVNode("div", {
9481
9556
  "class": "bk-collapse-header",
9482
9557
  "onClick": () => handleItemClick(item)
9483
9558
  }, [createVNode("span", {
9484
9559
  "class": "bk-collapse-title"
9485
- }, [(_b = (_a = slots.default) == null ? void 0 : _a.call(slots, item)) != null ? _b : item[props.titleField]]), isItemActive(item) ? createVNode(angleDown, {
9486
- "class": "bk-collapse-icon"
9487
- }, null) : createVNode(angleRight, {
9488
- "class": "bk-collapse-icon"
9489
- }, null)]), createVNode("div", {
9490
- "class": `bk-collapse-content ${isItemActive(item) && "active" || ""}`
9491
- }, [(_d = (_c = slots.content) == null ? void 0 : _c.call(slots, item)) != null ? _d : item[props.contentField]])]);
9560
+ }, [(_b = (_a = slots.default) == null ? void 0 : _a.call(slots, item)) != null ? _b : item[props.titleField]]), createVNode(angleRight, {
9561
+ "class": `bk-collapse-icon ${isItemActive(item) && "rotate-icon" || ""}`
9562
+ }, null)]), createVNode(Transition, transition.value, {
9563
+ default: () => {
9564
+ var _a2, _b2;
9565
+ return [withDirectives(createVNode("div", {
9566
+ "class": `bk-collapse-content ${isItemActive(item) && "active" || ""}`
9567
+ }, [(_b2 = (_a2 = slots.content) == null ? void 0 : _a2.call(slots, item)) != null ? _b2 : item[props.contentField]]), [[vShow, isItemActive(item)]])];
9568
+ }
9569
+ })]);
9492
9570
  });
9493
9571
  const className = "bk-collapse-wrapper";
9494
9572
  return () => createVNode("div", {
@@ -9496,7 +9574,7 @@ var Component$p = defineComponent({
9496
9574
  }, [renderItems()]);
9497
9575
  }
9498
9576
  });
9499
- const BkCollaspe = withInstall(Component$p);
9577
+ const BkCollapse = withInstall(Component$p);
9500
9578
  const propsMixin$1 = {
9501
9579
  isShow: PropTypes.bool.def(false),
9502
9580
  width: PropTypes.string.def("50%") || PropTypes.number,
@@ -13893,12 +13971,12 @@ var Settings = defineComponent({
13893
13971
  });
13894
13972
  }
13895
13973
  });
13896
- let EVENTS;
13974
+ let EVENTS$1;
13897
13975
  (function(EVENTS2) {
13898
13976
  EVENTS2["ON_SORT_BY_CLICK"] = "onSortByClick";
13899
13977
  EVENTS2["ON_FILTER_CLICK"] = "onFilterClick";
13900
13978
  EVENTS2["ON_SETTING_CHANGE"] = "onSettingChange";
13901
- })(EVENTS || (EVENTS = {}));
13979
+ })(EVENTS$1 || (EVENTS$1 = {}));
13902
13980
  class TableRender {
13903
13981
  constructor(props, ctx, reactiveProp, colgroups) {
13904
13982
  __publicField(this, "getRowHeight", (row, rowIndex) => {
@@ -13951,7 +14029,7 @@ class TableRender {
13951
14029
  col.isHidden = !(checked != null ? checked : []).includes(resolvePropVal(col, "field", [col]));
13952
14030
  });
13953
14031
  }
13954
- this.emitEvent(EVENTS.ON_SETTING_CHANGE, [arg]);
14032
+ this.emitEvent(EVENTS$1.ON_SETTING_CHANGE, [arg]);
13955
14033
  };
13956
14034
  return [this.props.settings ? createVNode(Settings, {
13957
14035
  "class": "table-head-settings",
@@ -14031,7 +14109,7 @@ class TableRender {
14031
14109
  }
14032
14110
  getSortCell(column, index) {
14033
14111
  const hanldeSortClick = (sortFn, type) => {
14034
- this.emitEvent(EVENTS.ON_SORT_BY_CLICK, [{
14112
+ this.emitEvent(EVENTS$1.ON_SORT_BY_CLICK, [{
14035
14113
  sortFn,
14036
14114
  column,
14037
14115
  index,
@@ -14046,7 +14124,7 @@ class TableRender {
14046
14124
  getFilterCell(column, index) {
14047
14125
  const handleFilterChange = (checked, filterFn) => {
14048
14126
  const filterFn0 = (row, index2) => filterFn(checked, row, index2);
14049
- this.emitEvent(EVENTS.ON_FILTER_CLICK, [{
14127
+ this.emitEvent(EVENTS$1.ON_FILTER_CLICK, [{
14050
14128
  filterFn: filterFn0,
14051
14129
  checked,
14052
14130
  column,
@@ -14298,19 +14376,19 @@ var Component$7 = defineComponent({
14298
14376
  watchEffect(() => {
14299
14377
  watchEffectFn(columnFilterFn, columnSortFn);
14300
14378
  });
14301
- tableRender.on(EVENTS.ON_SORT_BY_CLICK, (args) => {
14379
+ tableRender.on(EVENTS$1.ON_SORT_BY_CLICK, (args) => {
14302
14380
  const {
14303
14381
  sortFn
14304
14382
  } = args;
14305
14383
  columnSortFn = sortFn;
14306
14384
  pageData.sort(columnSortFn);
14307
- }).on(EVENTS.ON_FILTER_CLICK, (args) => {
14385
+ }).on(EVENTS$1.ON_FILTER_CLICK, (args) => {
14308
14386
  const {
14309
14387
  filterFn
14310
14388
  } = args;
14311
14389
  columnFilterFn = filterFn;
14312
14390
  resolvePageData(columnFilterFn, columnSortFn);
14313
- }).on(EVENTS.ON_SETTING_CHANGE, (args) => {
14391
+ }).on(EVENTS$1.ON_SETTING_CHANGE, (args) => {
14314
14392
  var _a, _b;
14315
14393
  const {
14316
14394
  checked = []
@@ -15372,6 +15450,7 @@ const tabNavProps = __spreadValues({
15372
15450
  type: Array,
15373
15451
  default: () => []
15374
15452
  },
15453
+ tabPosition: PropTypes.commonType(["left", "right", "top"], "position").def("top"),
15375
15454
  closable: Boolean,
15376
15455
  addable: Boolean,
15377
15456
  sortable: Boolean,
@@ -15453,51 +15532,49 @@ var TabNav = defineComponent({
15453
15532
  const dragenterIndex = ref(-1);
15454
15533
  const dragStartIndex = ref(-1);
15455
15534
  const draggingEle = ref("");
15456
- return {
15535
+ const distinctRoots = (el1, el2) => el1 === el2;
15536
+ const methods = {
15537
+ handleTabAdd(e) {
15538
+ props.tabAdd(e);
15539
+ },
15540
+ dragstart(index, $event) {
15541
+ dragStartIndex.value = index;
15542
+ draggingEle.value = props.guid;
15543
+ Object.assign($event.dataTransfer, {
15544
+ effectAllowed: "move"
15545
+ });
15546
+ props.tabDrag(index, $event);
15547
+ },
15548
+ dragenter(index) {
15549
+ if (distinctRoots(draggingEle.value, props.guid)) {
15550
+ dragenterIndex.value = index;
15551
+ }
15552
+ },
15553
+ dragend() {
15554
+ dragenterIndex.value = -1;
15555
+ dragStartIndex.value = -1;
15556
+ draggingEle.value = null;
15557
+ },
15558
+ drop(index, sortType) {
15559
+ if (!distinctRoots(draggingEle.value, props.guid)) {
15560
+ return false;
15561
+ }
15562
+ props.tabSort(dragStartIndex.value, index, sortType);
15563
+ },
15564
+ handleTabChange(name2) {
15565
+ props.tabChange(name2);
15566
+ },
15567
+ handleTabRemove(index, panel) {
15568
+ props.tabRemove(index, panel);
15569
+ }
15570
+ };
15571
+ return __spreadProps(__spreadValues({}, methods), {
15457
15572
  navs,
15458
15573
  dragenterIndex,
15459
15574
  dragStartIndex,
15460
15575
  draggingEle,
15461
15576
  guid: Math.random().toString(16).substr(4) + Math.random().toString(16).substr(4)
15462
- };
15463
- },
15464
- methods: {
15465
- distinctRoots(el1, el2) {
15466
- return el1 === el2;
15467
- },
15468
- handleTabAdd(e) {
15469
- this.tabAdd(e);
15470
- },
15471
- dragstart(index, $event) {
15472
- this.dragStartIndex = index;
15473
- this.draggingEle = this.guid;
15474
- Object.assign($event.dataTransfer, {
15475
- effectAllowed: "move"
15476
- });
15477
- this.tabDrag(index, $event);
15478
- },
15479
- dragenter(index) {
15480
- if (this.distinctRoots(this.draggingEle, this.guid)) {
15481
- this.dragenterIndex = index;
15482
- }
15483
- },
15484
- dragend() {
15485
- this.dragenterIndex = -1;
15486
- this.dragStartIndex = -1;
15487
- this.draggingEle = null;
15488
- },
15489
- drop(index, sortType) {
15490
- if (!this.distinctRoots(this.draggingEle, this.guid)) {
15491
- return false;
15492
- }
15493
- this.tabSort(this.dragStartIndex, index, sortType);
15494
- },
15495
- handleTabChange(name2) {
15496
- this.tabChange(name2);
15497
- },
15498
- handleTabRemove(index, panel) {
15499
- this.tabRemove(index, panel);
15500
- }
15577
+ });
15501
15578
  },
15502
15579
  render() {
15503
15580
  const {
@@ -15617,17 +15694,12 @@ var Tab = defineComponent({
15617
15694
  "drag"
15618
15695
  ],
15619
15696
  setup(_props, {
15620
- slots
15697
+ slots,
15698
+ emit
15621
15699
  }) {
15622
15700
  const isMounted = ref(false);
15623
15701
  const panels = ref([]);
15624
15702
  const instance = getCurrentInstance();
15625
- if (typeof slots.panel === "function") {
15626
- panels.value = slots.panel();
15627
- }
15628
- if (typeof slots.default === "function") {
15629
- panels.value = slots.default();
15630
- }
15631
15703
  const getPaneInstanceFromSlot = (vnode, panelInstanceList = []) => {
15632
15704
  const {
15633
15705
  children
@@ -15654,7 +15726,7 @@ var Tab = defineComponent({
15654
15726
  return;
15655
15727
  const content = children[0];
15656
15728
  const panelInstanceList = getPaneInstanceFromSlot(content);
15657
- const isChanged = !(panelInstanceList.length === panels.value.length && panelInstanceList.every((panel, index) => panel.uid === panels.value[index].uid));
15729
+ const isChanged = panelInstanceList.length !== panels.value.length;
15658
15730
  if (isChanged) {
15659
15731
  panels.value = panelInstanceList;
15660
15732
  }
@@ -15667,52 +15739,54 @@ var Tab = defineComponent({
15667
15739
  onUpdated(() => {
15668
15740
  setPanelInstances();
15669
15741
  });
15670
- return {
15671
- isMounted,
15672
- panels
15673
- };
15674
- },
15675
- methods: {
15676
- tabAdd(e) {
15677
- this.$emit("add", {
15678
- e
15679
- });
15680
- this.$emit("add-panel", {
15681
- e
15682
- });
15683
- },
15684
- tabChange(name2) {
15685
- this.$emit("change", name2);
15686
- this.$emit("tab-change", name2);
15687
- this.$emit("update:active", name2);
15688
- },
15689
- tabRemove(index, panel) {
15690
- this.$emit("remove", index, panel);
15691
- this.$emit("remove-panel", index, panel);
15692
- },
15693
- tabSort(dragTabIndex, dropTabIndex, sortType) {
15694
- if (sortType === "insert") {
15695
- if (dragTabIndex < dropTabIndex) {
15696
- this.panels.splice(dropTabIndex + 1, 0, this.panels[dragTabIndex]);
15697
- this.panels.splice(dragTabIndex, 1);
15698
- } else if (dragTabIndex > dropTabIndex) {
15699
- this.panels.splice(dropTabIndex, 0, this.panels[dragTabIndex]);
15700
- this.panels.splice(dragTabIndex + 1, 1);
15742
+ const methods = {
15743
+ tabAdd(e) {
15744
+ emit("add", {
15745
+ e
15746
+ });
15747
+ emit("add-panel", {
15748
+ e
15749
+ });
15750
+ },
15751
+ tabChange(name2) {
15752
+ emit("change", name2);
15753
+ emit("tab-change", name2);
15754
+ emit("update:active", name2);
15755
+ },
15756
+ tabRemove(index, panel) {
15757
+ emit("remove", index, panel);
15758
+ emit("remove-panel", index, panel);
15759
+ },
15760
+ tabSort(dragTabIndex, dropTabIndex, sortType) {
15761
+ const list = panels.value;
15762
+ if (sortType === "insert") {
15763
+ if (dragTabIndex < dropTabIndex) {
15764
+ list.splice(dropTabIndex + 1, 0, panels[dragTabIndex]);
15765
+ list.splice(dragTabIndex, 1);
15766
+ } else if (dragTabIndex > dropTabIndex) {
15767
+ list.splice(dropTabIndex, 0, panels[dragTabIndex]);
15768
+ list.splice(dragTabIndex + 1, 1);
15769
+ } else {
15770
+ return false;
15771
+ }
15701
15772
  } else {
15702
- return false;
15773
+ const swap = list[dropTabIndex];
15774
+ list[dropTabIndex] = list[dragTabIndex];
15775
+ list[dragTabIndex] = swap;
15703
15776
  }
15704
- } else {
15705
- const swap = this.panels[dropTabIndex];
15706
- this.panels[dropTabIndex] = this.panels[dragTabIndex];
15707
- this.panels[dragTabIndex] = swap;
15777
+ panels.value = [...list];
15778
+ emit("sort", dragTabIndex, dropTabIndex, sortType);
15779
+ emit("sort-change", dragTabIndex, dropTabIndex, sortType);
15780
+ },
15781
+ tabDrag(dragTabIndex, dragEvent) {
15782
+ emit("drag", dragTabIndex, dragEvent);
15783
+ emit("on-drag-tab", dragTabIndex, dragEvent);
15708
15784
  }
15709
- this.$emit("sort", dragTabIndex, dropTabIndex, sortType);
15710
- this.$emit("sort-change", dragTabIndex, dropTabIndex, sortType);
15711
- },
15712
- tabDrag(dragTabIndex, dragEvent) {
15713
- this.$emit("drag", dragTabIndex, dragEvent);
15714
- this.$emit("on-drag-tab", dragTabIndex, dragEvent);
15715
- }
15785
+ };
15786
+ return __spreadProps(__spreadValues({}, methods), {
15787
+ isMounted,
15788
+ panels
15789
+ });
15716
15790
  },
15717
15791
  render() {
15718
15792
  var _a, _b;
@@ -15736,6 +15810,7 @@ var Tab = defineComponent({
15736
15810
  validateActive,
15737
15811
  changeOnHover,
15738
15812
  changeOnHoverDelay,
15813
+ tabPosition,
15739
15814
  tabAdd,
15740
15815
  tabChange,
15741
15816
  tabRemove,
@@ -15755,6 +15830,7 @@ var Tab = defineComponent({
15755
15830
  validateActive,
15756
15831
  changeOnHover,
15757
15832
  changeOnHoverDelay,
15833
+ tabPosition,
15758
15834
  tabAdd,
15759
15835
  tabChange,
15760
15836
  tabRemove,
@@ -19932,6 +20008,10 @@ const datePickerProps = {
19932
20008
  type: Number,
19933
20009
  default: -1
19934
20010
  },
20011
+ headerSlotCls: {
20012
+ type: String,
20013
+ default: ""
20014
+ },
19935
20015
  footerSlotCls: {
19936
20016
  type: String,
19937
20017
  default: ""
@@ -20034,6 +20114,8 @@ var Component$3 = defineComponent({
20034
20114
  return visualValue.value;
20035
20115
  });
20036
20116
  const isConfirm = computed(() => !!slots.trigger || props.type === "datetime" || props.type === "datetimerange" || props.multiple);
20117
+ const hasHeader = computed(() => !!slots.header);
20118
+ const hasFooter = computed(() => !!slots.footer);
20037
20119
  const fontSizeCls = computed(() => {
20038
20120
  let cls = "";
20039
20121
  if (props.fontSize === "medium") {
@@ -20059,7 +20141,6 @@ var Component$3 = defineComponent({
20059
20141
  }
20060
20142
  return !props.editable || props.readonly;
20061
20143
  });
20062
- const hasFooter = computed(() => !!slots.footer);
20063
20144
  const allowCrossDayProp = computed(() => panel.value === "RangeTimePickerPanel" ? props.allowCrossDay : false);
20064
20145
  const inputRef = ref(null);
20065
20146
  const inputFocus = () => {
@@ -20315,10 +20396,11 @@ var Component$3 = defineComponent({
20315
20396
  visualValue,
20316
20397
  displayValue,
20317
20398
  isConfirm,
20399
+ hasHeader,
20400
+ hasFooter,
20318
20401
  fontSizeCls,
20319
20402
  longWidthCls,
20320
20403
  localReadonly,
20321
- hasFooter,
20322
20404
  allowCrossDayProp,
20323
20405
  pickerDropdownRef,
20324
20406
  inputRef,
@@ -20430,35 +20512,42 @@ var Component$3 = defineComponent({
20430
20512
  "appendToBody": this.appendToBody,
20431
20513
  "onClick": this.handleTransferClick
20432
20514
  }, {
20433
- default: () => [this.panel === "DateRangePanel" ? createVNode(DateRangePanel, {
20434
- "ref": "pickerPanelRef",
20435
- "type": this.type,
20436
- "confirm": this.isConfirm,
20437
- "shortcuts": this.shortcuts,
20438
- "modelValue": this.internalValue,
20439
- "selectionMode": this.selectionMode,
20440
- "startDate": this.startDate,
20441
- "disableDate": this.disableDate,
20442
- "focusedDate": this.focusedDate,
20443
- "onPick": this.onPick,
20444
- "onPick-success": this.onPickSuccess
20445
- }, null) : createVNode(DatePanel, {
20446
- "ref": "pickerPanelRef",
20447
- "clearable": this.clearable,
20448
- "showTime": this.type === "datetime" || this.type === "datetimerange",
20449
- "confirm": this.isConfirm,
20450
- "shortcuts": this.shortcuts,
20451
- "multiple": this.multiple,
20452
- "shortcutClose": this.shortcutClose,
20453
- "selectionMode": this.selectionMode,
20454
- "modelValue": this.internalValue,
20455
- "startDate": this.startDate,
20456
- "disableDate": this.disableDate,
20457
- "focusedDate": this.focusedDate,
20458
- "onPick": this.onPick,
20459
- "onPick-clear": this.handleClear,
20460
- "onPick-success": this.onPickSuccess
20461
- }, null)]
20515
+ default: () => {
20516
+ var _a2, _b2, _c2, _d, _e, _f;
20517
+ return [this.hasHeader ? createVNode("div", {
20518
+ "class": ["bk-date-picker-top-wrapper", this.headerSlotCls]
20519
+ }, [(_c2 = (_b2 = (_a2 = this.$slots).header) == null ? void 0 : _b2.call(_a2)) != null ? _c2 : null]) : null, this.panel === "DateRangePanel" ? createVNode(DateRangePanel, {
20520
+ "ref": "pickerPanelRef",
20521
+ "type": this.type,
20522
+ "confirm": this.isConfirm,
20523
+ "shortcuts": this.shortcuts,
20524
+ "modelValue": this.internalValue,
20525
+ "selectionMode": this.selectionMode,
20526
+ "startDate": this.startDate,
20527
+ "disableDate": this.disableDate,
20528
+ "focusedDate": this.focusedDate,
20529
+ "onPick": this.onPick,
20530
+ "onPick-success": this.onPickSuccess
20531
+ }, null) : createVNode(DatePanel, {
20532
+ "ref": "pickerPanelRef",
20533
+ "clearable": this.clearable,
20534
+ "showTime": this.type === "datetime" || this.type === "datetimerange",
20535
+ "confirm": this.isConfirm,
20536
+ "shortcuts": this.shortcuts,
20537
+ "multiple": this.multiple,
20538
+ "shortcutClose": this.shortcutClose,
20539
+ "selectionMode": this.selectionMode,
20540
+ "modelValue": this.internalValue,
20541
+ "startDate": this.startDate,
20542
+ "disableDate": this.disableDate,
20543
+ "focusedDate": this.focusedDate,
20544
+ "onPick": this.onPick,
20545
+ "onPick-clear": this.handleClear,
20546
+ "onPick-success": this.onPickSuccess
20547
+ }, null), this.hasFooter ? createVNode("div", {
20548
+ "class": ["bk-date-picker-footer-wrapper", this.footerSlotCls]
20549
+ }, [(_f = (_e = (_d = this.$slots).footer) == null ? void 0 : _e.call(_d)) != null ? _f : null]) : null];
20550
+ }
20462
20551
  }), [[vShow, this.opened]])]
20463
20552
  })]
20464
20553
  })]), [[resolveDirective("clickoutside"), this.handleClose]]);
@@ -20888,6 +20977,29 @@ var Component$2 = defineComponent({
20888
20977
  }
20889
20978
  });
20890
20979
  const Transfer = withInstall(Component$2);
20980
+ var EVENTS = /* @__PURE__ */ ((EVENTS2) => {
20981
+ EVENTS2["NODE_CLICK"] = "node-click";
20982
+ EVENTS2["NODE_COLLAPSE"] = "node-collapse";
20983
+ EVENTS2["NODE_EXPAND"] = "node-expand";
20984
+ return EVENTS2;
20985
+ })(EVENTS || {});
20986
+ var NODE_ATTRIBUTES = /* @__PURE__ */ ((NODE_ATTRIBUTES2) => {
20987
+ NODE_ATTRIBUTES2["DEPTH"] = "__depth";
20988
+ NODE_ATTRIBUTES2["INDEX"] = "__index";
20989
+ NODE_ATTRIBUTES2["UUID"] = "__uuid";
20990
+ NODE_ATTRIBUTES2["PARENT_ID"] = "__parent_id";
20991
+ NODE_ATTRIBUTES2["HAS_CHILD"] = "__has_child";
20992
+ NODE_ATTRIBUTES2["PATH"] = "__path";
20993
+ NODE_ATTRIBUTES2["IS_ROOT"] = "__is_root";
20994
+ NODE_ATTRIBUTES2["ORDER"] = "__order";
20995
+ NODE_ATTRIBUTES2["IS_OPENED"] = "__is_open";
20996
+ NODE_ATTRIBUTES2["IS_CHECKED"] = "__is_checked";
20997
+ NODE_ATTRIBUTES2["IS_SELECTED"] = "__is_selected";
20998
+ NODE_ATTRIBUTES2["IS_ASYNC_INIT"] = "__is_async_init";
20999
+ NODE_ATTRIBUTES2["IS_MATCH"] = "__is_match";
21000
+ NODE_ATTRIBUTES2["IS_NULL"] = "__IS_NULL";
21001
+ return NODE_ATTRIBUTES2;
21002
+ })(NODE_ATTRIBUTES || {});
20891
21003
  const treeProps = {
20892
21004
  data: PropTypes.arrayOf(PropTypes.any).def([]),
20893
21005
  label: PropTypes.oneOfType([PropTypes.func.def(void 0), PropTypes.string.def("label")]),
@@ -20930,7 +21042,11 @@ const treeProps = {
20930
21042
  PropTypes.number,
20931
21043
  PropTypes.bool
20932
21044
  ]).def(void 0),
20933
- emptyText: PropTypes.string.def("\u6CA1\u6709\u6570\u636E")
21045
+ emptyText: PropTypes.string.def("\u6CA1\u6709\u6570\u636E"),
21046
+ draggable: PropTypes.bool.def(false),
21047
+ dragSort: PropTypes.bool.def(false),
21048
+ selectable: PropTypes.bool.def(true),
21049
+ selected: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.any]).def(null)
20934
21050
  };
20935
21051
  var useEmpty = (props, {
20936
21052
  slots
@@ -20945,235 +21061,80 @@ var useEmpty = (props, {
20945
21061
  }
20946
21062
  })
20947
21063
  });
20948
- var rngBrowser = { exports: {} };
20949
- var getRandomValues = typeof crypto != "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != "undefined" && typeof window.msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto);
20950
- if (getRandomValues) {
20951
- var rnds8 = new Uint8Array(16);
20952
- rngBrowser.exports = function whatwgRNG() {
20953
- getRandomValues(rnds8);
20954
- return rnds8;
21064
+ var useNodeAttribute = (flatData, props) => {
21065
+ const getSchemaVal2 = (key) => flatData.schema.get(key);
21066
+ const getNodeAttr2 = (node, attr) => {
21067
+ var _a;
21068
+ return (_a = getSchemaVal2(node[NODE_ATTRIBUTES.UUID])) == null ? void 0 : _a[attr];
20955
21069
  };
20956
- } else {
20957
- var rnds = new Array(16);
20958
- rngBrowser.exports = function mathRNG() {
20959
- for (var i = 0, r2; i < 16; i++) {
20960
- if ((i & 3) === 0)
20961
- r2 = Math.random() * 4294967296;
20962
- rnds[i] = r2 >>> ((i & 3) << 3) & 255;
21070
+ const setNodeAttr = (node, attr, val) => flatData.schema.set(node[NODE_ATTRIBUTES.UUID], __spreadProps(__spreadValues({}, getSchemaVal2(node[NODE_ATTRIBUTES.UUID])), {
21071
+ [attr]: val
21072
+ }));
21073
+ const getNodePath = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PATH);
21074
+ const getNodeId = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.UUID);
21075
+ const isRootNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_ROOT);
21076
+ const isNodeOpened = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_OPENED);
21077
+ const hasChildNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.HAS_CHILD);
21078
+ const isNodeMatched = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_MATCH);
21079
+ const isNodeChecked = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_CHECKED);
21080
+ const getNodeParentId = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID);
21081
+ const getNodeParentIdById = (id) => getNodeAttr2({
21082
+ [NODE_ATTRIBUTES.UUID]: id
21083
+ }, NODE_ATTRIBUTES.PARENT_ID);
21084
+ const deleteNodeSchema = (id) => flatData.schema.delete(id);
21085
+ const isItemOpen = (item) => {
21086
+ var _a;
21087
+ if (typeof item === "object") {
21088
+ return isNodeOpened(item);
20963
21089
  }
20964
- return rnds;
21090
+ if (typeof item === "string") {
21091
+ return (_a = getSchemaVal2(item)) == null ? void 0 : _a[NODE_ATTRIBUTES.IS_OPENED];
21092
+ }
21093
+ return false;
20965
21094
  };
20966
- }
20967
- var byteToHex = [];
20968
- for (var i = 0; i < 256; ++i) {
20969
- byteToHex[i] = (i + 256).toString(16).substr(1);
20970
- }
20971
- function bytesToUuid$2(buf, offset2) {
20972
- var i = offset2 || 0;
20973
- var bth = byteToHex;
20974
- return [
20975
- bth[buf[i++]],
20976
- bth[buf[i++]],
20977
- bth[buf[i++]],
20978
- bth[buf[i++]],
20979
- "-",
20980
- bth[buf[i++]],
20981
- bth[buf[i++]],
20982
- "-",
20983
- bth[buf[i++]],
20984
- bth[buf[i++]],
20985
- "-",
20986
- bth[buf[i++]],
20987
- bth[buf[i++]],
20988
- "-",
20989
- bth[buf[i++]],
20990
- bth[buf[i++]],
20991
- bth[buf[i++]],
20992
- bth[buf[i++]],
20993
- bth[buf[i++]],
20994
- bth[buf[i++]]
20995
- ].join("");
20996
- }
20997
- var bytesToUuid_1 = bytesToUuid$2;
20998
- var rng$1 = rngBrowser.exports;
20999
- var bytesToUuid$1 = bytesToUuid_1;
21000
- var _nodeId;
21001
- var _clockseq;
21002
- var _lastMSecs = 0;
21003
- var _lastNSecs = 0;
21004
- function v1$1(options, buf, offset2) {
21005
- var i = buf && offset2 || 0;
21006
- var b2 = buf || [];
21007
- options = options || {};
21008
- var node = options.node || _nodeId;
21009
- var clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;
21010
- if (node == null || clockseq == null) {
21011
- var seedBytes = rng$1();
21012
- if (node == null) {
21013
- node = _nodeId = [
21014
- seedBytes[0] | 1,
21015
- seedBytes[1],
21016
- seedBytes[2],
21017
- seedBytes[3],
21018
- seedBytes[4],
21019
- seedBytes[5]
21020
- ];
21021
- }
21022
- if (clockseq == null) {
21023
- clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
21024
- }
21025
- }
21026
- var msecs = options.msecs !== void 0 ? options.msecs : new Date().getTime();
21027
- var nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;
21028
- var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
21029
- if (dt < 0 && options.clockseq === void 0) {
21030
- clockseq = clockseq + 1 & 16383;
21031
- }
21032
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {
21033
- nsecs = 0;
21034
- }
21035
- if (nsecs >= 1e4) {
21036
- throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
21037
- }
21038
- _lastMSecs = msecs;
21039
- _lastNSecs = nsecs;
21040
- _clockseq = clockseq;
21041
- msecs += 122192928e5;
21042
- var tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
21043
- b2[i++] = tl >>> 24 & 255;
21044
- b2[i++] = tl >>> 16 & 255;
21045
- b2[i++] = tl >>> 8 & 255;
21046
- b2[i++] = tl & 255;
21047
- var tmh = msecs / 4294967296 * 1e4 & 268435455;
21048
- b2[i++] = tmh >>> 8 & 255;
21049
- b2[i++] = tmh & 255;
21050
- b2[i++] = tmh >>> 24 & 15 | 16;
21051
- b2[i++] = tmh >>> 16 & 255;
21052
- b2[i++] = clockseq >>> 8 | 128;
21053
- b2[i++] = clockseq & 255;
21054
- for (var n2 = 0; n2 < 6; ++n2) {
21055
- b2[i + n2] = node[n2];
21056
- }
21057
- return buf ? buf : bytesToUuid$1(b2);
21058
- }
21059
- var v1_1 = v1$1;
21060
- var rng = rngBrowser.exports;
21061
- var bytesToUuid = bytesToUuid_1;
21062
- function v4$1(options, buf, offset2) {
21063
- var i = buf && offset2 || 0;
21064
- if (typeof options == "string") {
21065
- buf = options === "binary" ? new Array(16) : null;
21066
- options = null;
21067
- }
21068
- options = options || {};
21069
- var rnds = options.random || (options.rng || rng)();
21070
- rnds[6] = rnds[6] & 15 | 64;
21071
- rnds[8] = rnds[8] & 63 | 128;
21072
- if (buf) {
21073
- for (var ii = 0; ii < 16; ++ii) {
21074
- buf[i + ii] = rnds[ii];
21075
- }
21076
- }
21077
- return buf || bytesToUuid(rnds);
21078
- }
21079
- var v4_1 = v4$1;
21080
- var v1 = v1_1;
21081
- var v4 = v4_1;
21082
- var uuid = v4;
21083
- uuid.v1 = v1;
21084
- uuid.v4 = v4;
21085
- var uuid_1 = uuid;
21086
- const DEFAULT_LEVLE_LINE = "1px dashed #c3cdd7";
21087
- var NODE_ATTRIBUTES = /* @__PURE__ */ ((NODE_ATTRIBUTES2) => {
21088
- NODE_ATTRIBUTES2["DEPTH"] = "__depth";
21089
- NODE_ATTRIBUTES2["INDEX"] = "__index";
21090
- NODE_ATTRIBUTES2["UUID"] = "__uuid";
21091
- NODE_ATTRIBUTES2["PARENT_ID"] = "__parentId";
21092
- NODE_ATTRIBUTES2["HAS_CHILD"] = "__hasChild";
21093
- NODE_ATTRIBUTES2["PATH"] = "__path";
21094
- NODE_ATTRIBUTES2["IS_ROOT"] = "__isRoot";
21095
- NODE_ATTRIBUTES2["ORDER"] = "__order";
21096
- NODE_ATTRIBUTES2["IS_OPEN"] = "__isOpen";
21097
- NODE_ATTRIBUTES2["CHECKED"] = "__checked";
21098
- NODE_ATTRIBUTES2["IS_ASYNC_INIT"] = "__isAsyncInit";
21099
- NODE_ATTRIBUTES2["IS_MATCH"] = "__isMatch";
21100
- return NODE_ATTRIBUTES2;
21101
- })(NODE_ATTRIBUTES || {});
21102
- const getFlatdata = (props, treeData = void 0, cachedSchema = []) => {
21103
- const { data: data2, children } = props;
21104
- const outputData = [];
21105
- let order2 = 0;
21106
- const schema = /* @__PURE__ */ new Map();
21107
- function getUid(item) {
21108
- let uid = null;
21109
- if (typeof props.nodeKey === "string") {
21110
- uid = item[props.nodeKey];
21111
- }
21112
- return uid || item["__uuid"] || uuid_1.v4();
21113
- }
21114
- function getCachedTreeNodeAttr(uuid2, node, attr, cachedAttr, defaultValue = void 0) {
21115
- const cached = (cachedSchema || []).find((item) => item["__uuid"] === uuid2);
21116
- let result = void 0;
21117
- if (cached) {
21118
- result = cached[cachedAttr];
21119
- } else {
21120
- result = node[attr];
21121
- }
21122
- if (result === void 0) {
21123
- result = defaultValue;
21124
- }
21125
- return result;
21126
- }
21127
- function isCachedTreeNodeOpened(uuid2, node) {
21128
- return getCachedTreeNodeAttr(uuid2, node, "isOpen", "__isOpen", false);
21129
- }
21130
- function isCachedTreeNodeChecked(uuid2, node) {
21131
- return getCachedTreeNodeAttr(uuid2, node, "checked", "__checked", false);
21132
- }
21133
- function isCachedTreeNodeMatch(uuid2, node) {
21134
- return getCachedTreeNodeAttr(uuid2, node, "isMatch", "__isMatch", true);
21135
- }
21136
- function flatten(array, depth = 0, parent = null, path = null) {
21137
- const arrLength = array.length;
21138
- for (let i = 0; i < arrLength; i++) {
21139
- const item = array[i];
21140
- if (Array.isArray(item)) {
21141
- flatten(item, depth, parent, path);
21142
- } else {
21143
- if (typeof item === "object" && item !== null) {
21144
- const uuid2 = getUid(item);
21145
- const currentPath = path !== null ? `${path}-${i}` : `${i}`;
21146
- const hasChildren = !!(item[children] || []).length;
21147
- const attrs = {
21148
- ["__depth"]: depth,
21149
- ["__index"]: i,
21150
- ["__uuid"]: uuid2,
21151
- ["__parentId"]: parent,
21152
- ["__hasChild"]: hasChildren,
21153
- ["__path"]: currentPath,
21154
- ["__isRoot"]: parent === null,
21155
- ["__order"]: order2,
21156
- ["__isMatch"]: isCachedTreeNodeMatch(uuid2, item),
21157
- ["__isOpen"]: isCachedTreeNodeOpened(uuid2, item),
21158
- ["__checked"]: isCachedTreeNodeChecked(uuid2, item),
21159
- [children]: null
21160
- };
21161
- Object.assign(item, { ["__uuid"]: uuid2 });
21162
- schema.set(uuid2, attrs);
21163
- order2 += 1;
21164
- outputData.push(__spreadProps(__spreadValues({}, item), {
21165
- [children]: null
21166
- }));
21167
- if (Object.prototype.hasOwnProperty.call(item, children)) {
21168
- flatten(item[children] || [], depth + 1, uuid2, currentPath);
21169
- }
21170
- }
21171
- }
21095
+ const checkNodeIsOpen = (node) => isRootNode(node) || isItemOpen(node) || isItemOpen(getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID));
21096
+ const getSourceNodeByPath = (path) => {
21097
+ const paths = path.split("-");
21098
+ return paths.reduce((pre, nodeIndex) => {
21099
+ const index = Number(nodeIndex);
21100
+ return Array.isArray(pre) ? pre[index] : pre[props.children][index];
21101
+ }, props.data);
21102
+ };
21103
+ const getSourceNodeByUID = (uid) => getSourceNodeByPath(getNodePath({
21104
+ [NODE_ATTRIBUTES.UUID]: uid
21105
+ }));
21106
+ const getParentNodeData = (uid) => {
21107
+ if (isRootNode({
21108
+ [NODE_ATTRIBUTES.UUID]: uid
21109
+ })) {
21110
+ return {
21111
+ [props.children]: props.data
21112
+ };
21172
21113
  }
21173
- }
21174
- flatten(treeData ? treeData : data2);
21175
- return [outputData, schema];
21114
+ return getSourceNodeByUID(getNodeParentIdById(uid));
21115
+ };
21116
+ return {
21117
+ getSchemaVal: getSchemaVal2,
21118
+ getNodeAttr: getNodeAttr2,
21119
+ getNodeId,
21120
+ getNodeParentId,
21121
+ getNodeParentIdById,
21122
+ getParentNodeData,
21123
+ setNodeAttr,
21124
+ getNodePath,
21125
+ isRootNode,
21126
+ isNodeOpened,
21127
+ hasChildNode,
21128
+ isItemOpen,
21129
+ isNodeChecked,
21130
+ isNodeMatched,
21131
+ checkNodeIsOpen,
21132
+ getSourceNodeByPath,
21133
+ getSourceNodeByUID,
21134
+ deleteNodeSchema
21135
+ };
21176
21136
  };
21137
+ const DEFAULT_LEVLE_LINE = "1px dashed #c3cdd7";
21177
21138
  const getPropsOneOfBoolValueWithDefault = (props, key, item = null, defaultTrueValue = null, defaultFalseValue = null, args = []) => {
21178
21139
  const prop = props[key];
21179
21140
  if (typeof prop === "boolean") {
@@ -21219,7 +21180,7 @@ const getTreeStyle = (item, props) => {
21219
21180
  };
21220
21181
  const getNodeItemStyle = (item, props, flatData = {}) => {
21221
21182
  const { schema } = flatData;
21222
- const depth = getNodeAttr(schema, item["__uuid"], "__depth");
21183
+ const depth = getNodeAttr(schema, item[NODE_ATTRIBUTES.UUID], NODE_ATTRIBUTES.DEPTH);
21223
21184
  return __spreadValues({
21224
21185
  "--depth": depth
21225
21186
  }, typeof props.levelLine === "function" ? {
@@ -21229,19 +21190,20 @@ const getNodeItemStyle = (item, props, flatData = {}) => {
21229
21190
  } : {});
21230
21191
  };
21231
21192
  const getNodeItemClass = (item, schema, props) => {
21232
- const { __isRoot, __isOpen } = getSchemaVal(schema, item["__uuid"]) || {};
21193
+ const { __is_root, __is_open } = getSchemaVal(schema, item[NODE_ATTRIBUTES.UUID]) || {};
21233
21194
  return {
21234
- "is-root": __isRoot,
21195
+ "is-root": __is_root,
21235
21196
  "bk-tree-node": true,
21236
- "is-open": __isOpen,
21197
+ "is-open": __is_open,
21237
21198
  "is-virtual-render": props.virtualRender,
21238
21199
  "level-line": props.levelLine
21239
21200
  };
21240
21201
  };
21241
21202
  const getNodeRowClass = (item, schema) => {
21242
- const { __checked } = getSchemaVal(schema, item["__uuid"]) || {};
21203
+ const { __is_checked, __is_selected } = getSchemaVal(schema, item[NODE_ATTRIBUTES.UUID]) || {};
21243
21204
  return {
21244
- "is-checked": __checked,
21205
+ "is-checked": __is_checked,
21206
+ "is-selected": __is_selected,
21245
21207
  [resolveClassName("node-row")]: true
21246
21208
  };
21247
21209
  };
@@ -21256,47 +21218,20 @@ const assignTreeNode = (path, treeData, childKey, assignVal) => {
21256
21218
  }, treeData);
21257
21219
  Object.assign(targetNode, assignVal || {});
21258
21220
  };
21259
- var useNodeAttribute = (flatData) => {
21260
- const schemaValues = computed(() => Array.from(flatData.schema.values()));
21261
- const getSchemaVal2 = (key) => flatData.schema.get(key);
21262
- const getNodeAttr2 = (node, attr) => {
21263
- var _a;
21264
- return (_a = getSchemaVal2(node[NODE_ATTRIBUTES.UUID])) == null ? void 0 : _a[attr];
21265
- };
21266
- const setNodeAttr = (node, attr, val) => flatData.schema.set(node[NODE_ATTRIBUTES.UUID], __spreadProps(__spreadValues({}, getSchemaVal2(node[NODE_ATTRIBUTES.UUID])), {
21267
- [attr]: val
21268
- }));
21269
- const getNodePath = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.PATH);
21270
- const isRootNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_ROOT);
21271
- const isNodeOpened = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.IS_OPEN);
21272
- const hasChildNode = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.HAS_CHILD);
21273
- const isChecked = (node) => getNodeAttr2(node, NODE_ATTRIBUTES.CHECKED);
21274
- const isItemOpen = (item) => {
21275
- var _a;
21276
- if (typeof item === "object") {
21277
- return isNodeOpened(item);
21278
- }
21279
- if (typeof item === "string") {
21280
- return (_a = getSchemaVal2(item)) == null ? void 0 : _a[NODE_ATTRIBUTES.IS_OPEN];
21281
- }
21282
- return false;
21283
- };
21284
- const checkNodeIsOpen = (node) => isRootNode(node) || isItemOpen(node) || isItemOpen(getNodeAttr2(node, NODE_ATTRIBUTES.PARENT_ID));
21285
- return {
21286
- schemaValues,
21287
- getSchemaVal: getSchemaVal2,
21288
- getNodeAttr: getNodeAttr2,
21289
- setNodeAttr,
21290
- getNodePath,
21291
- isRootNode,
21292
- isNodeOpened,
21293
- hasChildNode,
21294
- isItemOpen,
21295
- isChecked,
21296
- checkNodeIsOpen
21297
- };
21221
+ const resolveNodeItem = (node) => {
21222
+ if (node === void 0 || node === null) {
21223
+ return { __IS_NULL: true };
21224
+ }
21225
+ if (typeof node === "string") {
21226
+ return { [NODE_ATTRIBUTES.UUID]: node };
21227
+ }
21228
+ if (Object.prototype.hasOwnProperty.call(node, NODE_ATTRIBUTES.UUID)) {
21229
+ return node;
21230
+ }
21231
+ console.error("setNodeAction Error: node id cannot found");
21232
+ return node;
21298
21233
  };
21299
- var useAsync = (props, flatData) => {
21234
+ var useNodeAsync = (props, flatData) => {
21300
21235
  const {
21301
21236
  setNodeAttr,
21302
21237
  getNodePath,
@@ -21304,7 +21239,7 @@ var useAsync = (props, flatData) => {
21304
21239
  } = useNodeAttribute(flatData);
21305
21240
  const setNodeRemoteLoad = (resp, item) => {
21306
21241
  if (typeof resp === "object" && resp !== null) {
21307
- setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, true);
21242
+ setNodeAttr(item, NODE_ATTRIBUTES.IS_OPENED, true);
21308
21243
  const nodeValue = Array.isArray(resp) ? resp : [resp];
21309
21244
  updateTreeNode(getNodePath(item), props.data, props.children, props.children, nodeValue);
21310
21245
  }
@@ -21349,23 +21284,25 @@ var useAsync = (props, flatData) => {
21349
21284
  deepAutoOpen
21350
21285
  };
21351
21286
  };
21352
- var useNodeAction = (props, ctx, flatData, renderData) => {
21353
- const checkedNodes = [];
21287
+ var useNodeAction = (props, ctx, flatData, renderData, schemaValues) => {
21288
+ let selectedNodeId = null;
21354
21289
  const {
21355
21290
  setNodeAttr,
21356
21291
  getNodePath,
21357
21292
  getSchemaVal: getSchemaVal2,
21358
21293
  getNodeAttr: getNodeAttr2,
21294
+ getNodeId,
21359
21295
  isRootNode,
21360
21296
  hasChildNode,
21361
21297
  isItemOpen,
21362
21298
  isNodeOpened,
21363
- schemaValues
21299
+ isNodeChecked,
21300
+ isNodeMatched
21364
21301
  } = useNodeAttribute(flatData);
21365
21302
  const {
21366
21303
  asyncNodeClick,
21367
21304
  deepAutoOpen
21368
- } = useAsync(props, flatData);
21305
+ } = useNodeAsync(props, flatData);
21369
21306
  const getRootIcon = (item) => isItemOpen(item) ? createVNode(folderShapeOpen, {
21370
21307
  "class": resolveClassName("tree-icon")
21371
21308
  }, null) : createVNode(folder, {
@@ -21393,9 +21330,12 @@ var useNodeAction = (props, ctx, flatData, renderData) => {
21393
21330
  return null;
21394
21331
  };
21395
21332
  const getActionIcon = (item) => {
21333
+ if (ctx.slots.nodeAction) {
21334
+ return ctx.slots.nodeAction(resolveScopedSlotParam(item));
21335
+ }
21396
21336
  let prefixFnVal = null;
21397
21337
  if (typeof props.prefixIcon === "function") {
21398
- prefixFnVal = props.prefixIcon(isRootNode(item), hasChildNode(item) || item.async, isItemOpen(item), "action", item);
21338
+ prefixFnVal = props.prefixIcon(resolveScopedSlotParam(item), "node_action");
21399
21339
  if (prefixFnVal !== "default") {
21400
21340
  return renderPrefixVal(prefixFnVal);
21401
21341
  }
@@ -21408,9 +21348,12 @@ var useNodeAction = (props, ctx, flatData, renderData) => {
21408
21348
  return null;
21409
21349
  };
21410
21350
  const getNodePrefixIcon = (item) => {
21351
+ if (ctx.slots.nodeType) {
21352
+ return ctx.slots.nodeType(resolveScopedSlotParam(item));
21353
+ }
21411
21354
  let prefixFnVal = null;
21412
21355
  if (typeof props.prefixIcon === "function") {
21413
- prefixFnVal = props.prefixIcon(isRootNode(item), hasChildNode(item) || item.async, isItemOpen(item), "node_type", item);
21356
+ prefixFnVal = props.prefixIcon(resolveScopedSlotParam(item), "node_type");
21414
21357
  if (prefixFnVal !== "default") {
21415
21358
  return renderPrefixVal(prefixFnVal);
21416
21359
  }
@@ -21422,40 +21365,82 @@ var useNodeAction = (props, ctx, flatData, renderData) => {
21422
21365
  }
21423
21366
  return null;
21424
21367
  };
21425
- const getLoadingIcon = (item) => item.loading ? createVNode(spinner, null, null) : "";
21426
- const setNodeOpened = (item, isOpen = null) => {
21368
+ const getLoadingIcon = (item) => {
21369
+ var _a, _b, _c;
21370
+ return ((_c = (_b = (_a = ctx.slots).nodeLoading) == null ? void 0 : _b.call(_a, resolveScopedSlotParam(item))) != null ? _c : item.loading) ? createVNode(spinner, null, null) : "";
21371
+ };
21372
+ const setNodeOpened = (item, isOpen = null, e = null, fireEmit = true) => {
21427
21373
  const newVal = isOpen === null ? !isItemOpen(item) : !!isOpen;
21428
- setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, newVal);
21374
+ setNodeAttr(item, NODE_ATTRIBUTES.IS_OPENED, newVal);
21375
+ if (fireEmit) {
21376
+ const emitEvent = isItemOpen(item) ? EVENTS.NODE_EXPAND : EVENTS.NODE_COLLAPSE;
21377
+ ctx.emit(emitEvent, resolveScopedSlotParam(item), getSchemaVal2(item[NODE_ATTRIBUTES.UUID]), e);
21378
+ }
21429
21379
  if (newVal) {
21430
21380
  return;
21431
21381
  }
21432
- renderData.value.filter((node) => String.prototype.startsWith.call(getNodePath(node), getNodePath(item))).forEach((filterNode) => setNodeAttr(filterNode, NODE_ATTRIBUTES.IS_OPEN, newVal));
21382
+ renderData.value.filter((node) => String.prototype.startsWith.call(getNodePath(node), getNodePath(item))).forEach((filterNode) => setNodeAttr(filterNode, NODE_ATTRIBUTES.IS_OPENED, newVal));
21433
21383
  };
21434
- const hanldeTreeNodeClick = (item) => {
21435
- asyncNodeClick(item);
21436
- if (hasChildNode(item)) {
21437
- setNodeOpened(item);
21384
+ const setNodeAction = (args, action, value) => {
21385
+ if (Array.isArray(args)) {
21386
+ args.forEach((node) => setNodeAttr(resolveNodeItem(node), action, value));
21387
+ return;
21388
+ }
21389
+ setNodeAttr(resolveNodeItem(args), action, value);
21390
+ };
21391
+ const setOpen = (item, isOpen = true, autoOpenParents = false) => {
21392
+ const resolvedItem = resolveNodeItem(item);
21393
+ if (resolvedItem[NODE_ATTRIBUTES.IS_NULL]) {
21394
+ return;
21438
21395
  }
21396
+ if (autoOpenParents) {
21397
+ if (isOpen) {
21398
+ setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPENED, isOpen);
21399
+ if (!isRootNode(resolvedItem)) {
21400
+ const parentId = getNodeAttr2(resolvedItem, NODE_ATTRIBUTES.PARENT_ID);
21401
+ setOpen(parentId, true, true);
21402
+ }
21403
+ } else {
21404
+ setNodeOpened(resolvedItem, false, null, false);
21405
+ }
21406
+ } else {
21407
+ setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPENED, isOpen);
21408
+ }
21409
+ };
21410
+ const hanldeTreeNodeClick = (item, e) => {
21411
+ asyncNodeClick(item);
21412
+ setNodeOpened(item, null, e);
21439
21413
  };
21440
21414
  const handleNodeActionClick = (e, node) => {
21441
21415
  e.stopImmediatePropagation();
21442
21416
  e.stopPropagation();
21443
21417
  e.preventDefault();
21444
- hanldeTreeNodeClick(node);
21418
+ hanldeTreeNodeClick(node, e);
21419
+ };
21420
+ const setSelect = (uuid2, selected = true, autoOpen = true) => {
21421
+ const resolvedItem = resolveNodeItem(uuid2);
21422
+ if (resolvedItem[NODE_ATTRIBUTES.IS_NULL]) {
21423
+ return;
21424
+ }
21425
+ if (props.selectable) {
21426
+ if (selectedNodeId !== null) {
21427
+ setNodeAttr({
21428
+ [NODE_ATTRIBUTES.UUID]: selectedNodeId
21429
+ }, NODE_ATTRIBUTES.IS_SELECTED, !selected);
21430
+ }
21431
+ setNodeAttr(resolvedItem, NODE_ATTRIBUTES.IS_SELECTED, selected);
21432
+ selectedNodeId = getNodeId(resolvedItem);
21433
+ }
21434
+ if (autoOpen) {
21435
+ setOpen(uuid2, true, true);
21436
+ }
21445
21437
  };
21446
- const handleNodeContentClick = (item) => {
21447
- if (!checkedNodes.includes(item[NODE_ATTRIBUTES.UUID])) {
21448
- checkedNodes.forEach((__uuid) => setNodeAttr({
21449
- __uuid
21450
- }, NODE_ATTRIBUTES.CHECKED, false));
21451
- checkedNodes.length = 0;
21452
- setNodeAttr(item, NODE_ATTRIBUTES.CHECKED, true);
21453
- checkedNodes.push(item[NODE_ATTRIBUTES.UUID]);
21454
- if (!isNodeOpened(item)) {
21455
- hanldeTreeNodeClick(item);
21456
- }
21457
- ctx.emit("check", item, getSchemaVal2(item[NODE_ATTRIBUTES.UUID]));
21438
+ const handleNodeContentClick = (item, e) => {
21439
+ setSelect(item);
21440
+ if (!isNodeOpened(item)) {
21441
+ hanldeTreeNodeClick(item, e);
21458
21442
  }
21443
+ ctx.emit(EVENTS.NODE_CLICK, resolveScopedSlotParam(item), getSchemaVal2(item[NODE_ATTRIBUTES.UUID]), e);
21459
21444
  };
21460
21445
  const filterNextNode = (depth, node) => {
21461
21446
  if (isRootNode(node)) {
@@ -21486,14 +21471,22 @@ var useNodeAction = (props, ctx, flatData, renderData) => {
21486
21471
  "style": getNodeLineStyle(maxDeep - index)
21487
21472
  }, null));
21488
21473
  };
21474
+ const resolveScopedSlotParam = (item) => __spreadProps(__spreadValues({}, item), {
21475
+ hasChildNode: hasChildNode(item),
21476
+ isMatched: isNodeMatched(item),
21477
+ isChecked: isNodeChecked(item),
21478
+ isOpened: isNodeOpened(item),
21479
+ isRoot: isRootNode(item)
21480
+ });
21489
21481
  const renderTreeNode = (item) => {
21490
21482
  var _a, _b, _c, _d, _e;
21491
21483
  return createVNode("div", {
21484
+ "data-tree-node": getNodeId(item),
21492
21485
  "class": getNodeRowClass(item, flatData.schema)
21493
21486
  }, [createVNode("div", {
21494
21487
  "class": getNodeItemClass(item, flatData.schema, props),
21495
21488
  "style": getNodeItemStyle(item, props, flatData),
21496
- "onClick": () => handleNodeContentClick(item)
21489
+ "onClick": (e) => handleNodeContentClick(item, e)
21497
21490
  }, [createVNode("span", {
21498
21491
  "class": resolveClassName("node-action"),
21499
21492
  "onClick": (e) => handleNodeActionClick(e, item)
@@ -21501,15 +21494,137 @@ var useNodeAction = (props, ctx, flatData, renderData) => {
21501
21494
  "class": resolveClassName("node-content")
21502
21495
  }, [[getNodePrefixIcon(item), getLoadingIcon(item)], createVNode("span", {
21503
21496
  "class": resolveClassName("node-text")
21504
- }, [(_e = (_b = (_a = ctx.slots).node) == null ? void 0 : _b.call(_a, item)) != null ? _e : [getLabel(item, props), (_d = (_c = ctx.slots).nodeAppend) == null ? void 0 : _d.call(_c, item)]])]), getVirtualLines(item)])]);
21497
+ }, [(_c = (_b = (_a = ctx.slots).node) == null ? void 0 : _b.call(_a, resolveScopedSlotParam(item))) != null ? _c : [getLabel(item, props)]]), (_e = (_d = ctx.slots).nodeAppend) == null ? void 0 : _e.call(_d, resolveScopedSlotParam(item))]), getVirtualLines(item)])]);
21505
21498
  };
21506
21499
  return {
21507
21500
  renderTreeNode,
21508
21501
  hanldeTreeNodeClick,
21509
21502
  deepAutoOpen,
21510
- setNodeOpened
21503
+ setNodeAction,
21504
+ setNodeOpened,
21505
+ setSelect,
21506
+ setOpen
21511
21507
  };
21512
21508
  };
21509
+ var useNodeDrag = (props, root, flatData) => {
21510
+ const {
21511
+ getSourceNodeByUID,
21512
+ getNodeParentIdById,
21513
+ getParentNodeData,
21514
+ getNodeAttr: getNodeAttr2,
21515
+ getNodePath,
21516
+ isRootNode
21517
+ } = useNodeAttribute(flatData, props);
21518
+ const getTargetTreeNode = (e) => {
21519
+ const target = e.target;
21520
+ return target.closest("[data-tree-node]");
21521
+ };
21522
+ const handleTreeNodeMouseup = (e) => {
21523
+ const targetNode = getTargetTreeNode(e);
21524
+ targetNode.removeEventListener("mouseup", handleTreeNodeMouseup);
21525
+ };
21526
+ const handleTreeNodeMousedown = (e) => {
21527
+ const targetNode = getTargetTreeNode(e);
21528
+ targetNode.setAttribute("draggable", "true");
21529
+ targetNode.addEventListener("mouseup", handleTreeNodeMouseup);
21530
+ };
21531
+ const handleTreeNodeDragover = (e) => {
21532
+ e.preventDefault();
21533
+ const targetNode = getTargetTreeNode(e);
21534
+ const sourceNodeId = e.dataTransfer.getData("node-id");
21535
+ const targetNodeId = targetNode.getAttribute("data-tree-node");
21536
+ const transferEffect = isNodeSortable(sourceNodeId, targetNodeId) ? "move" : "none";
21537
+ e.dataTransfer.effectAllowed = transferEffect;
21538
+ e.dataTransfer.dropEffect = transferEffect;
21539
+ };
21540
+ const handleTreeNodeDragStart = (e) => {
21541
+ e.dataTransfer.effectAllowed = "move";
21542
+ e.dataTransfer.dropEffect = "move";
21543
+ const targetNode = getTargetTreeNode(e);
21544
+ e.dataTransfer.setData("text/plain", "");
21545
+ e.dataTransfer.setData("node-id", targetNode.getAttribute("data-tree-node"));
21546
+ };
21547
+ const handleTreeNodeDrop = (e) => {
21548
+ e.preventDefault();
21549
+ e.stopPropagation();
21550
+ const targetNode = getTargetTreeNode(e);
21551
+ const sourceNodeId = e.dataTransfer.getData("node-id");
21552
+ const targetNodeId = targetNode.getAttribute("data-tree-node");
21553
+ Reflect.apply(props.dragSort ? dragSortData : dragAsChildNode, globalThis, [sourceNodeId, targetNodeId]);
21554
+ };
21555
+ const isNodeSortable = (sourceId, tartgetId) => {
21556
+ const sourcePath = getNodePath({
21557
+ [NODE_ATTRIBUTES.UUID]: sourceId
21558
+ });
21559
+ const targetPath = getNodePath({
21560
+ [NODE_ATTRIBUTES.UUID]: tartgetId
21561
+ });
21562
+ const sourceParentNodeId = getNodeParentIdById(sourceId);
21563
+ const targetParentNode = getNodeParentIdById(tartgetId);
21564
+ if (sourceParentNodeId === targetParentNode) {
21565
+ return true;
21566
+ }
21567
+ return sourcePath.indexOf(targetPath) === -1 && targetPath.indexOf(sourcePath) === -1;
21568
+ };
21569
+ const dragSortData = (sourceId, tartgetId) => {
21570
+ if (!isNodeSortable(sourceId, tartgetId)) {
21571
+ return;
21572
+ }
21573
+ const sourceNodeData = JSON.parse(JSON.stringify(getSourceNodeByUID(sourceId)));
21574
+ const targetNodeData = JSON.parse(JSON.stringify(getSourceNodeByUID(tartgetId)));
21575
+ const sourceNodeParent = getParentNodeData(sourceId);
21576
+ const targetNodeParent = getParentNodeData(tartgetId);
21577
+ const sourceNodeIndex = getNodeAttr2({
21578
+ [NODE_ATTRIBUTES.UUID]: sourceId
21579
+ }, NODE_ATTRIBUTES.INDEX);
21580
+ const targetNodeIndex = getNodeAttr2({
21581
+ [NODE_ATTRIBUTES.UUID]: tartgetId
21582
+ }, NODE_ATTRIBUTES.INDEX);
21583
+ sourceNodeParent == null ? void 0 : sourceNodeParent[props.children].splice(sourceNodeIndex, 1, targetNodeData);
21584
+ targetNodeParent == null ? void 0 : targetNodeParent[props.children].splice(targetNodeIndex, 1, sourceNodeData);
21585
+ };
21586
+ const dragAsChildNode = (sourceNodeId, targetNodeId) => {
21587
+ const sourceNodeData = getSourceNodeByUID(sourceNodeId);
21588
+ const targetNodeData = getSourceNodeByUID(targetNodeId);
21589
+ let parentNode = null;
21590
+ if (isRootNode({
21591
+ [NODE_ATTRIBUTES.UUID]: sourceNodeId
21592
+ })) {
21593
+ parentNode = props.data;
21594
+ } else {
21595
+ const sourceNodeParentId = getNodeParentIdById(sourceNodeId);
21596
+ if (sourceNodeParentId !== void 0 && sourceNodeParentId !== null) {
21597
+ parentNode = getSourceNodeByUID(sourceNodeParentId);
21598
+ const sourceNodeIndex = getNodeAttr2({
21599
+ [NODE_ATTRIBUTES.UUID]: sourceNodeId
21600
+ }, NODE_ATTRIBUTES.INDEX);
21601
+ parentNode == null ? void 0 : parentNode[props.children].splice(sourceNodeIndex, 1);
21602
+ }
21603
+ }
21604
+ if (!targetNodeData[props.children]) {
21605
+ targetNodeData[props.children] = [];
21606
+ }
21607
+ targetNodeData[props.children].unshift(sourceNodeData);
21608
+ };
21609
+ onMounted(() => {
21610
+ if (props.draggable && root.value) {
21611
+ const rootTree = root.value.$el;
21612
+ rootTree.addEventListener("mousedown", handleTreeNodeMousedown);
21613
+ rootTree.addEventListener("dragstart", handleTreeNodeDragStart);
21614
+ rootTree.addEventListener("dragover", handleTreeNodeDragover);
21615
+ rootTree.addEventListener("drop", handleTreeNodeDrop);
21616
+ }
21617
+ });
21618
+ onUnmounted(() => {
21619
+ if (props.draggable && root.value) {
21620
+ const rootTree = root.value.$el;
21621
+ rootTree.removeEventListener("mousedown", handleTreeNodeMousedown);
21622
+ rootTree.removeEventListener("dragstart", handleTreeNodeDragStart);
21623
+ rootTree.removeEventListener("dragover", handleTreeNodeDragover);
21624
+ rootTree.removeEventListener("drop", handleTreeNodeDrop);
21625
+ }
21626
+ });
21627
+ };
21513
21628
  var useSearch = (props) => {
21514
21629
  var _a;
21515
21630
  const refSearch = toRef(props, "search");
@@ -21552,26 +21667,281 @@ var useSearch = (props) => {
21552
21667
  isTreeUI
21553
21668
  };
21554
21669
  };
21670
+ var rngBrowser = { exports: {} };
21671
+ var getRandomValues = typeof crypto != "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != "undefined" && typeof window.msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto);
21672
+ if (getRandomValues) {
21673
+ var rnds8 = new Uint8Array(16);
21674
+ rngBrowser.exports = function whatwgRNG() {
21675
+ getRandomValues(rnds8);
21676
+ return rnds8;
21677
+ };
21678
+ } else {
21679
+ var rnds = new Array(16);
21680
+ rngBrowser.exports = function mathRNG() {
21681
+ for (var i = 0, r2; i < 16; i++) {
21682
+ if ((i & 3) === 0)
21683
+ r2 = Math.random() * 4294967296;
21684
+ rnds[i] = r2 >>> ((i & 3) << 3) & 255;
21685
+ }
21686
+ return rnds;
21687
+ };
21688
+ }
21689
+ var byteToHex = [];
21690
+ for (var i = 0; i < 256; ++i) {
21691
+ byteToHex[i] = (i + 256).toString(16).substr(1);
21692
+ }
21693
+ function bytesToUuid$2(buf, offset2) {
21694
+ var i = offset2 || 0;
21695
+ var bth = byteToHex;
21696
+ return [
21697
+ bth[buf[i++]],
21698
+ bth[buf[i++]],
21699
+ bth[buf[i++]],
21700
+ bth[buf[i++]],
21701
+ "-",
21702
+ bth[buf[i++]],
21703
+ bth[buf[i++]],
21704
+ "-",
21705
+ bth[buf[i++]],
21706
+ bth[buf[i++]],
21707
+ "-",
21708
+ bth[buf[i++]],
21709
+ bth[buf[i++]],
21710
+ "-",
21711
+ bth[buf[i++]],
21712
+ bth[buf[i++]],
21713
+ bth[buf[i++]],
21714
+ bth[buf[i++]],
21715
+ bth[buf[i++]],
21716
+ bth[buf[i++]]
21717
+ ].join("");
21718
+ }
21719
+ var bytesToUuid_1 = bytesToUuid$2;
21720
+ var rng$1 = rngBrowser.exports;
21721
+ var bytesToUuid$1 = bytesToUuid_1;
21722
+ var _nodeId;
21723
+ var _clockseq;
21724
+ var _lastMSecs = 0;
21725
+ var _lastNSecs = 0;
21726
+ function v1$1(options, buf, offset2) {
21727
+ var i = buf && offset2 || 0;
21728
+ var b2 = buf || [];
21729
+ options = options || {};
21730
+ var node = options.node || _nodeId;
21731
+ var clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;
21732
+ if (node == null || clockseq == null) {
21733
+ var seedBytes = rng$1();
21734
+ if (node == null) {
21735
+ node = _nodeId = [
21736
+ seedBytes[0] | 1,
21737
+ seedBytes[1],
21738
+ seedBytes[2],
21739
+ seedBytes[3],
21740
+ seedBytes[4],
21741
+ seedBytes[5]
21742
+ ];
21743
+ }
21744
+ if (clockseq == null) {
21745
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
21746
+ }
21747
+ }
21748
+ var msecs = options.msecs !== void 0 ? options.msecs : new Date().getTime();
21749
+ var nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;
21750
+ var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
21751
+ if (dt < 0 && options.clockseq === void 0) {
21752
+ clockseq = clockseq + 1 & 16383;
21753
+ }
21754
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {
21755
+ nsecs = 0;
21756
+ }
21757
+ if (nsecs >= 1e4) {
21758
+ throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
21759
+ }
21760
+ _lastMSecs = msecs;
21761
+ _lastNSecs = nsecs;
21762
+ _clockseq = clockseq;
21763
+ msecs += 122192928e5;
21764
+ var tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
21765
+ b2[i++] = tl >>> 24 & 255;
21766
+ b2[i++] = tl >>> 16 & 255;
21767
+ b2[i++] = tl >>> 8 & 255;
21768
+ b2[i++] = tl & 255;
21769
+ var tmh = msecs / 4294967296 * 1e4 & 268435455;
21770
+ b2[i++] = tmh >>> 8 & 255;
21771
+ b2[i++] = tmh & 255;
21772
+ b2[i++] = tmh >>> 24 & 15 | 16;
21773
+ b2[i++] = tmh >>> 16 & 255;
21774
+ b2[i++] = clockseq >>> 8 | 128;
21775
+ b2[i++] = clockseq & 255;
21776
+ for (var n2 = 0; n2 < 6; ++n2) {
21777
+ b2[i + n2] = node[n2];
21778
+ }
21779
+ return buf ? buf : bytesToUuid$1(b2);
21780
+ }
21781
+ var v1_1 = v1$1;
21782
+ var rng = rngBrowser.exports;
21783
+ var bytesToUuid = bytesToUuid_1;
21784
+ function v4$1(options, buf, offset2) {
21785
+ var i = buf && offset2 || 0;
21786
+ if (typeof options == "string") {
21787
+ buf = options === "binary" ? new Array(16) : null;
21788
+ options = null;
21789
+ }
21790
+ options = options || {};
21791
+ var rnds = options.random || (options.rng || rng)();
21792
+ rnds[6] = rnds[6] & 15 | 64;
21793
+ rnds[8] = rnds[8] & 63 | 128;
21794
+ if (buf) {
21795
+ for (var ii = 0; ii < 16; ++ii) {
21796
+ buf[i + ii] = rnds[ii];
21797
+ }
21798
+ }
21799
+ return buf || bytesToUuid(rnds);
21800
+ }
21801
+ var v4_1 = v4$1;
21802
+ var v1 = v1_1;
21803
+ var v4 = v4_1;
21804
+ var uuid = v4;
21805
+ uuid.v1 = v1;
21806
+ uuid.v4 = v4;
21807
+ var uuid_1 = uuid;
21808
+ var useTreeInit = (props) => {
21809
+ var _a;
21810
+ const getFlatdata = (props2, treeData = void 0, cachedSchema = []) => {
21811
+ const {
21812
+ data: data2,
21813
+ children
21814
+ } = props2;
21815
+ const outputData = [];
21816
+ let order2 = 0;
21817
+ const schema = /* @__PURE__ */ new Map();
21818
+ function getUid(item) {
21819
+ let uid = null;
21820
+ if (typeof props2.nodeKey === "string") {
21821
+ uid = item[props2.nodeKey];
21822
+ }
21823
+ return uid || item[NODE_ATTRIBUTES.UUID] || uuid_1.v4();
21824
+ }
21825
+ function getCachedTreeNodeAttr(uuid2, node, attr, cachedAttr, defVal = void 0) {
21826
+ const cached = (cachedSchema || []).find((item) => item[NODE_ATTRIBUTES.UUID] === uuid2);
21827
+ let result = void 0;
21828
+ if (cached) {
21829
+ result = cached[cachedAttr];
21830
+ } else {
21831
+ result = node[attr];
21832
+ }
21833
+ if (result === void 0) {
21834
+ result = defVal;
21835
+ }
21836
+ return result;
21837
+ }
21838
+ function isCachedTreeNodeOpened(uuid2, node) {
21839
+ return getCachedTreeNodeAttr(uuid2, node, "isOpen", NODE_ATTRIBUTES.IS_OPENED, false);
21840
+ }
21841
+ function isCachedTreeNodeChecked(uuid2, node) {
21842
+ return getCachedTreeNodeAttr(uuid2, node, "checked", NODE_ATTRIBUTES.IS_CHECKED, false);
21843
+ }
21844
+ function isCachedTreeNodeMatch(uuid2, node) {
21845
+ return getCachedTreeNodeAttr(uuid2, node, "isMatch", NODE_ATTRIBUTES.IS_MATCH, true);
21846
+ }
21847
+ function isCachedTreeNodeSelected(uuid2, node) {
21848
+ return getCachedTreeNodeAttr(uuid2, node, "isSelected", NODE_ATTRIBUTES.IS_SELECTED, false);
21849
+ }
21850
+ function flatten(array, depth = 0, parent = null, path = null) {
21851
+ const arrLength = array.length;
21852
+ for (let i = 0; i < arrLength; i++) {
21853
+ const item = array[i];
21854
+ if (Array.isArray(item)) {
21855
+ flatten(item, depth, parent, path);
21856
+ } else {
21857
+ if (typeof item === "object" && item !== null) {
21858
+ const uuid2 = getUid(item);
21859
+ const currentPath = path !== null ? `${path}-${i}` : `${i}`;
21860
+ const hasChildren = !!(item[children] || []).length;
21861
+ const attrs = {
21862
+ [NODE_ATTRIBUTES.DEPTH]: depth,
21863
+ [NODE_ATTRIBUTES.INDEX]: i,
21864
+ [NODE_ATTRIBUTES.UUID]: uuid2,
21865
+ [NODE_ATTRIBUTES.PARENT_ID]: parent,
21866
+ [NODE_ATTRIBUTES.HAS_CHILD]: hasChildren,
21867
+ [NODE_ATTRIBUTES.PATH]: currentPath,
21868
+ [NODE_ATTRIBUTES.IS_ROOT]: parent === null,
21869
+ [NODE_ATTRIBUTES.ORDER]: order2,
21870
+ [NODE_ATTRIBUTES.IS_SELECTED]: props2.selectable ? isCachedTreeNodeSelected(uuid2, item) : false,
21871
+ [NODE_ATTRIBUTES.IS_MATCH]: isCachedTreeNodeMatch(uuid2, item),
21872
+ [NODE_ATTRIBUTES.IS_OPENED]: isCachedTreeNodeOpened(uuid2, item),
21873
+ [NODE_ATTRIBUTES.IS_CHECKED]: isCachedTreeNodeChecked(uuid2, item),
21874
+ [children]: null
21875
+ };
21876
+ Object.assign(item, {
21877
+ [NODE_ATTRIBUTES.UUID]: uuid2
21878
+ });
21879
+ schema.set(uuid2, attrs);
21880
+ order2 += 1;
21881
+ outputData.push(__spreadProps(__spreadValues({}, item), {
21882
+ [children]: null
21883
+ }));
21884
+ if (Object.prototype.hasOwnProperty.call(item, children)) {
21885
+ flatten(item[children] || [], depth + 1, uuid2, currentPath);
21886
+ }
21887
+ }
21888
+ }
21889
+ }
21890
+ }
21891
+ flatten(treeData ? treeData : data2);
21892
+ return [outputData, schema];
21893
+ };
21894
+ const formatData = getFlatdata(props);
21895
+ const flatData = reactive({
21896
+ data: formatData[0],
21897
+ schema: formatData[1],
21898
+ levelLineSchema: {}
21899
+ });
21900
+ const schemaValues = computed(() => Array.from(flatData.schema.values()));
21901
+ const {
21902
+ asyncNodeClick,
21903
+ deepAutoOpen
21904
+ } = useNodeAsync(props, flatData);
21905
+ watch(() => [props.data], (newData) => {
21906
+ var _a2, _b;
21907
+ const formatData2 = getFlatdata(props, newData, schemaValues.value);
21908
+ flatData.data = formatData2[0];
21909
+ flatData.schema = formatData2[1];
21910
+ if (((_a2 = props.async) == null ? void 0 : _a2.callback) && ((_b = props.async) == null ? void 0 : _b.deepAutoOpen) === "every") {
21911
+ deepAutoOpen();
21912
+ }
21913
+ }, {
21914
+ deep: true
21915
+ });
21916
+ if ((_a = props.async) == null ? void 0 : _a.callback) {
21917
+ deepAutoOpen();
21918
+ }
21919
+ return {
21920
+ flatData,
21921
+ schemaValues,
21922
+ asyncNodeClick,
21923
+ deepAutoOpen
21924
+ };
21925
+ };
21555
21926
  var Component$1 = defineComponent({
21556
21927
  name: "Tree",
21557
21928
  props: treeProps,
21558
- emits: ["check"],
21929
+ emits: [EVENTS.NODE_CLICK, EVENTS.NODE_COLLAPSE, EVENTS.NODE_EXPAND],
21559
21930
  setup(props, ctx) {
21560
- var _a;
21561
- const formatData = getFlatdata(props);
21562
- const flatData = reactive({
21563
- data: formatData[0],
21564
- schema: formatData[1],
21565
- levelLineSchema: {}
21566
- });
21567
21931
  const {
21568
- schemaValues,
21932
+ flatData,
21933
+ schemaValues
21934
+ } = useTreeInit(props);
21935
+ const {
21569
21936
  setNodeAttr,
21570
21937
  checkNodeIsOpen,
21571
21938
  getNodeAttr: getNodeAttr2,
21572
21939
  getNodePath,
21573
21940
  isRootNode,
21574
- isChecked
21941
+ isNodeOpened,
21942
+ isNodeChecked,
21943
+ isNodeMatched,
21944
+ hasChildNode
21575
21945
  } = useNodeAttribute(flatData);
21576
21946
  const {
21577
21947
  searchFn,
@@ -21603,79 +21973,41 @@ var Component$1 = defineComponent({
21603
21973
  const {
21604
21974
  renderTreeNode,
21605
21975
  hanldeTreeNodeClick,
21606
- deepAutoOpen,
21607
- setNodeOpened
21608
- } = useNodeAction(props, ctx, flatData, renderData);
21609
- if ((_a = props.async) == null ? void 0 : _a.callback) {
21610
- deepAutoOpen();
21611
- }
21612
- watch(() => [props.data], (newData) => {
21613
- var _a2, _b;
21614
- const formatData2 = getFlatdata(props, newData, schemaValues.value);
21615
- flatData.data = formatData2[0];
21616
- flatData.schema = formatData2[1];
21617
- if (((_a2 = props.async) == null ? void 0 : _a2.callback) && ((_b = props.async) == null ? void 0 : _b.deepAutoOpen) === "every") {
21618
- deepAutoOpen();
21619
- }
21620
- }, {
21621
- deep: true
21622
- });
21623
- const resolveNodeItem = (node) => {
21624
- if (typeof node === "string") {
21625
- return {
21626
- [NODE_ATTRIBUTES.UUID]: node
21627
- };
21628
- }
21629
- if (Object.prototype.hasOwnProperty.call(node, NODE_ATTRIBUTES.UUID)) {
21630
- return node;
21631
- }
21632
- console.error("setNodeAction Error: node id cannot found");
21633
- return node;
21634
- };
21635
- const setNodeAction = (args, action, value) => {
21636
- if (Array.isArray(args)) {
21637
- args.forEach((node) => setNodeAttr(resolveNodeItem(node), action, value));
21638
- return;
21639
- }
21640
- setNodeAttr(resolveNodeItem(args), action, value);
21641
- };
21642
- const setOpen = (item, isOpen = true, autoOpenParents = false) => {
21643
- const resolvedItem = resolveNodeItem(item);
21644
- if (autoOpenParents) {
21645
- if (isOpen) {
21646
- setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPEN, isOpen);
21647
- if (!isRootNode(resolvedItem)) {
21648
- const parentId = getNodeAttr2(resolvedItem, NODE_ATTRIBUTES.PARENT_ID);
21649
- setOpen(parentId, true, true);
21650
- }
21651
- } else {
21652
- setNodeOpened(resolvedItem, false);
21653
- }
21654
- } else {
21655
- setNodeAction(resolvedItem, NODE_ATTRIBUTES.IS_OPEN, isOpen);
21656
- }
21657
- };
21976
+ setNodeOpened,
21977
+ setOpen,
21978
+ setNodeAction,
21979
+ setSelect
21980
+ } = useNodeAction(props, ctx, flatData, renderData, schemaValues);
21658
21981
  const setChecked = (item, checked = true) => {
21659
- setNodeAction(resolveNodeItem(item), NODE_ATTRIBUTES.CHECKED, checked);
21660
- };
21661
- const select2 = (item, fireOther = true) => {
21662
- var _a2;
21663
- if (fireOther) {
21664
- setChecked((_a2 = schemaValues.value.filter((item2) => isChecked(item2))) != null ? _a2 : [], false);
21665
- }
21666
- setChecked(item, true);
21982
+ setNodeAction(resolveNodeItem(item), NODE_ATTRIBUTES.IS_CHECKED, checked);
21667
21983
  };
21984
+ if (props.selectable) {
21985
+ watch(() => props.selected, (newData) => {
21986
+ setSelect(newData, true, true);
21987
+ }, {
21988
+ immediate: true
21989
+ });
21990
+ }
21991
+ const getData = () => flatData;
21668
21992
  ctx.expose({
21669
21993
  hanldeTreeNodeClick,
21994
+ isNodeChecked,
21995
+ isRootNode,
21996
+ isNodeOpened,
21997
+ isNodeMatched,
21998
+ hasChildNode,
21670
21999
  setOpen,
21671
22000
  setChecked,
21672
22001
  setNodeAction,
21673
- select: select2
22002
+ setNodeOpened,
22003
+ setSelect,
22004
+ getData
21674
22005
  });
21675
22006
  const root = ref();
21676
22007
  const {
21677
22008
  renderEmpty
21678
22009
  } = useEmpty(props, ctx);
22010
+ useNodeDrag(props, root, flatData);
21679
22011
  const renderTreeContent = (scopedData) => {
21680
22012
  if (scopedData.length) {
21681
22013
  return scopedData.map(renderTreeNode);
@@ -22706,7 +23038,7 @@ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
22706
23038
  Button: BkButton,
22707
23039
  Card: BkCard,
22708
23040
  Checkbox: BkCheckbox,
22709
- Collapse: BkCollaspe,
23041
+ Collapse: BkCollapse,
22710
23042
  Dialog: BkDialog,
22711
23043
  Exception: BkException,
22712
23044
  FixedNavbar: BkFixedNavbar,
@@ -22759,4 +23091,4 @@ var preset = {
22759
23091
  install: createInstall(),
22760
23092
  version: "0.0.1"
22761
23093
  };
22762
- export { BkAffix as Affix, BkAlert as Alert, BkAnimateNumber as AnimateNumber, BkBacktop as Backtop, BkBadge as Badge, BkBreadcrumb as Breadcrumb, BkButton as Button, BkCard as Card, BkCascader as Cascader, BkCheckbox as Checkbox, BkCollaspe as Collapse, BkContainer as Container, BkDatePicker as DatePicker, BkDialog as Dialog, BkDivider as Divider, BkDropdown as Dropdown, BkException as Exception, BkFixedNavbar as FixedNavbar, BkForm as Form, BkInput as Input, BkLink as Link, BkLoading as Loading, BkMenu as Menu, Message, BkModal as Modal, Navigation, Notify, BkPagination as Pagination, BkPopover as Popover, BkProgress as Progress, BkRadio as Radio, BkRate as Rate, BkSelect as Select, BkSideslider as Sideslider, BkSteps as Steps, BkSwiper as Swiper, BkSwitcher as Switcher, BkTab as Tab, BkTable as Table, BkTag as Tag, TagInput, Transfer, BkTree as Tree, BkVirtualRender as VirtualRender, tooltips as bkTooltips, ClickOutside as clickoutside, BkContainer as containerProps, preset as default, mousewheel };
23094
+ export { BkAffix as Affix, BkAlert as Alert, BkAnimateNumber as AnimateNumber, BkBacktop as Backtop, BkBadge as Badge, BkBreadcrumb as Breadcrumb, BkButton as Button, BkCard as Card, BkCascader as Cascader, BkCheckbox as Checkbox, BkCollapse as Collapse, BkContainer as Container, BkDatePicker as DatePicker, BkDialog as Dialog, BkDivider as Divider, BkDropdown as Dropdown, BkException as Exception, BkFixedNavbar as FixedNavbar, BkForm as Form, BkInput as Input, BkLink as Link, BkLoading as Loading, BkMenu as Menu, Message, BkModal as Modal, Navigation, Notify, BkPagination as Pagination, BkPopover as Popover, BkProgress as Progress, BkRadio as Radio, BkRate as Rate, BkSelect as Select, BkSideslider as Sideslider, BkSteps as Steps, BkSwiper as Swiper, BkSwitcher as Switcher, BkTab as Tab, BkTable as Table, BkTag as Tag, TagInput, Transfer, BkTree as Tree, BkVirtualRender as VirtualRender, tooltips as bkTooltips, ClickOutside as clickoutside, BkContainer as containerProps, preset as default, mousewheel };