@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.
Files changed (98) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/kdesign-complete.less +307 -239
  3. package/dist/kdesign.css +77 -5
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +950 -347
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +4 -4
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.d.ts +1 -0
  11. package/es/_utils/usePopper.js +3 -1
  12. package/es/button/button.js +1 -1
  13. package/es/button/style/index.css +3 -0
  14. package/es/button/style/index.less +4 -0
  15. package/es/button/style/token.less +1 -0
  16. package/es/carousel/carousel.d.ts +1 -0
  17. package/es/carousel/carousel.js +66 -3
  18. package/es/carousel/style/index.css +39 -0
  19. package/es/carousel/style/index.less +40 -0
  20. package/es/carousel/style/token.less +2 -0
  21. package/es/config-provider/compDefaultProps.d.ts +1 -0
  22. package/es/config-provider/compDefaultProps.js +2 -1
  23. package/es/date-picker/range/input-range.js +1 -1
  24. package/es/date-picker/single/input-date.js +1 -1
  25. package/es/form/Field.js +7 -1
  26. package/es/form/FieldContext.js +1 -0
  27. package/es/form/hooks/useForm.js +14 -20
  28. package/es/form/interface.d.ts +1 -0
  29. package/es/image/preview.d.ts +1 -0
  30. package/es/image/preview.js +31 -6
  31. package/es/input/style/index.css +4 -3
  32. package/es/input/style/index.less +230 -227
  33. package/es/input/style/token.less +11 -12
  34. package/es/modal/modal.js +4 -8
  35. package/es/modal/style/index.css +11 -0
  36. package/es/modal/style/index.less +10 -0
  37. package/es/select/select.js +15 -11
  38. package/es/style/core/motion/other.less +9 -0
  39. package/es/style/icon/kdicon.css +3 -1
  40. package/es/style/icon/kdicon.woff +0 -0
  41. package/es/style/index.css +16 -0
  42. package/es/table/feature/useFooterDataSource.d.ts +3 -0
  43. package/es/table/feature/useFooterDataSource.js +11 -0
  44. package/es/table/interface.d.ts +2 -0
  45. package/es/table/table.js +10 -9
  46. package/es/tooltip/tooltip.d.ts +1 -1
  47. package/es/tooltip/tooltip.js +10 -2
  48. package/es/tree/tree.d.ts +8 -0
  49. package/es/tree/tree.js +46 -17
  50. package/es/tree/treeHooks.d.ts +3 -3
  51. package/es/tree/treeHooks.js +9 -9
  52. package/es/tree/utils/treeUtils.d.ts +20 -6
  53. package/es/tree/utils/treeUtils.js +222 -40
  54. package/lib/_utils/usePopper.d.ts +1 -0
  55. package/lib/_utils/usePopper.js +3 -1
  56. package/lib/button/button.js +1 -1
  57. package/lib/button/style/index.css +3 -0
  58. package/lib/button/style/index.less +4 -0
  59. package/lib/button/style/token.less +1 -0
  60. package/lib/carousel/carousel.d.ts +1 -0
  61. package/lib/carousel/carousel.js +69 -2
  62. package/lib/carousel/style/index.css +39 -0
  63. package/lib/carousel/style/index.less +40 -0
  64. package/lib/carousel/style/token.less +2 -0
  65. package/lib/config-provider/compDefaultProps.d.ts +1 -0
  66. package/lib/config-provider/compDefaultProps.js +2 -1
  67. package/lib/date-picker/range/input-range.js +1 -1
  68. package/lib/date-picker/single/input-date.js +1 -1
  69. package/lib/form/Field.js +7 -1
  70. package/lib/form/FieldContext.js +1 -0
  71. package/lib/form/hooks/useForm.js +13 -20
  72. package/lib/form/interface.d.ts +1 -0
  73. package/lib/image/preview.d.ts +1 -0
  74. package/lib/image/preview.js +31 -6
  75. package/lib/input/style/index.css +4 -3
  76. package/lib/input/style/index.less +230 -227
  77. package/lib/input/style/token.less +11 -12
  78. package/lib/modal/modal.js +4 -8
  79. package/lib/modal/style/index.css +11 -0
  80. package/lib/modal/style/index.less +10 -0
  81. package/lib/select/select.js +15 -14
  82. package/lib/style/core/motion/other.less +9 -0
  83. package/lib/style/icon/kdicon.css +3 -1
  84. package/lib/style/icon/kdicon.woff +0 -0
  85. package/lib/style/index.css +16 -0
  86. package/lib/table/feature/useFooterDataSource.d.ts +3 -0
  87. package/lib/table/feature/useFooterDataSource.js +19 -0
  88. package/lib/table/interface.d.ts +2 -0
  89. package/lib/table/table.js +11 -9
  90. package/lib/tooltip/tooltip.d.ts +1 -1
  91. package/lib/tooltip/tooltip.js +16 -5
  92. package/lib/tree/tree.d.ts +8 -0
  93. package/lib/tree/tree.js +45 -16
  94. package/lib/tree/treeHooks.d.ts +3 -3
  95. package/lib/tree/treeHooks.js +8 -8
  96. package/lib/tree/utils/treeUtils.d.ts +20 -6
  97. package/lib/tree/utils/treeUtils.js +234 -39
  98. package/package.json +1 -1
