@kdcloudjs/kdesign 1.6.13 → 1.6.15

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 (104) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/kdesign-complete.less +326 -249
  3. package/dist/kdesign.css +88 -17
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +732 -399
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +4 -4
  8. package/dist/kdesign.min.js +5 -5
  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 +2 -0
  22. package/es/config-provider/compDefaultProps.js +4 -2
  23. package/es/date-picker/range-picker.js +6 -17
  24. package/es/date-picker/style/index.css +9 -9
  25. package/es/date-picker/style/index.less +1 -1
  26. package/es/date-picker/style/token.less +1 -1
  27. package/es/form/Field.js +67 -33
  28. package/es/form/FieldContext.js +1 -1
  29. package/es/form/hooks/useForm.js +29 -42
  30. package/es/form/interface.d.ts +7 -3
  31. package/es/icon/icon.js +23 -4
  32. package/es/image/preview.d.ts +1 -0
  33. package/es/image/preview.js +31 -6
  34. package/es/input/style/index.css +4 -3
  35. package/es/input/style/index.less +230 -227
  36. package/es/input/style/token.less +11 -12
  37. package/es/modal/modal.js +4 -8
  38. package/es/modal/style/index.css +7 -0
  39. package/es/modal/style/index.less +8 -0
  40. package/es/select/select.js +11 -8
  41. package/es/select/style/index.css +6 -3
  42. package/es/select/style/index.less +9 -3
  43. package/es/select/style/token.less +10 -5
  44. package/es/style/core/motion/other.less +9 -0
  45. package/es/style/icon/kdicon.css +3 -1
  46. package/es/style/icon/kdicon.woff +0 -0
  47. package/es/style/index.css +16 -0
  48. package/es/table/interface.d.ts +1 -0
  49. package/es/tooltip/tooltip.d.ts +1 -1
  50. package/es/tooltip/tooltip.js +9 -2
  51. package/es/tree/tree.d.ts +8 -0
  52. package/es/tree/tree.js +32 -17
  53. package/es/tree/treeHooks.d.ts +3 -3
  54. package/es/tree/treeHooks.js +7 -7
  55. package/es/tree/utils/treeUtils.d.ts +19 -6
  56. package/es/tree/utils/treeUtils.js +183 -33
  57. package/lib/_utils/usePopper.d.ts +1 -0
  58. package/lib/_utils/usePopper.js +3 -1
  59. package/lib/button/button.js +1 -1
  60. package/lib/button/style/index.css +3 -0
  61. package/lib/button/style/index.less +4 -0
  62. package/lib/button/style/token.less +1 -0
  63. package/lib/carousel/carousel.d.ts +1 -0
  64. package/lib/carousel/carousel.js +69 -2
  65. package/lib/carousel/style/index.css +39 -0
  66. package/lib/carousel/style/index.less +40 -0
  67. package/lib/carousel/style/token.less +2 -0
  68. package/lib/config-provider/compDefaultProps.d.ts +2 -0
  69. package/lib/config-provider/compDefaultProps.js +4 -2
  70. package/lib/date-picker/range-picker.js +6 -17
  71. package/lib/date-picker/style/index.css +9 -9
  72. package/lib/date-picker/style/index.less +1 -1
  73. package/lib/date-picker/style/token.less +1 -1
  74. package/lib/form/Field.js +68 -33
  75. package/lib/form/FieldContext.js +1 -1
  76. package/lib/form/hooks/useForm.js +28 -42
  77. package/lib/form/interface.d.ts +7 -3
  78. package/lib/icon/icon.js +22 -4
  79. package/lib/image/preview.d.ts +1 -0
  80. package/lib/image/preview.js +31 -6
  81. package/lib/input/style/index.css +4 -3
  82. package/lib/input/style/index.less +230 -227
  83. package/lib/input/style/token.less +11 -12
  84. package/lib/modal/modal.js +4 -8
  85. package/lib/modal/style/index.css +7 -0
  86. package/lib/modal/style/index.less +8 -0
  87. package/lib/select/select.js +11 -11
  88. package/lib/select/style/index.css +6 -3
  89. package/lib/select/style/index.less +9 -3
  90. package/lib/select/style/token.less +10 -5
  91. package/lib/style/core/motion/other.less +9 -0
  92. package/lib/style/icon/kdicon.css +3 -1
  93. package/lib/style/icon/kdicon.woff +0 -0
  94. package/lib/style/index.css +16 -0
  95. package/lib/table/interface.d.ts +1 -0
  96. package/lib/tooltip/tooltip.d.ts +1 -1
  97. package/lib/tooltip/tooltip.js +15 -5
  98. package/lib/tree/tree.d.ts +8 -0
  99. package/lib/tree/tree.js +30 -16
  100. package/lib/tree/treeHooks.d.ts +3 -3
  101. package/lib/tree/treeHooks.js +6 -6
  102. package/lib/tree/utils/treeUtils.d.ts +19 -6
  103. package/lib/tree/utils/treeUtils.js +193 -33
  104. package/package.json +1 -1
