bkui-vue 2.1.0-dev-beta.10 → 2.1.0-dev-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +62 -67
- package/dist/index.esm.js +14681 -15851
- package/dist/index.umd.js +62 -67
- package/dist/style.css +1 -1
- package/dist/style.variable.css +1 -1
- package/lib/cascader/index.js +11 -5
- package/lib/code-diff/index.js +73 -32
- package/lib/index.js +1 -1
- package/lib/input/index.d.ts +36 -15
- package/lib/input/index.js +80 -95
- package/lib/input/input.d.ts +34 -10
- package/lib/popover/index.js +72 -64
- package/lib/tree/constant.d.ts +6 -0
- package/lib/tree/index.d.ts +39 -9
- package/lib/tree/index.js +703 -3963
- package/lib/tree/props.d.ts +59 -5
- package/lib/tree/tree.css +29 -40
- package/lib/tree/tree.d.ts +22 -7
- package/lib/tree/tree.less +36 -54
- package/lib/tree/tree.variable.css +29 -40
- package/lib/tree/use-intersection-observer.d.ts +1 -1
- package/lib/tree/use-node-action.d.ts +2 -2
- package/lib/tree/use-node-async.d.ts +13 -3
- package/lib/tree/use-node-attribute.d.ts +68 -40
- package/lib/tree/use-node-drag.d.ts +16 -3
- package/lib/tree/use-tree-init.d.ts +14 -1
- package/lib/tree/util.d.ts +30 -1
- package/package.json +1 -2
package/lib/tree/props.d.ts
CHANGED
|
@@ -19,6 +19,49 @@ export type TreeNode = {
|
|
|
19
19
|
*/
|
|
20
20
|
export type DropType = 'child' | 'move' | 'sort';
|
|
21
21
|
export type DisableDropHandler = (data: TreeNode, type: DropType, target: TreeNode) => boolean;
|
|
22
|
+
export type TreeDataChangeTrigger = 'async' | 'drag';
|
|
23
|
+
export type TreeDataChangePayload = {
|
|
24
|
+
trigger: TreeDataChangeTrigger;
|
|
25
|
+
data: TreeNode[];
|
|
26
|
+
node: TreeNode;
|
|
27
|
+
targetNode?: TreeNode;
|
|
28
|
+
parentNode?: TreeNode | null;
|
|
29
|
+
oldParentNode?: TreeNode | null;
|
|
30
|
+
dropType?: DropType;
|
|
31
|
+
sourceIndex?: number;
|
|
32
|
+
targetIndex?: number;
|
|
33
|
+
};
|
|
34
|
+
export type TreeDataChangeHandler = (payload: TreeDataChangePayload) => void;
|
|
35
|
+
export type TreeCheckedPayload = {
|
|
36
|
+
checkedNodes: TreeNode[];
|
|
37
|
+
indeterminateNodes: TreeNode[];
|
|
38
|
+
};
|
|
39
|
+
export type TreeSelectedPayload = {
|
|
40
|
+
selected: boolean;
|
|
41
|
+
node: TreeNode;
|
|
42
|
+
};
|
|
43
|
+
export type TreeDropPayload = {
|
|
44
|
+
event: unknown;
|
|
45
|
+
element: HTMLElement;
|
|
46
|
+
targetNode: TreeNode;
|
|
47
|
+
sourceNode: TreeNode;
|
|
48
|
+
data: TreeNode[];
|
|
49
|
+
parentNode?: TreeNode | null;
|
|
50
|
+
oldParentNode?: TreeNode | null;
|
|
51
|
+
dropType?: DropType;
|
|
52
|
+
sourceIndex?: number;
|
|
53
|
+
targetIndex?: number;
|
|
54
|
+
};
|
|
55
|
+
export type TreeDragSortPayload = {
|
|
56
|
+
sourceNode: TreeNode;
|
|
57
|
+
targetNode: TreeNode;
|
|
58
|
+
data: TreeNode[];
|
|
59
|
+
parentNode?: TreeNode | null;
|
|
60
|
+
oldParentNode?: TreeNode | null;
|
|
61
|
+
dropType?: DropType;
|
|
62
|
+
sourceIndex?: number;
|
|
63
|
+
targetIndex?: number;
|
|
64
|
+
};
|
|
22
65
|
/**
|
|
23
66
|
* Tree Prop: prefixIcon function
|
|
24
67
|
* @param {} isRoot 是否为分跟节点
|
|
@@ -102,6 +145,10 @@ export declare const treeProps: {
|
|
|
102
145
|
prefixIcon: import("vue-types").VueTypeDef<any> & {
|
|
103
146
|
default: any;
|
|
104
147
|
};
|
|
148
|
+
/**
|
|
149
|
+
* 当树数据需要由外部接管更新时的统一回调
|
|
150
|
+
*/
|
|
151
|
+
onDataChange: PropType<TreeDataChangeHandler>;
|
|
105
152
|
/**
|
|
106
153
|
* 异步加载节点数据配置
|
|
107
154
|
* @param callback 请求数据回调函数,函数返回 Promise
|
|
@@ -146,9 +193,7 @@ export declare const treeProps: {
|
|
|
146
193
|
*/
|
|
147
194
|
disableDrop: PropType<DisableDropHandler>;
|
|
148
195
|
/**
|
|
149
|
-
*
|
|
150
|
-
* 用于判断拖拽时鼠标位置与节点的距离
|
|
151
|
-
* 当鼠标位置与节点的距离大于此值时,才会触发拖拽
|
|
196
|
+
* 拖拽阈值:节点顶部/底部区域占比用于判定前后插入,中间区域作为目标子节点
|
|
152
197
|
*/
|
|
153
198
|
dragThreshold: import("vue-types").VueTypeValidableDef<number> & {
|
|
154
199
|
default: number;
|
|
@@ -156,7 +201,7 @@ export declare const treeProps: {
|
|
|
156
201
|
default: number;
|
|
157
202
|
};
|
|
158
203
|
/**
|
|
159
|
-
*
|
|
204
|
+
* 节点拖拽时可调整前后顺序;拖拽到节点中部仍会添加为目标子节点
|
|
160
205
|
*/
|
|
161
206
|
dragSort: import("vue-types").VueTypeValidableDef<boolean> & {
|
|
162
207
|
default: boolean;
|
|
@@ -275,6 +320,14 @@ export declare const treeProps: {
|
|
|
275
320
|
} & {
|
|
276
321
|
default: boolean;
|
|
277
322
|
};
|
|
323
|
+
/**
|
|
324
|
+
* 是否开启父子勾选级联;未传时沿用 checkStrictly 历史语义
|
|
325
|
+
*/
|
|
326
|
+
cascade: import("vue-types").VueTypeValidableDef<boolean> & {
|
|
327
|
+
default: boolean;
|
|
328
|
+
} & {
|
|
329
|
+
default: boolean;
|
|
330
|
+
};
|
|
278
331
|
/**
|
|
279
332
|
* 是否开启监听Tree节点进入Tree容器可视区域
|
|
280
333
|
*/
|
|
@@ -282,8 +335,9 @@ export declare const treeProps: {
|
|
|
282
335
|
default: boolean | (() => IIntersectionObserver);
|
|
283
336
|
};
|
|
284
337
|
};
|
|
338
|
+
type AsyncLoadCallback = (item: TreeNode, cb: (data: TreeNode | TreeNode[]) => Promise<unknown> | unknown, data?: unknown) => Promise<TreeNode | TreeNode[]> | TreeNode | TreeNode[];
|
|
285
339
|
type AsyncOption = {
|
|
286
|
-
callback:
|
|
340
|
+
callback: AsyncLoadCallback;
|
|
287
341
|
cache: boolean;
|
|
288
342
|
deepAutoOpen?: string;
|
|
289
343
|
trigger?: string[];
|
package/lib/tree/tree.css
CHANGED
|
@@ -274,60 +274,49 @@
|
|
|
274
274
|
text-overflow: ellipsis;
|
|
275
275
|
white-space: nowrap;
|
|
276
276
|
}
|
|
277
|
-
.bk-tree-
|
|
278
|
-
|
|
277
|
+
.bk-tree-node-draggable {
|
|
278
|
+
cursor: grab;
|
|
279
|
+
user-select: none;
|
|
279
280
|
}
|
|
280
|
-
.bk-tree-
|
|
281
|
-
background: #
|
|
281
|
+
.bk-tree-node-draggable:hover {
|
|
282
|
+
background-color: #f5f7fa;
|
|
282
283
|
}
|
|
283
|
-
.bk-tree-drop-disabled
|
|
284
|
+
.bk-tree-drop-disabled {
|
|
284
285
|
cursor: no-drop;
|
|
285
|
-
}
|
|
286
|
-
.bk-tree-ghost {
|
|
287
286
|
opacity: 0.5;
|
|
288
|
-
background: #c8ebfb;
|
|
289
|
-
}
|
|
290
|
-
.bk-tree-chosen {
|
|
291
|
-
background: #e1ecff;
|
|
292
287
|
}
|
|
293
288
|
.bk-tree-drag {
|
|
294
|
-
opacity: 0.
|
|
295
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
289
|
+
opacity: 0.85;
|
|
296
290
|
cursor: grabbing;
|
|
297
291
|
}
|
|
298
|
-
.bk-tree-drag-disabled
|
|
292
|
+
.bk-tree-drag-disabled {
|
|
299
293
|
cursor: no-drop;
|
|
300
294
|
opacity: 0.5;
|
|
301
295
|
}
|
|
302
|
-
.bk-tree-drop-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
}
|
|
307
|
-
.bk-tree-drop-indicator.bk-tree-drop-inner {
|
|
308
|
-
background: rgba(33, 150, 243, 0.06);
|
|
309
|
-
outline: 2px dashed #3a84ff;
|
|
310
|
-
outline-offset: -2px;
|
|
311
|
-
border-radius: 2px;
|
|
312
|
-
box-shadow: inset 0 0 0 1px rgba(58, 132, 255, 0.1);
|
|
296
|
+
.bk-tree-drop-before,
|
|
297
|
+
.bk-tree-drop-after,
|
|
298
|
+
.bk-tree-drop-inner {
|
|
299
|
+
background-clip: content-box;
|
|
313
300
|
}
|
|
314
|
-
.bk-tree-drop-
|
|
315
|
-
|
|
301
|
+
.bk-tree-drop-before::after,
|
|
302
|
+
.bk-tree-drop-after::after {
|
|
303
|
+
position: absolute;
|
|
304
|
+
right: 0;
|
|
305
|
+
left: var(--drop-line-left, 0);
|
|
306
|
+
display: block;
|
|
307
|
+
height: 2px;
|
|
316
308
|
border-radius: 1px;
|
|
317
|
-
|
|
318
|
-
.bk-tree-drop-indicator.bk-tree-drop-line::before,
|
|
319
|
-
.bk-tree-drop-indicator.bk-tree-drop-line::after {
|
|
309
|
+
background-color: #3a84ff;
|
|
320
310
|
content: '';
|
|
321
|
-
|
|
322
|
-
width: 6px;
|
|
323
|
-
height: 6px;
|
|
324
|
-
border-radius: 50%;
|
|
325
|
-
background: #3a84ff;
|
|
326
|
-
top: -2px;
|
|
311
|
+
pointer-events: none;
|
|
327
312
|
}
|
|
328
|
-
.bk-tree-drop-
|
|
329
|
-
|
|
313
|
+
.bk-tree-drop-before::after {
|
|
314
|
+
top: -1px;
|
|
330
315
|
}
|
|
331
|
-
.bk-tree-drop-
|
|
332
|
-
|
|
316
|
+
.bk-tree-drop-after::after {
|
|
317
|
+
bottom: -1px;
|
|
318
|
+
}
|
|
319
|
+
.bk-tree-drop-inner {
|
|
320
|
+
background-color: rgba(58, 132, 255, 0.08);
|
|
321
|
+
box-shadow: inset 0 0 0 1px rgba(58, 132, 255, 0.28);
|
|
333
322
|
}
|
package/lib/tree/tree.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TreePropTypes as defineTypes } from './props';
|
|
1
|
+
import { TreePropTypes as defineTypes, TreeNode } from './props';
|
|
2
2
|
export type TreePropTypes = defineTypes;
|
|
3
3
|
export type ITreeScrollTopOption = {
|
|
4
4
|
id?: string;
|
|
@@ -43,10 +43,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
43
43
|
prefixIcon: import("vue-types").VueTypeDef<any> & {
|
|
44
44
|
default: any;
|
|
45
45
|
};
|
|
46
|
+
onDataChange: import("vue").PropType<import("./props").TreeDataChangeHandler>;
|
|
46
47
|
async: import("vue-types").VueTypeShape<{
|
|
47
|
-
callback: (item:
|
|
48
|
-
[key: string]: any;
|
|
49
|
-
}>>;
|
|
48
|
+
callback: (item: TreeNode, cb: (data: TreeNode | TreeNode[]) => unknown, data?: unknown) => TreeNode | TreeNode[] | Promise<TreeNode | TreeNode[]>;
|
|
50
49
|
cache: boolean;
|
|
51
50
|
deepAutoOpen?: string;
|
|
52
51
|
trigger?: string[];
|
|
@@ -139,14 +138,22 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
139
138
|
} & {
|
|
140
139
|
default: boolean;
|
|
141
140
|
};
|
|
141
|
+
cascade: import("vue-types").VueTypeValidableDef<boolean> & {
|
|
142
|
+
default: boolean;
|
|
143
|
+
} & {
|
|
144
|
+
default: boolean;
|
|
145
|
+
};
|
|
142
146
|
intersectionObserver: import("vue-types").VueTypeDef<boolean | import("./props").IIntersectionObserver> & {
|
|
143
147
|
default: boolean | (() => import("./props").IIntersectionObserver);
|
|
144
148
|
};
|
|
145
149
|
}>, () => JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
150
|
+
nodeAsyncLoad: (..._args: any[]) => boolean;
|
|
151
|
+
nodeAsyncLoadError: (..._args: any[]) => boolean;
|
|
146
152
|
nodeClick: (..._args: any[]) => boolean;
|
|
147
153
|
nodeCollapse: (..._args: any[]) => boolean;
|
|
148
154
|
nodeExpand: (..._args: any[]) => boolean;
|
|
149
155
|
nodeChecked: (..._args: any[]) => boolean;
|
|
156
|
+
nodeDataChange: (..._args: any[]) => boolean;
|
|
150
157
|
nodeDragStart: (..._args: any[]) => boolean;
|
|
151
158
|
nodeDragOver: (..._args: any[]) => boolean;
|
|
152
159
|
nodeDragLeave: (..._args: any[]) => boolean;
|
|
@@ -193,10 +200,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
193
200
|
prefixIcon: import("vue-types").VueTypeDef<any> & {
|
|
194
201
|
default: any;
|
|
195
202
|
};
|
|
203
|
+
onDataChange: import("vue").PropType<import("./props").TreeDataChangeHandler>;
|
|
196
204
|
async: import("vue-types").VueTypeShape<{
|
|
197
|
-
callback: (item:
|
|
198
|
-
[key: string]: any;
|
|
199
|
-
}>>;
|
|
205
|
+
callback: (item: TreeNode, cb: (data: TreeNode | TreeNode[]) => unknown, data?: unknown) => TreeNode | TreeNode[] | Promise<TreeNode | TreeNode[]>;
|
|
200
206
|
cache: boolean;
|
|
201
207
|
deepAutoOpen?: string;
|
|
202
208
|
trigger?: string[];
|
|
@@ -289,13 +295,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
289
295
|
} & {
|
|
290
296
|
default: boolean;
|
|
291
297
|
};
|
|
298
|
+
cascade: import("vue-types").VueTypeValidableDef<boolean> & {
|
|
299
|
+
default: boolean;
|
|
300
|
+
} & {
|
|
301
|
+
default: boolean;
|
|
302
|
+
};
|
|
292
303
|
intersectionObserver: import("vue-types").VueTypeDef<boolean | import("./props").IIntersectionObserver> & {
|
|
293
304
|
default: boolean | (() => import("./props").IIntersectionObserver);
|
|
294
305
|
};
|
|
295
306
|
}>> & Readonly<{
|
|
307
|
+
onNodeAsyncLoad?: (...args: any[]) => any;
|
|
308
|
+
onNodeAsyncLoadError?: (...args: any[]) => any;
|
|
296
309
|
onNodeChecked?: (...args: any[]) => any;
|
|
297
310
|
onNodeClick?: (...args: any[]) => any;
|
|
298
311
|
onNodeCollapse?: (...args: any[]) => any;
|
|
312
|
+
onNodeDataChange?: (...args: any[]) => any;
|
|
299
313
|
onNodeDragLeave?: (...args: any[]) => any;
|
|
300
314
|
onNodeDragOver?: (...args: any[]) => any;
|
|
301
315
|
onNodeDragSort?: (...args: any[]) => any;
|
|
@@ -335,5 +349,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
335
349
|
nodeContentAction: any;
|
|
336
350
|
keepSlotData: boolean;
|
|
337
351
|
checkStrictly: boolean;
|
|
352
|
+
cascade: boolean;
|
|
338
353
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
339
354
|
export default _default;
|
package/lib/tree/tree.less
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
background-color: #e1ecff;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
&-node {
|
|
@@ -132,80 +133,61 @@
|
|
|
132
133
|
}
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
&-
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
&-node-draggable {
|
|
137
|
+
cursor: grab;
|
|
138
|
+
user-select: none;
|
|
138
139
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
.@{bk-prefix}-tree-node {
|
|
142
|
-
cursor: no-drop;
|
|
140
|
+
&:hover {
|
|
141
|
+
background-color: #f5f7fa;
|
|
143
142
|
}
|
|
144
143
|
}
|
|
145
144
|
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
&-drop-disabled {
|
|
146
|
+
cursor: no-drop;
|
|
148
147
|
opacity: 0.5;
|
|
149
|
-
background: #c8ebfb;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
&-chosen {
|
|
153
|
-
background: #e1ecff;
|
|
154
148
|
}
|
|
155
149
|
|
|
156
150
|
&-drag {
|
|
157
|
-
opacity: 0.
|
|
158
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
151
|
+
opacity: 0.85;
|
|
159
152
|
cursor: grabbing;
|
|
160
153
|
}
|
|
161
154
|
|
|
162
155
|
&-drag-disabled {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
opacity: 0.5;
|
|
166
|
-
}
|
|
156
|
+
cursor: no-drop;
|
|
157
|
+
opacity: 0.5;
|
|
167
158
|
}
|
|
168
|
-
}
|
|
169
159
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
position: fixed;
|
|
175
|
-
pointer-events: none;
|
|
176
|
-
z-index: 9999;
|
|
177
|
-
|
|
178
|
-
// child 类型:嵌入为子节点的指示器
|
|
179
|
-
&.@{bk-prefix}-tree-drop-inner {
|
|
180
|
-
background: rgba(33, 150, 243, 0.06);
|
|
181
|
-
outline: 2px dashed #3a84ff;
|
|
182
|
-
outline-offset: -2px;
|
|
183
|
-
border-radius: 2px;
|
|
184
|
-
box-shadow: inset 0 0 0 1px rgba(58, 132, 255, 0.1);
|
|
160
|
+
&-drop-before,
|
|
161
|
+
&-drop-after,
|
|
162
|
+
&-drop-inner {
|
|
163
|
+
background-clip: content-box;
|
|
185
164
|
}
|
|
186
165
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
background: #3a84ff;
|
|
190
|
-
border-radius: 1px;
|
|
191
|
-
|
|
192
|
-
&::before,
|
|
166
|
+
&-drop-before,
|
|
167
|
+
&-drop-after {
|
|
193
168
|
&::after {
|
|
194
|
-
content: '';
|
|
195
169
|
position: absolute;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
170
|
+
right: 0;
|
|
171
|
+
left: var(--drop-line-left, 0);
|
|
172
|
+
display: block;
|
|
173
|
+
height: 2px;
|
|
174
|
+
border-radius: 1px;
|
|
175
|
+
background-color: #3a84ff;
|
|
176
|
+
content: '';
|
|
177
|
+
pointer-events: none;
|
|
201
178
|
}
|
|
179
|
+
}
|
|
202
180
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
181
|
+
&-drop-before::after {
|
|
182
|
+
top: -1px;
|
|
183
|
+
}
|
|
206
184
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
185
|
+
&-drop-after::after {
|
|
186
|
+
bottom: -1px;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
&-drop-inner {
|
|
190
|
+
background-color: rgba(58, 132, 255, 0.08);
|
|
191
|
+
box-shadow: inset 0 0 0 1px rgba(58, 132, 255, 0.28);
|
|
210
192
|
}
|
|
211
193
|
}
|
|
@@ -405,60 +405,49 @@
|
|
|
405
405
|
text-overflow: ellipsis;
|
|
406
406
|
white-space: nowrap;
|
|
407
407
|
}
|
|
408
|
-
.bk-tree-
|
|
409
|
-
|
|
408
|
+
.bk-tree-node-draggable {
|
|
409
|
+
cursor: grab;
|
|
410
|
+
user-select: none;
|
|
410
411
|
}
|
|
411
|
-
.bk-tree-
|
|
412
|
-
background: #
|
|
412
|
+
.bk-tree-node-draggable:hover {
|
|
413
|
+
background-color: #f5f7fa;
|
|
413
414
|
}
|
|
414
|
-
.bk-tree-drop-disabled
|
|
415
|
+
.bk-tree-drop-disabled {
|
|
415
416
|
cursor: no-drop;
|
|
416
|
-
}
|
|
417
|
-
.bk-tree-ghost {
|
|
418
417
|
opacity: 0.5;
|
|
419
|
-
background: #c8ebfb;
|
|
420
|
-
}
|
|
421
|
-
.bk-tree-chosen {
|
|
422
|
-
background: #e1ecff;
|
|
423
418
|
}
|
|
424
419
|
.bk-tree-drag {
|
|
425
|
-
opacity: 0.
|
|
426
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
420
|
+
opacity: 0.85;
|
|
427
421
|
cursor: grabbing;
|
|
428
422
|
}
|
|
429
|
-
.bk-tree-drag-disabled
|
|
423
|
+
.bk-tree-drag-disabled {
|
|
430
424
|
cursor: no-drop;
|
|
431
425
|
opacity: 0.5;
|
|
432
426
|
}
|
|
433
|
-
.bk-tree-drop-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
}
|
|
438
|
-
.bk-tree-drop-indicator.bk-tree-drop-inner {
|
|
439
|
-
background: rgba(33, 150, 243, 0.06);
|
|
440
|
-
outline: 2px dashed #3a84ff;
|
|
441
|
-
outline-offset: -2px;
|
|
442
|
-
border-radius: 2px;
|
|
443
|
-
box-shadow: inset 0 0 0 1px rgba(58, 132, 255, 0.1);
|
|
427
|
+
.bk-tree-drop-before,
|
|
428
|
+
.bk-tree-drop-after,
|
|
429
|
+
.bk-tree-drop-inner {
|
|
430
|
+
background-clip: content-box;
|
|
444
431
|
}
|
|
445
|
-
.bk-tree-drop-
|
|
446
|
-
|
|
432
|
+
.bk-tree-drop-before::after,
|
|
433
|
+
.bk-tree-drop-after::after {
|
|
434
|
+
position: absolute;
|
|
435
|
+
right: 0;
|
|
436
|
+
left: var(--drop-line-left, 0);
|
|
437
|
+
display: block;
|
|
438
|
+
height: 2px;
|
|
447
439
|
border-radius: 1px;
|
|
448
|
-
|
|
449
|
-
.bk-tree-drop-indicator.bk-tree-drop-line::before,
|
|
450
|
-
.bk-tree-drop-indicator.bk-tree-drop-line::after {
|
|
440
|
+
background-color: #3a84ff;
|
|
451
441
|
content: '';
|
|
452
|
-
|
|
453
|
-
width: 6px;
|
|
454
|
-
height: 6px;
|
|
455
|
-
border-radius: 50%;
|
|
456
|
-
background: #3a84ff;
|
|
457
|
-
top: -2px;
|
|
442
|
+
pointer-events: none;
|
|
458
443
|
}
|
|
459
|
-
.bk-tree-drop-
|
|
460
|
-
|
|
444
|
+
.bk-tree-drop-before::after {
|
|
445
|
+
top: -1px;
|
|
461
446
|
}
|
|
462
|
-
.bk-tree-drop-
|
|
463
|
-
|
|
447
|
+
.bk-tree-drop-after::after {
|
|
448
|
+
bottom: -1px;
|
|
449
|
+
}
|
|
450
|
+
.bk-tree-drop-inner {
|
|
451
|
+
background-color: rgba(58, 132, 255, 0.08);
|
|
452
|
+
box-shadow: inset 0 0 0 1px rgba(58, 132, 255, 0.28);
|
|
464
453
|
}
|
|
@@ -4,13 +4,13 @@ declare const _default: (props: TreePropTypes, ctx: any, flatData: IFlatData, _r
|
|
|
4
4
|
renderTreeNode: (item: TreeNode, showTree?: boolean) => JSX.Element;
|
|
5
5
|
handleTreeNodeClick: (item: TreeNode, e: MouseEvent, event?: string) => void;
|
|
6
6
|
deepAutoOpen: () => void;
|
|
7
|
-
asyncNodeClick: (item: TreeNode) => Promise<boolean
|
|
7
|
+
asyncNodeClick: (item: TreeNode) => Promise<boolean | (TreeNode | TreeNode[])>;
|
|
8
8
|
setNodeAction: (args: TreeNode | TreeNode[], action: string, value: unknown) => void;
|
|
9
9
|
setNodeOpened: (item: TreeNode, isOpen?: any, e?: MouseEvent, fireEmit?: boolean) => void;
|
|
10
10
|
setSelect: (nodes: TreeNode | TreeNode[], selected?: boolean, autoOpen?: boolean, triggerEvent?: boolean, event?: string) => void;
|
|
11
11
|
setOpen: (item: TreeNode, isOpen?: boolean, autoOpenParents?: boolean) => void;
|
|
12
12
|
setNodeAttribute: (node: TreeNode, attrName: string | string[], value: (boolean | number | string)[] | boolean | number | string, loopParent?: boolean) => void;
|
|
13
|
-
isIndeterminate: (item: TreeNode) =>
|
|
13
|
+
isIndeterminate: (item: TreeNode) => boolean;
|
|
14
14
|
deepUpdateChildNode: (node: TreeNode, attr: string | string[], value: unknown | unknown[]) => void;
|
|
15
15
|
updateParentChecked: (item: TreeNode, isChecked: any) => void;
|
|
16
16
|
};
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { EVENTS } from './constant';
|
|
2
|
+
import { TreeDataChangePayload, TreeNode, TreePropTypes } from './props';
|
|
3
|
+
import { IFlatData } from './util';
|
|
4
|
+
type TreeContext = {
|
|
5
|
+
emit: (event: EVENTS, ...args: unknown[]) => void;
|
|
6
|
+
};
|
|
7
|
+
type AsyncLoadResponse = TreeNode | TreeNode[];
|
|
8
|
+
export type UseNodeAsyncOptions = {
|
|
9
|
+
getTreeData?: () => TreeNode[];
|
|
10
|
+
onTreeDataChange?: (payload: TreeDataChangePayload) => void;
|
|
11
|
+
};
|
|
12
|
+
declare const _default: (props: TreePropTypes, flatData: IFlatData, ctx?: TreeContext, options?: UseNodeAsyncOptions) => {
|
|
13
|
+
asyncNodeClick: (item: TreeNode) => Promise<boolean | AsyncLoadResponse>;
|
|
4
14
|
deepAutoOpen: () => void;
|
|
5
15
|
};
|
|
6
16
|
export default _default;
|