bkui-vue 0.0.1-beta.19 → 0.0.1-beta.21

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 (77) hide show
  1. package/README.md +7 -3
  2. package/README_EN.md +7 -3
  3. package/dist/bkui-vue.cjs.js +1429 -365
  4. package/dist/bkui-vue.esm.js +1427 -364
  5. package/dist/bkui-vue.umd.js +1429 -365
  6. package/dist/style.css +376 -85
  7. package/lib/button/button.css +9 -0
  8. package/lib/button/button.d.ts +25 -1
  9. package/lib/button/button.less +18 -10
  10. package/lib/button/button.variable.css +9 -0
  11. package/lib/button/index.d.ts +42 -4
  12. package/lib/button/index.js +1 -1
  13. package/lib/code-diff/code-diff.css +114 -0
  14. package/lib/code-diff/code-diff.d.ts +71 -0
  15. package/lib/code-diff/code-diff.less +144 -0
  16. package/lib/code-diff/code-diff.variable.css +207 -0
  17. package/lib/code-diff/index.d.ts +6 -0
  18. package/lib/components.d.ts +1 -0
  19. package/lib/date-picker/date-picker.d.ts +20 -130
  20. package/lib/date-picker/index.js +1 -1
  21. package/lib/date-picker/interface.d.ts +1 -1
  22. package/lib/date-picker/props.d.ts +111 -0
  23. package/lib/directives/clickoutside.d.ts +3 -23
  24. package/lib/directives/index.js +2 -2
  25. package/lib/icon/arrows-right.d.ts +4 -0
  26. package/lib/icon/arrows-right.js +15 -0
  27. package/lib/icon/bk.d.ts +4 -0
  28. package/lib/icon/bk.js +15 -0
  29. package/lib/icon/index.d.ts +4 -0
  30. package/lib/icon/index.js +1 -1
  31. package/lib/icon/qq.d.ts +4 -0
  32. package/lib/icon/qq.js +15 -0
  33. package/lib/icon/weixin.d.ts +4 -0
  34. package/lib/icon/weixin.js +15 -0
  35. package/lib/input/index.d.ts +58 -4
  36. package/lib/input/index.js +2 -2
  37. package/lib/input/input.css +19 -2
  38. package/lib/input/input.d.ts +31 -1
  39. package/lib/input/input.less +25 -3
  40. package/lib/input/input.variable.css +19 -2
  41. package/lib/loading/index.d.ts +31 -9
  42. package/lib/loading/index.js +1 -1
  43. package/lib/loading/loading.css +98 -71
  44. package/lib/loading/loading.d.ts +23 -8
  45. package/lib/loading/loading.less +62 -49
  46. package/lib/loading/loading.variable.css +98 -71
  47. package/lib/shared/index.js +1 -1
  48. package/lib/shared/vue-types.d.ts +4 -0
  49. package/lib/styles/index.d.ts +1 -0
  50. package/lib/styles/index.js +1 -1
  51. package/lib/table/index.d.ts +42 -1
  52. package/lib/table/index.js +1 -1
  53. package/lib/table/props.d.ts +13 -0
  54. package/lib/table/render.d.ts +9 -0
  55. package/lib/table/table.d.ts +19 -0
  56. package/lib/table/utils.d.ts +8 -0
  57. package/lib/tag/index.d.ts +189 -22
  58. package/lib/tag/index.js +1 -1
  59. package/lib/tag/tag.css +91 -0
  60. package/lib/tag/tag.d.ts +83 -7
  61. package/lib/tag/tag.less +103 -2
  62. package/lib/tag/tag.variable.css +91 -0
  63. package/lib/transfer/index.d.ts +27 -0
  64. package/lib/transfer/index.js +1 -0
  65. package/lib/transfer/transfer.css +158 -0
  66. package/lib/transfer/transfer.d.ts +185 -0
  67. package/lib/transfer/transfer.less +171 -0
  68. package/lib/transfer/transfer.variable.css +251 -0
  69. package/lib/tree/index.d.ts +22 -3
  70. package/lib/tree/index.js +1 -1
  71. package/lib/tree/props.d.ts +11 -0
  72. package/lib/tree/tree.css +1 -12
  73. package/lib/tree/tree.d.ts +10 -1
  74. package/lib/tree/tree.less +10 -24
  75. package/lib/tree/tree.variable.css +1 -12
  76. package/lib/tree/util.d.ts +20 -3
  77. package/package.json +8 -4
