@kdcloudjs/kdesign 1.7.44 → 1.7.46

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 (44) hide show
  1. package/CHANGELOG.md +0 -1704
  2. package/dist/kdesign-complete.less +2 -1
  3. package/dist/kdesign.css +3 -2
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +418 -269
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +10 -10
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.js +1 -1
  11. package/es/city-picker/city-picker.js +13 -10
  12. package/es/config-provider/compDefaultProps.d.ts +1 -0
  13. package/es/config-provider/compDefaultProps.js +2 -1
  14. package/es/form/style/index.css +1 -0
  15. package/es/form/style/index.less +1 -0
  16. package/es/image-cropper/image-cropper.js +1 -1
  17. package/es/select/select.js +83 -17
  18. package/es/select/style/index.css +1 -1
  19. package/es/select/style/index.less +1 -1
  20. package/es/table/table.js +2 -2
  21. package/es/tree/tree.d.ts +1 -0
  22. package/es/tree/tree.js +5 -4
  23. package/es/tree/treeHooks.d.ts +1 -1
  24. package/es/tree/treeHooks.js +3 -3
  25. package/es/tree/utils/treeUtils.d.ts +3 -3
  26. package/es/tree/utils/treeUtils.js +12 -4
  27. package/lib/_utils/usePopper.js +1 -1
  28. package/lib/city-picker/city-picker.js +13 -10
  29. package/lib/config-provider/compDefaultProps.d.ts +1 -0
  30. package/lib/config-provider/compDefaultProps.js +2 -1
  31. package/lib/form/style/index.css +1 -0
  32. package/lib/form/style/index.less +1 -0
  33. package/lib/image-cropper/image-cropper.js +1 -1
  34. package/lib/select/select.js +83 -17
  35. package/lib/select/style/index.css +1 -1
  36. package/lib/select/style/index.less +1 -1
  37. package/lib/table/table.js +2 -2
  38. package/lib/tree/tree.d.ts +1 -0
  39. package/lib/tree/tree.js +5 -4
  40. package/lib/tree/treeHooks.d.ts +1 -1
  41. package/lib/tree/treeHooks.js +3 -3
  42. package/lib/tree/utils/treeUtils.d.ts +3 -3
  43. package/lib/tree/utils/treeUtils.js +12 -4
  44. package/package.json +2 -2
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
5
+ var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
6
+ var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
7
+ var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
4
8
  var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
9
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
10
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
@@ -13,6 +17,7 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
13
17
  var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
14
18
  var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
15
19
  var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
20
+ var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
16
21
  var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
17
22
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
23
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
@@ -32,9 +37,12 @@ var _virtualList = _interopRequireDefault(require("../virtual-list"));
32
37
  var _KeyCode = _interopRequireDefault(require("../_utils/KeyCode"));
