@kdcloudjs/kdesign 1.7.22 → 1.7.24

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 (108) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/kdesign-complete.less +75 -21
  3. package/dist/kdesign.css +79 -12
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +425 -180
  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.js +36 -19
  11. package/es/button/style/index.css +3 -0
  12. package/es/button/style/index.less +3 -3
  13. package/es/button/style/mixin.less +2 -1
  14. package/es/button/style/token.less +3 -0
  15. package/es/checkbox/style/index.css +1 -0
  16. package/es/checkbox/style/index.less +1 -0
  17. package/es/checkbox/style/token.less +1 -0
  18. package/es/city-picker/city-picker.js +6 -3
  19. package/es/city-picker/interface.d.ts +1 -0
  20. package/es/city-picker/style/index.css +2 -0
  21. package/es/city-picker/style/index.less +1 -0
  22. package/es/filter/style/index.css +6 -0
  23. package/es/filter/style/index.less +7 -0
  24. package/es/filter/style/token.less +4 -0
  25. package/es/form/style/index.css +1 -1
  26. package/es/form/style/index.less +1 -1
  27. package/es/form/style/token.less +1 -1
  28. package/es/input-number/inputNumber.js +5 -2
  29. package/es/menu/style/index.css +2 -1
  30. package/es/menu/style/mixin.less +2 -1
  31. package/es/menu/style/token.less +2 -0
  32. package/es/radio/style/index.css +8 -0
  33. package/es/radio/style/index.less +6 -1
  34. package/es/radio/style/token.less +3 -0
  35. package/es/search/search.js +2 -1
  36. package/es/search/style/index.css +1 -0
  37. package/es/search/style/index.less +1 -0
  38. package/es/search/style/token.less +1 -0
  39. package/es/select/select.js +3 -2
  40. package/es/select/style/index.css +6 -3
  41. package/es/select/style/index.less +10 -4
  42. package/es/select/style/token.less +1 -1
  43. package/es/style/core/motion/slide.less +5 -2
  44. package/es/style/index.css +36 -4
  45. package/es/table/api.js +19 -3
  46. package/es/tag/style/index.css +6 -0
  47. package/es/tag/style/index.less +3 -3
  48. package/es/tag/style/mixin.less +3 -1
  49. package/es/tag/style/token.less +2 -0
  50. package/es/timeline/style/index.css +2 -0
  51. package/es/timeline/style/index.less +3 -0
  52. package/es/timeline/style/token.less +2 -0
  53. package/es/transfer/style/index.css +2 -2
  54. package/es/transfer/style/index.less +2 -2
  55. package/es/transfer/style/token.less +1 -0
  56. package/es/tree/style/index.css +2 -0
  57. package/es/tree/style/index.less +2 -0
  58. package/es/tree/style/token.less +2 -0
  59. package/lib/_utils/usePopper.js +36 -19
  60. package/lib/button/style/index.css +3 -0
  61. package/lib/button/style/index.less +3 -3
  62. package/lib/button/style/mixin.less +2 -1
  63. package/lib/button/style/token.less +3 -0
  64. package/lib/checkbox/style/index.css +1 -0
  65. package/lib/checkbox/style/index.less +1 -0
  66. package/lib/checkbox/style/token.less +1 -0
  67. package/lib/city-picker/city-picker.js +6 -3
  68. package/lib/city-picker/interface.d.ts +1 -0
  69. package/lib/city-picker/style/index.css +2 -0
  70. package/lib/city-picker/style/index.less +1 -0
  71. package/lib/filter/style/index.css +6 -0
  72. package/lib/filter/style/index.less +7 -0
  73. package/lib/filter/style/token.less +4 -0
  74. package/lib/form/style/index.css +1 -1
  75. package/lib/form/style/index.less +1 -1
  76. package/lib/form/style/token.less +1 -1
  77. package/lib/input-number/inputNumber.js +5 -2
  78. package/lib/menu/style/index.css +2 -1
  79. package/lib/menu/style/mixin.less +2 -1
  80. package/lib/menu/style/token.less +2 -0
  81. package/lib/radio/style/index.css +8 -0
  82. package/lib/radio/style/index.less +6 -1
  83. package/lib/radio/style/token.less +3 -0
  84. package/lib/search/search.js +2 -1
  85. package/lib/search/style/index.css +1 -0
  86. package/lib/search/style/index.less +1 -0
  87. package/lib/search/style/token.less +1 -0
  88. package/lib/select/select.js +3 -2
  89. package/lib/select/style/index.css +6 -3
  90. package/lib/select/style/index.less +10 -4
  91. package/lib/select/style/token.less +1 -1
  92. package/lib/style/core/motion/slide.less +5 -2
  93. package/lib/style/index.css +36 -4
  94. package/lib/table/api.js +19 -3
  95. package/lib/tag/style/index.css +6 -0
  96. package/lib/tag/style/index.less +3 -3
  97. package/lib/tag/style/mixin.less +3 -1
  98. package/lib/tag/style/token.less +2 -0
  99. package/lib/timeline/style/index.css +2 -0
  100. package/lib/timeline/style/index.less +3 -0
  101. package/lib/timeline/style/token.less +2 -0
  102. package/lib/transfer/style/index.css +2 -2
  103. package/lib/transfer/style/index.less +2 -2
  104. package/lib/transfer/style/token.less +1 -0
  105. package/lib/tree/style/index.css +2 -0
  106. package/lib/tree/style/index.less +2 -0
  107. package/lib/tree/style/token.less +2 -0
  108. package/package.json +2 -2