@@ -0,0 +1,171 @@
1
+ @import '../styles/themes/themes.less';
2
+
3
+ /* 边框色 */
4
+ @borderInlineColor: #dde4eb;
5
+
6
+ /* 按钮、表单边框颜色、禁用时文本颜色 */
7
+ @newGreyColor: #c4c6cc;
8
+
9
+ /* 表格头部背景色、禁用底色 */
10
+ @newGreyColor2: #f0f1f5;
11
+
12
+ /* 大面积背景色 */
13
+ @newGreyColor3: #fafbfd;
14
+
15
+ /* 重点表示、强调、链接以及带有明确指示性 */
16
+ @newMainColor: #3a84ff;
17
+
18
+ /* 正常尺寸图标 */
19
+ @iconNormalSize: 22px;
20
+
21
+ .@{bk-prefix}-transfer {
22
+ position: relative;
23
+ display: flex;
24
+ font-size: 14px;
25
+ flex-direction: row;
26
+ justify-content: center;
27
+
28
+ .transfer {
29
+ position: absolute;
30
+ top: 50%;
31
+ left: 50%;
32
+ width: 30px;
33
+ height: 30px;
34
+ background: url('@bkui-vue/styles/images/transfer.png') no-repeat center center;
35
+ transform: translate(-50%, -50%);
36
+ }
37
+
38
+ .source-list,
39
+ .target-list {
40
+ height: 400px;
41
+ min-width: 200px;
42
+ overflow: hidden;
43
+ background-color: #fff;
44
+ border: 1px solid @borderInlineColor;
45
+ border-radius: 2px;
46
+ flex: 1;
47
+
48
+ .slot-header {
49
+ position: relative;
50
+ height: 43px;
51
+ padding: 0 20px;
52
+ line-height: 43px;
53
+ background-color: @newGreyColor3;
54
+ border-bottom: 1px solid @borderInlineColor;
55
+
56
+ .slot-content {
57
+ position: relative;
58
+ }
59
+ }
60
+
61
+ .header {
62
+ position: relative;
63
+ height: 43px;
64
+ padding: 0 20px;
65
+ line-height: 43px;
66
+ background-color: @newGreyColor3;
67
+ border-bottom: 1px solid @borderInlineColor;
68
+
69
+ span {
70
+ position: absolute;
71
+ right: 10px;
72
+ font-size: 12px;
73
+ color: @newMainColor;
74
+ cursor: pointer;
75
+
76
+ &.disabled {
77
+ color: @newGreyColor;
78
+ cursor: not-allowed;
79
+ }
80
+ }
81
+ }
82
+
83
+ .empty {
84
+ position: relative;
85
+ top: 40%;
86
+ width: 100%;
87
+ color: @newGreyColor;
88
+ text-align: center;
89
+ cursor: default;
90
+ }
91
+
92
+ .content {
93
+ position: relative;
94
+ max-height: calc(100% - 50px);
95
+ padding: 0;
96
+ margin: 6px 0;
97
+ overflow-y: auto;
98
+
99
+ &.is-search {
100
+ max-height: calc(100% - 86px);
101
+ }
102
+
103
+ li {
104
+ &.custom-item,
105
+ .item-content {
106
+ position: relative;
107
+ display: flex;
108
+ height: 40px;
109
+ padding: 0 20px;
110
+ line-height: 40px;
111
+ list-style: none;
112
+ cursor: pointer;
113
+ align-items: center;
114
+
115
+ &:hover {
116
+ color: @newMainColor;
117
+ background-color: #eef6fe;
118
+ }
119
+
120
+ .content-text {
121
+ overflow: hidden;
122
+ text-overflow: ellipsis;
123
+ white-space: nowrap;
124
+ flex: 1;
125
+ }
126
+
127
+ .icon-wrapper {
128
+ display: none;
129
+ flex: 22px 0 0;
130
+
131
+ &.hover {
132
+ display: inline-block;
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ &::-webkit-scrollbar {
139
+ width: 4px;
140
+ // background-color: color(transparent lightness(80%));
141
+ }
142
+
143
+ &::-webkit-scrollbar-thumb {
144
+ height: 5px;
145
+ background-color: #e6e9ea;
146
+ border-radius: 2px;
147
+ }
148
+
149
+ .bk-icon {
150
+ font-size: @iconNormalSize;
151
+ }
152
+ }
153
+ }
154
+
155
+ .target-list {
156
+ margin-left: 33px;
157
+ }
158
+
159
+ .transfer-search-input {
160
+ height: 36px;
161
+ line-height: 34px;
162
+ border: none;
163
+ border-bottom: 1px solid @newGreyColor2;
164
+ outline: none;
165
+
166
+ &.is-focused {
167
+ border-color: @newGreyColor2;
168
+ box-shadow: 0px 0px 3px 0px transparent;
169
+ }
170
+ }
171
+ }
@@ -0,0 +1,251 @@
1
+ :root {
2
+ --bk-prefix: bk;
3
+ --popover-max-height: 216px;
4
+ --primary-color: #3a84ff;
5
+ --success-color: #2dcb56;
6
+ --warning-color: #ff9c01;
7
+ --danger-color: #ea3636;
8
+ --default-color: #63656e;
9
+ --gray-color: #979ba5;
10
+ --light-gray: #c4c6cc;
11
+ --white-color: white;
12
+ --disable-color: #dcdee5;
13
+ --font-size-base: 12px;
14
+ --font-size-medium: 14px;
15
+ --font-size-large: 16px;
16
+ --line-height-base: 16px;
17
+ --line-height-medium: 16px;
18
+ --line-height-large: 18px;
19
+ --component-size-small: 26px;
20
+ --component-size-base: 32px;
21
+ --component-size-large: 38px;
22
+ --border-width-base: 1px;
23
+ --border-style-base: solid;
24
+ --border-radius-base: 2px;
25
+ --input-disabled-bg: #fafbfd;
26
+ --input-disabled-border: var(--disable-color);
27
+ --input-height-base: var(--component-size-base);
28
+ --input-color: var(--default-color);
29
+ --input-bg: white;
30
+ --input-border-color: var(--light-gray);
31
+ --input-broder-radius: 3px;
32
+ --input-shadow-color: #a3c5fd;
33
+ --input-horizontal-padding: 10px;
34
+ --input-block-color: #f4f6fa;
35
+ --input-icon-size: var(--font-size-large);
36
+ --input-maxlength-color: #979ba5;
37
+ --button-primary-hover-color: #5594fa;
38
+ --button-danger-hover-color: #ff5656;
39
+ --button-success-hover-color: #45e35f;
40
+ --button-warning-hover-color: #ffb848;
41
+ --button-default-hover-border-color: #979ba5;
42
+ --button-primary-active-color: #2c77f4;
43
+ --button-danger-active-color: #db2626;
44
+ --button-success-active-color: #1ab943;
45
+ --button-warning-active-color: #eb9000;
46
+ --fixed-navbar-background: #fff;
47
+ --fixed-navbar-boxshadow-color: rgba(0, 0, 0, 0.1);
48
+ --switch-default-color: #fff;
49
+ --switch-grey-color: #c4c6cc;
50
+ --breadcrumb-black-color: #979ba5;
51
+ --breadcrumb-primary-hover-color: #0082ff;
52
+ --breadcrumb-fn-main-color: #63656e;
53
+ --link-default-hover-color: #979ba5;
54
+ --link-primary-hover-color: #699df4;
55
+ --link-success-hover-color: #45e35f;
56
+ --link-warning-hover-color: #ffb848;
57
+ --link-danger-hover-color: #ff5656;
58
+ --link-default-disabled-color: #dcdee5;
59
+ --link-primary-disabled-color: #a3c5fd;
60
+ --link-success-disabled-color: #94f5a4;
61
+ --link-warning-disabled-color: #ffd695;
62
+ --link-danger-disabled-color: #fd9c9c;
63
+ --message-color: var(--default-color);
64
+ --message-primary-bg-color: #f0f8ff;
65
+ --message-primary-border-color: #e1ecff;
66
+ --message-warning-bg-color: #fff4e2;
67
+ --message-warning-border-color: #ffe8c3;
68
+ --message-success-bg-color: #f2fff4;
69
+ --message-success-border-color: #dcffe2;
70
+ --message-danger-bg-color: #ffeded;
71
+ --message-danger-border-color: #ffdddd;
72
+ --slider-default-bg: #dcdee5;
73
+ --slider-disable-bar-bg: #979ba5;
74
+ --menu-bg-color: #182132;
75
+ --submenu-bg-color: #151d2c;
76
+ --menu-active-bg-color: linear-gradient(90deg, #3f87ff 0%, #3a84ff 100%);
77
+ --menu-color: #96a2b9;
78
+ --menu-group-color: var(--default-color);
79
+ --menu-width: 260px;
80
+ --menu-collapse-width: 60px;
81
+ --menu-active-color: white;
82
+ --nav-header-bg-color: #182132;
83
+ --nav-bg-color: #182132;
84
+ --date-picker-disabled-bg: #fafbfd;
85
+ --date-picker-dropdown-mb: 4px;
86
+ --date-picker-dropdown-bg: #fff;
87
+ --table-bg-color: var(--white-color);
88
+ --table-border-color: #dcdee5;
89
+ --table-head-bg-color: #fafbfd;
90
+ --table-head-font-color: #313238;
91
+ --table-body-font-color: #575961;
92
+ --table-row-hover-bg-color: #f5f7fa;
93
+ }
94
+ /* 边框色 */
95
+ /* 按钮、表单边框颜色、禁用时文本颜色 */
96
+ /* 表格头部背景色、禁用底色 */
97
+ /* 大面积背景色 */
98
+ /* 重点表示、强调、链接以及带有明确指示性 */
99
+ /* 正常尺寸图标 */
100
+ .bk-transfer {
101
+ position: relative;
102
+ display: flex;
103
+ font-size: 14px;
104
+ flex-direction: row;
105
+ justify-content: center;
106
+ }
107
+ .bk-transfer .transfer {
108
+ position: absolute;
109
+ top: 50%;
110
+ left: 50%;
111
+ width: 30px;
112
+ height: 30px;
113
+ background: url('@bkui-vue/styles/images/transfer.png') no-repeat center center;
114
+ transform: translate(-50%, -50%);
115
+ }
116
+ .bk-transfer .source-list,
117
+ .bk-transfer .target-list {
118
+ height: 400px;
119
+ min-width: 200px;
120
+ overflow: hidden;
121
+ background-color: #fff;
122
+ border: 1px solid #dde4eb;
123
+ border-radius: 2px;
124
+ flex: 1;
125
+ }
126
+ .bk-transfer .source-list .slot-header,
127
+ .bk-transfer .target-list .slot-header {
128
+ position: relative;
129
+ height: 43px;
130
+ padding: 0 20px;
131
+ line-height: 43px;
132
+ background-color: #fafbfd;
133
+ border-bottom: 1px solid #dde4eb;
134
+ }
135
+ .bk-transfer .source-list .slot-header .slot-content,
136
+ .bk-transfer .target-list .slot-header .slot-content {
137
+ position: relative;
138
+ }
139
+ .bk-transfer .source-list .header,
140
+ .bk-transfer .target-list .header {
141
+ position: relative;
142
+ height: 43px;
143
+ padding: 0 20px;
144
+ line-height: 43px;
145
+ background-color: #fafbfd;
146
+ border-bottom: 1px solid #dde4eb;
147
+ }
148
+ .bk-transfer .source-list .header span,
149
+ .bk-transfer .target-list .header span {
150
+ position: absolute;
151
+ right: 10px;
152
+ font-size: 12px;
153
+ color: #3a84ff;
154
+ cursor: pointer;
155
+ }
156
+ .bk-transfer .source-list .header span.disabled,
157
+ .bk-transfer .target-list .header span.disabled {
158
+ color: #c4c6cc;
159
+ cursor: not-allowed;
160
+ }
161
+ .bk-transfer .source-list .empty,
162
+ .bk-transfer .target-list .empty {
163
+ position: relative;
164
+ top: 40%;
165
+ width: 100%;
166
+ color: #c4c6cc;
167
+ text-align: center;
168
+ cursor: default;
169
+ }
170
+ .bk-transfer .source-list .content,
171
+ .bk-transfer .target-list .content {
172
+ position: relative;
173
+ max-height: calc(100% - 50px);
174
+ padding: 0;
175
+ margin: 6px 0;
176
+ overflow-y: auto;
177
+ }
178
+ .bk-transfer .source-list .content.is-search,
179
+ .bk-transfer .target-list .content.is-search {
180
+ max-height: calc(100% - 86px);
181
+ }
182
+ .bk-transfer .source-list .content li.custom-item,
183
+ .bk-transfer .target-list .content li.custom-item,
184
+ .bk-transfer .source-list .content li .item-content,
185
+ .bk-transfer .target-list .content li .item-content {
186
+ position: relative;
187
+ display: flex;
188
+ height: 40px;
189
+ padding: 0 20px;
190
+ line-height: 40px;
191
+ list-style: none;
192
+ cursor: pointer;
193
+ align-items: center;
194
+ }
195
+ .bk-transfer .source-list .content li.custom-item:hover,
196
+ .bk-transfer .target-list .content li.custom-item:hover,
197
+ .bk-transfer .source-list .content li .item-content:hover,
198
+ .bk-transfer .target-list .content li .item-content:hover {
199
+ color: #3a84ff;
200
+ background-color: #eef6fe;
201
+ }
202
+ .bk-transfer .source-list .content li.custom-item .content-text,
203
+ .bk-transfer .target-list .content li.custom-item .content-text,
204
+ .bk-transfer .source-list .content li .item-content .content-text,
205
+ .bk-transfer .target-list .content li .item-content .content-text {
206
+ overflow: hidden;
207
+ text-overflow: ellipsis;
208
+ white-space: nowrap;
209
+ flex: 1;
210
+ }
211
+ .bk-transfer .source-list .content li.custom-item .icon-wrapper,
212
+ .bk-transfer .target-list .content li.custom-item .icon-wrapper,
213
+ .bk-transfer .source-list .content li .item-content .icon-wrapper,
214
+ .bk-transfer .target-list .content li .item-content .icon-wrapper {
215
+ display: none;
216
+ flex: 22px 0 0;
217
+ }
218
+ .bk-transfer .source-list .content li.custom-item .icon-wrapper.hover,
219
+ .bk-transfer .target-list .content li.custom-item .icon-wrapper.hover,
220
+ .bk-transfer .source-list .content li .item-content .icon-wrapper.hover,
221
+ .bk-transfer .target-list .content li .item-content .icon-wrapper.hover {
222
+ display: inline-block;
223
+ }
224
+ .bk-transfer .source-list .content::-webkit-scrollbar,
225
+ .bk-transfer .target-list .content::-webkit-scrollbar {
226
+ width: 4px;
227
+ }
228
+ .bk-transfer .source-list .content::-webkit-scrollbar-thumb,
229
+ .bk-transfer .target-list .content::-webkit-scrollbar-thumb {
230
+ height: 5px;
231
+ background-color: #e6e9ea;
232
+ border-radius: 2px;
233
+ }
234
+ .bk-transfer .source-list .content .bk-icon,
235
+ .bk-transfer .target-list .content .bk-icon {
236
+ font-size: 22px;
237
+ }
238
+ .bk-transfer .target-list {
239
+ margin-left: 33px;
240
+ }
241
+ .bk-transfer .transfer-search-input {
242
+ height: 36px;
243
+ line-height: 34px;
244
+ border: none;
245
+ border-bottom: 1px solid #f0f1f5;
246
+ outline: none;
247
+ }
248
+ .bk-transfer .transfer-search-input.is-focused {
249
+ border-color: #f0f1f5;
250
+ box-shadow: 0px 0px 3px 0px transparent;
251
+ }
@@ -41,6 +41,10 @@ declare const BkTree: {
41
41
  prefixIcon: import("vue-types").VueTypeDef<any> & {
42
42
  default: any;
43
43
  };
44
+ async: import("vue-types").VueTypeShape<{
45
+ callback: (item: any, cb: any) => Promise<any>;
46
+ cache: Boolean;
47
+ }>;
44
48
  }>> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "data" | "lineHeight" | "prefixIcon" | "children" | "indent" | "levelLine" | "virtualRender">;
45
49
  $attrs: {
46
50
  [x: string]: unknown;
@@ -86,11 +90,15 @@ declare const BkTree: {
86
90
  prefixIcon: import("vue-types").VueTypeDef<any> & {
87
91
  default: any;
88
92
  };
93
+ async: import("vue-types").VueTypeShape<{
94
+ callback: (item: any, cb: any) => Promise<any>;
95
+ cache: Boolean;
96
+ }>;
89
97
  }>>, {
90
98
  renderData: import("vue").ComputedRef<any[]>;
91
99
  flatData: {
92
100
  data: any[];
93
- schema: {};
101
+ schema: any[] | Map<string, any>;
94
102
  levelLineSchema: {};
95
103
  };
96
104
  hanldeTreeNodeClick: (item: any) => void;
@@ -98,6 +106,7 @@ declare const BkTree: {
98
106
  getRootIcon: (item: any) => JSX.Element;
99
107
  getVirtualLines: (node: any) => JSX.Element[];
100
108
  getNodePrefixIcon: (item: any) => string | JSX.Element;
109
+ getLoadingIcon: (item: any) => "" | JSX.Element;
101
110
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
102
111
  data: any[];
103
112
  lineHeight: number;
@@ -157,11 +166,15 @@ declare const BkTree: {
157
166
  prefixIcon: import("vue-types").VueTypeDef<any> & {
158
167
  default: any;
159
168
  };
169
+ async: import("vue-types").VueTypeShape<{
170
+ callback: (item: any, cb: any) => Promise<any>;
171
+ cache: Boolean;
172
+ }>;
160
173
  }>> & import("vue").ShallowUnwrapRef<{
161
174
  renderData: import("vue").ComputedRef<any[]>;
162
175
  flatData: {
163
176
  data: any[];
164
- schema: {};
177
+ schema: any[] | Map<string, any>;
165
178
  levelLineSchema: {};
166
179
  };
167
180
  hanldeTreeNodeClick: (item: any) => void;
@@ -169,6 +182,7 @@ declare const BkTree: {
169
182
  getRootIcon: (item: any) => JSX.Element;
170
183
  getVirtualLines: (node: any) => JSX.Element[];
171
184
  getNodePrefixIcon: (item: any) => string | JSX.Element;
185
+ getLoadingIcon: (item: any) => "" | JSX.Element;
172
186
  }> & {} & {} & import("vue").ComponentCustomProperties;
173
187
  __isFragment?: never;
174
188
  __isTeleport?: never;
@@ -204,11 +218,15 @@ declare const BkTree: {
204
218
  prefixIcon: import("vue-types").VueTypeDef<any> & {
205
219
  default: any;
206
220
  };
221
+ async: import("vue-types").VueTypeShape<{
222
+ callback: (item: any, cb: any) => Promise<any>;
223
+ cache: Boolean;
224
+ }>;
207
225
  }>>, {
208
226
  renderData: import("vue").ComputedRef<any[]>;
209
227
  flatData: {
210
228
  data: any[];
211
- schema: {};
229
+ schema: any[] | Map<string, any>;
212
230
  levelLineSchema: {};
213
231
  };
214
232
  hanldeTreeNodeClick: (item: any) => void;
@@ -216,6 +234,7 @@ declare const BkTree: {
216
234
  getRootIcon: (item: any) => JSX.Element;
217
235
  getVirtualLines: (node: any) => JSX.Element[];
218
236
  getNodePrefixIcon: (item: any) => string | JSX.Element;
237
+ getLoadingIcon: (item: any) => "" | JSX.Element;
219
238
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
220
239
  data: any[];
221
240
  lineHeight: number;
package/lib/tree/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("crypto"),require("../icon/"),require("../shared"),require("../virtual-render")):"function"==typeof define&&define.amd?define(["exports","vue","crypto","../icon/","../shared","../virtual-render"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).bkuiVue={},e.Vue,e.require$$0,e._,e.Shared,e["@bkui-vue/virtual-render"])}(this,(function(e,t,n,r,o,i){"use strict";function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=l(n),u=l(i);function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var c={exports:{}};!function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports}(c);var p=s(c.exports),d={exports:{}};!function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(d);var f=s(d.exports),v={exports:{}},h={exports:{}},_={exports:{}};!function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.__esModule=!0,e.exports.default=e.exports}(_),function(e){var t=_.exports;e.exports=function(e){if(Array.isArray(e))return t(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(h);var y={exports:{}};!function(e){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(y);var x={exports:{}};!function(e){var t=_.exports;e.exports=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}(x);var b={exports:{}};!function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports}(b),function(e){var t=h.exports,n=y.exports,r=x.exports,o=b.exports;e.exports=function(e){return t(e)||n(e)||r(e)||o()},e.exports.__esModule=!0,e.exports.default=e.exports}(v);for(var g=s(v.exports),m=a.default,O=function(){return m.randomBytes(16)},j=[],T=0;T<256;++T)j[T]=(T+256).toString(16).substr(1);var N,P,w=function(e,t){var n=t||0,r=j;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")},S=O,I=w,C=0,L=0;var k=function(e,t,n){var r=t&&n||0,o=t||[],i=(e=e||{}).node||N,l=void 0!==e.clockseq?e.clockseq:P;if(null==i||null==l){var a=S();null==i&&(i=N=[1|a[0],a[1],a[2],a[3],a[4],a[5]]),null==l&&(l=P=16383&(a[6]<<8|a[7]))}var u=void 0!==e.msecs?e.msecs:(new Date).getTime(),s=void 0!==e.nsecs?e.nsecs:L+1,c=u-C+(s-L)/1e4;if(c<0&&void 0===e.clockseq&&(l=l+1&16383),(c<0||u>C)&&void 0===e.nsecs&&(s=0),s>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");C=u,L=s,P=l;var p=(1e4*(268435455&(u+=122192928e5))+s)%4294967296;o[r++]=p>>>24&255,o[r++]=p>>>16&255,o[r++]=p>>>8&255,o[r++]=255&p;var d=u/4294967296*1e4&268435455;o[r++]=d>>>8&255,o[r++]=255&d,o[r++]=d>>>24&15|16,o[r++]=d>>>16&255,o[r++]=l>>>8|128,o[r++]=255&l;for(var f=0;f<6;++f)o[r+f]=i[f];return t||I(o)},R=O,A=w;var M=function(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||R)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var i=0;i<16;++i)t[r+i]=o[i];return t||A(o)},V=k,q=M,D=q;D.v1=V,D.v4=q;var H=D,$=void 0,E="1px dashed #c3cdd7",F=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=e.data,r=e.children,o=[],i=0,l={};function a(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=0;s<e.length;s++){var c=e[s];if(Array.isArray(c))a(c,t,n,u);else{var d=Object.assign({},c);if("object"===f(d)&&null!==d){var v=H.v4(),h=null!==u?"".concat(u,"-").concat(s):"".concat(s),_=p({__depth:t,__index:s,__uuid:v,__parentId:n,__parentPath:u,__hasChild:!!(c[r]||[]).length,__path:h,__isRoot:null===n,__order:i},r,null);Object.assign(d,_),Object.assign(l,p({},h,{__isOpen:!1,__showLines:0,__isRoot:null===n})),i+=1,o.push(d),Object.prototype.hasOwnProperty.call(c,r)&&a(c[r],t+1,v,h)}}}}return a(t||n),[o,l]},B=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],l=e[t];return"boolean"==typeof l?l?r:o:U(n,e,t,i)},U=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=t[n];if("string"==typeof o)return"object"===f(e)&&null!==e?(Object.prototype.hasOwnProperty.call(e,o)||console.error("cannot find node label with key ".concat(o)),e[o]):o;if("function"==typeof o){var i=o.apply($,[e].concat(g(r)));return"string"==typeof i?i:void console.error("props label with function return value is not string, please check and return string")}},W=function(e,t){return U(e,t,"label")},z=function(e,t){return{"--level-line":B(t,"levelLine",e,E,null,["tree"]),"--lineHeight":"".concat(t.lineHeight,"px"),"--indent":"".concat(t.indent,"px"),padding:0}},G=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n[e.__path]||{},o=r.childNodeCount,i=void 0===o?0:o,l=r.isLeaf,a=void 0!==l&&l,u=r.lastNode,s=void 0===u?null:u,c=a?0:(n[s]||{childNodeCount:0}).childNodeCount;return Object.assign({"--depth":e.__depth,paddingLeft:0,"--lines":i-c},"function"==typeof t.levelLine?{"--level-line":B(t,"levelLine",e,E,null,["node"])}:{})},J=function(e,t,n){return{"is-root":e.__isRoot,"bk-tree-node":!0,"is-open":t[e.__path].__isOpen,"is-virtual-render":n.virtualRender}},K={data:o.PropTypes.arrayOf(o.PropTypes.any).def([]),label:o.PropTypes.oneOfType([o.PropTypes.func.def(void 0),o.PropTypes.string.def("label")]),children:o.PropTypes.string.def("children"),indent:o.PropTypes.number.def(18),lineHeight:o.PropTypes.number.def(32),levelLine:o.PropTypes.oneOfType([o.PropTypes.bool.def(!1),o.PropTypes.func.def(void 0),o.PropTypes.string.def("1px dashed #c3cdd7")]).def(!1),virtualRender:o.PropTypes.bool.def(!1),prefixIcon:o.PropTypes.oneOfType([o.PropTypes.func.def((function(){})),o.PropTypes.bool.def(!1)]).def(!0)},Q=t.defineComponent({name:"BkTree",props:K,setup:function(e){var n=F(e),o=t.reactive({data:n[0],schema:n[1],levelLineSchema:{}});t.watch((function(){return[e.data]}),(function(t){var n=F(e,t);o.data=n[0],o.schema=n[1],c()}),{deep:!0}),t.watch((function(){return[e.levelLine]}),(function(){c()}));var i=t.computed((function(){return o.data.filter((function(e){return v(e)}))})),l=t.computed((function(){return i.value.map((function(e){return e.__path}))})),a=function(e){return"object"===f(e)?(o.schema[e.__path]||{}).__isOpen:"string"==typeof e&&(o.schema[e]||{}).__isOpen},u=function(e){return a(e)?t.createVNode(r.FolderShapeOpen,{class:"bk-tree-icon"},null):t.createVNode(r.Folder,{class:"bk-tree-icon"},null)},s=function(e){if("string"==typeof e)return e;if("object"===f(e)&&null!==e){var n=e.node,r=e.className,o=e.text,i=e.style;return t.h(n,{class:r,style:i},o)}return null},c=function(){e.levelLine?setTimeout((function(){for(var e=i.value.length,t={},n=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];Object.prototype.hasOwnProperty.call(t,e)||Object.assign(t,p({},e,Object.assign(Object.assign({childNodeCount:0,isLastNode:!1},null!==n?{lastNode:n}:{}),null!==r?{isLeaf:r}:{})))};e>0;e--){var r=i.value[e-1],a=d(r),u=!l.value.includes("".concat(r.__path,"-0"));n(r.__path,null,u),n(a,r.__path);var s=t[a],c=t[r.__path],f=c.childNodeCount,v=void 0===f?0:f;c.childNodeCount=v+1,c.isLastNode=s.lastNode===r.__path,s.childNodeCount+=c.childNodeCount}o.levelLineSchema=t})):o.levelLineSchema={}},d=function(e){if(e.__isRoot)return null;var t="-".concat(e.__index).length;return String.prototype.substring.call(e.__path,0,e.__path.length-t)},v=function(e){return e.__isRoot||a(e)||a(d(e))};return c(),{renderData:i,flatData:o,hanldeTreeNodeClick:function(e){if(e.__hasChild){var t=!a(e);Object.assign(e,{__isOpen:t}),i.value.filter((function(t){return String.prototype.startsWith.call(t.__path,e.__path)})).forEach((function(e){return Object.assign(o.schema[e.__path],{__isOpen:t})})),c()}},getActionIcon:function(n){var o=null;return"function"==typeof e.prefixIcon&&"default"!==(o=e.prefixIcon(n.__isRoot,n.__hasChild,a(n),"action",n))?s(o):("default"===o||"boolean"==typeof e.prefixIcon&&e.prefixIcon)&&n.__hasChild?a(n)?t.createVNode(r.DownShape,null,null):t.createVNode(r.RightShape,null,null):null},getRootIcon:u,getVirtualLines:function(n){if(!e.virtualRender)return null;var r=n.__depth+1;return new Array(r).fill("").map((function(e,t){return t})).filter((function(e){return function(e,t){if(t.__isRoot)return!1;var n="".concat(t.__path).split("-").slice(0,e+1);if(n.join("-")===t.__path)return!0;var r=n.pop(),i=parseInt(r,10);n.push("".concat(i+1));var l=n.join("-");return Object.prototype.hasOwnProperty.call(o.schema,l)}(e,n)})).filter((function(e){return e>0})).map((function(e){return t.createVNode("span",{class:"node-virtual-line",style:(n=r-e,{"--depth":n})},null);var n}))},getNodePrefixIcon:function(n){var o=null;return"function"==typeof e.prefixIcon&&"default"!==(o=e.prefixIcon(n.__isRoot,n.__hasChild,a(n),"node_type",n))?s(o):"default"===o||"boolean"==typeof e.prefixIcon&&e.prefixIcon?n.__isRoot?u(n):t.createVNode(r.TextFile,{class:"bk-tree-icon"},null):null}}},render:function(){var e=this,n=this.$props,r=function(r){return t.createVNode("div",{class:J(r,e.flatData.schema,n),style:G(r,n,e.flatData.levelLineSchema),onClick:function(){return e.hanldeTreeNodeClick(r)}},[[e.getActionIcon(r),e.getNodePrefixIcon(r)],t.createVNode("span",null,[W(r,n)]),e.getVirtualLines(r)])};return t.createVNode(u.default,{class:"bk-tree",style:z(null,n),list:this.renderData,lineHeight:n.lineHeight,enabled:n.virtualRender},{default:function(e){return(e.data||[]).map(r)}})}}),X=o.withInstall(Q);e.default=X,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vue"),require("crypto"),require("../icon/"),require("../shared"),require("../virtual-render")):"function"==typeof define&&define.amd?define(["exports","vue","crypto","../icon/","../shared","../virtual-render"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).bkuiVue={},e.Vue,e.require$$0,e._,e.Shared,e["@bkui-vue/virtual-render"])}(this,(function(e,n,t,r,o,i){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=u(t),a=u(i);function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var s={exports:{}};!function(e){function n(t){return e.exports=n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,n(t)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(s);var f=c(s.exports),p={exports:{}};!function(e){e.exports=function(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e},e.exports.__esModule=!0,e.exports.default=e.exports}(p);var d=c(p.exports),v={exports:{}},y={exports:{}},h={exports:{}};!function(e){e.exports=function(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r},e.exports.__esModule=!0,e.exports.default=e.exports}(h),function(e){var n=h.exports;e.exports=function(e){if(Array.isArray(e))return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(y);var _={exports:{}};!function(e){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports}(_);var x={exports:{}};!function(e){var n=h.exports;e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}(x);var b={exports:{}};!function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports}(b),function(e){var n=y.exports,t=_.exports,r=x.exports,o=b.exports;e.exports=function(e){return n(e)||t(e)||r(e)||o()},e.exports.__esModule=!0,e.exports.default=e.exports}(v);for(var g=c(v.exports),m=l.default,O=function(){return m.randomBytes(16)},T=[],j=0;j<256;++j)T[j]=(j+256).toString(16).substr(1);var P,I,w=function(e,n){var t=n||0,r=T;return[r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]]].join("")},A=O,S=w,k=0,N=0;var M=function(e,n,t){var r=n&&t||0,o=n||[],i=(e=e||{}).node||P,u=void 0!==e.clockseq?e.clockseq:I;if(null==i||null==u){var l=A();null==i&&(i=P=[1|l[0],l[1],l[2],l[3],l[4],l[5]]),null==u&&(u=I=16383&(l[6]<<8|l[7]))}var a=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:N+1,s=a-k+(c-N)/1e4;if(s<0&&void 0===e.clockseq&&(u=u+1&16383),(s<0||a>k)&&void 0===e.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");k=a,N=c,I=u;var f=(1e4*(268435455&(a+=122192928e5))+c)%4294967296;o[r++]=f>>>24&255,o[r++]=f>>>16&255,o[r++]=f>>>8&255,o[r++]=255&f;var p=a/4294967296*1e4&268435455;o[r++]=p>>>8&255,o[r++]=255&p,o[r++]=p>>>24&15|16,o[r++]=p>>>16&255,o[r++]=u>>>8|128,o[r++]=255&u;for(var d=0;d<6;++d)o[r+d]=i[d];return n||S(o)},V=O,L=w;var q=function(e,n,t){var r=n&&t||0;"string"==typeof e&&(n="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||V)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,n)for(var i=0;i<16;++i)n[r+i]=o[i];return n||L(o)},C=M,D=q,R=D;R.v1=C,R.v4=D;var H=R,$=void 0,E="1px dashed #c3cdd7",F=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=e.data,o=e.children,i=[],u=0,l=new Map;function a(e){return(t||[]).some((function(n){return n.__uuid===e&&n.__isOpen}))}function c(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=0;s<e.length;s++){var p=e[s];if(Array.isArray(p))c(p,n,t,r);else if("object"===f(p)&&null!==p){var v=p.__uuid||H.v4(),y=a(v),h=null!==r?"".concat(r,"-").concat(s):"".concat(s),_=d({__depth:n,__index:s,__uuid:v,__parentId:t,__parentPath:r,__hasChild:!!(p[o]||[]).length,__path:h,__isRoot:null===t,__order:u,__isOpen:y},o,null);Object.assign(p,{__uuid:v}),l.set(v,_),u+=1,i.push(Object.assign(Object.assign({},p),d({},o,null))),Object.prototype.hasOwnProperty.call(p,o)&&c(p[o]||[],n+1,v,h)}}}return c(n||r),[i,l]},B=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],u=e[n];return"boolean"==typeof u?u?r:o:U(t,e,n,i)},U=function(e,n,t){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=n[t];if("string"==typeof o)return"object"===f(e)&&null!==e?(Object.prototype.hasOwnProperty.call(e,o)||console.error("cannot find node label with key ".concat(o)),e[o]):o;if("function"==typeof o){var i=o.apply($,[e].concat(g(r)));return"string"==typeof i?i:void console.error("props label with function return value is not string, please check and return string")}},W=function(e,n){return U(e,n,"label")},z=function(e,n){return e.get(n)||{}},G=function(e,n,t){var r;return null===(r=z(e,n))||void 0===r?void 0:r[t]},J=function(e,n){return{"--level-line":B(n,"levelLine",e,E,null,["tree"]),"--lineHeight":"".concat(n.lineHeight,"px"),"--indent":"".concat(n.indent,"px"),padding:0}},K=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.schema,o=G(r,e.__uuid,"__depth");return Object.assign({"--depth":o,paddingLeft:0},"function"==typeof n.levelLine?{"--level-line":B(n,"levelLine",e,E,null,["node"])}:{})},Q=function(e,n,t){var r=z(n,e.__uuid)||{};return{"is-root":r.__isRoot,"bk-tree-node":!0,"is-open":r.__isOpen,"is-virtual-render":t.virtualRender,"level-line":t.levelLine}},X=function(e,n,t,r){var o=e.split("-").reduce((function(e,n){var r=Number(n);return Array.isArray(e)?e[r]:e[t][r]}),n);Object.assign(o,r||{})},Y={data:o.PropTypes.arrayOf(o.PropTypes.any).def([]),label:o.PropTypes.oneOfType([o.PropTypes.func.def(void 0),o.PropTypes.string.def("label")]),children:o.PropTypes.string.def("children"),indent:o.PropTypes.number.def(18),lineHeight:o.PropTypes.number.def(32),levelLine:o.PropTypes.oneOfType([o.PropTypes.bool.def(!1),o.PropTypes.func.def(void 0),o.PropTypes.string.def("1px dashed #c3cdd7")]).def(!1),virtualRender:o.PropTypes.bool.def(!1),prefixIcon:o.PropTypes.oneOfType([o.PropTypes.func.def((function(){})),o.PropTypes.bool.def(!1)]).def(!0),async:o.PropTypes.shape({callback:o.PropTypes.func.def(null),cache:o.PropTypes.bool.def(!0)})},Z=n.defineComponent({name:"Tree",props:Y,setup:function(e){var t=F(e),o=n.reactive({data:t[0],schema:t[1],levelLineSchema:{}});n.watch((function(){return[e.data]}),(function(n){console.log("props.data changed");var t=F(e,n,i.value);o.data=t[0],o.schema=t[1]}),{deep:!0});var i=n.computed((function(){return Array.from(o.schema.values())})),u=function(e){return o.schema.get(e)},l=function(e,n){var t;return null===(t=u(e.__uuid))||void 0===t?void 0:t[n]},a=function(e,n,t){return o.schema.set(e.__uuid,Object.assign(Object.assign({},u(e.__uuid)),d({},n,t)))},c=function(e){return l(e,"__path")},s=function(e){return l(e,"__isRoot")},p=function(e){return l(e,"__hasChild")},v=n.computed((function(){return o.data.filter((function(e){return b(e)}))})),y=function(e){var n;return"object"===f(e)?l(e,"__isOpen"):"string"==typeof e&&(null===(n=u(e))||void 0===n?void 0:n.__isOpen)},h=function(e){return y(e)?n.createVNode(r.FolderShapeOpen,{class:"bk-tree-icon"},null):n.createVNode(r.Folder,{class:"bk-tree-icon"},null)},_=function(e){if("string"==typeof e)return e;if("object"===f(e)&&null!==e){var t=e.node,r=e.className,o=e.text,i=e.style;return n.h(t,{class:r,style:i},o)}return null},x=function(n,t){if("object"===f(n)&&null!==n){a(t,"__isOpen",!0);var r=Array.isArray(n)?n:[n];!function(e,n,t,r,o){X(e,n,t,d({},r,o))}(c(t),e.data,e.children,e.children,r)}},b=function(e){return s(e)||y(e)||y(l(e,"__parentId"))};return{renderData:v,flatData:o,hanldeTreeNodeClick:function(n){if(n.async){var t=e.async||{},r=t.callback,o=void 0===r?null:r,i=t.cache,u=void 0===i||i;"function"!=typeof o||n.cached?console.error("async need to set prop: asyncLoad with function wich will return promise object"):(Object.assign(n,{loading:!0}),o(n,(function(e){return x(e,n)})).then((function(e){return x(e,n)})).catch((function(e){return console.error("load remote data error:",e)})).finally((function(){X(c(n),e.data,e.children,Object.assign({loading:!1},u?{cached:!0}:{}))})))}p(n)&&function(e){var n=!y(e);a(e,"__isOpen",n),n||v.value.filter((function(n){return String.prototype.startsWith.call(c(n),c(e))})).forEach((function(e){return a(e,"__isOpen",n)}))}(n)},getActionIcon:function(t){var o=null;return"function"==typeof e.prefixIcon&&"default"!==(o=e.prefixIcon(s(t),p(t)||t.async,y(t),"action",t))?_(o):("default"===o||"boolean"==typeof e.prefixIcon&&e.prefixIcon)&&(p(t)||t.async)?y(t)?n.createVNode(r.DownShape,null,null):n.createVNode(r.RightShape,null,null):null},getRootIcon:h,getVirtualLines:function(t){if(!e.levelLine)return null;var r=l(t,"__depth")+1;return new Array(r).fill("").map((function(e,n){return n})).filter((function(e){return function(e,n){if(s(n))return!1;var t=c(n),r="".concat(t).split("-").slice(0,e+1);if(r.join("-")===t)return!0;var o=r.pop(),u=parseInt(o,10);r.push("".concat(u+1));var l=r.join("-");return i.value.some((function(e){return e.__path===l}))}(e,t)})).filter((function(e){return e>0})).map((function(e){return n.createVNode("span",{class:"node-virtual-line",style:(t=r-e,{"--depth":t})},null);var t}))},getNodePrefixIcon:function(t){var o=null;return"function"==typeof e.prefixIcon&&"default"!==(o=e.prefixIcon(s(t),p(t)||t.async,y(t),"node_type",t))?_(o):"default"===o||"boolean"==typeof e.prefixIcon&&e.prefixIcon?s(t)?h(t):n.createVNode(r.TextFile,{class:"bk-tree-icon"},null):null},getLoadingIcon:function(e){return e.loading?n.createVNode(r.Spinner,null,null):""}}},render:function(){var e=this,t=this.$props,r=function(r){return n.createVNode("div",{class:Q(r,e.flatData.schema,t),style:K(r,t,e.flatData),onClick:function(){return e.hanldeTreeNodeClick(r)}},[[e.getActionIcon(r),e.getNodePrefixIcon(r),e.getLoadingIcon(r)],n.createVNode("span",null,[W(r,t)]),e.getVirtualLines(r)])};return n.createVNode(a.default,{class:"bk-tree",style:J(null,t),list:this.renderData,lineHeight:t.lineHeight,enabled:t.virtualRender,throttleDelay:0},{default:function(e){return(e.data||[]).map(r)}})}}),ee=o.withInstall(Z);e.default=ee,Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -66,5 +66,16 @@ export declare const treeProps: {
66
66
  prefixIcon: import("vue-types").VueTypeDef<any> & {
67
67
  default: any;
68
68
  };
69
+ /**
70
+ * 异步加载节点数据配置
71
+ * @param callback 请求数据回调函数,函数返回 Promise
72
+ * @param cache 是否缓存请求结果,默认为True,只有在第一次才会发起请求,若设置为false则每次都会发起请求
73
+ */
74
+ async: import("vue-types").VueTypeShape<AsyncOption>;
75
+ };
76
+ declare type AsyncOption = {
77
+ callback: (item: any, cb: any) => Promise<any>;
78
+ cache: Boolean;
69
79
  };
70
80
  export declare type TreePropTypes = Readonly<ExtractPropTypes<typeof treeProps>>;
81
+ export {};
package/lib/tree/tree.css CHANGED
@@ -5,21 +5,10 @@
5
5
  line-height: var(--lineHeight);
6
6
  cursor: pointer;
7
7
  }
