@kdcloudjs/kdesign 1.6.14 → 1.6.16
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 +53 -0
- package/dist/kdesign-complete.less +307 -239
- package/dist/kdesign.css +77 -5
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +950 -347
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +4 -4
- package/dist/kdesign.min.js +8 -8
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/usePopper.d.ts +1 -0
- package/es/_utils/usePopper.js +3 -1
- package/es/button/button.js +1 -1
- package/es/button/style/index.css +3 -0
- package/es/button/style/index.less +4 -0
- package/es/button/style/token.less +1 -0
- package/es/carousel/carousel.d.ts +1 -0
- package/es/carousel/carousel.js +66 -3
- package/es/carousel/style/index.css +39 -0
- package/es/carousel/style/index.less +40 -0
- package/es/carousel/style/token.less +2 -0
- package/es/config-provider/compDefaultProps.d.ts +1 -0
- package/es/config-provider/compDefaultProps.js +2 -1
- package/es/date-picker/range/input-range.js +1 -1
- package/es/date-picker/single/input-date.js +1 -1
- package/es/form/Field.js +7 -1
- package/es/form/FieldContext.js +1 -0
- package/es/form/hooks/useForm.js +14 -20
- package/es/form/interface.d.ts +1 -0
- package/es/image/preview.d.ts +1 -0
- package/es/image/preview.js +31 -6
- package/es/input/style/index.css +4 -3
- package/es/input/style/index.less +230 -227
- package/es/input/style/token.less +11 -12
- package/es/modal/modal.js +4 -8
- package/es/modal/style/index.css +11 -0
- package/es/modal/style/index.less +10 -0
- package/es/select/select.js +15 -11
- package/es/style/core/motion/other.less +9 -0
- package/es/style/icon/kdicon.css +3 -1
- package/es/style/icon/kdicon.woff +0 -0
- package/es/style/index.css +16 -0
- package/es/table/feature/useFooterDataSource.d.ts +3 -0
- package/es/table/feature/useFooterDataSource.js +11 -0
- package/es/table/interface.d.ts +2 -0
- package/es/table/table.js +10 -9
- package/es/tooltip/tooltip.d.ts +1 -1
- package/es/tooltip/tooltip.js +10 -2
- package/es/tree/tree.d.ts +8 -0
- package/es/tree/tree.js +46 -17
- package/es/tree/treeHooks.d.ts +3 -3
- package/es/tree/treeHooks.js +9 -9
- package/es/tree/utils/treeUtils.d.ts +20 -6
- package/es/tree/utils/treeUtils.js +222 -40
- package/lib/_utils/usePopper.d.ts +1 -0
- package/lib/_utils/usePopper.js +3 -1
- package/lib/button/button.js +1 -1
- package/lib/button/style/index.css +3 -0
- package/lib/button/style/index.less +4 -0
- package/lib/button/style/token.less +1 -0
- package/lib/carousel/carousel.d.ts +1 -0
- package/lib/carousel/carousel.js +69 -2
- package/lib/carousel/style/index.css +39 -0
- package/lib/carousel/style/index.less +40 -0
- package/lib/carousel/style/token.less +2 -0
- package/lib/config-provider/compDefaultProps.d.ts +1 -0
- package/lib/config-provider/compDefaultProps.js +2 -1
- package/lib/date-picker/range/input-range.js +1 -1
- package/lib/date-picker/single/input-date.js +1 -1
- package/lib/form/Field.js +7 -1
- package/lib/form/FieldContext.js +1 -0
- package/lib/form/hooks/useForm.js +13 -20
- package/lib/form/interface.d.ts +1 -0
- package/lib/image/preview.d.ts +1 -0
- package/lib/image/preview.js +31 -6
- package/lib/input/style/index.css +4 -3
- package/lib/input/style/index.less +230 -227
- package/lib/input/style/token.less +11 -12
- package/lib/modal/modal.js +4 -8
- package/lib/modal/style/index.css +11 -0
- package/lib/modal/style/index.less +10 -0
- package/lib/select/select.js +15 -14
- package/lib/style/core/motion/other.less +9 -0
- package/lib/style/icon/kdicon.css +3 -1
- package/lib/style/icon/kdicon.woff +0 -0
- package/lib/style/index.css +16 -0
- package/lib/table/feature/useFooterDataSource.d.ts +3 -0
- package/lib/table/feature/useFooterDataSource.js +19 -0
- package/lib/table/interface.d.ts +2 -0
- package/lib/table/table.js +11 -9
- package/lib/tooltip/tooltip.d.ts +1 -1
- package/lib/tooltip/tooltip.js +16 -5
- package/lib/tree/tree.d.ts +8 -0
- package/lib/tree/tree.js +45 -16
- package/lib/tree/treeHooks.d.ts +3 -3
- package/lib/tree/treeHooks.js +8 -8
- package/lib/tree/utils/treeUtils.d.ts +20 -6
- package/lib/tree/utils/treeUtils.js +234 -39
- package/package.json +1 -1
package/es/select/select.js
CHANGED
|
@@ -73,7 +73,7 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
73
73
|
|
|
74
74
|
var realChildren = Array.isArray(options) ? options : toArray(children); // options配置项和默认children
|
|
75
75
|
|
|
76
|
-
var innerRef =
|
|
76
|
+
var innerRef = useRef();
|
|
77
77
|
var selectRef = ref || innerRef;
|
|
78
78
|
var searchRef = useRef(null); // 搜索框ref
|
|
79
79
|
|
|
@@ -84,7 +84,7 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
84
84
|
selectMulOpts: []
|
|
85
85
|
}); // 多选ref已选中项
|
|
86
86
|
|
|
87
|
-
var measureRef =
|
|
87
|
+
var measureRef = useRef(null);
|
|
88
88
|
|
|
89
89
|
var _useState = useState([]),
|
|
90
90
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -127,7 +127,7 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
127
127
|
var multipleFooterCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-multiple-footer"), true)); // 多选,单选公共样式
|
|
128
128
|
|
|
129
129
|
var commCls = classNames((_classNames6 = {}, _defineProperty(_classNames6, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames6, _concatInstanceProperty(_context = "".concat(selectPrefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-wrapper"), true), _classNames6));
|
|
130
|
-
|
|
130
|
+
useEffect(function () {
|
|
131
131
|
setOptionShow(!!props.visible);
|
|
132
132
|
}, [props.visible]); // realchildren更新时数据处理---待解决
|
|
133
133
|
|
|
@@ -218,9 +218,9 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
218
218
|
var handleClick = function handleClick() {
|
|
219
219
|
if (disabled) return;
|
|
220
220
|
|
|
221
|
-
if (
|
|
221
|
+
if (optionShow) {
|
|
222
222
|
var onDropdownVisibleChange = selectProps.onDropdownVisibleChange;
|
|
223
|
-
onDropdownVisibleChange && onDropdownVisibleChange(
|
|
223
|
+
onDropdownVisibleChange && onDropdownVisibleChange(true);
|
|
224
224
|
}
|
|
225
225
|
};
|
|
226
226
|
|
|
@@ -464,9 +464,8 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
464
464
|
}; // 多选模式下清除某一项
|
|
465
465
|
|
|
466
466
|
|
|
467
|
-
var handleRemove = function handleRemove(e) {
|
|
467
|
+
var handleRemove = function handleRemove(e, tag) {
|
|
468
468
|
if (disabled) return;
|
|
469
|
-
var tag = e.currentTarget.parentNode.getAttribute('data-tag');
|
|
470
469
|
var _multipleRef$current4 = multipleRef.current,
|
|
471
470
|
selectedVal = _multipleRef$current4.selectedVal,
|
|
472
471
|
selectMulOpts = _multipleRef$current4.selectMulOpts;
|
|
@@ -670,7 +669,9 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
670
669
|
size: size,
|
|
671
670
|
closable: true,
|
|
672
671
|
disabled: disabled,
|
|
673
|
-
onClose:
|
|
672
|
+
onClose: function onClose(e) {
|
|
673
|
+
return handleRemove(e, value);
|
|
674
|
+
},
|
|
674
675
|
"data-tag": value
|
|
675
676
|
}, label));
|
|
676
677
|
}), maxTagCount && mulOptions.length > maxTagCount ? maxTagPlaceholder ? handleMaxTagHolder() : /*#__PURE__*/React.createElement("span", {
|
|
@@ -739,8 +740,10 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
739
740
|
};
|
|
740
741
|
|
|
741
742
|
var handleVisibleChange = function handleVisibleChange(visible) {
|
|
742
|
-
|
|
743
|
-
|
|
743
|
+
if (visible !== optionShow) {
|
|
744
|
+
props.visible === undefined && setOptionShow(visible);
|
|
745
|
+
onVisibleChange && onVisibleChange(visible);
|
|
746
|
+
}
|
|
744
747
|
};
|
|
745
748
|
|
|
746
749
|
var popperProps = _extends(_extends({}, selectProps), {
|
|
@@ -749,7 +752,8 @@ var InternalSelect = function InternalSelect(props, ref) {
|
|
|
749
752
|
popperStyle: catchStyle(),
|
|
750
753
|
defaultVisible: optionShow,
|
|
751
754
|
visible: optionShow,
|
|
752
|
-
onVisibleChange: handleVisibleChange
|
|
755
|
+
onVisibleChange: handleVisibleChange,
|
|
756
|
+
clickToClose: !isShowSearch
|
|
753
757
|
});
|
|
754
758
|
|
|
755
759
|
return usePopper(renderSelect(), renderContent(), popperProps);
|
package/es/style/icon/kdicon.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: "kdicon";
|
|
3
|
-
src: url("kdicon.woff?t=
|
|
3
|
+
src: url("kdicon.woff?t=1668600442688") format("woff")
|
|
4
4
|
}
|
|
5
5
|
.kdicon {
|
|
6
6
|
font-family: 'kdicon' !important;
|
|
@@ -24,8 +24,10 @@
|
|
|
24
24
|
.kdicon-analysis:before { content: "\e6ce"; }
|
|
25
25
|
.kdicon-arrow-down-solid:before { content: "\e656"; }
|
|
26
26
|
.kdicon-arrow-down:before { content: "\e627"; }
|
|
27
|
+
.kdicon-arrow-left-circle-solid:before { content: "\e720"; }
|
|
27
28
|
.kdicon-arrow-left-solid:before { content: "\e657"; }
|
|
28
29
|
.kdicon-arrow-left:before { content: "\e63f"; }
|
|
30
|
+
.kdicon-arrow-right-circle-solid:before { content: "\e71f"; }
|
|
29
31
|
.kdicon-arrow-right-solid:before { content: "\e655"; }
|
|
30
32
|
.kdicon-arrow-right:before { content: "\e62c"; }
|
|
31
33
|
.kdicon-arrow-up-solid:before { content: "\e654"; }
|
|
Binary file
|
package/es/style/index.css
CHANGED
|
@@ -383,6 +383,22 @@
|
|
|
383
383
|
opacity: 0;
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
|
+
@-webkit-keyframes kdModalEffect {
|
|
387
|
+
0% {
|
|
388
|
+
opacity: 0;
|
|
389
|
+
}
|
|
390
|
+
100% {
|
|
391
|
+
opacity: 1;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
@keyframes kdModalEffect {
|
|
395
|
+
0% {
|
|
396
|
+
opacity: 0;
|
|
397
|
+
}
|
|
398
|
+
100% {
|
|
399
|
+
opacity: 1;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
386
402
|
.top-active {
|
|
387
403
|
-webkit-animation-name: kdZoomBottomIn;
|
|
388
404
|
animation-name: kdZoomBottomIn;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { features } from '@kdcloudjs/table';
|
|
2
|
+
|
|
3
|
+
function useFooterDataSource(pipeline, footerDataSource) {
|
|
4
|
+
if (footerDataSource) {
|
|
5
|
+
pipeline.use(features.footerDataSource({
|
|
6
|
+
dataSource: footerDataSource
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default useFooterDataSource;
|
package/es/table/interface.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare type TableApi = {
|
|
|
14
14
|
getColumns: () => any[];
|
|
15
15
|
getDataSource: () => any[];
|
|
16
16
|
getFooterDataSource: () => any[];
|
|
17
|
+
clearRangeSelection: () => void;
|
|
17
18
|
};
|
|
18
19
|
export declare type TableInstance = {
|
|
19
20
|
api: TableApi;
|
|
@@ -44,6 +45,7 @@ export interface TableRowSelection {
|
|
|
44
45
|
column?: Partial<ArtColumnStaticPart>;
|
|
45
46
|
onChange?: (selectedRowKeys: string[], actionRowkey?: string, actionRowskeys?: string[], action?: string) => void;
|
|
46
47
|
isDisabled?(row: any, rowIndex: number): boolean;
|
|
48
|
+
highlightRowWhenSelected?: boolean;
|
|
47
49
|
}
|
|
48
50
|
export declare type TableRowDetail = RowDetailFeatureOptions;
|
|
49
51
|
export declare type TableFilter = FilterFeatureOptions;
|
package/es/table/table.js
CHANGED
|
@@ -20,6 +20,7 @@ import useContextMenu from './feature/contextMenu';
|
|
|
20
20
|
import useRangeSelection from './feature/useRangeSelection';
|
|
21
21
|
import useMergeCellHover from './feature/mergeCellHover';
|
|
22
22
|
import devWarning from '../_utils/devwarning';
|
|
23
|
+
import useFooterDataSource from './feature/useFooterDataSource';
|
|
23
24
|
var Table = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
24
25
|
var columns = props.columns,
|
|
25
26
|
dataSource = props.dataSource,
|
|
@@ -69,22 +70,21 @@ var Table = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
69
70
|
dataSource: dataSource
|
|
70
71
|
});
|
|
71
72
|
var pipelineRef = useRef(pipeline);
|
|
72
|
-
pipelineRef.current = pipeline;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
pipeline.footerDataSource(footerDataSource);
|
|
78
|
-
}
|
|
73
|
+
pipelineRef.current = pipeline; // if (footerDataSource) {
|
|
74
|
+
// // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
75
|
+
// // @ts-ignore
|
|
76
|
+
// pipeline.footerDataSource(footerDataSource)
|
|
77
|
+
// }
|
|
79
78
|
|
|
80
79
|
useImperativeHandle(ref, function () {
|
|
81
|
-
var _a, _b, _c;
|
|
80
|
+
var _a, _b, _c, _d;
|
|
82
81
|
|
|
83
82
|
return {
|
|
84
83
|
api: {
|
|
85
84
|
getColumns: (_a = pipelineRef.current.getColumns) === null || _a === void 0 ? void 0 : _a.bind(pipelineRef.current),
|
|
86
85
|
getDataSource: (_b = pipelineRef.current.getDataSource) === null || _b === void 0 ? void 0 : _b.bind(pipelineRef.current),
|
|
87
|
-
getFooterDataSource: (_c = pipelineRef.current.getFooterDataSource) === null || _c === void 0 ? void 0 : _c.bind(pipelineRef.current)
|
|
86
|
+
getFooterDataSource: (_c = pipelineRef.current.getFooterDataSource) === null || _c === void 0 ? void 0 : _c.bind(pipelineRef.current),
|
|
87
|
+
clearRangeSelection: (_d = pipelineRef.current.clearRangeSelection) === null || _d === void 0 ? void 0 : _d.bind(pipelineRef.current)
|
|
88
88
|
}
|
|
89
89
|
};
|
|
90
90
|
});
|
|
@@ -105,6 +105,7 @@ var Table = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
105
105
|
useContextMenu(pipeline, contextMenu);
|
|
106
106
|
useRangeSelection(pipeline, rangeSelection);
|
|
107
107
|
useMergeCellHover(pipeline);
|
|
108
|
+
useFooterDataSource(pipeline, footerDataSource);
|
|
108
109
|
/* -------------------------------------------------------------------------- */
|
|
109
110
|
|
|
110
111
|
/* after useTablePipeline, merge pipeline.getProps result */
|
package/es/tooltip/tooltip.d.ts
CHANGED
package/es/tooltip/tooltip.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
2
|
-
import
|
|
2
|
+
import React, { useRef } from 'react';
|
|
3
3
|
import { getCompProps } from '../_utils';
|
|
4
4
|
import { ConfigContext } from '../config-provider';
|
|
5
5
|
import usePopper from '../_utils/usePopper';
|
|
@@ -11,6 +11,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
var allProps = getCompProps('ToolTip', userDefaultProps, props);
|
|
14
|
+
var status = useRef();
|
|
14
15
|
var tip = allProps.tip,
|
|
15
16
|
children = allProps.children,
|
|
16
17
|
customPrefixcls = allProps.prefixCls; // className前缀
|
|
@@ -20,8 +21,15 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
20
21
|
ref: children.ref || ref
|
|
21
22
|
});
|
|
22
23
|
|
|
24
|
+
var onVisibleChange = function onVisibleChange(v) {
|
|
25
|
+
if (status.current === v) return;
|
|
26
|
+
status.current = v;
|
|
27
|
+
props.onVisibleChange && props.onVisibleChange(v);
|
|
28
|
+
};
|
|
29
|
+
|
|
23
30
|
var popperProps = _extends(_extends({}, allProps), {
|
|
24
|
-
prefixCls: prefixCls
|
|
31
|
+
prefixCls: prefixCls,
|
|
32
|
+
onVisibleChange: onVisibleChange
|
|
25
33
|
});
|
|
26
34
|
|
|
27
35
|
var tipPopper = typeof tip === 'function' ? tip() : tip;
|
package/es/tree/tree.d.ts
CHANGED
|
@@ -57,5 +57,13 @@ export declare type TreeNodeData = {
|
|
|
57
57
|
showIcon?: boolean;
|
|
58
58
|
selectable?: boolean;
|
|
59
59
|
};
|
|
60
|
+
export declare type KeysDataType = {
|
|
61
|
+
[key: string]: TreeNodeData & {
|
|
62
|
+
pathParentKeys: string[];
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
export declare type PosDataType = {
|
|
66
|
+
[key: string]: TreeNodeData;
|
|
67
|
+
};
|
|
60
68
|
declare const Tree: React.ForwardRefExoticComponent<TreeProps & React.RefAttributes<unknown>>;
|
|
61
69
|
export default Tree;
|
package/es/tree/tree.js
CHANGED
|
@@ -12,7 +12,7 @@ import cloneDeep from 'lodash/cloneDeep';
|
|
|
12
12
|
import ConfigContext from '../config-provider/ConfigContext';
|
|
13
13
|
import { getCompProps } from '../_utils';
|
|
14
14
|
import TreeNode from './treeNode';
|
|
15
|
-
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData,
|
|
15
|
+
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData, getAllCheckedKeys, getDataCheckededStateStrictly, getAllChildKeys, getPos, getSelected, calcDropPosition } from './utils/treeUtils';
|
|
16
16
|
import { useChecked, useExpand, usePlantomHeightEffect, useViewportHeight, useVisibleDataMemo, useScrollToKey, useSelect } from './treeHooks';
|
|
17
17
|
import isBoolean from 'lodash/isBoolean';
|
|
18
18
|
var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
@@ -79,14 +79,8 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
79
79
|
return flattenAll(treeData, []);
|
|
80
80
|
}, [treeData]),
|
|
81
81
|
flattenAllData = _React$useMemo.flattenAllData,
|
|
82
|
-
maxLevel = _React$useMemo.maxLevel
|
|
83
|
-
|
|
84
|
-
var _useChecked = useChecked(checkStrictly, checkedKeysProps, defaultCheckedKeys, flattenAllData, maxLevel, checkable),
|
|
85
|
-
_useChecked2 = _slicedToArray(_useChecked, 4),
|
|
86
|
-
checkedKeys = _useChecked2[0],
|
|
87
|
-
halfCheckedKeys = _useChecked2[1],
|
|
88
|
-
setCheckedKeys = _useChecked2[2],
|
|
89
|
-
setHalfCheckedKeys = _useChecked2[3];
|
|
82
|
+
maxLevel = _React$useMemo.maxLevel,
|
|
83
|
+
keysData = _React$useMemo.keysData;
|
|
90
84
|
|
|
91
85
|
var _React$useState = React.useState(scrollToKey),
|
|
92
86
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -136,21 +130,39 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
136
130
|
loadingKeys = _React$useState14[0],
|
|
137
131
|
setLoadingKeys = _React$useState14[1];
|
|
138
132
|
|
|
133
|
+
var _React$useState15 = React.useState([]),
|
|
134
|
+
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
135
|
+
searchExpandedKeys = _React$useState16[0],
|
|
136
|
+
setSearchExpandedKeys = _React$useState16[1];
|
|
137
|
+
|
|
139
138
|
var isSearching = React.useMemo(function () {
|
|
140
139
|
return typeof filterTreeNode === 'function' && filterValue;
|
|
141
140
|
}, [filterValue]);
|
|
141
|
+
useEffect(function () {
|
|
142
|
+
setSearchExpandedKeys([]);
|
|
143
|
+
}, [filterValue]);
|
|
142
144
|
|
|
143
|
-
var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching),
|
|
145
|
+
var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchExpandedKeys),
|
|
144
146
|
_useExpand2 = _slicedToArray(_useExpand, 2),
|
|
145
147
|
expandedKeys = _useExpand2[0],
|
|
146
148
|
setExpandedKeys = _useExpand2[1];
|
|
147
149
|
|
|
148
|
-
var
|
|
150
|
+
var _React$useMemo2 = React.useMemo(function () {
|
|
149
151
|
return getSpreadAttrData(flattenAllData, expandedKeys);
|
|
150
|
-
}, [flattenAllData, expandedKeys])
|
|
152
|
+
}, [flattenAllData, expandedKeys]),
|
|
153
|
+
spreadAttrData = _React$useMemo2.spreadAttrData,
|
|
154
|
+
posData = _React$useMemo2.posData;
|
|
155
|
+
|
|
156
|
+
var _useChecked = useChecked(checkStrictly, checkedKeysProps, defaultCheckedKeys, flattenAllData, maxLevel, checkable, keysData),
|
|
157
|
+
_useChecked2 = _slicedToArray(_useChecked, 4),
|
|
158
|
+
checkedKeys = _useChecked2[0],
|
|
159
|
+
halfCheckedKeys = _useChecked2[1],
|
|
160
|
+
setCheckedKeys = _useChecked2[2],
|
|
161
|
+
setHalfCheckedKeys = _useChecked2[3];
|
|
162
|
+
|
|
151
163
|
var filterData = React.useMemo(function () {
|
|
152
|
-
return getFilterData(spreadAttrData, filterTreeNode, isSearching);
|
|
153
|
-
}, [spreadAttrData, isSearching]);
|
|
164
|
+
return getFilterData(spreadAttrData, filterTreeNode, isSearching, posData, keysData);
|
|
165
|
+
}, [spreadAttrData, isSearching, posData, keysData]);
|
|
154
166
|
|
|
155
167
|
var _useViewportHeight = useViewportHeight(height, listRef),
|
|
156
168
|
_useViewportHeight2 = _slicedToArray(_useViewportHeight, 1),
|
|
@@ -225,6 +237,12 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
225
237
|
node: node,
|
|
226
238
|
expanded: expanded
|
|
227
239
|
});
|
|
240
|
+
|
|
241
|
+
if (isSearching) {
|
|
242
|
+
var newSearchExpandedKeys = expanded ? addKeys(searchExpandedKeys, [key]) : delKey(searchExpandedKeys, [key]);
|
|
243
|
+
setSearchExpandedKeys(newSearchExpandedKeys);
|
|
244
|
+
}
|
|
245
|
+
|
|
228
246
|
setScrollKey('');
|
|
229
247
|
setIsInit(false);
|
|
230
248
|
|
|
@@ -232,9 +250,17 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
232
250
|
handleNodeLoad(loadedKeys, loadingKeys, node);
|
|
233
251
|
}
|
|
234
252
|
}, [expandedKeys, onExpand, loadData, handleNodeLoad, loadedKeys, loadingKeys]);
|
|
235
|
-
var handleCheck = React.useCallback(function (key, value, node, event,
|
|
253
|
+
var handleCheck = React.useCallback(function (key, value, node, event, _pos) {
|
|
236
254
|
var newCheckedKeys = value ? addKeys(checkedKeys, [key]) : delKey(checkedKeys, [key]);
|
|
237
|
-
var checkState = checkStrictly ? getDataCheckededStateStrictly(newCheckedKeys) :
|
|
255
|
+
var checkState = checkStrictly ? getDataCheckededStateStrictly(newCheckedKeys) : getAllCheckedKeys(key, value, checkedKeys, keysData, halfCheckedKeys);
|
|
256
|
+
|
|
257
|
+
if (!('checkedKeys' in TreeProps)) {
|
|
258
|
+
setCheckedKeys(checkState.checkedKeys);
|
|
259
|
+
setHalfCheckedKeys(checkState.halfCheckedKeys);
|
|
260
|
+
} else {
|
|
261
|
+
setHalfCheckedKeys(checkState.halfCheckedKeys);
|
|
262
|
+
}
|
|
263
|
+
|
|
238
264
|
onCheck && onCheck(checkState.checkedKeys, {
|
|
239
265
|
event: event,
|
|
240
266
|
node: node,
|
|
@@ -389,7 +415,10 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
389
415
|
}, [scrollToKey]);
|
|
390
416
|
useEffect(function () {
|
|
391
417
|
setHalfCheckedKeys(halfCheckedKeys);
|
|
392
|
-
}, [halfCheckedKeys]);
|
|
418
|
+
}, [halfCheckedKeys, setHalfCheckedKeys]);
|
|
419
|
+
useEffect(function () {
|
|
420
|
+
setCheckedKeys(checkedKeys);
|
|
421
|
+
}, [checkedKeys, setCheckedKeys]);
|
|
393
422
|
return /*#__PURE__*/React.createElement("div", {
|
|
394
423
|
className: treeNodeClassName,
|
|
395
424
|
style: style,
|
package/es/tree/treeHooks.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { TreeNodeData } from './tree';
|
|
1
|
+
import { TreeNodeData, KeysDataType } from './tree';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export declare const useViewportHeight: (height: number, listRef: React.RefObject<HTMLElement>) => number[];
|
|
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
|
-
export declare const useChecked: (checkStrictly: boolean, checkedKeysProps: string[], defaultCheckedKeys: string[],
|
|
7
|
-
export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
|
|
6
|
+
export declare const useChecked: (checkStrictly: boolean, checkedKeysProps: string[], defaultCheckedKeys: string[], _flattenAllData: any[], _maxLevel: number, checkable: boolean, keysData: KeysDataType) => 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, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchExpandedKeys: 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
|
@@ -2,7 +2,7 @@ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
|
2
2
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
3
3
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
4
4
|
import React, { useEffect, useState } from 'react';
|
|
5
|
-
import {
|
|
5
|
+
import { getInitCheckededKeys, getDataCheckededStateStrictly, getInitExpandedKeys, getPos, getAllParentKeys, getExpandedKeys } from './utils/treeUtils';
|
|
6
6
|
export var useViewportHeight = function useViewportHeight(height, listRef) {
|
|
7
7
|
var _React$useState = React.useState(0),
|
|
8
8
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -35,14 +35,14 @@ export var usePlantomHeightEffect = function usePlantomHeightEffect(plantomRef,
|
|
|
35
35
|
}
|
|
36
36
|
}, [plantomRef, filterData, estimatedItemSize]);
|
|
37
37
|
};
|
|
38
|
-
export var useChecked = function useChecked(checkStrictly, checkedKeysProps, defaultCheckedKeys,
|
|
38
|
+
export var useChecked = function useChecked(checkStrictly, checkedKeysProps, defaultCheckedKeys, _flattenAllData, _maxLevel, checkable, keysData) {
|
|
39
39
|
var initialCheckedState = React.useMemo(function () {
|
|
40
40
|
if (!checkable) return {
|
|
41
41
|
checkedKeys: [],
|
|
42
42
|
halfCheckedKeys: []
|
|
43
43
|
};
|
|
44
|
-
return checkStrictly ? getDataCheckededStateStrictly(checkedKeysProps || defaultCheckedKeys) :
|
|
45
|
-
}, [
|
|
44
|
+
return checkStrictly ? getDataCheckededStateStrictly(checkedKeysProps || defaultCheckedKeys) : getInitCheckededKeys(checkedKeysProps || defaultCheckedKeys, keysData);
|
|
45
|
+
}, [checkable, checkStrictly, checkedKeysProps, defaultCheckedKeys, keysData]);
|
|
46
46
|
|
|
47
47
|
var _React$useState3 = React.useState(initialCheckedState.checkedKeys),
|
|
48
48
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
@@ -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, filterTreeNode, isSearching) {
|
|
67
|
+
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchExpandedKeys) {
|
|
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, filterTreeNode, isSearching);
|
|
77
|
-
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching]);
|
|
76
|
+
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, searchExpandedKeys);
|
|
77
|
+
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, searchExpandedKeys]);
|
|
78
78
|
var newExpandedKeys = React.useMemo(function () {
|
|
79
79
|
return getExpandedKeys(expandedKeysProps, expandScrollkeys);
|
|
80
80
|
}, [expandedKeysProps]);
|
|
@@ -85,9 +85,9 @@ export var useExpand = function useExpand(flattenAllData, expandedKeysProps, def
|
|
|
85
85
|
setExpandedKeys = _React$useState8[1];
|
|
86
86
|
|
|
87
87
|
React.useEffect(function () {
|
|
88
|
-
var keys = isInit ? initialExpandedKeys : newExpandedKeys;
|
|
88
|
+
var keys = isInit || isSearching ? initialExpandedKeys : newExpandedKeys;
|
|
89
89
|
setExpandedKeys(keys);
|
|
90
|
-
}, [newExpandedKeys, initialExpandedKeys]);
|
|
90
|
+
}, [newExpandedKeys, initialExpandedKeys, isSearching, isInit]);
|
|
91
91
|
return [expandedKeys, setExpandedKeys];
|
|
92
92
|
};
|
|
93
93
|
export var useScrollToKey = function useScrollToKey(scrollKey, index, estimatedItemSize, scrollRef, viewportHeight, treeNodePrefixCls) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TreeNodeData } from '../tree';
|
|
1
|
+
import { TreeNodeData, KeysDataType } from '../tree';
|
|
2
2
|
/**
|
|
3
3
|
* 打平所有数组,并添加pos位置信息,
|
|
4
4
|
* 方便根据expandKeys等计算节点的expand,checkedKeys计算节点checked状态
|
|
@@ -10,13 +10,15 @@ import { TreeNodeData } from '../tree';
|
|
|
10
10
|
export declare const flattenAll: (treeData: any[], newTreeData?: TreeNodeData[], level?: number, pos?: string | undefined) => {
|
|
11
11
|
flattenAllData: TreeNodeData[];
|
|
12
12
|
maxLevel: number;
|
|
13
|
+
keysData: KeysDataType;
|
|
13
14
|
};
|
|
14
15
|
export declare const getExpand: (expandedKeys: string[], key: string) => boolean;
|
|
15
16
|
export declare const getChecked: (checkedKeys: string[], key: string) => boolean;
|
|
16
17
|
export declare const getSelected: (selectedKeys: string[], key: string) => boolean;
|
|
17
18
|
export declare const getHalfChecked: (halfCheckedKeys: string[], key: string) => boolean;
|
|
18
|
-
export declare
|
|
19
|
-
export declare const
|
|
19
|
+
export declare function findfilterChildrenKeys(node: any, allFilterKeys: Set<any>): Set<string>;
|
|
20
|
+
export declare const getAllFilterKeys: (data: any[], filterTreeNode: FunctionConstructor, keysData: KeysDataType) => any;
|
|
21
|
+
export declare const getFilterData: (data: any[], filterTreeNode: FunctionConstructor, isSearching: boolean, posData?: {}, keysData?: {}) => any[];
|
|
20
22
|
export declare const getMaxLevel: (data: any[]) => number;
|
|
21
23
|
/**
|
|
22
24
|
*计算node的属性后返回新的 treedata
|
|
@@ -25,14 +27,26 @@ export declare const getMaxLevel: (data: any[]) => number;
|
|
|
25
27
|
* @param expandedKeys
|
|
26
28
|
* @param defaultExpandAll
|
|
27
29
|
*/
|
|
28
|
-
export declare const getSpreadAttrData: (treeData: any[], expandedKeys: string[]) =>
|
|
30
|
+
export declare const getSpreadAttrData: (treeData: any[], expandedKeys: string[]) => {
|
|
31
|
+
spreadAttrData: any[];
|
|
32
|
+
posData: any;
|
|
33
|
+
};
|
|
29
34
|
export declare const addKeys: (prevKeys?: string[], newKeys?: string[]) => string[];
|
|
30
35
|
export declare const getAllParentKeys: (data: any[], pos?: string) => string[];
|
|
31
36
|
export declare const getAllParentPos: (data: any[], pos?: string) => string[];
|
|
32
37
|
export declare const getAllChildKeys: (data: any[], pos?: string) => string[];
|
|
33
38
|
export declare const getPos: (data: any[], key: string) => any;
|
|
34
39
|
export declare const getInitCheckedKeys: (data: any[], keys: string[]) => any[];
|
|
35
|
-
export declare const getInitCheckededState: (data: any[], checkedKeys: string[] | undefined, maxLevel: number, init
|
|
40
|
+
export declare const getInitCheckededState: (data: any[], checkedKeys: string[] | undefined, maxLevel: number, init: boolean | undefined, posData: any, _keysData: KeysDataType) => {
|
|
41
|
+
checkedKeys: string[];
|
|
42
|
+
halfCheckedKeys: string[];
|
|
43
|
+
};
|
|
44
|
+
export declare function getChildNodeKeys(node: TreeNodeData, keysNodeProps: KeysDataType): Set<string>;
|
|
45
|
+
export declare const getInitCheckededKeys: (checkedKeys: string[] | undefined, keysNodeProps: KeysDataType) => {
|
|
46
|
+
checkedKeys: string[];
|
|
47
|
+
halfCheckedKeys: string[];
|
|
48
|
+
};
|
|
49
|
+
export declare function getAllCheckedKeys(key: string, checked: boolean, checkedKeys: string[], keysNodeProps: KeysDataType, halfCheckedKeys: string[]): {
|
|
36
50
|
checkedKeys: string[];
|
|
37
51
|
halfCheckedKeys: string[];
|
|
38
52
|
};
|
|
@@ -46,6 +60,6 @@ export declare const getDataCheckededStateStrictly: (checkedKeys: string[]) => {
|
|
|
46
60
|
};
|
|
47
61
|
export declare const delKey: (prevKeys: string[], delKeys: string[]) => never[] & string[];
|
|
48
62
|
export declare const getAllNodeKeys: (data: any[]) => string[];
|
|
49
|
-
export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean) => string[];
|
|
63
|
+
export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchExpandedKeys: string[]) => string[];
|
|
50
64
|
export declare const getExpandedKeys: (expandedKeys: string[], expandScrollkeys?: string[]) => string[];
|
|
51
65
|
export declare const calcDropPosition: (event: React.MouseEvent, dropNode: HTMLElement) => 0 | 1 | -1;
|