@kdcloudjs/kdesign 1.4.1 → 1.5.2
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/CHANGELOG.md +41 -0
- package/dist/kdesign-complete.less +60 -8
- package/dist/kdesign.css +58 -10
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +595 -306
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +3 -3
- package/dist/kdesign.min.js +8 -8
- package/dist/kdesign.min.js.map +1 -1
- package/es/anchor/anchor-link.js +0 -6
- package/es/anchor/anchor.js +102 -2
- package/es/avatar/avatar.js +3 -1
- package/es/carousel/carousel.js +4 -4
- package/es/config-provider/compDefaultProps.d.ts +0 -1
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/date-picker/range-picker.d.ts +1 -0
- package/es/date-picker/range-picker.js +2 -0
- package/es/date-picker/style/index.css +6 -3
- package/es/date-picker/style/index.less +7 -3
- package/es/dropdown/style/index.css +3 -0
- package/es/dropdown/style/index.less +4 -0
- package/es/dropdown/style/token.less +1 -0
- package/es/input/ClearableLabeledInput.js +3 -4
- package/es/input/style/index.css +13 -0
- package/es/input/style/index.less +10 -0
- package/es/input/style/mixin.less +6 -1
- package/es/menu/menu.d.ts +1 -0
- package/es/menu/menu.js +7 -1
- package/es/radio/radio.js +6 -1
- package/es/select/select.js +1 -1
- package/es/select/style/index.css +5 -5
- package/es/select/style/index.less +1 -1
- package/es/select/style/token.less +3 -2
- package/es/table/table.js +8 -2
- package/es/tree/style/index.css +30 -1
- package/es/tree/style/index.less +25 -1
- package/es/tree/style/token.less +3 -0
- package/es/tree/tree.d.ts +2 -0
- package/es/tree/tree.js +77 -12
- package/es/tree/treeHooks.d.ts +1 -1
- package/es/tree/treeHooks.js +3 -3
- package/es/tree/treeNode.d.ts +1 -0
- package/es/tree/treeNode.js +11 -8
- package/es/tree/utils/treeUtils.d.ts +4 -2
- package/es/tree/utils/treeUtils.js +64 -10
- package/lib/anchor/anchor-link.js +0 -6
- package/lib/anchor/anchor.js +102 -2
- package/lib/avatar/avatar.js +3 -1
- package/lib/carousel/carousel.js +4 -4
- package/lib/config-provider/compDefaultProps.d.ts +0 -1
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/date-picker/range-picker.d.ts +1 -0
- package/lib/date-picker/range-picker.js +2 -0
- package/lib/date-picker/style/index.css +6 -3
- package/lib/date-picker/style/index.less +7 -3
- package/lib/dropdown/style/index.css +3 -0
- package/lib/dropdown/style/index.less +4 -0
- package/lib/dropdown/style/token.less +1 -0
- package/lib/input/ClearableLabeledInput.js +3 -4
- package/lib/input/style/index.css +13 -0
- package/lib/input/style/index.less +10 -0
- package/lib/input/style/mixin.less +6 -1
- package/lib/menu/menu.d.ts +1 -0
- package/lib/menu/menu.js +7 -1
- package/lib/radio/radio.js +7 -1
- package/lib/select/select.js +1 -1
- package/lib/select/style/index.css +5 -5
- package/lib/select/style/index.less +1 -1
- package/lib/select/style/token.less +3 -2
- package/lib/table/table.js +8 -2
- package/lib/tree/style/index.css +30 -1
- package/lib/tree/style/index.less +25 -1
- package/lib/tree/style/token.less +3 -0
- package/lib/tree/tree.d.ts +2 -0
- package/lib/tree/tree.js +79 -11
- package/lib/tree/treeHooks.d.ts +1 -1
- package/lib/tree/treeHooks.js +3 -3
- package/lib/tree/treeNode.d.ts +1 -0
- package/lib/tree/treeNode.js +11 -8
- package/lib/tree/utils/treeUtils.d.ts +4 -2
- package/lib/tree/utils/treeUtils.js +71 -13
- package/package.json +2 -2
package/es/tree/style/index.less
CHANGED
|
@@ -93,6 +93,13 @@
|
|
|
93
93
|
&-title-disabled {
|
|
94
94
|
color: @tree-node-disabled-color;
|
|
95
95
|
}
|
|
96
|
+
&-title-wrap {
|
|
97
|
+
flex: 1;
|
|
98
|
+
position: relative;
|
|
99
|
+
display: flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
height: 100%;
|
|
102
|
+
}
|
|
96
103
|
&-title {
|
|
97
104
|
white-space: nowrap;
|
|
98
105
|
margin-left: 6px;
|
|
@@ -118,12 +125,29 @@
|
|
|
118
125
|
height: 100%;
|
|
119
126
|
}
|
|
120
127
|
|
|
128
|
+
&-drag-over {
|
|
129
|
+
background-color: @tree-node-drag-over-color-background;
|
|
130
|
+
border: 2px solid @tree-node-drag-over-border-color;
|
|
131
|
+
}
|
|
132
|
+
|
|
121
133
|
&-drag-line {
|
|
122
134
|
position: absolute;
|
|
123
135
|
left: 0;
|
|
124
136
|
top: 100%;
|
|
125
137
|
width: 100%;
|
|
126
|
-
border-top:
|
|
138
|
+
border-top: 2px solid @tree-node-drag-line-border-color;
|
|
139
|
+
|
|
140
|
+
&::before {
|
|
141
|
+
content: '';
|
|
142
|
+
width: 4px;
|
|
143
|
+
height: 4px;
|
|
144
|
+
background-color: #fff;
|
|
145
|
+
border-radius: 50%;
|
|
146
|
+
border: 2px solid @tree-node-drag-line-border-color;
|
|
147
|
+
position: absolute;
|
|
148
|
+
top: -1px;
|
|
149
|
+
transform: translateY(-50%);
|
|
150
|
+
}
|
|
127
151
|
}
|
|
128
152
|
&-leaf-icon {
|
|
129
153
|
height: @tree-node-icon-height;
|
package/es/tree/style/token.less
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
@tree-node-checked-text-color: var(~'@{tree-prefix}-node-color-text-checked', @color-theme);
|
|
12
12
|
@tree-node-hover-bg-color: var(~'@{tree-prefix}-node-color-backgroung-hover', @color-hover);
|
|
13
13
|
@tree-node-icon-color-text: var(~'@{tree-prefix}-node-icon-color-text', #666666);
|
|
14
|
+
@tree-node-drag-over-border-color: var(~'@{tree-prefix}-node-drag-over-color-border', #5582f3);
|
|
15
|
+
@tree-node-drag-over-color-background: var(~'@{tree-prefix}-node-drag-over-color-background', #E3EBFF);
|
|
16
|
+
@tree-node-drag-line-border-color: var(~'@{tree-prefix}-node-drag-line-color-background', #276FF5);
|
|
14
17
|
|
|
15
18
|
// sizing
|
|
16
19
|
@tree-expand-icon-height: var(~'@{tree-prefix}-expand-icon-sizing-height', 22px);
|
package/es/tree/tree.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface TreeProps {
|
|
|
12
12
|
disabled?: boolean;
|
|
13
13
|
draggable?: boolean;
|
|
14
14
|
expandedKeys?: string[];
|
|
15
|
+
filterValue?: string;
|
|
16
|
+
filterTreeNode?: () => boolean;
|
|
15
17
|
height?: number;
|
|
16
18
|
icon?: ReactNode | ((props: any) => ReactNode);
|
|
17
19
|
switcherIcon?: ReactNode | ((props: any) => ReactNode) | [ReactNode | ((props: any) => ReactNode)];
|
package/es/tree/tree.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
2
3
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
3
4
|
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
5
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
4
6
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
5
7
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
6
8
|
import React, { useContext, useCallback, useEffect } from 'react';
|
|
@@ -8,7 +10,7 @@ import classNames from 'classnames';
|
|
|
8
10
|
import ConfigContext from '../config-provider/ConfigContext';
|
|
9
11
|
import { getCompProps } from '../_utils';
|
|
10
12
|
import TreeNode from './treeNode';
|
|
11
|
-
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData, getDataCheckededState, getDataCheckededStateStrictly, getMaxLevel, getAllChildKeys, getPos, getSelected } from './utils/treeUtils';
|
|
13
|
+
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData, getDataCheckededState, getDataCheckededStateStrictly, getMaxLevel, getAllChildKeys, getPos, getSelected, calcDropPosition } from './utils/treeUtils';
|
|
12
14
|
import { useChecked, useExpand, usePlantomHeightEffect, useViewportHeight, useVisibleDataMemo, useScrollToKey, useSelect } from './treeHooks';
|
|
13
15
|
import isBoolean from 'lodash/isBoolean';
|
|
14
16
|
var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
@@ -58,7 +60,9 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
58
60
|
return '';
|
|
59
61
|
} : _TreeProps$setTreeNod2,
|
|
60
62
|
innerEstimatedItemSize = TreeProps.estimatedItemSize,
|
|
61
|
-
style = TreeProps.style
|
|
63
|
+
style = TreeProps.style,
|
|
64
|
+
filterTreeNode = TreeProps.filterTreeNode,
|
|
65
|
+
filterValue = TreeProps.filterValue;
|
|
62
66
|
var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
|
|
63
67
|
|
|
64
68
|
var treeNodePrefixCls = getPrefixCls(prefixCls, 'tree-node', customPrefixcls); // 树节点样式前缀
|
|
@@ -102,22 +106,34 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
102
106
|
var scrollRef = ref || rootRef;
|
|
103
107
|
var treeNodeRef = React.useRef(null);
|
|
104
108
|
var dragNodeRef = React.useRef(null);
|
|
109
|
+
var delayedDragEnterRef = React.useRef(null);
|
|
105
110
|
|
|
106
111
|
var _React$useState5 = React.useState(true),
|
|
107
112
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
108
113
|
isInit = _React$useState6[0],
|
|
109
114
|
setIsInit = _React$useState6[1];
|
|
110
115
|
|
|
111
|
-
var
|
|
112
|
-
|
|
113
|
-
|
|
116
|
+
var _React$useState7 = React.useState(null),
|
|
117
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
118
|
+
dropPosition = _React$useState8[0],
|
|
119
|
+
setDropPosition = _React$useState8[1];
|
|
120
|
+
|
|
121
|
+
var _React$useState9 = React.useState(null),
|
|
122
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
123
|
+
dragOverNodeKey = _React$useState10[0],
|
|
124
|
+
setDragOverNodeKey = _React$useState10[1];
|
|
125
|
+
|
|
126
|
+
var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, filterValue),
|
|
127
|
+
_useExpand2 = _slicedToArray(_useExpand, 2),
|
|
128
|
+
expandedKeys = _useExpand2[0],
|
|
129
|
+
setExpandedKeys = _useExpand2[1];
|
|
114
130
|
|
|
115
131
|
var spreadAttrData = React.useMemo(function () {
|
|
116
132
|
return getSpreadAttrData(flattenAllData, expandedKeys);
|
|
117
133
|
}, [flattenAllData, expandedKeys]);
|
|
118
134
|
var filterData = React.useMemo(function () {
|
|
119
|
-
return getFilterData(spreadAttrData);
|
|
120
|
-
}, [spreadAttrData]);
|
|
135
|
+
return getFilterData(spreadAttrData, filterTreeNode, filterValue);
|
|
136
|
+
}, [spreadAttrData, filterTreeNode, filterValue]);
|
|
121
137
|
|
|
122
138
|
var _useViewportHeight = useViewportHeight(height, listRef),
|
|
123
139
|
_useViewportHeight2 = _slicedToArray(_useViewportHeight, 1),
|
|
@@ -176,7 +192,15 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
176
192
|
node: node
|
|
177
193
|
});
|
|
178
194
|
}, [onDragStart]);
|
|
179
|
-
var handleDragOver = React.useCallback(function (event, node) {
|
|
195
|
+
var handleDragOver = React.useCallback(function (event, node, dropTarget) {
|
|
196
|
+
var dropPos = calcDropPosition(event, dropTarget);
|
|
197
|
+
setDropPosition(dropPos);
|
|
198
|
+
var dragNode = getDragNode();
|
|
199
|
+
|
|
200
|
+
if (dragNode.key === node.key) {
|
|
201
|
+
setDropPosition(null);
|
|
202
|
+
}
|
|
203
|
+
|
|
180
204
|
onDragOver && onDragOver({
|
|
181
205
|
event: event,
|
|
182
206
|
node: node
|
|
@@ -188,13 +212,52 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
188
212
|
node: node
|
|
189
213
|
});
|
|
190
214
|
}, [onDragLeave]);
|
|
191
|
-
var handleDragEnter = React.useCallback(function (event, node) {
|
|
215
|
+
var handleDragEnter = React.useCallback(function (event, node, dropTarget) {
|
|
216
|
+
var key = node.key,
|
|
217
|
+
pos = node.pos;
|
|
218
|
+
var dragNode = getDragNode();
|
|
219
|
+
|
|
220
|
+
if (!dragNode) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if (!delayedDragEnterRef.current) {
|
|
225
|
+
delayedDragEnterRef.current = {};
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
_Object$keys(delayedDragEnterRef.current).forEach(function (key) {
|
|
229
|
+
clearTimeout(delayedDragEnterRef.current[key]);
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
if ((dragNode === null || dragNode === void 0 ? void 0 : dragNode.key) !== key) {
|
|
233
|
+
var dragPos = calcDropPosition(event, dropTarget);
|
|
234
|
+
setDragOverNodeKey(key);
|
|
235
|
+
setDropPosition(dragPos);
|
|
236
|
+
delayedDragEnterRef.current[pos] = setTimeout(function () {
|
|
237
|
+
var newExpandedKeys = _toConsumableArray(expandedKeys);
|
|
238
|
+
|
|
239
|
+
if (!node.expand) {
|
|
240
|
+
newExpandedKeys = addKeys(expandedKeys, [key]);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if (!('expandedKeys' in TreeProps)) {
|
|
244
|
+
setExpandedKeys(newExpandedKeys);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {
|
|
248
|
+
node: node,
|
|
249
|
+
expanded: true
|
|
250
|
+
});
|
|
251
|
+
}, 800);
|
|
252
|
+
}
|
|
253
|
+
|
|
192
254
|
onDragEnter && onDragEnter({
|
|
193
255
|
event: event,
|
|
194
256
|
node: node
|
|
195
257
|
});
|
|
196
|
-
}, [onDragEnter]);
|
|
258
|
+
}, [TreeProps, expandedKeys, onDragEnter, onExpand, setExpandedKeys]);
|
|
197
259
|
var handleDragEnd = React.useCallback(function (event, node) {
|
|
260
|
+
setDragOverNodeKey('');
|
|
198
261
|
onDragEnd && onDragEnd({
|
|
199
262
|
event: event,
|
|
200
263
|
node: node
|
|
@@ -211,9 +274,10 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
211
274
|
event: event,
|
|
212
275
|
node: node,
|
|
213
276
|
dragNode: dragNode,
|
|
214
|
-
|
|
277
|
+
dragNodesKeys: keys,
|
|
278
|
+
dropPosition: dropPosition
|
|
215
279
|
});
|
|
216
|
-
}, [onDrop,
|
|
280
|
+
}, [flattenAllData, onDrop, dropPosition]);
|
|
217
281
|
var handleSelect = React.useCallback(function (event, node, key) {
|
|
218
282
|
var checked = getChecked(checkedKeys, key);
|
|
219
283
|
onSelect && onSelect([key], {
|
|
@@ -300,6 +364,7 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
300
364
|
item.style = setTreeNodeStyle(_extends({}, item));
|
|
301
365
|
item.getDragNode = getDragNode;
|
|
302
366
|
item.setDragNode = setDragNode;
|
|
367
|
+
item.dragOver = dragOverNodeKey === item.key && dropPosition === 0;
|
|
303
368
|
return /*#__PURE__*/React.createElement(TreeNode, _extends({}, item, {
|
|
304
369
|
key: item.key,
|
|
305
370
|
ref: treeNodeRef
|
package/es/tree/treeHooks.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export declare const useViewportHeight: (height: number, listRef: React.RefObjec
|
|
|
4
4
|
export declare const useVisibleDataMemo: (virtual: boolean, filterData: TreeNodeData[], viewportHeight: number, estimatedItemSize: number, start: number) => TreeNodeData[][];
|
|
5
5
|
export declare const usePlantomHeightEffect: (plantomRef: React.RefObject<HTMLElement>, filterData: TreeNodeData[], estimatedItemSize: number) => void;
|
|
6
6
|
export declare const useChecked: (checkStrictly: boolean, checkedKeysProps: string[], defaultCheckedKeys: string[], flattenAllData: any[], maxLevel: number, checkable: boolean) => readonly [string[], string[], React.Dispatch<React.SetStateAction<string[]>>, React.Dispatch<React.SetStateAction<string[]>>];
|
|
7
|
-
export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
|
|
7
|
+
export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, filterValue: string) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
|
|
8
8
|
export declare const useScrollToKey: (scrollKey: string, index: number, estimatedItemSize: number, scrollRef: any, viewportHeight: number, treeNodePrefixCls: string) => void;
|
|
9
9
|
export declare const useSelect: (selectedKeysProps: string[], defaultSelectedKeys: string[]) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
|
package/es/tree/treeHooks.js
CHANGED
|
@@ -64,7 +64,7 @@ export var useChecked = function useChecked(checkStrictly, checkedKeysProps, def
|
|
|
64
64
|
}, [nextHalfCheckedKeys]);
|
|
65
65
|
return [checkedKeys, halfCheckedKeys, setCheckedKeys, setHalfCheckedKeys];
|
|
66
66
|
};
|
|
67
|
-
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit) {
|
|
67
|
+
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, filterValue) {
|
|
68
68
|
var expandScrollkeys = [];
|
|
69
69
|
|
|
70
70
|
if (scrollKey) {
|
|
@@ -73,8 +73,8 @@ export var useExpand = function useExpand(flattenAllData, expandedKeysProps, def
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
var initialExpandedKeys = React.useMemo(function () {
|
|
76
|
-
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys);
|
|
77
|
-
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey]);
|
|
76
|
+
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, filterValue);
|
|
77
|
+
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, filterValue]);
|
|
78
78
|
var newExpandedKeys = React.useMemo(function () {
|
|
79
79
|
return getExpandedKeys(expandedKeysProps, expandScrollkeys);
|
|
80
80
|
}, [expandedKeysProps]);
|
package/es/tree/treeNode.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface TreeNodeProps {
|
|
|
24
24
|
checked?: boolean;
|
|
25
25
|
pos?: string;
|
|
26
26
|
estimatedItemSize?: number;
|
|
27
|
+
dragOver?: boolean;
|
|
27
28
|
onCheck?: (key: string, value: boolean, node: React.ReactNode, event: React.MouseEvent<MouseEvent>, pos: string) => void;
|
|
28
29
|
onSelect?: (event: React.MouseEvent<MouseEvent>, node: React.ReactNode, key: string) => void;
|
|
29
30
|
onExpand?: (value: boolean, node: React.ReactNode) => void;
|
package/es/tree/treeNode.js
CHANGED
|
@@ -56,6 +56,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
56
56
|
style = TreeNodeProps.style,
|
|
57
57
|
indeterminate = TreeNodeProps.indeterminate,
|
|
58
58
|
estimatedItemSize = TreeNodeProps.estimatedItemSize,
|
|
59
|
+
dragOver = TreeNodeProps.dragOver,
|
|
59
60
|
onExpand = TreeNodeProps.onExpand,
|
|
60
61
|
onCheck = TreeNodeProps.onCheck,
|
|
61
62
|
onDragStart = TreeNodeProps.onDragStart,
|
|
@@ -65,7 +66,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
65
66
|
onDragEnd = TreeNodeProps.onDragEnd,
|
|
66
67
|
onDrop = TreeNodeProps.onDrop,
|
|
67
68
|
onSelect = TreeNodeProps.onSelect,
|
|
68
|
-
others = __rest(TreeNodeProps, ["nodeKey", "prefixCls", "selectable", "checkable", "className", "icon", "switcherIcon", "disabled", "draggable", "pos", "checked", "level", "getDragNode", "hasChildNode", "expand", "title", "showLine", "showIcon", "selected", "setDragNode", "style", "indeterminate", "estimatedItemSize", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
|
|
69
|
+
others = __rest(TreeNodeProps, ["nodeKey", "prefixCls", "selectable", "checkable", "className", "icon", "switcherIcon", "disabled", "draggable", "pos", "checked", "level", "getDragNode", "hasChildNode", "expand", "title", "showLine", "showIcon", "selected", "setDragNode", "style", "indeterminate", "estimatedItemSize", "dragOver", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
|
|
69
70
|
|
|
70
71
|
var nodeData = React.useMemo(function () {
|
|
71
72
|
return _extends({
|
|
@@ -234,7 +235,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
234
235
|
|
|
235
236
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
236
237
|
draggable: draggable && !disabled,
|
|
237
|
-
className: classNames((_classNames3 = {}, _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-draggabled"), true), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-root"), true), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-fb-children-pointerEvents"), forbiddenChildrenPointerEvents), _classNames3)),
|
|
238
|
+
className: classNames((_classNames3 = {}, _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-draggabled"), true), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-root"), true), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-fb-children-pointerEvents"), forbiddenChildrenPointerEvents), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-drag-over"), dragOver), _classNames3)),
|
|
238
239
|
onDragStart: handleDragStart,
|
|
239
240
|
onDragEnd: handleDragEnd,
|
|
240
241
|
onDragOver: handleDragOver,
|
|
@@ -242,7 +243,9 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
242
243
|
onDragEnter: handleDragEnter,
|
|
243
244
|
onDrop: handleDrop,
|
|
244
245
|
ref: dragRef
|
|
245
|
-
}, indent(), renderExpandIcon(), showIcon && renderNodeIcon(),
|
|
246
|
+
}, indent(), renderExpandIcon(), showIcon && renderNodeIcon(), /*#__PURE__*/React.createElement("div", {
|
|
247
|
+
className: "".concat(treeNodePrefixCls, "-title-wrap")
|
|
248
|
+
}, checkable ? /*#__PURE__*/React.createElement(Checkbox, {
|
|
246
249
|
onChange: handleOnchange,
|
|
247
250
|
checked: checked,
|
|
248
251
|
indeterminate: !disabled && indeterminate,
|
|
@@ -251,9 +254,9 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
251
254
|
className: classNames("".concat(treeNodePrefixCls, "-title"), _defineProperty({}, "".concat(treeNodePrefixCls, "-title-disabled"), disabled))
|
|
252
255
|
}, title)) : /*#__PURE__*/React.createElement("span", {
|
|
253
256
|
className: classNames("".concat(treeNodePrefixCls, "-title"), _defineProperty({}, "".concat(treeNodePrefixCls, "-title-disabled"), disabled))
|
|
254
|
-
}, title), showDragLine && /*#__PURE__*/React.createElement("span", {
|
|
257
|
+
}, title), showDragLine && !dragOver && /*#__PURE__*/React.createElement("span", {
|
|
255
258
|
className: classNames("".concat(treeNodePrefixCls, "-drag-line"))
|
|
256
|
-
})));
|
|
259
|
+
}))));
|
|
257
260
|
};
|
|
258
261
|
|
|
259
262
|
var handleOnchange = React.useCallback(function (e) {
|
|
@@ -278,11 +281,11 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
278
281
|
if (!draggable) return;
|
|
279
282
|
setDragNode(nodeData);
|
|
280
283
|
onDragStart && onDragStart(e, props);
|
|
281
|
-
}, [
|
|
284
|
+
}, [draggable, setDragNode, nodeData, onDragStart, props]);
|
|
282
285
|
var handleDragOver = React.useCallback(function (e) {
|
|
283
286
|
if (!draggable) return;
|
|
284
287
|
e.preventDefault();
|
|
285
|
-
onDragOver && onDragOver(e, nodeData);
|
|
288
|
+
onDragOver && onDragOver(e, nodeData, dragRef.current);
|
|
286
289
|
}, [onDragOver, nodeData, draggable]);
|
|
287
290
|
var handleDragLeave = React.useCallback(function (e) {
|
|
288
291
|
var _a;
|
|
@@ -300,7 +303,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
300
303
|
setForbiddenChildrenPointerEvents(true);
|
|
301
304
|
if (!((_a = dragRef.current) === null || _a === void 0 ? void 0 : _a.isEqualNode(e.target))) return;
|
|
302
305
|
setShowDragLine(true);
|
|
303
|
-
onDragEnter && onDragEnter(e, nodeData);
|
|
306
|
+
onDragEnter && onDragEnter(e, nodeData, dragRef.current);
|
|
304
307
|
}, [onDragEnter, nodeData, draggable]);
|
|
305
308
|
var handleDragEnd = React.useCallback(function (e) {
|
|
306
309
|
if (!draggable) return;
|
|
@@ -12,7 +12,8 @@ export declare const getExpand: (expandedKeys: string[], key: string) => boolean
|
|
|
12
12
|
export declare const getChecked: (checkedKeys: string[], key: string) => boolean;
|
|
13
13
|
export declare const getSelected: (selectedKeys: string[], key: string) => boolean;
|
|
14
14
|
export declare const getHalfChecked: (halfCheckedKeys: string[], key: string) => boolean;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const getAllFilterKeys: (data: any[], filterTreeNode: FunctionConstructor) => any[];
|
|
16
|
+
export declare const getFilterData: (data: any[], filterTreeNode: FunctionConstructor, filterValue: string) => any[];
|
|
16
17
|
export declare const getMaxLevel: (data: any[]) => number;
|
|
17
18
|
/**
|
|
18
19
|
*计算node的属性后返回新的 treedata
|
|
@@ -42,5 +43,6 @@ export declare const getDataCheckededStateStrictly: (checkedKeys: string[]) => {
|
|
|
42
43
|
};
|
|
43
44
|
export declare const delKey: (prevKeys: string[], delKeys: string[]) => never[] & string[];
|
|
44
45
|
export declare const getAllNodeKeys: (data: any[]) => string[];
|
|
45
|
-
export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys
|
|
46
|
+
export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, filterValue: string) => string[];
|
|
46
47
|
export declare const getExpandedKeys: (expandedKeys: string[], expandScrollkeys?: string[]) => string[];
|
|
48
|
+
export declare const calcDropPosition: (event: React.MouseEvent, dropNode: HTMLElement) => 0 | 1 | -1;
|
|
@@ -4,10 +4,11 @@ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable
|
|
|
4
4
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
5
5
|
import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
|
|
6
6
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
7
|
-
import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
|
|
8
7
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
9
|
-
import
|
|
8
|
+
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
10
9
|
import _Set from "@babel/runtime-corejs3/core-js-stable/set";
|
|
10
|
+
import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
|
|
11
|
+
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
|
11
12
|
import _spliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/splice";
|
|
12
13
|
|
|
13
14
|
var __rest = this && this.__rest || function (s, e) {
|
|
@@ -22,6 +23,8 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
22
23
|
}
|
|
23
24
|
return t;
|
|
24
25
|
};
|
|
26
|
+
|
|
27
|
+
var DRAG_OFFSET = 0.3;
|
|
25
28
|
/**
|
|
26
29
|
* 打平所有数组,并添加pos位置信息,
|
|
27
30
|
* 方便根据expandKeys等计算节点的expand,checkedKeys计算节点checked状态
|
|
@@ -31,7 +34,6 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
31
34
|
* @param pos
|
|
32
35
|
*/
|
|
33
36
|
|
|
34
|
-
|
|
35
37
|
export var flattenAll = function flattenAll(treeData) {
|
|
36
38
|
var newTreeData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
37
39
|
var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
@@ -94,11 +96,37 @@ var isAllParentExpand = function isAllParentExpand(data, pos) {
|
|
|
94
96
|
return expand;
|
|
95
97
|
};
|
|
96
98
|
|
|
97
|
-
export var
|
|
99
|
+
export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode) {
|
|
100
|
+
var filterData = _filterInstanceProperty(data).call(data, function (item) {
|
|
101
|
+
return filterTreeNode === null || filterTreeNode === void 0 ? void 0 : filterTreeNode(item);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
var filterKeys = getAllNodeKeys(filterData);
|
|
105
|
+
var allFilterKeys = [];
|
|
106
|
+
|
|
107
|
+
_mapInstanceProperty(filterKeys).call(filterKeys, function (key) {
|
|
108
|
+
var _context2;
|
|
109
|
+
|
|
110
|
+
return allFilterKeys.push.apply(allFilterKeys, _concatInstanceProperty(_context2 = _toConsumableArray(getAllParentKeys(data, key))).call(_context2, [key]));
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
return _toConsumableArray(new _Set(allFilterKeys));
|
|
114
|
+
};
|
|
115
|
+
export var getFilterData = function getFilterData(data, filterTreeNode, filterValue) {
|
|
116
|
+
var filterData = data;
|
|
117
|
+
|
|
118
|
+
if (typeof filterTreeNode === 'function' && filterValue) {
|
|
119
|
+
filterData = _filterInstanceProperty(filterData).call(filterData, function (item) {
|
|
120
|
+
var _context3;
|
|
121
|
+
|
|
122
|
+
return _includesInstanceProperty(_context3 = getAllFilterKeys(filterData, filterTreeNode)).call(_context3, item.key);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
98
126
|
var newData = [];
|
|
99
|
-
|
|
127
|
+
filterData.forEach(function (item) {
|
|
100
128
|
var pos = item.pos;
|
|
101
|
-
var parentExpand = isAllParentExpand(
|
|
129
|
+
var parentExpand = isAllParentExpand(filterData, pos);
|
|
102
130
|
|
|
103
131
|
if (parentExpand) {
|
|
104
132
|
newData.push(item);
|
|
@@ -230,11 +258,11 @@ export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys
|
|
|
230
258
|
return newTreeData;
|
|
231
259
|
};
|
|
232
260
|
export var addKeys = function addKeys() {
|
|
233
|
-
var
|
|
261
|
+
var _context4;
|
|
234
262
|
|
|
235
263
|
var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
236
264
|
var newKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
237
|
-
return _Array$from(new _Set(_concatInstanceProperty(
|
|
265
|
+
return _Array$from(new _Set(_concatInstanceProperty(_context4 = []).call(_context4, _toConsumableArray(prevKeys), _toConsumableArray(newKeys))));
|
|
238
266
|
};
|
|
239
267
|
export var getAllParentKeys = function getAllParentKeys(data) {
|
|
240
268
|
var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
@@ -287,14 +315,14 @@ export var getPos = function getPos(data, key) {
|
|
|
287
315
|
return node === null || node === void 0 ? void 0 : node.pos;
|
|
288
316
|
};
|
|
289
317
|
export var getInitCheckedKeys = function getInitCheckedKeys(data, keys) {
|
|
290
|
-
var
|
|
318
|
+
var _context5;
|
|
291
319
|
|
|
292
320
|
var checkedKeys = [];
|
|
293
321
|
keys.forEach(function (item) {
|
|
294
322
|
var pos = getPos(data, item);
|
|
295
323
|
checkedKeys.push.apply(checkedKeys, _toConsumableArray(getAllChildKeys(data, pos)));
|
|
296
324
|
});
|
|
297
|
-
return _Array$from(new _Set(_concatInstanceProperty(
|
|
325
|
+
return _Array$from(new _Set(_concatInstanceProperty(_context5 = []).call(_context5, checkedKeys, _toConsumableArray(keys))));
|
|
298
326
|
};
|
|
299
327
|
export var getInitCheckededState = function getInitCheckededState(data) {
|
|
300
328
|
var checkedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -468,6 +496,8 @@ var getRootKeys = function getRootKeys(data) {
|
|
|
468
496
|
|
|
469
497
|
export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent) {
|
|
470
498
|
var expandScrollkeys = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];
|
|
499
|
+
var filterTreeNode = arguments.length > 7 ? arguments[7] : undefined;
|
|
500
|
+
var filterValue = arguments.length > 8 ? arguments[8] : undefined;
|
|
471
501
|
var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : _concatInstanceProperty(expandedKeys).call(expandedKeys, expandScrollkeys)) || (defaultExpandedKeys === null || defaultExpandedKeys === void 0 ? void 0 : _concatInstanceProperty(defaultExpandedKeys).call(defaultExpandedKeys, expandScrollkeys)) || [];
|
|
472
502
|
|
|
473
503
|
if (defaultExpandAll) {
|
|
@@ -490,10 +520,34 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
|
|
|
490
520
|
}
|
|
491
521
|
}
|
|
492
522
|
|
|
523
|
+
if (typeof filterTreeNode === 'function' && filterValue) {
|
|
524
|
+
var _context6;
|
|
525
|
+
|
|
526
|
+
keys = _concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(keys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode)));
|
|
527
|
+
}
|
|
528
|
+
|
|
493
529
|
return _Array$from(new _Set(_toConsumableArray(keys)));
|
|
494
530
|
};
|
|
495
531
|
export var getExpandedKeys = function getExpandedKeys(expandedKeys) {
|
|
496
532
|
var expandScrollkeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
497
533
|
var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : _concatInstanceProperty(expandedKeys).call(expandedKeys, expandScrollkeys)) || [];
|
|
498
534
|
return _Array$from(new _Set(_toConsumableArray(keys)));
|
|
535
|
+
};
|
|
536
|
+
export var calcDropPosition = function calcDropPosition(event, dropNode) {
|
|
537
|
+
var clientY = event.clientY;
|
|
538
|
+
|
|
539
|
+
var _dropNode$getBounding = dropNode.getBoundingClientRect(),
|
|
540
|
+
top = _dropNode$getBounding.top,
|
|
541
|
+
bottom = _dropNode$getBounding.bottom,
|
|
542
|
+
height = _dropNode$getBounding.height;
|
|
543
|
+
|
|
544
|
+
if (clientY <= top + height * DRAG_OFFSET) {
|
|
545
|
+
return -1;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
if (clientY >= bottom - height * DRAG_OFFSET) {
|
|
549
|
+
return 1;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
return 0;
|
|
499
553
|
};
|
|
@@ -65,12 +65,6 @@ var AnchorLink = function AnchorLink(props) {
|
|
|
65
65
|
}, [href, registerLink, prevHref]);
|
|
66
66
|
|
|
67
67
|
var handleClick = function handleClick(e) {
|
|
68
|
-
var anchorElement = document.getElementById(href.replace('#', ''));
|
|
69
|
-
|
|
70
|
-
if (anchorElement) {
|
|
71
|
-
anchorElement.scrollIntoView();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
68
|
onClick === null || onClick === void 0 ? void 0 : onClick(e, {
|
|
75
69
|
title: title,
|
|
76
70
|
href: href
|
package/lib/anchor/anchor.js
CHANGED
|
@@ -82,6 +82,85 @@ function getOffsetTop(element, container) {
|
|
|
82
82
|
return rect.top;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
function isWindow(obj) {
|
|
86
|
+
return obj !== null && obj !== undefined && obj === obj.window;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function getScroll(target, top) {
|
|
90
|
+
var _a;
|
|
91
|
+
|
|
92
|
+
if (typeof window === 'undefined') {
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var method = top ? 'scrollTop' : 'scrollLeft';
|
|
97
|
+
var result = 0;
|
|
98
|
+
|
|
99
|
+
if (isWindow(target)) {
|
|
100
|
+
result = target[top ? 'pageYOffset' : 'pageXOffset'];
|
|
101
|
+
} else if (target instanceof Document) {
|
|
102
|
+
result = target.documentElement[method];
|
|
103
|
+
} else if (target) {
|
|
104
|
+
result = target[method];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (target && !isWindow(target) && typeof result !== 'number') {
|
|
108
|
+
result = (_a = (target.ownerDocument || target).documentElement) === null || _a === void 0 ? void 0 : _a[method];
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function easeInOutCubic(t, b, c, d) {
|
|
115
|
+
var cc = c - b;
|
|
116
|
+
t /= d / 2;
|
|
117
|
+
|
|
118
|
+
if (t < 1) {
|
|
119
|
+
return cc / 2 * t * t * t + b;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return cc / 2 * ((t -= 2) * t * t + 2) + b;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function scrollTo(y) {
|
|
126
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
127
|
+
var _options$getContainer = options.getContainer,
|
|
128
|
+
getContainer = _options$getContainer === void 0 ? function () {
|
|
129
|
+
return window;
|
|
130
|
+
} : _options$getContainer,
|
|
131
|
+
callback = options.callback,
|
|
132
|
+
_options$duration = options.duration,
|
|
133
|
+
duration = _options$duration === void 0 ? 450 : _options$duration;
|
|
134
|
+
var container = getContainer();
|
|
135
|
+
var scrollTop = getScroll(container, true);
|
|
136
|
+
var startTime = Date.now();
|
|
137
|
+
|
|
138
|
+
var frameFunc = function frameFunc() {
|
|
139
|
+
var timestamp = Date.now();
|
|
140
|
+
var time = timestamp - startTime;
|
|
141
|
+
var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);
|
|
142
|
+
|
|
143
|
+
if (isWindow(container)) {
|
|
144
|
+
;
|
|
145
|
+
container.scrollTo(window.pageXOffset, nextScrollTop);
|
|
146
|
+
} else if (container instanceof HTMLDocument || container.constructor.name === 'HTMLDocument') {
|
|
147
|
+
;
|
|
148
|
+
container.documentElement.scrollTop = nextScrollTop;
|
|
149
|
+
} else {
|
|
150
|
+
;
|
|
151
|
+
container.scrollTop = nextScrollTop;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (time < duration) {
|
|
155
|
+
window.requestAnimationFrame(frameFunc);
|
|
156
|
+
} else if (typeof callback === 'function') {
|
|
157
|
+
callback();
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
window.requestAnimationFrame(frameFunc);
|
|
162
|
+
}
|
|
163
|
+
|
|
85
164
|
var InternalAnchor = function InternalAnchor(props, ref) {
|
|
86
165
|
var _a;
|
|
87
166
|
|
|
@@ -100,6 +179,7 @@ var InternalAnchor = function InternalAnchor(props, ref) {
|
|
|
100
179
|
getCurrentAnchor = anchorProps.getCurrentAnchor,
|
|
101
180
|
_anchorProps$offsetTo = anchorProps.offsetTop,
|
|
102
181
|
offsetTop = _anchorProps$offsetTo === void 0 ? 0 : _anchorProps$offsetTo,
|
|
182
|
+
targetOffset = anchorProps.targetOffset,
|
|
103
183
|
getContainer = anchorProps.getContainer,
|
|
104
184
|
_anchorProps$bounds = anchorProps.bounds,
|
|
105
185
|
bounds = _anchorProps$bounds === void 0 ? 5 : _anchorProps$bounds,
|
|
@@ -312,6 +392,26 @@ var InternalAnchor = function InternalAnchor(props, ref) {
|
|
|
312
392
|
|
|
313
393
|
var handleScrollTo = function handleScrollTo(link) {
|
|
314
394
|
setCurrentActiveLink(link);
|
|
395
|
+
var container = getScrollContainer();
|
|
396
|
+
var scrollTop = getScroll(container, true);
|
|
397
|
+
var sharpLinkMatch = sharpMatcherRegx.exec(link);
|
|
398
|
+
|
|
399
|
+
if (!sharpLinkMatch) {
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
var targetElement = document.getElementById(sharpLinkMatch[1]);
|
|
404
|
+
|
|
405
|
+
if (!targetElement) {
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
var eleOffsetTop = getOffsetTop(targetElement, container);
|
|
410
|
+
var y = scrollTop + eleOffsetTop;
|
|
411
|
+
y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;
|
|
412
|
+
scrollTo(y, {
|
|
413
|
+
getContainer: getScrollContainer
|
|
414
|
+
});
|
|
315
415
|
};
|
|
316
416
|
|
|
317
417
|
var setCurrentActiveLink = (0, _react.useCallback)(function (link) {
|
|
@@ -336,9 +436,9 @@ var InternalAnchor = function InternalAnchor(props, ref) {
|
|
|
336
436
|
}
|
|
337
437
|
}
|
|
338
438
|
|
|
339
|
-
var currentActiveLink = getAnchor(offsetTop || 0, bounds);
|
|
439
|
+
var currentActiveLink = getAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);
|
|
340
440
|
currentActiveLink && setCurrentActiveLink(currentActiveLink);
|
|
341
|
-
}, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef]);
|
|
441
|
+
}, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef, targetOffset]);
|
|
342
442
|
(0, _react.useEffect)(function () {
|
|
343
443
|
getScrollContainer().addEventListener('scroll', handleScroll);
|
|
344
444
|
handleScroll();
|