@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
@@ -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
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
8
6
  import _Set from "@babel/runtime-corejs3/core-js-stable/set";
7
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
8
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
9
9
  import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
10
10
  import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
11
+ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
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,44 +108,77 @@ 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) {
124
- var allFilterKeys = [];
127
+ export function findfilterChildrenKeys(node, allFilterKeys) {
128
+ var nodes = new _Set();
129
+
130
+ var loop = function loop(children) {
131
+ _mapInstanceProperty(children).call(children, function (child) {
132
+ var key = child.key;
133
+ var item = child;
134
+ allFilterKeys.add(key);
135
+ loop(item.children || []);
136
+ });
137
+ };
138
+
139
+ if (node) {
140
+ loop(node.children || []);
141
+ }
142
+
143
+ return nodes;
144
+ }
145
+ export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData) {
146
+ var allFilterKeys = new _Set();
147
+ var filterExpandKeys = new _Set();
125
148
 
126
- _filterInstanceProperty(data).call(data, function (item) {
149
+ var filterKeys = _filterInstanceProperty(data).call(data, function (item) {
127
150
  return filterTreeNode === null || filterTreeNode === void 0 ? void 0 : filterTreeNode(item);
128
- }).forEach(function (item) {
151
+ });
152
+
153
+ filterKeys.forEach(function (item) {
154
+ findfilterChildrenKeys(item, allFilterKeys);
155
+ });
156
+ filterKeys.forEach(function (item) {
129
157
  var node = _extends({}, item);
130
158
 
131
159
  while (node) {
132
- allFilterKeys.push(node.key);
133
- node = node.parent;
160
+ var _context3;
161
+
162
+ allFilterKeys.add(node.key);
163
+ !_includesInstanceProperty(_context3 = _mapInstanceProperty(filterKeys).call(filterKeys, function (i) {
164
+ return i.key;
165
+ })).call(_context3, node.key) && filterExpandKeys.add(node.key);
166
+ node = (keysData === null || keysData === void 0 ? void 0 : keysData[node === null || node === void 0 ? void 0 : node.parentKey]) || null;
134
167
  }
135
168
  });
136
-
137
- return _toConsumableArray(new _Set(allFilterKeys));
169
+ return {
170
+ allFilterKeys: _toConsumableArray(allFilterKeys),
171
+ filterExpandKeys: _toConsumableArray(filterExpandKeys)
172
+ };
138
173
  };
139
174
  export var getFilterData = function getFilterData(data, filterTreeNode, isSearching) {
175
+ var posData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
176
+ var keysData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
140
177
  var filterData = data;
141
178
  var allFilterKeys = null;
142
179
 
143
180
  if (isSearching) {
144
- allFilterKeys = getAllFilterKeys(filterData, filterTreeNode);
181
+ allFilterKeys = getAllFilterKeys(filterData, filterTreeNode, keysData).allFilterKeys;
145
182
  filterData = _filterInstanceProperty(filterData).call(filterData, function (item) {
146
183
  return _includesInstanceProperty(allFilterKeys).call(allFilterKeys, item.key);
147
184
  });
@@ -150,7 +187,7 @@ export var getFilterData = function getFilterData(data, filterTreeNode, isSearch
150
187
  var newData = [];
151
188
  filterData.forEach(function (item) {
152
189
  var pos = item.pos;
153
- var parentExpand = isAllParentExpand(filterData, pos);
190
+ var parentExpand = isAllParentExpand(filterData, pos, posData);
154
191
 
155
192
  if (parentExpand) {
156
193
  newData.push(item);
@@ -159,18 +196,20 @@ export var getFilterData = function getFilterData(data, filterTreeNode, isSearch
159
196
  return newData;
160
197
  };
161
198
 
162
- var hasParentChecked = function hasParentChecked(data, checkedKeys) {
199
+ var hasParentChecked = function hasParentChecked(_data, checkedKeys) {
163
200
  var pos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
201
+ var posData = arguments.length > 3 ? arguments[3] : undefined;
202
+
203
+ var _a;
204
+
164
205
  var checked = false;
165
206
 
166
207
  while (pos.lastIndexOf('-') > -1 && !checked) {
167
208
  pos = pos.substring(0, pos.lastIndexOf('-'));
168
209
 
169
- var parentNode = _findInstanceProperty(data).call(data, function (item) {
170
- return item.pos === pos;
171
- });
172
-
173
- checked = getChecked(checkedKeys, parentNode.key);
210
+ if (posData[pos]) {
211
+ checked = getChecked(checkedKeys, (_a = posData[pos]) === null || _a === void 0 ? void 0 : _a.key);
212
+ }
174
213
  }
175
214
 
176
215
  return checked;
@@ -251,7 +290,8 @@ export var getMaxLevel = function getMaxLevel(data) {
251
290
  */
252
291
 
253
292
  export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys) {
254
- var newTreeData = [];
293
+ var spreadAttrData = [];
294
+ var posData = {};
255
295
  treeData.forEach(function (item) {
256
296
  var title = item.title,
257
297
  key = item.key,
@@ -266,7 +306,8 @@ export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys
266
306
 
267
307
  var itemExpand = getExpand(expandedKeys, key);
268
308
  var expand = itemExpand || false;
269
- newTreeData.push(_extends({
309
+
310
+ var dataItem = _extends({
270
311
  title: title,
271
312
  key: key,
272
313
  level: level,
@@ -277,16 +318,22 @@ export var getSpreadAttrData = function getSpreadAttrData(treeData, expandedKeys
277
318
  disabled: disabled,
278
319
  checkable: checkable,
279
320
  selectable: selectable
280
- }, others));
321
+ }, others);
322
+
323
+ posData[pos] = dataItem;
324
+ spreadAttrData.push(dataItem);
281
325
  });
282
- return newTreeData;
326
+ return {
327
+ spreadAttrData: spreadAttrData,
328
+ posData: posData
329
+ };
283
330
  };
284
331
  export var addKeys = function addKeys() {
285
- var _context2;
332
+ var _context4;
286
333
 
287
334
  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
288
335
  var newKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
289
- return _Array$from(new _Set(_concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(prevKeys), _toConsumableArray(newKeys))));
336
+ return _Array$from(new _Set(_concatInstanceProperty(_context4 = []).call(_context4, _toConsumableArray(prevKeys), _toConsumableArray(newKeys))));
290
337
  };
291
338
  export var getAllParentKeys = function getAllParentKeys(data) {
292
339
  var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
@@ -339,19 +386,22 @@ export var getPos = function getPos(data, key) {
339
386
  return node === null || node === void 0 ? void 0 : node.pos;
340
387
  };
341
388
  export var getInitCheckedKeys = function getInitCheckedKeys(data, keys) {
342
- var _context3;
389
+ var _context5;
343
390
 
344
391
  var checkedKeys = [];
345
392
  keys.forEach(function (item) {
346
393
  var pos = getPos(data, item);
347
394
  checkedKeys.push.apply(checkedKeys, _toConsumableArray(getAllChildKeys(data, pos)));
348
395
  });
349
- return _Array$from(new _Set(_concatInstanceProperty(_context3 = []).call(_context3, checkedKeys, _toConsumableArray(keys))));
396
+ return _Array$from(new _Set(_concatInstanceProperty(_context5 = []).call(_context5, checkedKeys, _toConsumableArray(keys))));
350
397
  };
351
398
  export var getInitCheckededState = function getInitCheckededState(data) {
352
399
  var checkedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
353
400
  var maxLevel = arguments.length > 2 ? arguments[2] : undefined;
354
401
  var init = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
402
+ var posData = arguments.length > 4 ? arguments[4] : undefined;
403
+
404
+ var _keysData = arguments.length > 5 ? arguments[5] : undefined;
355
405
 
356
406
  var _checkedKeys = _toConsumableArray(checkedKeys);
357
407
 
@@ -370,7 +420,7 @@ export var getInitCheckededState = function getInitCheckededState(data) {
370
420
 
371
421
  var _hasHalfChildChecked = _hasChildCheckState === null || _hasChildCheckState === void 0 ? void 0 : _hasChildCheckState.halfChecked;
372
422
 
373
- var _hasParentChecked = hasParentChecked(data, checkedKeys, item.pos);
423
+ var _hasParentChecked = hasParentChecked(data, checkedKeys, item.pos, posData);
374
424
 
375
425
  var checked = selfChecked || _hasParentChecked || _allChildChecked;
376
426
 
@@ -396,6 +446,136 @@ export var getInitCheckededState = function getInitCheckededState(data) {
396
446
  halfCheckedKeys: _Array$from(new _Set(_halfCheckedKeys))
397
447
  };
398
448
  };
449
+ export function getChildNodeKeys(node, keysNodeProps) {
450
+ var nodes = new _Set();
451
+
452
+ var loop = function loop(children) {
453
+ _mapInstanceProperty(children).call(children, function (child) {
454
+ var key = child.key;
455
+ var item = keysNodeProps[key];
456
+
457
+ if (!item || item.disabled || item.checkable === false) {
458
+ return;
459
+ }
460
+
461
+ nodes.add(key);
462
+ loop(item.children || []);
463
+ });
464
+ };
465
+
466
+ if (node) {
467
+ loop(node.children || []);
468
+ }
469
+
470
+ return nodes;
471
+ }
472
+
473
+ var updateParent = function updateParent(key, keysNodeProps, allKeys, halfCheckedKeysSet) {
474
+ var pathParentKeys = _toConsumableArray(keysNodeProps[key].pathParentKeys); // 逐级更新父节点的状态
475
+
476
+
477
+ pathParentKeys.reverse().forEach(function (itemKey) {
478
+ var parent = keysNodeProps[itemKey];
479
+
480
+ if (parent && !parent.disabled && parent.checkable !== false) {
481
+ var total = 0;
482
+ var number = 0;
483
+ parent.children.some(function (_ref) {
484
+ var key = _ref.key;
485
+ var item = keysNodeProps[key]; // 不符合可选条件
486
+
487
+ if (!item || item.disabled || item.checkable === false) {
488
+ return false;
489
+ }
490
+
491
+ total++;
492
+
493
+ if (allKeys.has(key)) {
494
+ number++;
495
+ } else if (halfCheckedKeysSet.has(key)) {
496
+ // 只要有一个半选,就不用再算了 ,父节点是半选
497
+ number += 0.5;
498
+ return true;
499
+ }
500
+ });
501
+
502
+ if (!number || number === total) {
503
+ halfCheckedKeysSet.delete(itemKey);
504
+ } else {
505
+ halfCheckedKeysSet.add(itemKey);
506
+ }
507
+
508
+ if (number && number === total) {
509
+ allKeys.add(itemKey);
510
+ } else {
511
+ allKeys.delete(itemKey);
512
+ }
513
+ }
514
+ });
515
+ };
516
+
517
+ export var getInitCheckededKeys = function getInitCheckededKeys() {
518
+ var _context6;
519
+
520
+ var checkedKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
521
+ var keysNodeProps = arguments.length > 1 ? arguments[1] : undefined;
522
+ var checkedKeysSet = new _Set(checkedKeys || []);
523
+ var halfCheckedKeysSet = new _Set();
524
+ var childCheckedKeysSet = new _Set();
525
+ checkedKeys.forEach(function (key) {
526
+ if (!childCheckedKeysSet.has(key)) {
527
+ var childKeys = getChildNodeKeys(keysNodeProps[key], keysNodeProps);
528
+ childKeys.forEach(function (v) {
529
+ childCheckedKeysSet.add(v);
530
+ });
531
+ }
532
+
533
+ if (keysNodeProps[key] && !keysNodeProps[key].pathParentKeys.some(function (_key) {
534
+ return checkedKeysSet.has(_key);
535
+ })) {
536
+ updateParent(key, keysNodeProps, checkedKeysSet, halfCheckedKeysSet);
537
+ }
538
+ });
539
+ return {
540
+ checkedKeys: _toConsumableArray(new _Set(_concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(checkedKeysSet), _toConsumableArray(childCheckedKeysSet)))),
541
+ halfCheckedKeys: _toConsumableArray(halfCheckedKeysSet)
542
+ };
543
+ };
544
+ export function getAllCheckedKeys(key, checked, checkedKeys, keysNodeProps, halfCheckedKeys) {
545
+ if (!keysNodeProps[key]) {
546
+ return {
547
+ checkedKeys: checkedKeys,
548
+ halfCheckedKeys: halfCheckedKeys
549
+ };
550
+ }
551
+
552
+ var checkedKeysSet = new _Set(checkedKeys);
553
+ var halfCheckedKeysSet = new _Set(halfCheckedKeys);
554
+ var childKeys = getChildNodeKeys(keysNodeProps[key], keysNodeProps);
555
+ var allKeys = checkedKeysSet;
556
+
557
+ if (checked) {
558
+ // 选中节点,找到所有符合条件的子节点的key
559
+ allKeys.add(key);
560
+ halfCheckedKeysSet.delete(key);
561
+ childKeys.forEach(function (v) {
562
+ allKeys.add(v);
563
+ });
564
+ } else {
565
+ halfCheckedKeysSet.delete(key); // 移除所有符合条件的子节点的key
566
+
567
+ allKeys.delete(key);
568
+ childKeys.forEach(function (v) {
569
+ allKeys.delete(v);
570
+ });
571
+ }
572
+
573
+ updateParent(key, keysNodeProps, checkedKeysSet, halfCheckedKeysSet);
574
+ return {
575
+ checkedKeys: _toConsumableArray(allKeys),
576
+ halfCheckedKeys: _toConsumableArray(halfCheckedKeysSet)
577
+ };
578
+ }
399
579
  export var getDataCheckededState = function getDataCheckededState(data, checkedKeys, halfCheckedKeys, maxLevel) {
400
580
  var init = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
401
581
  var pos = arguments.length > 5 ? arguments[5] : undefined;
@@ -522,6 +702,8 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
522
702
  var expandScrollkeys = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];
523
703
  var filterTreeNode = arguments.length > 7 ? arguments[7] : undefined;
524
704
  var isSearching = arguments.length > 8 ? arguments[8] : undefined;
705
+ var keysData = arguments.length > 9 ? arguments[9] : undefined;
706
+ var searchExpandedKeys = arguments.length > 10 ? arguments[10] : undefined;
525
707
  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
708
 
527
709
  if (defaultExpandAll) {
@@ -545,9 +727,9 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
545
727
  }
546
728
 
547
729
  if (isSearching) {
548
- var _context4;
730
+ var _context7;
549
731
 
550
- keys = _concatInstanceProperty(_context4 = []).call(_context4, _toConsumableArray(keys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode)));
732
+ keys = _concatInstanceProperty(_context7 = []).call(_context7, _toConsumableArray(searchExpandedKeys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys));
551
733
  }
552
734
 
553
735
  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;