8
- .bk-tree .bk-tree-node.is-open:not(.is-virtual-render)::after {
9
- position: absolute;
10
- top: calc(var(--lineHeight) / 2 + 6px);
11
- left: 6px;
12
- z-index: 1;
13
- width: 0;
14
- height: calc(var(--lines) * var(--lineHeight) - 6px);
15
- pointer-events: none;
16
- border-left: var(--level-line);
17
- content: '';
18
- }
19
8
  .bk-tree .bk-tree-node:not(.is-root) {
20
9
  margin-left: calc(var(--depth)*var(--indent));
21
10
  }
22
- .bk-tree .bk-tree-node:not(.is-root)::before {
11
+ .bk-tree .bk-tree-node:not(.is-root).level-line::before {
23
12
  position: absolute;
24
13
  top: calc(50% + 1px);
25
14
  left: calc(0px - var(--indent) + 6px);
@@ -31,11 +31,15 @@ declare const _default: import("vue").DefineComponent<{
31
31
  prefixIcon: import("vue-types").VueTypeDef<any> & {
32
32
  default: any;
33
33
  };
34
+ async: import("vue-types").VueTypeShape<{
35
+ callback: (item: any, cb: any) => Promise<any>;
36
+ cache: Boolean;
37
+ }>;
34
38
  }, {
35
39
  renderData: import("vue").ComputedRef<any[]>;
36
40
  flatData: {
37
41
  data: any[];
38
- schema: {};
42
+ schema: any[] | Map<string, any>;
39
43
  levelLineSchema: {};
40
44
  };
41
45
  hanldeTreeNodeClick: (item: any) => void;
@@ -43,6 +47,7 @@ declare const _default: import("vue").DefineComponent<{
43
47
  getRootIcon: (item: any) => JSX.Element;
44
48
  getVirtualLines: (node: any) => JSX.Element[];
45
49
  getNodePrefixIcon: (item: any) => string | JSX.Element;
50
+ getLoadingIcon: (item: any) => "" | JSX.Element;
46
51
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
47
52
  data: import("vue-types").VueTypeDef<any[]> & {
48
53
  default: () => any[];
@@ -74,6 +79,10 @@ declare const _default: import("vue").DefineComponent<{
74
79
  prefixIcon: import("vue-types").VueTypeDef<any> & {
75
80
  default: any;
76
81
  };
82
+ async: import("vue-types").VueTypeShape<{
83
+ callback: (item: any, cb: any) => Promise<any>;
84
+ cache: Boolean;
85
+ }>;
77
86
  }>>, {
78
87
  data: any[];
79
88
  lineHeight: number;
@@ -6,38 +6,24 @@
6
6
  line-height: var(--lineHeight);
7
7
  cursor: pointer;
8
8
 
9
- &.is-open {
10
- &:not(.is-virtual-render) {
11
- &::after {
9
+ &:not(.is-root) {
10
+ margin-left: calc(var(--depth)*var(--indent));
11
+
12
+ &.level-line {
13
+ &::before {
12
14
  position: absolute;
13
- top: calc(var(--lineHeight) / 2 + 6px);
14
- left: 6px;
15
+ top: calc(50% + 1px);
16
+ left: calc(0px - var(--indent) + 6px);
15
17
  z-index: 1;
16
- width: 0;
17
- height: calc(var(--lines) * var(--lineHeight) - 6px);
18
+ width: calc(var(--indent) - 6px);
19
+ height: 0;
18
20
  pointer-events: none;
19
- border-left: var(--level-line);
21
+ border-bottom: var(--level-line);
20
22
  content: '';
21
23
  }
22
24
  }
23
25
  }
24
26
 
25
- &:not(.is-root) {
26
- margin-left: calc(var(--depth)*var(--indent));
27
-
28
- &::before {
29
- position: absolute;
30
- top: calc(50% + 1px);
31
- left: calc(0px - var(--indent) + 6px);
32
- z-index: 1;
33
- width: calc(var(--indent) - 6px);
34
- height: 0;
35
- pointer-events: none;
36
- border-bottom: var(--level-line);
37
- content: '';
38
- }
39
- }
40
-
41
27
  .node-virtual-line {
42
28
  display: inline-block;
43
29
  position: absolute;