@@ -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 = React.useRef();
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 = React.useRef(null);
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
- React.useEffect(function () {
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 (!optionShow) {
221
+ if (optionShow) {
222
222
  var onDropdownVisibleChange = selectProps.onDropdownVisibleChange;
223
- onDropdownVisibleChange && onDropdownVisibleChange(!optionShow);
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: handleRemove,
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
- props.visible === undefined && setOptionShow(visible);
743
- onVisibleChange && onVisibleChange(visible);
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);
@@ -123,4 +123,13 @@
123
123
  transform: translateY(-15px) scale(0.8);
124
124
  opacity: 0;
125
125
  }
126
+ }
127
+
128
+ @keyframes kdModalEffect {
129
+ 0% {
130
+ opacity: 0;
131
+ }
132
+ 100% {
133
+ opacity: 1;
134
+ }
126
135
  }
@@ -1,6 +1,6 @@
1
1
  @font-face {
2
2
  font-family: "kdicon";
3
- src: url("kdicon.woff?t=1654677347390") format("woff");
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
@@ -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,3 @@
1
+ import { TablePipeline } from '../interface';
2
+ declare function useFooterDataSource(pipeline: TablePipeline, footerDataSource: any[] | undefined): void;
3
+ export default useFooterDataSource;
@@ -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;
@@ -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
- if (footerDataSource) {
75
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
76
- // @ts-ignore
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 */
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { PopperProps } from '../_utils/usePopper';
3
3
  export declare type RenderFunction = () => React.ReactNode;
4
4
  export interface TooltipProps extends PopperProps {
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/extends";
2
- import * as React from 'react';
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, getDataCheckededState, getDataCheckededStateStrictly, getAllChildKeys, getPos, getSelected, calcDropPosition } from './utils/treeUtils';
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 spreadAttrData = React.useMemo(function () {
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, pos) {
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) : getDataCheckededState(spreadAttrData, newCheckedKeys, halfCheckedKeys, maxLevel, false, pos, value);
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,
@@ -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[], 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, 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[]>>];
@@ -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 { getInitCheckededState, getDataCheckededStateStrictly, getInitExpandedKeys, getPos, getAllParentKeys, getExpandedKeys } from './utils/treeUtils';
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, flattenAllData, maxLevel, checkable) {
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) : getInitCheckededState(flattenAllData, checkedKeysProps || defaultCheckedKeys, maxLevel, true);
45
- }, [flattenAllData, checkedKeysProps, defaultCheckedKeys, checkStrictly, maxLevel, checkable]);
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 const getAllFilterKeys: (data: any[], filterTreeNode: FunctionConstructor) => any[];
19
- export declare const getFilterData: (data: any[], filterTreeNode: FunctionConstructor, isSearching: boolean) => any[];
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[]) => any[];
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?: boolean) => {
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;