@kdcloudjs/kdesign 1.6.40 → 1.7.0

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 (57) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/kdesign-complete.less +478 -0
  3. package/dist/kdesign.css +504 -1
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +701 -24
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  8. package/dist/kdesign.min.js +6 -6
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/cascader/cascader.js +14 -3
  11. package/es/cascader/util.js +13 -4
  12. package/es/config-provider/compDefaultProps.d.ts +13 -0
  13. package/es/config-provider/compDefaultProps.js +17 -0
  14. package/es/index.d.ts +1 -0
  15. package/es/index.js +2 -1
  16. package/es/input/ClearableLabeledInput.js +8 -2
  17. package/es/input/input.js +1 -5
  18. package/es/tree/tree.d.ts +2 -1
  19. package/es/tree/tree.js +4 -3
  20. package/es/tree-select/index.d.ts +3 -0
  21. package/es/tree-select/index.js +3 -0
  22. package/es/tree-select/interface.d.ts +68 -0
  23. package/es/tree-select/interface.js +4 -0
  24. package/es/tree-select/style/css.js +2 -0
  25. package/es/tree-select/style/index.css +502 -0
  26. package/es/tree-select/style/index.d.ts +2 -0
  27. package/es/tree-select/style/index.js +2 -0
  28. package/es/tree-select/style/index.less +392 -0
  29. package/es/tree-select/style/mixin.less +29 -0
  30. package/es/tree-select/style/token.less +54 -0
  31. package/es/tree-select/tree-select.d.ts +4 -0
  32. package/es/tree-select/tree-select.js +506 -0
  33. package/lib/cascader/cascader.js +14 -3
  34. package/lib/cascader/util.js +13 -4
  35. package/lib/config-provider/compDefaultProps.d.ts +13 -0
  36. package/lib/config-provider/compDefaultProps.js +17 -0
  37. package/lib/index.d.ts +1 -0
  38. package/lib/index.js +7 -0
  39. package/lib/input/ClearableLabeledInput.js +8 -2
  40. package/lib/input/input.js +1 -5
  41. package/lib/style/components.less +1 -0
  42. package/lib/tree/tree.d.ts +2 -1
  43. package/lib/tree/tree.js +4 -3
  44. package/lib/tree-select/index.d.ts +3 -0
  45. package/lib/tree-select/index.js +27 -0
  46. package/lib/tree-select/interface.d.ts +68 -0
  47. package/lib/tree-select/interface.js +13 -0
  48. package/lib/tree-select/style/css.js +4 -0
  49. package/lib/tree-select/style/index.css +502 -0
  50. package/lib/tree-select/style/index.d.ts +2 -0
  51. package/lib/tree-select/style/index.js +4 -0
  52. package/lib/tree-select/style/index.less +392 -0
  53. package/lib/tree-select/style/mixin.less +29 -0
  54. package/lib/tree-select/style/token.less +54 -0
  55. package/lib/tree-select/tree-select.d.ts +4 -0
  56. package/lib/tree-select/tree-select.js +519 -0
  57. package/package.json +1 -1