33
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
34
39
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
40
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
41
+ function _unsupportedIterableToArray(o, minLen) { var _context6; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context6 = Object.prototype.toString.call(o)).call(_context6, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
42
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
35
43
  var INPUT_MIN_WIDTH = 4; // 输入框最小宽度
36
44
  var InternalSelect = function InternalSelect(props, ref) {
37
- var _context, _classNames6, _classNames12, _context5;
45
+ var _context, _classNames5, _classNames6, _classNames12, _context5;
38
46
  var _useContext = (0, _react.useContext)(_ConfigContext.default),
39
47
  getPrefixCls = _useContext.getPrefixCls,
40
48
  prefixCls = _useContext.prefixCls,
@@ -133,14 +141,12 @@ var InternalSelect = function InternalSelect(props, ref) {
133
141
  // 选择器样式
134
142
  var selectCls = (0, _classnames.default)(selectPrefixCls, className, (0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-visible"), optionShow));
135
143
  var selectionCls = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-selector"), true));
136
- // 下拉列表框样式
137
- var dropDownCls = (0, _classnames.default)(dropdownClassName, (0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-dropdown"), true));
138
144
  // 下拉子项列表样式
139
145
  var dropContentCls = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-dropdown-scroll"), (isMultiple ? (realChildren === null || realChildren === void 0 ? void 0 : realChildren.length) > 8 : (realChildren === null || realChildren === void 0 ? void 0 : realChildren.length) > 10) || selectProps.dropdownRender));
140
146
  // 多选底部样式
141
147
  var multipleFooterCls = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(selectPrefixCls, "-multiple-footer"), true));
142
148
  // 多选,单选公共样式
143
- var commCls = (0, _classnames.default)((_classNames6 = {}, (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames6, (0, _concat.default)(_context = "".concat(selectPrefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-wrapper"), true), (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-show-search"), isShowSearch && focusd), (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-error"), status === 'error'), _classNames6));
149
+ var commCls = (0, _classnames.default)((_classNames5 = {}, (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames5, (0, _concat.default)(_context = "".concat(selectPrefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-wrapper"), true), (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-show-search"), isShowSearch && focusd), (0, _defineProperty2.default)(_classNames5, "".concat(selectPrefixCls, "-error"), status === 'error'), _classNames5));
144
150
  (0, _react.useEffect)(function () {
145
151
  if (typeof props.visible !== 'undefined') {
146
152
  setOptionShow(props.visible);
@@ -279,6 +285,8 @@ var InternalSelect = function InternalSelect(props, ref) {
279
285
  });
280
286
  return childrenList;
281
287
  }, [searchValue, realChildren, filterOption, optionFilterProp]);
288
+ // 下拉列表框样式
289
+ var dropDownCls = (0, _classnames.default)(dropdownClassName, (_classNames6 = {}, (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-dropdown"), true), (0, _defineProperty2.default)(_classNames6, "".concat(selectPrefixCls, "-dropdown-no-data"), filledOptions.length === 0), _classNames6));
282
290
  var getOptionLabel = (0, _react.useCallback)(function (obj) {
283
291
  var _a;
284
292
  var text = Object.prototype.hasOwnProperty.call(selectProps, 'options') && !Object.prototype.hasOwnProperty.call(props, 'optionLabelProp') ? 'label' : optionLabelProp;
@@ -388,14 +396,39 @@ var InternalSelect = function InternalSelect(props, ref) {
388
396
  setSearchValue('');
389
397
  onSelect && onSelect(key); // 下拉项被选中时调用,参数为选中项value或key
390
398
  };
399
+
400
+ var removeIntersection = function removeIntersection(selectedItems, filteredItems) {
401
+ var filteredValues = new _set.default((0, _map.default)(filteredItems).call(filteredItems, function (item) {
402
+ var _a;
403
+ return item.value || ((_a = item.props) === null || _a === void 0 ? void 0 : _a.value);
404
+ }));
405
+ var filteredSelectedItems = [];
406
+ var filteredSelectedValues = [];
407
+ var _iterator = _createForOfIteratorHelper(selectedItems),
408
+ _step;
409
+ try {
410
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
411
+ var item = _step.value;
412
+ if (!filteredValues.has(item.value)) {
413
+ filteredSelectedItems.push(item);
414
+ filteredSelectedValues.push(item.value);
415
+ }
416
+ }
417
+ } catch (err) {
418
+ _iterator.e(err);
419
+ } finally {
420
+ _iterator.f();
421
+ }
422
+ return [filteredSelectedValues, filteredSelectedItems];
423
+ };
391
424
  // 多选模式下选中所有 与清除所有 (可以优化)
392
- var handleSelectAll = function handleSelectAll() {
425
+ var handleSelectAll = function handleSelectAll(checked) {
393
426
  var _multipleRef$current3 = multipleRef.current,
394
427
  selectedVal = _multipleRef$current3.selectedVal,
395
428
  selectMulOpts = _multipleRef$current3.selectMulOpts;
396
429
  var newSelectedVal = (0, _toConsumableArray2.default)(selectedVal);
397
430
  var newSelectMulOpts = (0, _toConsumableArray2.default)(selectMulOpts);
398
- if ((filledOptions === null || filledOptions === void 0 ? void 0 : filledOptions.length) !== newSelectedVal.length) {
431
+ if (!checked) {
399
432
  (0, _map.default)(filledOptions).call(filledOptions, function (child) {
400
433
  var _ref = child.props || child,
401
434
  value = _ref.value;
@@ -414,12 +447,15 @@ var InternalSelect = function InternalSelect(props, ref) {
414
447
  setSearchValue('');
415
448
  }
416
449
  } else {
417
- newSelectedVal = [];
418
- newSelectMulOpts = [];
450
+ ;
451
+ var _removeIntersection = removeIntersection(newSelectMulOpts, filledOptions);
452
+ var _removeIntersection2 = (0, _slicedToArray2.default)(_removeIntersection, 2);
453
+ newSelectedVal = _removeIntersection2[0];
454
+ newSelectMulOpts = _removeIntersection2[1];
419
455
  if (typeof value === 'undefined') {
420
- multipleRef.current.selectedVal = [];
421
- multipleRef.current.selectMulOpts = [];
422
- setMulOptions([]);
456
+ multipleRef.current.selectedVal = newSelectedVal;
457
+ multipleRef.current.selectMulOpts = newSelectMulOpts;
458
+ setMulOptions((0, _toConsumableArray2.default)(newSelectMulOpts));
423
459
  }
424
460
  }
425
461
  onChange && onChange(labelInValue ? newSelectMulOpts : newSelectedVal, newSelectMulOpts);
@@ -540,6 +576,33 @@ var InternalSelect = function InternalSelect(props, ref) {
540
576
  }
541
577
  }, [isShowSearch, autoFocus, disabled]);
542
578
  var optionsListRef = _react.default.useRef(null);
579
+ var getCheckedState = function getCheckedState(selectedItems, filteredItems) {
580
+ var _a;
581
+ var valuesSet = new _set.default((0, _map.default)(selectedItems).call(selectedItems, function (item) {
582
+ return item.value;
583
+ }));
584
+ var number = 0;
585
+ var _iterator2 = _createForOfIteratorHelper(filteredItems),
586
+ _step2;
587
+ try {
588
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
589
+ var item = _step2.value;
590
+ if (valuesSet.has(item.value || ((_a = item.props) === null || _a === void 0 ? void 0 : _a.value))) {
591
+ number += 1;
592
+ }
593
+ }
594
+ } catch (err) {
595
+ _iterator2.e(err);
596
+ } finally {
597
+ _iterator2.f();
598
+ }
599
+ var checked = number > 0 && number === filteredItems.length;
600
+ var indeterminate = number > 0 && number < filteredItems.length;
601
+ return {
602
+ checked: checked,
603
+ indeterminate: indeterminate
604
+ };
605
+ };
543
606
  // 渲染下拉列表框
544
607
  var renderContent = function renderContent() {
545
608
  var dropdownRender = selectProps.dropdownRender,
@@ -579,25 +642,28 @@ var InternalSelect = function InternalSelect(props, ref) {
579
642
  height: '30px',
580
643
  background: 'none'
581
644
  };
582
- var indeterminate = mulOptions.length > 0 && mulOptions.length < filledOptions.length;
583
- var checked = mulOptions.length > 0 && mulOptions.length === filledOptions.length;
645
+ var _getCheckedState = getCheckedState(mulOptions, filledOptions),
646
+ checked = _getCheckedState.checked,
647
+ indeterminate = _getCheckedState.indeterminate;
584
648
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
585
649
  className: dropDownCls,
586
650
  style: dropdownStyle,
587
651
  ref: dropDownRef
588
- }, !dropdownRender && childrenToRender.length > 0 ? dropRender(eleOptionList, heightStyle) : null, renderNotContent(), /*#__PURE__*/_react.default.createElement("div", null, dropdownRender ? dropdownRender(dropRender(eleOptionList, heightStyle)) : null), isMultiple && realChildren.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
652
+ }, !dropdownRender && childrenToRender.length > 0 ? dropRender(eleOptionList, heightStyle) : null, renderNotContent(), /*#__PURE__*/_react.default.createElement("div", null, dropdownRender ? dropdownRender(dropRender(eleOptionList, heightStyle)) : null), isMultiple && filledOptions.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
589
653
  className: multipleFooterCls
590
654
  }, /*#__PURE__*/_react.default.createElement(_index.Checkbox, {
591
655
  style: checkboxStyle,
592
656
  checked: checked,
593
657
  indeterminate: indeterminate,
594
- onChange: handleSelectAll
658
+ onChange: function onChange() {
659
+ return handleSelectAll(checked);
660
+ }
595
661
  }, selectLangMsg === null || selectLangMsg === void 0 ? void 0 : selectLangMsg.selectAll), /*#__PURE__*/_react.default.createElement("span", {
596
662
  className: "".concat(selectPrefixCls, "-multiple-footer-hadSelected")
597
663
  }, locale.getLangMsg('Select', 'seleted', {
598
664
  size: /*#__PURE__*/_react.default.createElement("span", {
599
665
  className: "".concat(selectPrefixCls, "-multiple-footer-hadSelected-number")
600
- }, selectedVal.length)
666
+ }, selectedVal === null || selectedVal === void 0 ? void 0 : selectedVal.length)
601
667
  }))) : null));
602
668
  };
603
669
  // 处理多选tag
@@ -794,7 +860,7 @@ var InternalSelect = function InternalSelect(props, ref) {
794
860
  selectedVal = _multipleRef$current5.selectedVal,
795
861
  selectMulOpts = _multipleRef$current5.selectMulOpts;
796
862
  // isMultiple
797
- if (which === _KeyCode.default.BACKSPACE && !searchValue && isMultiple && selectedVal.length && selectMulOpts.length) {
863
+ if (which === _KeyCode.default.BACKSPACE && !searchValue && isMultiple && (selectedVal === null || selectedVal === void 0 ? void 0 : selectedVal.length) && selectMulOpts.length) {
798
864
  (0, _splice.default)(selectedVal).call(selectedVal, -1, 1);
799
865
  (0, _splice.default)(selectMulOpts).call(selectMulOpts, -1, 1);
800
866
  setMulOptions((0, _toConsumableArray2.default)(selectMulOpts));
@@ -399,7 +399,7 @@
399
399
  .kd-select-dropdown-search-hidden {
400
400
  display: none;
401
401
  }
402
- .kd-select-multiple-dropdown-panel .kd-select-dropdown {
402
+ .kd-select-multiple-dropdown-panel .kd-select-dropdown:not(.kd-select-dropdown-no-data) {
403
403
  padding-bottom: 0;
404
404
  }
405
405
  .kd-select-item {
@@ -173,7 +173,7 @@
173
173
  }
174
174
 
175
175
  &-multiple-dropdown-panel {
176
- .@{select-prefix-cls}-dropdown {
176
+ .@{select-prefix-cls}-dropdown:not(.@{select-prefix-cls}-dropdown-no-data) {
177
177
  padding-bottom: 0;
178
178
  }
179
179
  }
@@ -125,13 +125,13 @@ var Table = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
125
125
  if (typeof getRowProps === 'function') {
126
126
  pipeline.appendRowPropsGetter(getRowProps);
127
127
  } else {
128
- (0, _devwarning.default)(true, 'table', "parameter 'getRowProps' should be a function but here it is ".concat(getRowProps));
128
+ (0, _devwarning.default)(getRowProps !== undefined, 'table', "parameter 'getRowProps' should be a function but here it is ".concat(getRowProps));
129
129
  }
130
130
  if (typeof getTableProps === 'function') {
131
131
  var tableProps = getTableProps();
132
132
  pipeline.addTableProps(tableProps);
133
133
  } else {
134
- (0, _devwarning.default)(true, 'table', "parameter 'getTableProps' should be a function but here it is ".concat(getTableProps));
134
+ (0, _devwarning.default)(getTableProps !== undefined, 'table', "parameter 'getTableProps' should be a function but here it is ".concat(getTableProps));
135
135
  }
136
136
  return /*#__PURE__*/_react.default.createElement(_table.Table, (0, _extends2.default)({}, pipeline.getProps(), {
137
137
  className: tableCls,
@@ -43,6 +43,7 @@ export interface TreeProps {
43
43
  showIcon?: boolean;
44
44
  style?: React.CSSProperties;
45
45
  className?: string;
46
+ expandOnFilterNode?: boolean;
46
47
  }
47
48
  export declare type TreeNodeData = {
48
49
  checkable?: boolean;
package/lib/tree/tree.js CHANGED
@@ -94,7 +94,8 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
94
94
  loadData = TreeProps.loadData,
95
95
  notFoundContent = TreeProps.notFoundContent,
96
96
  showLine = TreeProps.showLine,
97
- others = __rest(TreeProps, ["prefixCls", "treeData", "virtual", "showIcon", "switcherIcon", "icon", "checkable", "checkStrictly", "disabled", "draggable", "scrollToKey", "expandedKeys", "checkedKeys", "defaultExpandRoot", "defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys", "defaultCheckedKeys", "defaultSelectedKeys", "height", "onCheck", "onExpand", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect", "selectedKeys", "setTreeNodeStyle", "setTreeNodeClassName", "estimatedItemSize", "style", "className", "filterTreeNode", "filterValue", "expandOnClickNode", "onlyExpandOnClickIcon", "loadData", "notFoundContent", "showLine"]);
97
+ expandOnFilterNode = TreeProps.expandOnFilterNode,
98
+ others = __rest(TreeProps, ["prefixCls", "treeData", "virtual", "showIcon", "switcherIcon", "icon", "checkable", "checkStrictly", "disabled", "draggable", "scrollToKey", "expandedKeys", "checkedKeys", "defaultExpandRoot", "defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys", "defaultCheckedKeys", "defaultSelectedKeys", "height", "onCheck", "onExpand", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect", "selectedKeys", "setTreeNodeStyle", "setTreeNodeClassName", "estimatedItemSize", "style", "className", "filterTreeNode", "filterValue", "expandOnClickNode", "onlyExpandOnClickIcon", "loadData", "notFoundContent", "showLine", "expandOnFilterNode"]);
98
99
  var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
99
100
  var treeNodeClassName = (0, _classnames.default)(className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(treePrefixCls), true), (0, _defineProperty2.default)(_classNames, "".concat(treePrefixCls, "-show-line"), showLine), _classNames));
100
101
  var treeRootClassName = "".concat(treePrefixCls, "-root");
@@ -154,7 +155,7 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
154
155
  setSearchStatus('NONE');
155
156
  }
156
157
  }, [filterValue]);
157
- var _useExpand = (0, _treeHooks.useExpand)(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue),
158
+ var _useExpand = (0, _treeHooks.useExpand)(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue, expandOnFilterNode),
158
159
  _useExpand2 = (0, _slicedToArray2.default)(_useExpand, 2),
159
160
  expandedKeys = _useExpand2[0],
160
161
  setExpandedKeys = _useExpand2[1];
@@ -170,8 +171,8 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
170
171
  setCheckedKeys = _useChecked2[2],
171
172
  setHalfCheckedKeys = _useChecked2[3];
172
173
  var filterData = _react.default.useMemo(function () {
173
- return (0, _treeUtils.getFilterData)(spreadAttrData, filterTreeNode, isSearching, posData, keysData);
174
- }, [spreadAttrData, isSearching, posData, keysData, filterValue]);
174
+ return (0, _treeUtils.getFilterData)(spreadAttrData, filterTreeNode, isSearching, posData, keysData, expandOnFilterNode);
175
+ }, [spreadAttrData, isSearching, posData, keysData, filterValue, expandOnFilterNode]);
175
176
  (0, _react.useEffect)(function () {
176
177
  var _a, _b;
177
178
  if (typeof scrollKey === 'undefined') {
@@ -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, 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, searchStatus: SearchStatus, filterValue: string) => 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, isSearching: boolean, keysData: KeysDataType, searchStatus: SearchStatus, filterValue: string, expandOnFilterNode: boolean) => 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[]>>];
@@ -75,15 +75,15 @@ var useChecked = function useChecked(checkStrictly, checkedKeysProps, defaultChe
75
75
  return [checkedKeys, halfCheckedKeys, setCheckedKeys, setHalfCheckedKeys];
76
76
  };
77
77
  exports.useChecked = useChecked;
78
- var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue) {
78
+ var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue, expandOnFilterNode) {
79
79
  var expandScrollkeys = [];
80
80
  if (scrollKey) {
81
81
  var pos = (0, _treeUtils.getPos)(flattenAllData, scrollKey);
82
82
  expandScrollkeys = (0, _treeUtils.getAllParentKeys)(flattenAllData, pos);
83
83
  }
84
84
  var initialExpandedKeys = _react.default.useMemo(function () {
85
- return (0, _treeUtils.getInitExpandedKeys)(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, isInit, searchStatus);
86
- }, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, isInit, searchStatus, filterValue]);
85
+ return (0, _treeUtils.getInitExpandedKeys)(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, isInit, searchStatus, expandOnFilterNode);
86
+ }, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, isInit, searchStatus, filterValue, expandOnFilterNode]);
87
87
  var _React$useState7 = _react.default.useState(initialExpandedKeys),
88
88
  _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
89
89
  expandedKeys = _React$useState8[0],
@@ -17,8 +17,8 @@ export declare const getChecked: (checkedKeys: string[], key: string) => boolean
17
17
  export declare const getSelected: (selectedKeys: string[], key: string) => boolean;
18
18
  export declare const getHalfChecked: (halfCheckedKeys: string[], key: string) => boolean;
19
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
+ export declare const getAllFilterKeys: (data: any[], filterTreeNode: FunctionConstructor, keysData: KeysDataType, expandOnFilterNode: boolean) => any;
21
+ export declare const getFilterData: (data: any[], filterTreeNode: FunctionConstructor, isSearching: boolean, posData: {} | undefined, keysData: {} | undefined, expandOnFilterNode: boolean) => any[];
22
22
  export declare const getMaxLevel: (data: any[]) => number;
23
23
  /**
24
24
  *计算node的属性后返回新的 treedata
@@ -60,6 +60,6 @@ export declare const getDataCheckededStateStrictly: (checkedKeys: string[]) => {
60
60
  };
61
61
  export declare const delKey: (prevKeys: string[], delKeys: string[]) => never[] & string[];
62
62
  export declare const getAllNodeKeys: (data: any[]) => 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, isInit: boolean, searchStatus: SearchStatus) => 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, isInit: boolean, searchStatus: SearchStatus, expandOnFilterNode: boolean) => string[];
64
64
  export declare const getExpandedKeys: (expandedKeys: string[], expandScrollkeys?: string[]) => string[];
65
65
  export declare const calcDropPosition: (event: React.MouseEvent, dropNode: HTMLElement) => 0 | 1 | -1;
@@ -136,7 +136,7 @@ function findfilterChildrenKeys(node, allFilterKeys) {
136
136
  }
137
137
  return nodes;
138
138
  }
139
- var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData) {
139
+ var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData, expandOnFilterNode) {
140
140
  var allFilterKeys = new _set.default();
141
141
  var filterExpandKeys = new _set.default();
142
142
  var filterKeys = (0, _filter.default)(data).call(data, function (item) {
@@ -146,10 +146,15 @@ var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData)
146
146
  findfilterChildrenKeys(item, allFilterKeys);
147
147
  });
148
148
  filterKeys.forEach(function (item) {
149
+ var firstIteration = true;
149
150
  var node = (0, _extends2.default)({}, item);
150
151
  while (node) {
151
152
  allFilterKeys.add(node.key);
152
- filterExpandKeys.add(node.key);
153
+ // expandOnFilterNode为true时,不将filterKeys中的节点添加到filterExpandKeys
154
+ if (!expandOnFilterNode || !firstIteration) {
155
+ filterExpandKeys.add(node.key);
156
+ }
157
+ firstIteration = false;
153
158
  node = (keysData === null || keysData === void 0 ? void 0 : keysData[node === null || node === void 0 ? void 0 : node.parentKey]) || null;
154
159
  }
155
160
  });
@@ -162,10 +167,11 @@ exports.getAllFilterKeys = getAllFilterKeys;
162
167
  var getFilterData = function getFilterData(data, filterTreeNode, isSearching) {
163
168
  var posData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
164
169
  var keysData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
170
+ var expandOnFilterNode = arguments.length > 5 ? arguments[5] : undefined;
165
171
  var filterData = data;
166
172
  var allFilterKeys = null;
167
173
  if (isSearching) {
168
- allFilterKeys = getAllFilterKeys(filterData, filterTreeNode, keysData).allFilterKeys;
174
+ allFilterKeys = getAllFilterKeys(filterData, filterTreeNode, keysData, expandOnFilterNode).allFilterKeys;
169
175
  filterData = (0, _filter.default)(filterData).call(filterData, function (item) {
170
176
  return (0, _includes.default)(allFilterKeys).call(allFilterKeys, item.key);
171
177
  });
@@ -494,6 +500,7 @@ function getAllCheckedKeys(key, checked, checkedKeys, keysNodeProps, halfChecked
494
500
  halfCheckedKeysSet.delete(key);
495
501
  childKeys.forEach(function (v) {
496
502
  allKeys.add(v);
503
+ halfCheckedKeysSet.delete(v);
497
504
  });
498
505
  } else {
499
506
  halfCheckedKeysSet.delete(key);
@@ -619,6 +626,7 @@ var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys, defau
619
626
  var keysData = arguments.length > 9 ? arguments[9] : undefined;
620
627
  var isInit = arguments.length > 10 ? arguments[10] : undefined;
621
628
  var searchStatus = arguments.length > 11 ? arguments[11] : undefined;
629
+ var expandOnFilterNode = arguments.length > 12 ? arguments[12] : undefined;
622
630
  var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : (0, _concat.default)(expandedKeys).call(expandedKeys, expandScrollkeys)) || (defaultExpandedKeys === null || defaultExpandedKeys === void 0 ? void 0 : (0, _concat.default)(defaultExpandedKeys).call(defaultExpandedKeys, expandScrollkeys)) || [];
623
631
  if (isInit) {
624
632
  if (defaultExpandAll) {
@@ -640,7 +648,7 @@ var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys, defau
640
648
  }
641
649
  }
642
650
  if (isSearching && searchStatus === 'SEARCH_START') {
643
- keys = (0, _toConsumableArray2.default)(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys);
651
+ keys = (0, _toConsumableArray2.default)(getAllFilterKeys(data, filterTreeNode, keysData, expandOnFilterNode).filterExpandKeys);
644
652
  }
645
653
  return keys;
646
654
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/kdesign",
3
- "version": "1.7.44",
3
+ "version": "1.7.46",
4
4
  "description": "KDesign 金蝶前端react 组件库",
5
5
  "title": "kdesign",
6
6
  "keywords": [
@@ -78,7 +78,7 @@
78
78
  "@babel/runtime-corejs3": "^7.11.2",
79
79
  "@babel/standalone": "^7.14.3",
80
80
  "@kdcloudjs/kdesign-icons": "^1.0.0",
81
- "@kdcloudjs/table": "1.2.0-canary.10",
81
+ "@kdcloudjs/table": "1.2.0-canary.12",
82
82
  "@popperjs/core": "^2.5.4",
83
83
  "@types/js-cookie": "^3.0.3",
84
84
  "async-validator": "^3.5.1",