@@ -132,10 +132,10 @@
132
132
  left: 0;
133
133
  z-index: @select-z-index;
134
134
  box-sizing: border-box;
135
- padding: 8px 0; // update
135
+ padding: @select-dropdown-padding-vertical 0;
136
136
  margin: 0;
137
137
  overflow: auto;
138
- font-size: @select-list-font-size; // update
138
+ font-size: @select-list-font-size;
139
139
  font-variant: initial;
140
140
  background-color: @select-dropdown-bg;
141
141
  border-radius: @select-g-radius-border;
@@ -159,6 +159,12 @@
159
159
  }
160
160
  }
161
161
 
162
+ &-multiple-dropdown-panel {
163
+ .@{select-prefix-cls}-dropdown {
164
+ padding-bottom: 0;
165
+ }
166
+ }
167
+
162
168
  // 下拉列表选项
163
169
  &-item {
164
170
  .item();
@@ -404,8 +410,8 @@
404
410
  align-items: center;
405
411
  width: 100%;
406
412
  padding: 0 12px;
407
- height: 32px;
408
- line-height: 32px;
413
+ height: 40px;
414
+ line-height: 40px;
409
415
  border-top: 1px solid #d9d9d9;
410
416
  box-sizing: border-box;
411
417
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  @select-custom-prefix: ~'--@{kd-prefix}-c-select';
4
4
 
5
-
6
5
  // color
7
6
  @select-dropdown-bg: var(~'@{select-custom-prefix}-dropdown-color-background', @color-background);
8
7
  @select-disabled-option-bg: var(~'@{select-custom-prefix}-item-color-background-disabled', #fff);
@@ -45,6 +44,7 @@
45
44
  // spacing
46
45
  @select-bordered: var(~'@{select-custom-prefix}-bordered-spacing-padding-left', 8px);
47
46
  @select-wrapper-padding: var(~'@{select-custom-prefix}-wrapper-spacing-padding', 1px 28px 1px 0);
47
+ @select-dropdown-padding-vertical: var(~'@{select-custom-prefix}-dropdown-spacing-padding-vertical', 8px);
48
48
 
49
49
  // radius
50
50
  @select-g-radius-border: var(~'@{select-custom-prefix}-radius-border', @radius-border);
@@ -31,12 +31,15 @@
31
31
  .slide-motion(topLeft, kdSlideDown, kd-cascader-menus);
32
32
  .slide-motion(bottomLeft, kdSlideUp, kd-cascader-menus);
33
33
 
34
- .slide-motion(topLeft, kdSlideDown, kd-select);
35
- .slide-motion(bottomLeft, kdSlideUp, kd-select);
34
+ .slide-motion(topLeft, kdSlideDown, kd-select-dropdown-panel);
35
+ .slide-motion(bottomLeft, kdSlideUp, kd-select-dropdown-panel);
36
36
 
37
37
  .slide-motion(topLeft, kdSlideDown, kd-date-picker-panel);
38
38
  .slide-motion(bottomLeft, kdSlideUp, kd-date-picker-panel);
39
39
 
40
+ .slide-motion(topLeft, kdSlideDown, kd-city-picker-dropdown);
41
+ .slide-motion(bottomLeft, kdSlideUp, kd-city-picker-dropdown);
42
+
40
43
  @keyframes kdSlideCenterIn {
41
44
  0% {
42
45
  opacity: 0;
@@ -1361,7 +1361,7 @@
1361
1361
  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1362
1362
  animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1363
1363
  }
1364
- .kd-select.topLeft-active {
1364
+ .kd-select-dropdown-panel.topLeft-active {
1365
1365
  -webkit-animation-name: kdSlideDownIn;
1366
1366
  animation-name: kdSlideDownIn;
1367
1367
  -webkit-animation-duration: calc(0.3s - 0.1s);
@@ -1369,7 +1369,7 @@
1369
1369
  -webkit-animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1370
1370
  animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1371
1371
  }
1372
- .kd-select.topLeft.hidden {
1372
+ .kd-select-dropdown-panel.topLeft.hidden {
1373
1373
  -webkit-animation-name: kdSlideDownOut;
1374
1374
  animation-name: kdSlideDownOut;
1375
1375
  -webkit-animation-duration: 0.1s;
@@ -1377,7 +1377,7 @@
1377
1377
  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1378
1378
  animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1379
1379
  }
1380
- .kd-select.bottomLeft-active {
1380
+ .kd-select-dropdown-panel.bottomLeft-active {
1381
1381
  -webkit-animation-name: kdSlideUpIn;
1382
1382
  animation-name: kdSlideUpIn;
1383
1383
  -webkit-animation-duration: calc(0.3s - 0.1s);
@@ -1385,7 +1385,7 @@
1385
1385
  -webkit-animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1386
1386
  animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1387
1387
  }
1388
- .kd-select.bottomLeft.hidden {
1388
+ .kd-select-dropdown-panel.bottomLeft.hidden {
1389
1389
  -webkit-animation-name: kdSlideUpOut;
1390
1390
  animation-name: kdSlideUpOut;
1391
1391
  -webkit-animation-duration: 0.1s;
@@ -1425,6 +1425,38 @@
1425
1425
  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1426
1426
  animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1427
1427
  }
1428
+ .kd-city-picker-dropdown.topLeft-active {
1429
+ -webkit-animation-name: kdSlideDownIn;
1430
+ animation-name: kdSlideDownIn;
1431
+ -webkit-animation-duration: calc(0.3s - 0.1s);
1432
+ animation-duration: calc(0.3s - 0.1s);
1433
+ -webkit-animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1434
+ animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1435
+ }
1436
+ .kd-city-picker-dropdown.topLeft.hidden {
1437
+ -webkit-animation-name: kdSlideDownOut;
1438
+ animation-name: kdSlideDownOut;
1439
+ -webkit-animation-duration: 0.1s;
1440
+ animation-duration: 0.1s;
1441
+ -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1442
+ animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1443
+ }
1444
+ .kd-city-picker-dropdown.bottomLeft-active {
1445
+ -webkit-animation-name: kdSlideUpIn;
1446
+ animation-name: kdSlideUpIn;
1447
+ -webkit-animation-duration: calc(0.3s - 0.1s);
1448
+ animation-duration: calc(0.3s - 0.1s);
1449
+ -webkit-animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1450
+ animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
1451
+ }
1452
+ .kd-city-picker-dropdown.bottomLeft.hidden {
1453
+ -webkit-animation-name: kdSlideUpOut;
1454
+ animation-name: kdSlideUpOut;
1455
+ -webkit-animation-duration: 0.1s;
1456
+ animation-duration: 0.1s;
1457
+ -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1458
+ animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
1459
+ }
1428
1460
  @-webkit-keyframes kdSlideCenterIn {
1429
1461
  0% {
1430
1462
  opacity: 0;
package/es/table/api.js CHANGED
@@ -77,7 +77,7 @@ export default function getApi(pipelineRef) {
77
77
  * @returns
78
78
  */
79
79
  function ensureColumnVisible(code) {
80
- var _a, _b;
80
+ var _a, _b, _c, _d;
81
81
  var pipeline = pipelineRef.current;
82
82
  var tableBodyContainer = (_a = pipeline.ref) === null || _a === void 0 ? void 0 : _a.current.domHelper.tableBody;
83
83
  var tableScroll = (_b = pipeline.ref) === null || _b === void 0 ? void 0 : _b.current.domHelper.stickyScroll;
@@ -93,14 +93,30 @@ export default function getApi(pipelineRef) {
93
93
  var colLeft = _sliceInstanceProperty(columnNodes).call(columnNodes, 0, index).reduce(function (acc, col) {
94
94
  return acc + col.width;
95
95
  }, 0);
96
+ var lockColumnLeft = 0;
97
+ var lockColumnRight = 0;
98
+ for (var i = 0; i < columnNodes.length; i++) {
99
+ if ((_c = columnNodes[i]) === null || _c === void 0 ? void 0 : _c.lock) {
100
+ lockColumnLeft += columnNodes[i].width;
101
+ } else {
102
+ break;
103
+ }
104
+ }
105
+ for (var _i = columnNodes.length - 1; _i >= 0; _i--) {
106
+ if ((_d = columnNodes[_i]) === null || _d === void 0 ? void 0 : _d.lock) {
107
+ lockColumnRight += columnNodes[_i].width;
108
+ } else {
109
+ break;
110
+ }
111
+ }
96
112
  var colLeftPixel = colLeft; // 目标列前面列宽总和
97
113
  var colRightPixel = colLeftPixel + column.width;
98
114
  var viewportWidth = tableBodyContainer.clientWidth; // 表体容器的宽度
99
115
  var scrollPosition = tableScroll.scrollLeft; // 滚动条滚动的距离
100
116
  var vScrollLeft = scrollPosition;
101
117
  var vScrollRight = scrollPosition + viewportWidth;
102
- var pxLeft = colLeftPixel;
103
- var pxRight = colRightPixel - viewportWidth;
118
+ var pxLeft = colLeftPixel - lockColumnLeft;
119
+ var pxRight = colRightPixel - viewportWidth + lockColumnRight;
104
120
  var colBeforeViewport = vScrollLeft > colLeftPixel; // 滚动距离大于目标列前面列宽总和,说明目标列在视口之前
105
121
  var colPastViewport = vScrollRight < colRightPixel; // 目标列是视口之后
106
122
  var colToSmallForViewport = viewportWidth < column.width;
@@ -126,6 +126,8 @@
126
126
  vertical-align: middle;
127
127
  padding: 0 var(--kd-c-tag-spacing-padding-horizontal-small, 6px);
128
128
  border-radius: calc(var(--kd-c-tag-sizing-height-small, 20px) / 2);
129
+ max-width: var(--kd-c-tag-sizing-max-width);
130
+ min-width: var(--kd-c-tag-sizing-min-width);
129
131
  }
130
132
  .kd-tag-size-middle {
131
133
  font-size: var(--kd-c-tag-font-size-middle, var(--kd-g-font-size-small, 12px));
@@ -141,6 +143,8 @@
141
143
  vertical-align: middle;
142
144
  padding: 0 var(--kd-c-tag-spacing-padding-horizontal-middle, 7px);
143
145
  border-radius: calc(var(--kd-c-tag-sizing-height-middle, 20px) / 2);
146
+ max-width: var(--kd-c-tag-sizing-max-width);
147
+ min-width: var(--kd-c-tag-sizing-min-width);
144
148
  }
145
149
  .kd-tag-size-large {
146
150
  font-size: var(--kd-c-tag-font-size-large, var(--kd-g-font-size-middle, 14px));
@@ -156,6 +160,8 @@
156
160
  vertical-align: middle;
157
161
  padding: 0 var(--kd-c-tag-spacing-padding-horizontal-large, 8px);
158
162
  border-radius: calc(var(--kd-c-tag-sizing-height-large, 24px) / 2);
163
+ max-width: var(--kd-c-tag-sizing-max-width);
164
+ min-width: var(--kd-c-tag-sizing-min-width);
159
165
  }
160
166
  .kd-tag-shape-status {
161
167
  border: 1px solid var(--kd-c-tag-color-process, var(--kd-g-color-ongoing, #276ff5));
@@ -14,15 +14,15 @@
14
14
  }
15
15
 
16
16
  &-size-small {
17
- .tag-size(@tag-small-font-size, @tag-small-height, @tag-small-padding-horizontal);
17
+ .tag-size(@tag-small-font-size, @tag-small-height, @tag-small-padding-horizontal, @tag-max-width, @tag-min-width);
18
18
  }
19
19
 
20
20
  &-size-middle {
21
- .tag-size(@tag-middle-font-size, @tag-middle-height, @tag-middle-padding-horizontal);
21
+ .tag-size(@tag-middle-font-size, @tag-middle-height, @tag-middle-padding-horizontal, @tag-max-width, @tag-min-width);
22
22
  }
23
23
 
24
24
  &-size-large {
25
- .tag-size(@tag-large-font-size, @tag-large-height, @tag-large-padding-horizontal);
25
+ .tag-size(@tag-large-font-size, @tag-large-height, @tag-large-padding-horizontal, @tag-max-width, @tag-min-width);
26
26
  }
27
27
 
28
28
  transition: all @tag-g-motion-duration;
@@ -1,7 +1,7 @@
1
1
  @import './token.less';
2
2
 
3
3
  // code component mixin here
4
- .tag-size(@size, @height, @padding) {
4
+ .tag-size(@size, @height, @padding, @max-width, @min-width) {
5
5
  font-size: @size;
6
6
  height: @height;
7
7
  box-sizing: border-box;
@@ -10,6 +10,8 @@
10
10
  vertical-align: middle;
11
11
  padding: 0 @padding;
12
12
  border-radius: calc(@height / 2);
13
+ max-width: @max-width;
14
+ min-width: @min-width;
13
15
  }
14
16
  .tag-status(@color) {
15
17
  border: 1px solid @color;
@@ -35,6 +35,8 @@
35
35
  @tag-small-height: var(~'@{tag-custom-prefix}-sizing-height-small', 20px);
36
36
  @tag-middle-height: var(~'@{tag-custom-prefix}-sizing-height-middle', 20px);
37
37
  @tag-large-height: var(~'@{tag-custom-prefix}-sizing-height-large', 24px);
38
+ @tag-max-width: var(~'@{tag-custom-prefix}-sizing-max-width');
39
+ @tag-min-width: var(~'@{tag-custom-prefix}-sizing-min-width');
38
40
 
39
41
  // spacing
40
42
  @tag-small-padding-horizontal: var(~'@{tag-custom-prefix}-spacing-padding-horizontal-small', 6px);
@@ -189,6 +189,8 @@
189
189
  margin: 0 0 0 calc(2 * (var(--kd-c-timeline-dot-sizing, 9px) - var(--kd-c-timeline-sizing-width, 1px)) + 8px);
190
190
  word-break: break-word;
191
191
  color: var(--kd-c-timeline-content-color-text, var(--kd-g-color-text-primary, #212121));
192
+ max-width: var(--kd-c-timeline-content-sizing-max-width);
193
+ min-width: var(--kd-c-timeline-content-sizing-min-width);
192
194
  }
193
195
  .kd-timeline .kd-timeline-item-content > * {
194
196
  margin: 0;
@@ -13,6 +13,7 @@
13
13
  overflow: hidden;
14
14
  list-style: none;
15
15
 
16
+
16
17
  .@{timeline-item-prefix-cls} {
17
18
  .reset-component;
18
19
  position: relative;
@@ -84,6 +85,8 @@
84
85
  margin: 0 0 0 calc(2 * (@timeline-dot-size - @timeline-width) + @timeline-gap);
85
86
  word-break: break-word;
86
87
  color: @timeline-content-color-text;
88
+ max-width: @timeline-content-max-width;
89
+ min-width: @timeline-content-min-width;
87
90
 
88
91
  > * {
89
92
  margin: 0;
@@ -21,6 +21,8 @@
21
21
 
22
22
  // sizing
23
23
  @timeline-width: var(~'@{timeline-prefix}-sizing-width',1px);
24
+ @timeline-content-max-width: var(~'@{timeline-prefix}-content-sizing-max-width');
25
+ @timeline-content-min-width: var(~'@{timeline-prefix}-content-sizing-min-width');
24
26
 
25
27
  // spacing
26
28
  @timeline-item-padding-bottom: var(~'@{timeline-prefix}-spacing-padding-bottom',24px);
@@ -138,12 +138,12 @@
138
138
  -webkit-box-direction: normal;
139
139
  -ms-flex-direction: column;
140
140
  flex-direction: column;
141
- width: 250px;
141
+ width: var(--kd-c-transfer-list-sizing-width, 250px);
142
142
  min-height: 300px;
143
143
  border: 1px solid var(--kd-c-transfer-color-border, var(--kd-g-color-border-strong, #d9d9d9));
144
144
  }
145
145
  .kd-transfer-list-with-pagination {
146
- width: 250px;
146
+ width: var(--kd-c-transfer-list-sizing-width, 250px);
147
147
  height: auto;
148
148
  }
149
149
  .kd-transfer-list-header {
@@ -25,12 +25,12 @@
25
25
  &-list {
26
26
  display: flex;
27
27
  flex-direction: column;
28
- width: 250px;
28
+ width: @transfer-list-width;
29
29
  min-height: 300px;
30
30
  border: 1px solid @transfer-border-color;
31
31
 
32
32
  &-with-pagination {
33
- width: 250px;
33
+ width: @transfer-list-width;
34
34
  height: auto;
35
35
  }
36
36
 
@@ -17,6 +17,7 @@
17
17
  @transfer-header-height: var(~'@{transfer-custom-prefix}-header-sizing-height', 36px);
18
18
  @transfer-search-height: var(~'@{transfer-custom-prefix}-search-sizing-height', 32px);
19
19
  @transfer-pagination-height: var(~'@{transfer-custom-prefix}-pagination-sizing-height', 36px);
20
+ @transfer-list-width: var(~'@{transfer-custom-prefix}-list-sizing-width', 250px);
20
21
 
21
22
  // spacing
22
23
  @transfer-padding-base: var(~'@{transfer-custom-prefix}-spacing-horizontal', 14px);
@@ -135,6 +135,8 @@
135
135
  color: var(--kd-c-tree-color-text, var(--kd-g-color-text-primary, #212121));
136
136
  margin-left: var(--kd-c-tree-spacing-margin-left, 0px);
137
137
  padding: var(--kd-c-tree-spacing-padding-vertical, 3px) 0;
138
+ max-width: var(--kd-c-tree-root-sizing-max-width);
139
+ min-width: var(--kd-c-tree-root-sizing-min-width);
138
140
  }
139
141
  .kd-tree-root {
140
142
  min-width: 100%;
@@ -13,6 +13,8 @@
13
13
  color: @tree-color-text;
14
14
  margin-left: @tree-margin-left;
15
15
  padding: @tree-padding-vertical 0;
16
+ max-width: @tree-root-max-width;
17
+ min-width: @tree-root-min-width;
16
18
  &-root {
17
19
  min-width: 100%;
18
20
  flex-shrink: 0;
@@ -22,6 +22,8 @@
22
22
  @tree-expand-icon-loading-width: var(~'@{tree-prefix}-expand-icon-loading-sizing-width', 16px);
23
23
  @tree-node-icon-height: var(~'@{tree-prefix}-node-icon-sizing-height', 16px);
24
24
  @tree-node-icon-width: var(~'@{tree-prefix}-node-icon-sizing-width', 16px);
25
+ @tree-root-max-width: var(~'@{tree-prefix}-root-sizing-max-width');
26
+ @tree-root-min-width: var(~'@{tree-prefix}-root-sizing-min-width');
25
27
 
26
28
  // spacing
27
29
  @tree-margin-left: var(~'@{tree-prefix}-spacing-margin-left', 0px);
@@ -114,6 +114,19 @@ var getScrollDist = function getScrollDist(el, container) {
114
114
  }
115
115
  return elScroll;
116
116
  };
117
+ var getRealDom = function getRealDom(locatorRef, locatorElement) {
118
+ var _a;
119
+ if (!locatorRef.current) return locatorRef.current;
120
+ var REF_NAME_OBJ = {
121
+ Input: 'input',
122
+ InputNumber: 'input',
123
+ Select: 'select',
124
+ Upload: 'input'
125
+ };
126
+ if (locatorRef.current.tagName) return locatorRef.current;
127
+ var name = REF_NAME_OBJ[(_a = locatorElement === null || locatorElement === void 0 ? void 0 : locatorElement.type) === null || _a === void 0 ? void 0 : _a.displayName];
128
+ return locatorRef === null || locatorRef === void 0 ? void 0 : locatorRef.current[name];
129
+ };
117
130
  function usePopper(locatorElement, popperElement, props) {
118
131
  var _context3, _context4, _arrowStyle;
119
132
  var prefixCls = props.prefixCls,
@@ -166,10 +179,11 @@ function usePopper(locatorElement, popperElement, props) {
166
179
  var popperEl = (0, _react.useRef)();
167
180
  var locatorRef = locatorElement.ref || locatorEl;
168
181
  var popperRef = popperElement.ref || popperEl;
169
- var container = getPopupContainer(locatorRef.current || document.body);
182
+ var container = getPopupContainer(getRealDom(locatorRef, locatorElement) || document.body);
170
183
  _promise.default.resolve().then(function () {
171
- var triggerNode = getTriggerElement(locatorRef.current);
172
- var container = getPopupContainer(locatorRef.current);
184
+ var realDom = getRealDom(locatorRef, locatorElement);
185
+ var triggerNode = getTriggerElement(realDom);
186
+ var container = getPopupContainer(realDom);
173
187
  (0, _devwarning.default)(!triggerNode, componentName, "getTriggerElement() must return a HTMLElement, but now it does not return anything");
174
188
  (0, _devwarning.default)(!container, componentName, "getPopupContainer() must return a HTMLElement, but now it does not return anything");
175
189
  });
@@ -232,30 +246,31 @@ function usePopper(locatorElement, popperElement, props) {
232
246
  nextPlacement = _useState18[0],
233
247
  setNextPlacement = _useState18[1];
234
248
  var alignPopper = (0, _react.useCallback)(function () {
235
- if ((locatorRef === null || locatorRef === void 0 ? void 0 : locatorRef.current) && (popperRef === null || popperRef === void 0 ? void 0 : popperRef.current)) {
249
+ var realDom = getRealDom(locatorRef, locatorElement);
250
+ if (realDom && (popperRef === null || popperRef === void 0 ? void 0 : popperRef.current)) {
236
251
  var _popperRef$current$ge = popperRef.current.getBoundingClientRect(),
237
252
  popperWidth = _popperRef$current$ge.width,
238
253
  popperHeight = _popperRef$current$ge.height;
239
- var _locatorRef$current$g = locatorRef.current.getBoundingClientRect(),
240
- top = _locatorRef$current$g.top,
241
- bottom = _locatorRef$current$g.bottom,
242
- left = _locatorRef$current$g.left,
243
- right = _locatorRef$current$g.right,
244
- height = _locatorRef$current$g.height,
245
- width = _locatorRef$current$g.width;
254
+ var _realDom$getBoundingC = realDom.getBoundingClientRect(),
255
+ top = _realDom$getBoundingC.top,
256
+ bottom = _realDom$getBoundingC.bottom,
257
+ left = _realDom$getBoundingC.left,
258
+ right = _realDom$getBoundingC.right,
259
+ height = _realDom$getBoundingC.height,
260
+ width = _realDom$getBoundingC.width;
246
261
  var _getOffsetPos = getOffsetPos(container),
247
262
  containerTop = _getOffsetPos.top,
248
263
  containerLeft = _getOffsetPos.left;
249
- var _getOffsetPos2 = getOffsetPos(locatorRef.current),
264
+ var _getOffsetPos2 = getOffsetPos(realDom),
250
265
  locatorTop = _getOffsetPos2.top,
251
266
  locatorLeft = _getOffsetPos2.left;
252
- var _getTranslatePos = getTranslatePos(locatorRef.current),
267
+ var _getTranslatePos = getTranslatePos(realDom),
253
268
  translateTop = _getTranslatePos.top,
254
269
  translateLeft = _getTranslatePos.left;
255
- var _getBorderWidth = getBorderWidth(locatorRef.current),
270
+ var _getBorderWidth = getBorderWidth(realDom),
256
271
  borderTop = _getBorderWidth.top,
257
272
  borderLeft = _getBorderWidth.left;
258
- var _getScrollDist = getScrollDist(locatorRef.current.parentElement, container),
273
+ var _getScrollDist = getScrollDist(realDom.parentElement, container),
259
274
  scrollTop = _getScrollDist.top,
260
275
  scrollLeft = _getScrollDist.left;
261
276
  var locatorPos = {
@@ -441,7 +456,7 @@ function usePopper(locatorElement, popperElement, props) {
441
456
  }, "".concat(nextPlacement, "-active"), active))
442
457
  };
443
458
  var popperNode = popperRef.current;
444
- var locatorNode = locatorRef.current;
459
+ var locatorNode = getRealDom(locatorRef, locatorElement);
445
460
  (0, _hooks.useResizeObserver)(popperNode || document.body, alignPopper);
446
461
  (0, _hooks.useResizeObserver)(locatorNode || document.body, alignPopper);
447
462
  var showPopper = (0, _react.useCallback)(function (evType) {
@@ -472,7 +487,8 @@ function usePopper(locatorElement, popperElement, props) {
472
487
  (0, _react.useEffect)(function () {
473
488
  if (exist && visible) {
474
489
  var mouseleaveTimer;
475
- var triggerNode = getTriggerElement(locatorRef.current);
490
+ var realDom = getRealDom(locatorRef, locatorElement);
491
+ var triggerNode = getTriggerElement(realDom);
476
492
  var handleHidePopper = function handleHidePopper(e) {
477
493
  var triggerRect = triggerNode.getBoundingClientRect();
478
494
  var popperRect = popperRef.current.getBoundingClientRect();
@@ -546,8 +562,9 @@ function usePopper(locatorElement, popperElement, props) {
546
562
  };
547
563
  }
548
564
  }, [alignPopper, exist, onVisibleChange, popperNode, props.visible, scrollHidden, locatorNode, visible, popperRef]);
549
- _react.default.useEffect(function () {
550
- var triggerNode = getTriggerElement(locatorRef.current);
565
+ (0, _react.useEffect)(function () {
566
+ var realDom = getRealDom(locatorRef, locatorElement);
567
+ var triggerNode = getTriggerElement(realDom);
551
568
  if (triggerNode) {
552
569
  var mouseenterTimer;
553
570
  var clearMouseLeave = function clearMouseLeave() {
@@ -242,6 +242,7 @@
242
242
  line-height: calc(var(--kd-c-button-sizing-height-small, 24px) - (var(--kd-c-button-spacing-padding-vertical-small, 3px) * 2) - (var(--kd-c-button-sizing-border, 1px) * 2));
243
243
  font-size: var(--kd-c-button-font-size-small, var(--kd-g-font-size-small, 12px));
244
244
  padding: var(--kd-c-button-spacing-padding-vertical-small, 3px) var(--kd-c-button-spacing-padding-horizontal-small, 8px);
245
+ max-width: var(--kd-c-button-sizing-max-width-small);
245
246
  }
246
247
  .kd-btn-size-small.kd-btn-icon-only {
247
248
  font-size: var(--kd-c-button-icon-font-size-small, 14px);
@@ -265,6 +266,7 @@
265
266
  line-height: calc(var(--kd-c-button-sizing-height-middle, 28px) - (var(--kd-c-button-spacing-padding-vertical-middle, 5px) * 2) - (var(--kd-c-button-sizing-border, 1px) * 2));
266
267
  font-size: var(--kd-c-button-font-size-middle, var(--kd-g-font-size-small, 12px));
267
268
  padding: var(--kd-c-button-spacing-padding-vertical-middle, 5px) var(--kd-c-button-spacing-padding-horizontal-middle, 8px);
269
+ max-width: var(--kd-c-button-sizing-max-width-middle);
268
270
  }
269
271
  .kd-btn-size-middle.kd-btn-icon-only {
270
272
  font-size: var(--kd-c-button-icon-font-size-middle, 16px);
@@ -288,6 +290,7 @@
288
290
  line-height: calc(var(--kd-c-button-sizing-height-large, 32px) - (var(--kd-c-button-spacing-padding-vertical-large, 6px) * 2) - (var(--kd-c-button-sizing-border, 1px) * 2));
289
291
  font-size: var(--kd-c-button-font-size-large, var(--kd-g-font-size-large, 16px));
290
292
  padding: var(--kd-c-button-spacing-padding-vertical-large, 6px) var(--kd-c-button-spacing-padding-horizontal-large, 8px);
293
+ max-width: var(--kd-c-button-sizing-max-width-large);
291
294
  }
292
295
  .kd-btn-size-large.kd-btn-icon-only {
293
296
  font-size: var(--kd-c-button-icon-font-size-large, 18px);
@@ -110,7 +110,7 @@
110
110
 
111
111
  // 小号尺寸按钮
112
112
  &-size-small {
113
- .btn-size(@btn-small-height, @btn-small-font-size, @btn-small-padding-vertical, @btn-small-padding-horizontal, @btn-small-min-width);
113
+ .btn-size(@btn-small-height, @btn-small-font-size, @btn-small-padding-vertical, @btn-small-padding-horizontal, @btn-small-min-width, @btn-small-max-width);
114
114
  &.@{btn-prefix-cls}-icon-only {
115
115
  font-size: @btn-icon-small-font-size;
116
116
  padding: 0 @btn-icon-padding-horizontal;
@@ -126,7 +126,7 @@
126
126
 
127
127
  // 中号尺寸按钮
128
128
  &-size-middle {
129
- .btn-size(@btn-middle-height, @btn-middle-font-size, @btn-middle-padding-vertical, @btn-middle-padding-horizontal, @btn-middle-min-width);
129
+ .btn-size(@btn-middle-height, @btn-middle-font-size, @btn-middle-padding-vertical, @btn-middle-padding-horizontal, @btn-middle-min-width, @btn-middle-max-width);
130
130
  &.@{btn-prefix-cls}-icon-only {
131
131
  font-size: @btn-icon-middle-font-size;
132
132
  padding: 0 @btn-icon-padding-horizontal;
@@ -142,7 +142,7 @@
142
142
 
143
143
  // 大号尺寸按钮
144
144
  &-size-large {
145
- .btn-size(@btn-large-height, @btn-large-font-size, @btn-large-padding-vertical, @btn-large-padding-horizontal, @btn-large-min-width);
145
+ .btn-size(@btn-large-height, @btn-large-font-size, @btn-large-padding-vertical, @btn-large-padding-horizontal, @btn-large-min-width, @btn-large-max-width);
146
146
  &.@{btn-prefix-cls}-icon-only {
147
147
  font-size: @btn-icon-large-font-size;
148
148
  padding: 0 @btn-icon-padding-horizontal;
@@ -30,12 +30,13 @@
30
30
  color: @color;
31
31
  }
32
32
  // 各个按钮尺寸的样式Mixins
33
- .btn-size(@height, @font-size, @padding-vertical, @padding-horizontal, @min-width) {
33
+ .btn-size(@height, @font-size, @padding-vertical, @padding-horizontal, @min-width,@max-width) {
34
34
  height: @height;
35
35
  min-width: @min-width;
36
36
  line-height: calc(@height - (@padding-vertical * 2) - (@btn-border-width * 2));
37
37
  font-size: @font-size;
38
38
  padding: @padding-vertical @padding-horizontal;
39
+ max-width: @max-width;
39
40
  }
40
41
  // 圆形按钮不同尺寸的样式Mixins
41
42
  .btn-shape-circle-width(@width) {
@@ -88,11 +88,14 @@
88
88
  @btn-border-width: var(~'@{button-custom-prefix}-sizing-border', 1px);
89
89
  @btn-small-height: var(~'@{button-custom-prefix}-sizing-height-small', 24px); // 小号 高度
90
90
  @btn-small-min-width: var(~'@{button-custom-prefix}-sizing-min-width-small', 60px); // 小号 最小宽度
91
+ @btn-small-max-width: var(~'@{button-custom-prefix}-sizing-max-width-small'); // 小号 最大宽度
91
92
  @btn-middle-height: var(~'@{button-custom-prefix}-sizing-height-middle', 28px); // 中号 高度 高度配置
92
93
  @btn-middle-min-width: var(~'@{button-custom-prefix}-sizing-min-width-middle', 60px); // 中号 最小宽度
94
+ @btn-middle-max-width: var(~'@{button-custom-prefix}-sizing-max-width-middle'); // 中号 最大宽度
93
95
  @btn-large-height: var(~'@{button-custom-prefix}-sizing-height-large', 32px); // 大号 高度
94
96
  @btn-middle-max-width: var(~'@{button-custom-prefix}-sizing-max-width-middle'); // 中号 最大宽度
95
97
  @btn-large-min-width: var(~'@{button-custom-prefix}-sizing-min-width-large', 80px); // 大号 最小宽度
98
+ @btn-large-max-width: var(~'@{button-custom-prefix}-sizing-max-width-large'); // 大号 最大宽度
96
99
  @btn-group-dropdown-item-height: var(~'@{button-custom-prefix}--group-dropdown-item-height', 30px);
97
100
  @btn-group-dropdown-min-width: var(~'@{button-custom-prefix}-group-dropdown-min-width', 80px);
98
101
 
@@ -162,6 +162,7 @@
162
162
  overflow: hidden;
163
163
  white-space: nowrap;
164
164
  text-overflow: ellipsis;
165
+ max-width: var(--kd-c-checkbox-default-input-label-max-width);
165
166
  }
166
167
  .kd-checkbox-children .kd-input-underline {
167
168
  background-color: transparent;
@@ -44,6 +44,7 @@
44
44
  overflow: hidden;
45
45
  white-space: nowrap;
46
46
  text-overflow: ellipsis;
47
+ max-width: @checkbox-default-input-label-max-width;
47
48
 
48
49
  .kd-input-underline {
49
50
  background-color: transparent;
@@ -33,6 +33,7 @@
33
33
  @checkbox-default-input-height: var(~'@{checkbox-prefix}-default-input-sizing-height', 14px); // 勾选输入框高度
34
34
  @checkbox-default-input-width: var(~'@{checkbox-prefix}-default-input-sizing-width', 14px); // 勾选输入框宽度
35
35
  @checkbox-default-input-border-width: var(~'@{checkbox-prefix}-default-input-border-width', 1px); // 勾选输入框边框大小 不需要
36
+ @checkbox-default-input-label-max-width: var(~'@{checkbox-prefix}-default-input-label-max-width'); // 勾选输入框便签文本最大宽度,默认为未设置。
36
37
  @checkbox-square-triangle-height: var(~'@{checkbox-prefix}-square-triangle-sizing-height', 18px); // 边框类型右下角三角高度
37
38
  @checkbox-square-triangle-width: var(~'@{checkbox-prefix}-square-triangle-sizing-width', 18px); // 边框类型右下角三角宽度
38
39
  @checkbox-default-indeterminate-square: var(~'@{checkbox-prefix}-default-indeterminate-sizing-square', 6px); // 半选框的大小
@@ -75,7 +75,8 @@ var InternalSelect = function InternalSelect(props, ref) {
75
75
  domesticList = _selectProps$domestic === void 0 ? [] : _selectProps$domestic,
76
76
  _selectProps$foreignL = selectProps.foreignList,
77
77
  foreignList = _selectProps$foreignL === void 0 ? [] : _selectProps$foreignL,
78
- itemRender = selectProps.itemRender;
78
+ itemRender = selectProps.itemRender,
79
+ onTabPaneChange = selectProps.onTabPaneChange;
79
80
  var _useMergedState = (0, _hooks.useMergedState)(undefined, {
80
81
  value: value,
81
82
  defaultValue: defaultValue
@@ -258,6 +259,7 @@ var InternalSelect = function InternalSelect(props, ref) {
258
259
  };
259
260
  var toggleTabPane = function toggleTabPane(type) {
260
261
  setTabsValue(type);
262
+ onTabPaneChange === null || onTabPaneChange === void 0 ? void 0 : onTabPaneChange(type);
261
263
  };
262
264
  // 渲染下拉列表框
263
265
  var renderContent = function renderContent() {
@@ -280,12 +282,13 @@ var InternalSelect = function InternalSelect(props, ref) {
280
282
  if (!data) return null;
281
283
  if (isDomestic(type)) {
282
284
  var _context3;
283
- return (0, _concat.default)(_context3 = "".concat(flag && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context3, data === null || data === void 0 ? void 0 : data.province);
285
+ var curVal = tabsValue === 'domestic' ? data === null || data === void 0 ? void 0 : data.province : data === null || data === void 0 ? void 0 : data.country;
286
+ return (0, _concat.default)(_context3 = "".concat(flag && curVal ? symbol : '')).call(_context3, curVal);
284
287
  } else {
285
288
  var _context4, _context5, _context6;
286
289
  return (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = "".concat(flag && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context6, data === null || data === void 0 ? void 0 : data.province)).call(_context5, (data === null || data === void 0 ? void 0 : data.country) ? symbol : '')).call(_context4, data === null || data === void 0 ? void 0 : data.country);
287
290
  }
288
- }, [type]);
291
+ }, [type, tabsValue]);
289
292
  var renderSingle = function renderSingle() {
290
293
  var hiddenStyle = !!searchValue || (initValue !== null && initValue !== void 0 ? initValue : '') !== '' ? {
291
294
  visibility: 'hidden'
@@ -43,6 +43,7 @@ export interface CityPickerProps {
43
43
  onSearch?: (value: string) => void;
44
44
  onClear?: () => void;
45
45
  itemRender?: (city: City) => React.ReactNode;
46
+ onTabPaneChange?: (id: Type) => void;
46
47
  }
47
48
  export interface ICityPickerOptionProps {
48
49
  disabled?: boolean;
@@ -307,6 +307,8 @@
307
307
  padding: 8px 0;
308
308
  max-height: 320px;
309
309
  overflow-y: auto;
310
+ -webkit-box-sizing: content-box;
311
+ box-sizing: content-box;
310
312
  }
311
313
  .kd-city-picker-list-item {
312
314
  position: relative;