@@ -0,0 +1,392 @@
1
+ @import '../../style/themes/index';
2
+ @import '../../style/mixins/index';
3
+ @import './mixin.less';
4
+
5
+ @tree-select-prefix-cls: ~'@{kd-prefix}-tree-select';
6
+ @tree-prefix-cls: ~'@{kd-prefix}-tree';
7
+
8
+ .@{tree-select-prefix-cls} {
9
+ position: relative;
10
+ display: inline-block;
11
+ box-sizing: border-box;
12
+ background-color: transparent;
13
+ cursor: pointer;
14
+ vertical-align: middle;
15
+
16
+ &-selector:hover {
17
+ .@{tree-select-prefix-cls}-icon-active {
18
+ color: #3761ca;
19
+ }
20
+ }
21
+ &-visible {
22
+ .@{tree-select-prefix-cls}-icon-active {
23
+ color: #3761ca;
24
+ }
25
+ .@{tree-select-prefix-cls}-selection-item {
26
+ color: @tree-select-placeholder-color;
27
+ }
28
+ }
29
+
30
+ &-icon {
31
+ &-arrow {
32
+ display: inline-flex;
33
+ align-items: center;
34
+ vertical-align: middle;
35
+ &-up {
36
+ transform: rotate(180deg);
37
+ transition: transform calc(@transition-duration - 0.1s) @ease;
38
+ }
39
+
40
+ &-down {
41
+ transform: rotate(0deg);
42
+ transition: transform calc(@transition-duration - 0.1s) @ease;
43
+ }
44
+
45
+ &-focus {
46
+ color: @tree-select-g-color-border-foucs;
47
+ }
48
+ }
49
+
50
+ &-clear {
51
+ opacity: 0;
52
+ z-index: 1;
53
+ position: absolute;
54
+ background: #fff;
55
+ transition: opacity 0.15s ease;
56
+ &:hover {
57
+ color: @tree-select-g-color-border-hover;
58
+ }
59
+ }
60
+ }
61
+
62
+ &-focused {
63
+ .focusColor();
64
+ }
65
+ &-placeholder {
66
+ position: absolute;
67
+ color: @tree-select-placeholder-color;
68
+ overflow: hidden;
69
+ white-space: nowrap;
70
+ text-overflow: ellipsis;
71
+ right: 28px;
72
+ left: 0;
73
+ }
74
+
75
+ &-borderless {
76
+ border: none;
77
+ }
78
+
79
+ &-underline {
80
+ border-bottom: 1px solid @tree-select-g-color-border;
81
+ &:hover:not(.@{tree-select-prefix-cls}-multiple-disabled):not(.@{tree-select-prefix-cls}-single-disabled) {
82
+ border-bottom: 1px solid @tree-select-g-color-border-hover;
83
+ }
84
+ }
85
+
86
+ &-bordered {
87
+ border: 1px solid @tree-select-border-g-color-border;
88
+ padding-left: @tree-select-bordered !important;
89
+ border-radius: @tree-select-border-radius-border;
90
+ &:hover:not(.@{tree-select-prefix-cls}-multiple-disabled):not(.@{tree-select-prefix-cls}-single-disabled) {
91
+ border: 1px solid @tree-select-g-color-border-hover;
92
+ }
93
+
94
+ .@{tree-select-prefix-cls}-suffix {
95
+ padding-right: 8px;
96
+ }
97
+
98
+ &.@{tree-select-prefix-cls}-single {
99
+ .@{tree-select-prefix-cls}-selection-search {
100
+ padding-left: @tree-select-bordered;
101
+ }
102
+ }
103
+
104
+ .@{tree-select-prefix-cls}-placeholder {
105
+ padding-left: @tree-select-bordered;
106
+ }
107
+ }
108
+
109
+ &-wrapper {
110
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
111
+ padding: @tree-select-wrapper-padding;
112
+ max-width: 100%;
113
+ color: #212121;
114
+ display: flex;
115
+ flex-wrap: wrap;
116
+ align-items: center;
117
+ cursor: pointer;
118
+ box-sizing: border-box;
119
+ overflow-y: auto;
120
+ overflow-x: hidden;
121
+ position: relative;
122
+ }
123
+
124
+ &-dropdown {
125
+ display: block;
126
+ left: 0;
127
+ z-index: @tree-select-z-index;
128
+ box-sizing: border-box;
129
+ padding: 4px 0;
130
+ margin: 0;
131
+ overflow: auto;
132
+ font-size: @tree-select-list-font-size;
133
+ font-variant: initial;
134
+ background-color: @tree-select-dropdown-bg;
135
+ border-radius: @tree-select-g-radius-border;
136
+ outline: none;
137
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
138
+ max-height: 200px;
139
+
140
+ .@{tree-prefix-cls} {
141
+ padding-left: 16px;
142
+ padding-right: 16px;
143
+ }
144
+
145
+
146
+ &-scroll {
147
+ overflow-y: auto;
148
+ }
149
+
150
+ &-empty {
151
+ padding: 5px 12px;
152
+ }
153
+
154
+ // 搜索框
155
+ &-search {
156
+ padding: 5px 6px;
157
+ &-hidden {
158
+ display: none;
159
+ }
160
+ }
161
+ }
162
+
163
+ // 选择器框大小
164
+ &-size-small {
165
+ .select-input-size(@tree-select-small-height, @tree-select-small-height, @tree-select-small-line-height, @tree-select-small-font-size);
166
+ }
167
+
168
+ &-size-middle {
169
+ .select-input-size(@tree-select-middle-height, @tree-select-middle-height, @tree-select-middle-line-height, @tree-select-middle-font-size);
170
+ }
171
+
172
+ &-size-large {
173
+ .select-input-size(@tree-select-large-height, @tree-select-large-height, @tree-select-large-line-height, @tree-select-large-font-size);
174
+ }
175
+
176
+ &-suffix {
177
+ right: 0;
178
+ position: absolute;
179
+ display: flex;
180
+ flex: 0;
181
+ flex-wrap: wrap;
182
+ align-items: center;
183
+ justify-content: center;
184
+ margin-left: 8px;
185
+ }
186
+ .@{tree-select-prefix-cls}-single {
187
+ .@{tree-select-prefix-cls}-selection {
188
+ &-search {
189
+ position: absolute;
190
+ right: 28px;
191
+ left: 0;
192
+ height: 100%;
193
+ &-input {
194
+ outline: 0;
195
+ border-radius: 0;
196
+ border: none;
197
+ background: transparent;
198
+ height: 100%;
199
+ width: 100%;
200
+ }
201
+ }
202
+ &-item {
203
+ display: inline-block;
204
+ .over();
205
+ }
206
+ }
207
+ &-focused {
208
+ .focusColor();
209
+ }
210
+ &-disabled {
211
+ background-color: @tree-select-color-background-disabled;
212
+ color: @tree-select-color-text-disabled;
213
+ &:hover {
214
+ cursor: not-allowed;
215
+ }
216
+
217
+ .@{tree-select-prefix-cls}-suffix {
218
+ color: @tree-select-arrow-icon-color-text-disabled;
219
+ }
220
+ }
221
+ &:hover .@{tree-select-prefix-cls}-icon-clear {
222
+ opacity: 1;
223
+ }
224
+
225
+ .@{tree-select-prefix-cls}-icon-clear {
226
+ color: @tree-select-clear-color;
227
+ &:hover {
228
+ color: @tree-select-clear-color-hover;
229
+ }
230
+ }
231
+ &-text {
232
+ color: @tree-select-single-color-text;
233
+ .over();
234
+ }
235
+ &-disabled-text {
236
+ color: @tree-select-color-text-disabled;
237
+ }
238
+ }
239
+
240
+ .@{tree-select-prefix-cls}-selection-item {
241
+ display: inline-flex;
242
+ box-sizing: border-box;
243
+ align-items: center;
244
+ vertical-align: middle;
245
+ max-width: 100%;
246
+ height: 20px;
247
+ line-height: 20px;
248
+ margin: 2px 8px 2px 0;
249
+ cursor: default;
250
+ user-select: none;
251
+ &-small {
252
+ height: 20px;
253
+ line-height: 18px;
254
+ font-size: 12px;
255
+ }
256
+
257
+ &-middle {
258
+ font-size: 12px;
259
+ height: 20px;
260
+ line-height: 18px;
261
+ }
262
+
263
+ &-large {
264
+ font-size: 14px;
265
+ line-height: 22px;
266
+ height: 22px;
267
+ }
268
+
269
+ &-content {
270
+ display: inline-flex;
271
+ align-items: center;
272
+ vertical-align: middle;
273
+ padding: 0 7px;
274
+ overflow: hidden;
275
+ white-space: nowrap;
276
+ text-overflow: ellipsis;
277
+ border: 1px solid #ccc;
278
+ color: #212121;
279
+ }
280
+
281
+ &-span {
282
+ position: relative;
283
+ margin-left: 0.5px;
284
+ box-sizing: border-box;
285
+ }
286
+ &-input {
287
+ cursor: text;
288
+ margin: 0;
289
+ padding: 0;
290
+ background: 0 0;
291
+ border: none;
292
+ outline: none;
293
+ appearance: none;
294
+ width: 100%;
295
+ min-width: 20px;
296
+ }
297
+ }
298
+
299
+ // 多选
300
+ &-multiple {
301
+ .@{tree-select-prefix-cls}-selection {
302
+ &-tag {
303
+ max-width: calc(100% - 5px);
304
+
305
+ .@{kd-prefix}-tag {
306
+ margin: 2px 8px 2px 0;
307
+ max-width: 100%;
308
+ }
309
+ }
310
+ &-search {
311
+ position: relative;
312
+ max-width: 100%;
313
+ &-input {
314
+ outline: 0;
315
+ border-radius: 0;
316
+ border: none;
317
+ background: transparent;
318
+ width: 100%;
319
+ }
320
+ &-mirror {
321
+ position: absolute;
322
+ top: 0;
323
+ left: 0;
324
+ z-index: 999;
325
+ white-space: pre;
326
+ visibility: hidden;
327
+ }
328
+ }
329
+ }
330
+ &-disabled {
331
+ cursor: not-allowed;
332
+ background-color: @tree-select-color-background-disabled;
333
+ color: @tree-select-color-text-disabled;
334
+
335
+ .@{tree-select-prefix-cls}-suffix {
336
+ color: @tree-select-arrow-icon-color-text-disabled;
337
+ }
338
+ }
339
+ &:hover .@{tree-select-prefix-cls}-icon-clear {
340
+ opacity: 1;
341
+ }
342
+ .@{tree-select-prefix-cls}-icon-clear {
343
+ color: @tree-select-clear-color;
344
+ &:hover {
345
+ color: @tree-select-clear-color-hover;
346
+ }
347
+ }
348
+ &-selector {
349
+ position: relative;
350
+ cursor: text;
351
+ padding-right: 24px;
352
+ display: flex;
353
+ flex-wrap: wrap;
354
+ align-items: center;
355
+ }
356
+ .@{tree-select-prefix-cls}-wrapper {
357
+ &:hover:not(.@{tree-select-prefix-cls}-multiple-disabled) {
358
+ border-bottom: 1px solid @tree-select-g-color-border-hover;
359
+ }
360
+ }
361
+
362
+ &-footer {
363
+ color: @tree-select-font-color;
364
+ display: inline-flex;
365
+ align-items: center;
366
+ width: 100%;
367
+ padding: 0 12px;
368
+ height: 32px;
369
+ line-height: 32px;
370
+ border-top: 1px solid #d9d9d9;
371
+ box-sizing: border-box;
372
+
373
+ &-hadSelected {
374
+ color: #999999;
375
+ padding-left: 12px;
376
+ > span {
377
+ color: @tree-select-footer-g-text-color-selected;
378
+ padding: 0 2px;
379
+ }
380
+ }
381
+ }
382
+ }
383
+
384
+ &.topLeft.hidden,
385
+ &.bottomLeft.hidden,
386
+ &.topRight.hidden,
387
+ &.bottomRight.hidden {
388
+ opacity: 0;
389
+ visibility: hidden;
390
+ transition: all calc(@transition-duration - 0.1s) @ease;
391
+ }
392
+ }
@@ -0,0 +1,29 @@
1
+ @import './token.less';
2
+
3
+ .item() {
4
+ position: relative;
5
+ display: block;
6
+ font-weight: normal;
7
+ font-size: @tree-select-list-font-size;
8
+ min-height: @tree-select-dropdown-height;
9
+ padding: 5px 12px;
10
+ color: @tree-select-font-color;
11
+ line-height: @tree-select-dropdown-line-height;
12
+ }
13
+
14
+ .focusColor() {
15
+ border-color: @tree-select-g-color-border-foucs !important;
16
+ }
17
+
18
+ .select-input-size(@height, @maxHeight, @lineHeight, @fontSize) {
19
+ min-height: @height;
20
+ max-height: calc(@maxHeight * 3 - 10px);
21
+ font-size: @fontSize;
22
+ }
23
+
24
+ .over() {
25
+ overflow: hidden;
26
+ white-space: nowrap;
27
+ text-overflow: ellipsis;
28
+ }
29
+
@@ -0,0 +1,54 @@
1
+ @import '../../style/themes/token.less';
2
+
3
+ @select-custom-prefix: ~'--@{kd-prefix}-c-tree-select';
4
+
5
+
6
+ // color
7
+ @tree-select-dropdown-bg: var(~'@{select-custom-prefix}-dropdown-color-background', @color-background);
8
+ @tree-select-disabled-option-bg: var(~'@{select-custom-prefix}-item-color-background-disabled', #fff);
9
+ @tree-select-item-active-bg: var(~'@{select-custom-prefix}-color-background', #f5f5f5);
10
+ @tree-select-item-selected-bg: var(~'@{select-custom-prefix}-color-background-selected', @color-theme-3);
11
+ @tree-select-g-color-border: var(~'@{select-custom-prefix}-color-border', @color-input);
12
+ @tree-select-g-color-border-foucs: var(~'@{select-custom-prefix}-color-border-foucs', @color-theme);
13
+ @tree-select-g-color-border-hover: var(~'@{select-custom-prefix}-color-border-hover', @color-theme);
14
+ @tree-select-border-g-color-border: var(~'@{select-custom-prefix}-border-color-border', @color-border-strong);
15
+ @tree-select-placeholder-color: var(~'@{select-custom-prefix}-placeholder-color-text', #b2b2b2);
16
+ @tree-select-item-selected-color: var(~'@{select-custom-prefix}-item-color-text-selected', @color-theme);
17
+ @tree-select-font-color: var(~'@{select-custom-prefix}-footer-color-text', @color-text-primary);
18
+ @tree-select-footer-g-text-color-selected: var(~'@{select-custom-prefix}-footer-color-text-selected', #0e5fd8);
19
+ @tree-select-g-item-text-color-disabled: var(~'@{select-custom-prefix}-item-color-text-disabled', @color-disabled);
20
+ @tree-select-color-background-disabled: var(~'@{select-custom-prefix}-color-background-disabled', #f5f5f5);
21
+ @tree-select-color-text-disabled: var(~'@{select-custom-prefix}-color-text-disabled', @color-disabled);
22
+ @tree-select-arrow-icon-color-text-disabled: var(~'@{select-custom-prefix}-arrow-icon-color-text-disabled', #b2b2b2);
23
+ @tree-select-single-color-text: var(~'@{select-custom-prefix}-single-color-text', @color-text-primary);
24
+ @tree-select-clear-color: var(~'@{select-custom-prefix}-icon-clear-color-text', #d9d9d9);
25
+ @tree-select-clear-color-hover: var(~'@{select-custom-prefix}-icon-clear-color-text-hover', #999);
26
+
27
+ // font
28
+ @tree-select-list-font-size: var(~'@{select-custom-prefix}-dropdown-font-size', 12px); // 下拉列表文字大小
29
+ @tree-select-large-font-size: var(~'@{select-custom-prefix}-font-size-large', 16px); // 大号字体
30
+ @tree-select-middle-font-size: var(~'@{select-custom-prefix}-font-size-middle', 14px); // 中号高度
31
+ @tree-select-small-font-size: var(~'@{select-custom-prefix}-font-size-small', 12px); // 小号高度
32
+
33
+ // line-height
34
+ @tree-select-dropdown-line-height: var(~'@{select-custom-prefix}-dropdown-line-height', 22px);
35
+ @tree-select-large-line-height: var(~'@{select-custom-prefix}-line-height-large', 28px);
36
+ @tree-select-middle-line-height: var(~'@{select-custom-prefix}-line-height-middle', 22px);
37
+ @tree-select-small-line-height: var(~'@{select-custom-prefix}-line-height-small', 14px);
38
+
39
+ // sizing
40
+ @tree-select-dropdown-height: var(~'@{select-custom-prefix}-item-sizing-height', 22px);
41
+ @tree-select-large-height: var(~'@{select-custom-prefix}-sizing-height-large', 36px); // 大号高度 lh:28px
42
+ @tree-select-middle-height: var(~'@{select-custom-prefix}-sizing-height-middle', 32px); // 中号高度lh:22px
43
+ @tree-select-small-height: var(~'@{select-custom-prefix}-sizing-height-small', 24px); // 小号高度lh:12px
44
+
45
+ // spacing
46
+ @tree-select-bordered: var(~'@{select-custom-prefix}-bordered-spacing-padding-left', 8px);
47
+ @tree-select-wrapper-padding: var(~'@{select-custom-prefix}-wrapper-spacing-padding', 1px 28px 1px 0);
48
+
49
+ // radius
50
+ @tree-select-g-radius-border: var(~'@{select-custom-prefix}-radius-border', @radius-border);
51
+ @tree-select-border-radius-border: var(~'@{select-custom-prefix}-bordered-radius-border', 2px);
52
+
53
+ // z-index
54
+ @tree-select-z-index: var(~'@{select-custom-prefix}-z-index', @z-index-popper);
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ITreeSelectProps } from './interface';
3
+ declare const TreeSelect: React.ForwardRefExoticComponent<ITreeSelectProps<import("../collapse/collapse").keyType> & React.RefAttributes<unknown>>;
4
+ export default TreeSelect;