@@ -3,11 +3,12 @@ import _extends from "@babel/runtime-corejs3/helpers/extends";
3
3
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
4
4
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
5
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
6
- import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
7
6
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
8
7
  import _Set from "@babel/runtime-corejs3/core-js-stable/set";
9
8
  import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
10
9
  import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
10
+ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
11
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
11
12
  import _spliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/splice";
12
13
 
13
14
  var __rest = this && this.__rest || function (s, e) {
@@ -38,6 +39,7 @@ export var flattenAll = function flattenAll(treeData) {
38
39
  var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
39
40
  var pos = arguments.length > 3 ? arguments[3] : undefined;
40
41
  var maxLevel = 0;
42
+ var keysData = {};
41
43
 
42
44
  var fn = function fn(treeData) {
43
45
  var newTreeData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -45,15 +47,13 @@ export var flattenAll = function flattenAll(treeData) {
45
47
  var pos = arguments.length > 3 ? arguments[3] : undefined;
46
48
  var parent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
47
49
  treeData && treeData.forEach(function (item, index) {
48
- var _context;
50
+ var _context, _context2;
49
51
 
50
52
  var children = item.children,
51
53
  title = item.title,
52
54
  key = item.key,
53
55
  others = __rest(item, ["children", "title", "key"]);
54
56
 
55
- item.parent = parent;
56
-
57
57
  var _pos = pos ? _concatInstanceProperty(_context = "".concat(pos, "-")).call(_context, index) : "".concat(index);
58
58
 
59
59
  var hasChildNode = item.isLeaf ? false : children && children instanceof Array && children.length > 0;
@@ -63,10 +63,13 @@ export var flattenAll = function flattenAll(treeData) {
63
63
  key: key,
64
64
  pos: _pos,
65
65
  hasChildNode: hasChildNode,
66
+ children: children,
66
67
  level: level,
67
- parent: parent
68
+ parentKey: (parent === null || parent === void 0 ? void 0 : parent.key) || null,
69
+ pathParentKeys: parent ? _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray((parent === null || parent === void 0 ? void 0 : parent.pathParentKeys) || []), [parent === null || parent === void 0 ? void 0 : parent.key]) : []
68
70
  }, others);
69
71
 
72
+ keysData[key] = flattenNode;
70
73
  newTreeData.push(flattenNode);
71
74
  var _level = level;
72
75
 
@@ -83,7 +86,8 @@ export var flattenAll = function flattenAll(treeData) {
83
86
  var flattenAllData = fn(treeData, newTreeData, level, pos);
84
87
  return {
85
88
  flattenAllData: flattenAllData,
86
- maxLevel: maxLevel
89
+ maxLevel: maxLevel,
90
+ keysData: keysData
87
91
  };
88
92
  };
89
93
  export var getExpand = function getExpand(expandedKeys, key) {
@@ -104,23 +108,23 @@ export var getHalfChecked = function getHalfChecked(halfCheckedKeys, key) {
104
108
  * @param pos
105
109
  */
106
110
 
107
- var isAllParentExpand = function isAllParentExpand(data, pos) {
111
+ var isAllParentExpand = function isAllParentExpand(_data, pos, posData) {
112
+ var _a;
113
+
108
114
  var expand = true;
109
115
 
110
116
  while (pos.lastIndexOf('-') > -1 && expand) {
111
117
  pos = pos.substring(0, pos.lastIndexOf('-'));
112
118
 
113
- var parentNode = _findInstanceProperty(data).call(data, function (item) {
114
- return item.pos === pos;
115
- });
116
-
117
- expand = parentNode === null || parentNode === void 0 ? void 0 : parentNode.expand;
119
+ if (posData[pos]) {
120
+ expand = (_a = posData[pos]) === null || _a === void 0 ? void 0 : _a.expand;
121
+ }
118
122
  }
119
123
 
120
124
  return expand;
121
125
  };
122
126
 
123
- export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode) {
127
+ export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData) {
124
128
  var allFilterKeys = [];
125
129
 
126
130
  _filterInstanceProperty(data).call(data, function (item) {
@@ -130,18 +134,20 @@ export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode) {
130
134
 
131
135
  while (node) {
132
136
  allFilterKeys.push(node.key);
133
- node = node.parent;
137
+ node = (keysData === null || keysData === void 0 ? void 0 : keysData[node === null || node === void 0 ? void 0 : node.parentKey]) || null;
134
138
  }
135
139
  });
136
140
 
137
141
  return _toConsumableArray(new _Set(allFilterKeys));
138
142
  };
139
143
  export var getFilterData = function getFilterData(data, filterTreeNode, isSearching) {
144
+ var posData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
145
+ var keysData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
140
146
  var filterData = data;
141
147
  var allFilterKeys = null;
142
148
 
143
149
  if (isSearching) {
144
- allFilterKeys = getAllFilterKeys(filterData, filterTreeNode);
150
+ allFilterKeys = getAllFilterKeys(filterData, filterTreeNode, keysData);
145
151
  filterData = _filterInstanceProperty(filterData).call(filterData, function (item) {
146
152
  return _includesInstanceProperty(allFilterKeys).call(allFilterKeys, item.key);
147
153
  });
@@ -150,7 +156,7 @@ export var getFilterData = function getFilterData(data, filterTreeNode, isSearch
150
156
  var newData = [];
151
157
  filterData.forEach(function (item) {
152
158
  var pos = item.pos;
153
- var parentExpand = isAllParentExpand(filterData, pos);
159
+ var parentExpand = isAllParentExpand(filterData, pos, posData);
154
160
 
155
161
  if (parentExpand) {
156
162
  newData.push(item);
@@ -159,18 +165,20 @@ export var getFilterData = function getFilterData(data, filterTreeNode, isSearch
159
165
  return newData;
160
166
  };
161
167
 
162
- var hasParentChecked = function hasParentChecked(data, checkedKeys) {
168
+ var hasParentChecked = function hasParentChecked(_data, checkedKeys) {
163
169
  var pos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
170
+ var posData = arguments.length > 3 ? arguments[3] : undefined;
171
+
172
+ var _a;
173
+
164
174
  var checked = false;
165
175
 
166
176
  while (pos.lastIndexOf('-') > -1 && !checked) {
167
177
  pos = pos.substring(0, pos.lastIndexOf('-'));
168
178
 
169
- var parentNode = _findInstanceProperty(data).call(data, function (item) {
170
- return item.pos === pos;
171
- });
172
-
173
- checked = getChecked(checkedKeys, parentNode.key);
179
+ if (posData[pos]) {
180
+ checked = getChecked(checkedKeys, (_a = posData[pos]) === null || _a === void 0 ? void 0 : _a.key);
181
+ }
174
182
  }
175
183
 
176
184
  return checked;
@@ -251,7 +259,8 @@ export var getMaxLevel = function getMaxLevel(data) {
251
259
  */
252
260
 
253
261
  export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys) {
254
- var newTreeData = [];
262
+ var spreadAttrData = [];
263
+ var posData = {};
255
264
  treeData.forEach(function (item) {
256
265
  var title = item.title,
257
266
  key = item.key,
@@ -266,7 +275,8 @@ export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys
266
275
 
267
276
  var itemExpand = getExpand(expandedKeys, key);
268
277
  var expand = itemExpand || false;
269
- newTreeData.push(_extends({
278
+
279
+ var dataItem = _extends({
270
280
  title: title,
271
281
  key: key,
272
282
  level: level,
@@ -277,16 +287,22 @@ export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys
277
287
  disabled: disabled,
278
288
  checkable: checkable,
279
289
  selectable: selectable
280
- }, others));
290
+ }, others);
291
+
292
+ posData[pos] = dataItem;
293
+ spreadAttrData.push(dataItem);
281
294
  });
282
- return newTreeData;
295
+ return {
296
+ spreadAttrData: spreadAttrData,
297
+ posData: posData
298
+ };
283
299
  };
284
300
  export var addKeys = function addKeys() {
285
- var _context2;
301
+ var _context3;
286
302
 
287
303
  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
288
304
  var newKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
289
- return _Array$from(new _Set(_concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(prevKeys), _toConsumableArray(newKeys))));
305
+ return _Array$from(new _Set(_concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(prevKeys), _toConsumableArray(newKeys))));
290
306
  };
291
307
  export var getAllParentKeys = function getAllParentKeys(data) {
292
308
  var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
@@ -339,19 +355,22 @@ export var getPos = function getPos(data, key) {
339
355
  return node === null || node === void 0 ? void 0 : node.pos;
340
356
  };
341
357
  export var getInitCheckedKeys = function getInitCheckedKeys(data, keys) {
342
- var _context3;
358
+ var _context4;
343
359
 
344
360
  var checkedKeys = [];
345
361
  keys.forEach(function (item) {
346
362
  var pos = getPos(data, item);
347
363
  checkedKeys.push.apply(checkedKeys, _toConsumableArray(getAllChildKeys(data, pos)));
348
364
  });
349
- return _Array$from(new _Set(_concatInstanceProperty(_context3 = []).call(_context3, checkedKeys, _toConsumableArray(keys))));
365
+ return _Array$from(new _Set(_concatInstanceProperty(_context4 = []).call(_context4, checkedKeys, _toConsumableArray(keys))));
350
366
  };
351
367
  export var getInitCheckededState = function getInitCheckededState(data) {
352
368
  var checkedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
353
369
  var maxLevel = arguments.length > 2 ? arguments[2] : undefined;
354
370
  var init = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
371
+ var posData = arguments.length > 4 ? arguments[4] : undefined;
372
+
373
+ var _keysData = arguments.length > 5 ? arguments[5] : undefined;
355
374
 
356
375
  var _checkedKeys = _toConsumableArray(checkedKeys);
357
376
 
@@ -370,7 +389,7 @@ export var getInitCheckededState = function getInitCheckededState(data) {
370
389
 
371
390
  var _hasHalfChildChecked = _hasChildCheckState === null || _hasChildCheckState === void 0 ? void 0 : _hasChildCheckState.halfChecked;
372
391
 
373
- var _hasParentChecked = hasParentChecked(data, checkedKeys, item.pos);
392
+ var _hasParentChecked = hasParentChecked(data, checkedKeys, item.pos, posData);
374
393
 
375
394
  var checked = selfChecked || _hasParentChecked || _allChildChecked;
376
395
 
@@ -396,6 +415,136 @@ export var getInitCheckededState = function getInitCheckededState(data) {
396
415
  halfCheckedKeys: _Array$from(new _Set(_halfCheckedKeys))
397
416
  };
398
417
  };
418
+ export function getChildNodeKeys(node, keysNodeProps) {
419
+ var nodes = new _Set();
420
+
421
+ var loop = function loop(children) {
422
+ _mapInstanceProperty(children).call(children, function (child) {
423
+ var key = child.key;
424
+ var item = keysNodeProps[key];
425
+
426
+ if (!item || item.disabled || item.checkable === false) {
427
+ return;
428
+ }
429
+
430
+ nodes.add(key);
431
+ loop(item.children || []);
432
+ });
433
+ };
434
+
435
+ if (node) {
436
+ loop(node.children || []);
437
+ }
438
+
439
+ return nodes;
440
+ }
441
+
442
+ var updateParent = function updateParent(key, keysNodeProps, allKeys, halfCheckedKeysSet) {
443
+ var pathParentKeys = _toConsumableArray(keysNodeProps[key].pathParentKeys); // 逐级更新父节点的状态
444
+
445
+
446
+ pathParentKeys.reverse().forEach(function (itemKey) {
447
+ var parent = keysNodeProps[itemKey];
448
+
449
+ if (parent && !parent.disabled && parent.checkable !== false) {
450
+ var total = 0;
451
+ var number = 0;
452
+ parent.children.some(function (_ref) {
453
+ var key = _ref.key;
454
+ var item = keysNodeProps[key]; // 不符合可选条件
455
+
456
+ if (!item || item.disabled || item.checkable === false) {
457
+ return false;
458
+ }
459
+
460
+ total++;
461
+
462
+ if (allKeys.has(key)) {
463
+ number++;
464
+ } else if (halfCheckedKeysSet.has(key)) {
465
+ // 只要有一个半选,就不用再算了 ,父节点是半选
466
+ number += 0.5;
467
+ return true;
468
+ }
469
+ });
470
+
471
+ if (!number || number === total) {
472
+ halfCheckedKeysSet.delete(itemKey);
473
+ } else {
474
+ halfCheckedKeysSet.add(itemKey);
475
+ }
476
+
477
+ if (number && number === total) {
478
+ allKeys.add(itemKey);
479
+ } else {
480
+ allKeys.delete(itemKey);
481
+ }
482
+ }
483
+ });
484
+ };
485
+
486
+ export var getInitCheckededKeys = function getInitCheckededKeys() {
487
+ var _context5;
488
+
489
+ var checkedKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
490
+ var keysNodeProps = arguments.length > 1 ? arguments[1] : undefined;
491
+ var checkedKeysSet = new _Set(checkedKeys || []);
492
+ var halfCheckedKeysSet = new _Set();
493
+ var childCheckedKeysSet = new _Set();
494
+ checkedKeys.forEach(function (key) {
495
+ if (!childCheckedKeysSet.has(key)) {
496
+ var childKeys = getChildNodeKeys(keysNodeProps[key], keysNodeProps);
497
+ childKeys.forEach(function (v) {
498
+ childCheckedKeysSet.add(v);
499
+ });
500
+ }
501
+
502
+ if (keysNodeProps[key] && !keysNodeProps[key].pathParentKeys.some(function (_key) {
503
+ return checkedKeysSet.has(_key);
504
+ })) {
505
+ updateParent(key, keysNodeProps, checkedKeysSet, halfCheckedKeysSet);
506
+ }
507
+ });
508
+ return {
509
+ checkedKeys: _toConsumableArray(new _Set(_concatInstanceProperty(_context5 = []).call(_context5, _toConsumableArray(checkedKeysSet), _toConsumableArray(childCheckedKeysSet)))),
510
+ halfCheckedKeys: _toConsumableArray(halfCheckedKeysSet)
511
+ };
512
+ };
513
+ export function getAllCheckedKeys(key, checked, checkedKeys, keysNodeProps, halfCheckedKeys) {
514
+ if (!keysNodeProps[key]) {
515
+ return {
516
+ checkedKeys: checkedKeys,
517
+ halfCheckedKeys: halfCheckedKeys
518
+ };
519
+ }
520
+
521
+ var checkedKeysSet = new _Set(checkedKeys);
522
+ var halfCheckedKeysSet = new _Set(halfCheckedKeys);
523
+ var childKeys = getChildNodeKeys(keysNodeProps[key], keysNodeProps);
524
+ var allKeys = checkedKeysSet;
525
+
526
+ if (checked) {
527
+ // 选中节点,找到所有符合条件的子节点的key
528
+ allKeys.add(key);
529
+ halfCheckedKeysSet.delete(key);
530
+ childKeys.forEach(function (v) {
531
+ allKeys.add(v);
532
+ });
533
+ } else {
534
+ halfCheckedKeysSet.delete(key); // 移除所有符合条件的子节点的key
535
+
536
+ allKeys.delete(key);
537
+ childKeys.forEach(function (v) {
538
+ allKeys.delete(v);
539
+ });
540
+ }
541
+
542
+ updateParent(key, keysNodeProps, checkedKeysSet, halfCheckedKeysSet);
543
+ return {
544
+ checkedKeys: _toConsumableArray(allKeys),
545
+ halfCheckedKeys: _toConsumableArray(halfCheckedKeysSet)
546
+ };
547
+ }
399
548
  export var getDataCheckededState = function getDataCheckededState(data, checkedKeys, halfCheckedKeys, maxLevel) {
400
549
  var init = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
401
550
  var pos = arguments.length > 5 ? arguments[5] : undefined;
@@ -522,6 +671,7 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
522
671
  var expandScrollkeys = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];
523
672
  var filterTreeNode = arguments.length > 7 ? arguments[7] : undefined;
524
673
  var isSearching = arguments.length > 8 ? arguments[8] : undefined;
674
+ var keysData = arguments.length > 9 ? arguments[9] : undefined;
525
675
  var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : _concatInstanceProperty(expandedKeys).call(expandedKeys, expandScrollkeys)) || (defaultExpandedKeys === null || defaultExpandedKeys === void 0 ? void 0 : _concatInstanceProperty(defaultExpandedKeys).call(defaultExpandedKeys, expandScrollkeys)) || [];
526
676
 
527
677
  if (defaultExpandAll) {
@@ -545,9 +695,9 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
545
695
  }
546
696
 
547
697
  if (isSearching) {
548
- var _context4;
698
+ var _context6;
549
699
 
550
- keys = _concatInstanceProperty(_context4 = []).call(_context4, _toConsumableArray(keys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode)));
700
+ keys = _concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(keys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData)));
551
701
  }
552
702
 
553
703
  return _Array$from(new _Set(_toConsumableArray(keys)));
@@ -20,6 +20,7 @@ export interface PopperProps {
20
20
  placement?: PlacementType;
21
21
  popperStyle?: React.CSSProperties;
22
22
  trigger?: TriggerType | Array<TriggerType>;
23
+ clickToClose?: boolean;
23
24
  onTrigger?: (trigger: TriggerType) => void;
24
25
  onVisibleChange?: (visible: boolean) => void;
25
26
  getTriggerElement?: (locatorNode: HTMLElement) => HTMLElement;
@@ -188,6 +188,8 @@ function usePopper(locatorElement, popperElement, props) {
188
188
  defaultVisible = _props$defaultVisible === void 0 ? false : _props$defaultVisible,
189
189
  _props$autoPlacement = props.autoPlacement,
190
190
  autoPlacement = _props$autoPlacement === void 0 ? true : _props$autoPlacement,
191
+ _props$clickToClose = props.clickToClose,
192
+ clickToClose = _props$clickToClose === void 0 ? true : _props$clickToClose,
191
193
  _props$getTriggerElem = props.getTriggerElement,
192
194
  getTriggerElement = _props$getTriggerElem === void 0 ? function (locatorNode) {
193
195
  return locatorNode;
@@ -669,7 +671,7 @@ function usePopper(locatorElement, popperElement, props) {
669
671
  return showPopper(e.type);
670
672
  }, mouseEnterDelay * 1000);
671
673
  } else if (e.type === 'mouseup' && visible) {
672
- hidePopper();
674
+ clickToClose && hidePopper();
673
675
  } else {
674
676
  showPopper(e.type);
675
677
  }
@@ -162,7 +162,7 @@ var InternalButton = function InternalButton(props, ref) {
162
162
  className: btnClasses,
163
163
  onClick: handleClick,
164
164
  disabled: disabled
165
- }, others), children);
165
+ }, others), iconNode, children);
166
166
 
167
167
  default:
168
168
  return /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({
@@ -338,6 +338,9 @@
338
338
  padding: 0;
339
339
  min-width: auto;
340
340
  }
341
+ .kd-btn-text .kd-btn-iconWrapper-left {
342
+ margin-right: var(--kd-c-button-text-icon-spacing-margin-right, 4px);
343
+ }
341
344
  .kd-btn-text:hover {
342
345
  color: var(--kd-c-button-text-color-text-hover, var(--kd-g-color-theme-5, #87adff));
343
346
  }
@@ -201,6 +201,10 @@
201
201
  padding: 0;
202
202
  min-width: auto;
203
203
 
204
+ .@{btn-prefix-cls}-iconWrapper-left {
205
+ margin-right: @btn-text-icon-margin-right;
206
+ }
207
+
204
208
  &:hover {
205
209
  color: @btn-text-g-text-color-hover;
206
210
  }
@@ -104,3 +104,4 @@
104
104
  @btn-large-padding-horizontal: var(~'@{button-custom-prefix}-spacing-padding-horizontal-large', 8px); // 大号 内间距 横向
105
105
  @btn-group-dropdown-item-horizontal: var(~'@{button-custom-prefix}-group-dropdown-item-horizonta', 12px);
106
106
  @btn-icon-padding-horizontal: var(~'@{button-custom-prefix}-icon-spacing-padding-horizontal', 4px);
107
+ @btn-text-icon-margin-right: var(~'@{button-custom-prefix}-text-icon-spacing-margin-right', 4px);
@@ -5,6 +5,7 @@ export declare const EffectTypes: ["scrollx", "fade"];
5
5
  export declare type EffectType = typeof EffectTypes[number];
6
6
  export interface CarouselProps {
7
7
  autoplay?: boolean;
8
+ jumpNode?: boolean | React.ReactNode[];
8
9
  children?: React.ReactNode;
9
10
  dotPosition?: string;
10
11
  dots?: boolean | {
@@ -15,6 +15,8 @@ exports.default = exports.EffectTypes = exports.DotPositionTypes = void 0;
15
15
 
16
16
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
17
17
 
18
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
19
+
18
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
19
21
 
20
22
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
@@ -43,6 +45,8 @@ var _displayList = require("./displayList");
43
45
 
44
46
  var _slidebar = require("./slidebar");
45
47
 
48
+ var _icon = _interopRequireDefault(require("../icon"));
49
+
46
50
  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); }
47
51
 
48
52
  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; }
@@ -60,6 +64,7 @@ var InternalCarousel = function InternalCarousel(props, ref) {
60
64
 
61
65
  var carouselProps = (0, _utils.getCompProps)('Carousel', userDefaultProps, props);
62
66
  var autoplay = carouselProps.autoplay,
67
+ jumpNode = carouselProps.jumpNode,
63
68
  dotPosition = carouselProps.dotPosition,
64
69
  children = carouselProps.children,
65
70
  dots = carouselProps.dots,
@@ -293,6 +298,68 @@ var InternalCarousel = function InternalCarousel(props, ref) {
293
298
  return content;
294
299
  };
295
300
 
301
+ var renderJumpNode = function renderJumpNode() {
302
+ if ((children === null || children === void 0 ? void 0 : children.length) && jumpNode) {
303
+ var jumpClassPrefix = "".concat(carouselPrefixCls, "-jump");
304
+
305
+ var leftClick = function leftClick(e) {
306
+ e.stopPropagation();
307
+
308
+ if (currentIndex !== 0) {
309
+ prev();
310
+ }
311
+ };
312
+
313
+ var rightClick = function rightClick(e) {
314
+ e.stopPropagation();
315
+
316
+ if (currentIndex !== children.length - 1) {
317
+ next();
318
+ }
319
+ };
320
+
321
+ var mergeNode = function mergeNode(node, type) {
322
+ var onClick = function onClick(evt) {
323
+ var chClick = node.props.onClick;
324
+
325
+ if (type === 'left') {
326
+ leftClick(evt);
327
+ } else {
328
+ rightClick(evt);
329
+ }
330
+
331
+ if (typeof chClick === 'function') {
332
+ chClick(evt);
333
+ }
334
+ };
335
+
336
+ return (0, _extends2.default)((0, _extends2.default)({}, node.props), {
337
+ onClick: onClick
338
+ });
339
+ };
340
+
341
+ var leftNode = /*#__PURE__*/_react.default.createElement("div", {
342
+ className: (0, _classnames.default)(jumpClassPrefix, "".concat(jumpClassPrefix, "-left"), (0, _defineProperty2.default)({}, "".concat(jumpClassPrefix, "-disabled"), currentIndex <= 0))
343
+ }, Array.isArray(jumpNode) && jumpNode.length > 0 && /*#__PURE__*/(0, _react.isValidElement)(jumpNode[0]) ? /*#__PURE__*/_react.default.cloneElement(jumpNode[0], mergeNode(jumpNode[0], 'left')) : /*#__PURE__*/_react.default.createElement(_icon.default, {
344
+ className: "".concat(jumpClassPrefix, "-icon"),
345
+ type: 'arrow-left-circle-solid',
346
+ onClick: leftClick
347
+ }));
348
+
349
+ var rightNode = /*#__PURE__*/_react.default.createElement("div", {
350
+ className: (0, _classnames.default)(jumpClassPrefix, "".concat(jumpClassPrefix, "-right"), (0, _defineProperty2.default)({}, "".concat(jumpClassPrefix, "-disabled"), currentIndex >= children.length - 1))
351
+ }, Array.isArray(jumpNode) && jumpNode.length > 1 && /*#__PURE__*/(0, _react.isValidElement)(jumpNode[1]) ? /*#__PURE__*/_react.default.cloneElement(jumpNode[1], mergeNode(jumpNode[1], 'right')) : /*#__PURE__*/_react.default.createElement(_icon.default, {
352
+ className: "".concat(jumpClassPrefix, "-icon"),
353
+ type: 'arrow-right-circle-solid',
354
+ onClick: rightClick
355
+ }));
356
+
357
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, leftNode, rightNode);
358
+ }
359
+
360
+ return null;
361
+ };
362
+
296
363
  return /*#__PURE__*/_react.default.createElement("div", {
297
364
  className: rootClassName,
298
365
  ref: carouselRef,
@@ -302,14 +369,14 @@ var InternalCarousel = function InternalCarousel(props, ref) {
302
369
  style: style,
303
370
  onMouseEnter: handleMouseEnter,
304
371
  onMouseLeave: handleMouseLeave
305
- }, (children === null || children === void 0 ? void 0 : children.length) && renderDisplayList(), (children === null || children === void 0 ? void 0 : children.length) && showDot() && /*#__PURE__*/_react.default.createElement(_slidebar.Slidebar, {
372
+ }, (children === null || children === void 0 ? void 0 : children.length) ? renderDisplayList() : null, (children === null || children === void 0 ? void 0 : children.length) && showDot() ? /*#__PURE__*/_react.default.createElement(_slidebar.Slidebar, {
306
373
  number: children.length,
307
374
  currentIndex: currentIndex,
308
375
  dotsClassName: dots,
309
376
  parentPrefixCls: carouselPrefixCls,
310
377
  dotPosition: dotPosition,
311
378
  onClick: handleClick
312
- }));
379
+ }) : null, renderJumpNode());
313
380
  };
314
381
 
315
382
  var Carousel = /*#__PURE__*/_react.default.forwardRef(InternalCarousel);
@@ -290,6 +290,45 @@
290
290
  background-color: var(--kd-c-carousel-dots-color-hover, #666666);
291
291
  opacity: 1;
292
292
  }
293
+ .kd-carousel-jump {
294
+ position: absolute;
295
+ top: 50%;
296
+ left: unset;
297
+ right: 16px;
298
+ -webkit-transform: translateY(-50%);
299
+ transform: translateY(-50%);
300
+ }
301
+ .kd-carousel-jump-left {
302
+ left: 16px;
303
+ right: unset;
304
+ }
305
+ .kd-carousel-jump:not(.kd-carousel-jump-disabled) {
306
+ cursor: pointer;
307
+ }
308
+ .kd-carousel-jump > *:first-child {
309
+ display: -webkit-box;
310
+ display: -ms-flexbox;
311
+ display: flex;
312
+ -webkit-box-align: center;
313
+ -ms-flex-align: center;
314
+ align-items: center;
315
+ -webkit-box-pack: center;
316
+ -ms-flex-pack: center;
317
+ justify-content: center;
318
+ }
319
+ .kd-carousel-jump-icon {
320
+ font-size: 20px;
321
+ color: var(--kd-c-carousel-jump-icon-color, #D9D9D9);
322
+ }
323
+ .kd-carousel-jump-icon:hover {
324
+ color: var(--kd-c-carousel-jump-icon-color-hover, #666666);
325
+ }
326
+ .kd-carousel-jump-disabled {
327
+ cursor: not-allowed;
328
+ }
329
+ .kd-carousel-jump-disabled .kd-carousel-jump-icon:hover {
330
+ color: var(--kd-c-carousel-jump-icon-color, #D9D9D9);
331
+ }
293
332
  .vertical {
294
333
  display: -webkit-box;
295
334
  display: -ms-flexbox;
@@ -132,6 +132,46 @@
132
132
  }
133
133
  }
134
134
  }
135
+
136
+ &-jump {
137
+ position: absolute;
138
+ top: 50%;
139
+ left: unset;
140
+ right: 16px;
141
+ transform: translateY(-50%);
142
+
143
+ &-left {
144
+ left: 16px;
145
+ right: unset;
146
+ }
147
+
148
+ &:not(.@{carousel-prefix-cls}-jump-disabled) {
149
+ cursor: pointer;
150
+ }
151
+
152
+ > *:first-child {
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ }
157
+
158
+ &-icon {
159
+ font-size: 20px;
160
+ color: @carousel-jump-icon-color;
161
+
162
+ &:hover {
163
+ color: @carousel-jump-icon-color-hover;
164
+ }
165
+ }
166
+
167
+ &-disabled {
168
+ cursor: not-allowed;
169
+
170
+ .@{carousel-prefix-cls}-jump-icon:hover {
171
+ color: @carousel-jump-icon-color;
172
+ }
173
+ }
174
+ }
135
175
  }
136
176
  .vertical {
137
177
  display: flex;
@@ -3,6 +3,8 @@
3
3
  // color
4
4
  @carousel-dots-color-background: var(~'@{carousel-prefix}-dots-color-background', #D8D8D8); // 面板指示点的背景色
5
5
  @carousel-dots-color-background-active: var(~'@{carousel-prefix}-dots-color-hover', #666666); // 面板指示点的背景色
6
+ @carousel-jump-icon-color: var(~'@{carousel-prefix}-jump-icon-color', #D9D9D9);
7
+ @carousel-jump-icon-color-hover: var(~'@{carousel-prefix}-jump-icon-color-hover', #666666);
6
8
 
7
9
  // radius
8
10
  @carousel-dots-boder-radius: var(~'@{carousel-prefix}-dots-border-radius', 2px); // 面板指示点的圆角