@douyinfe/semi-foundation 2.15.2-alpha.0 → 2.16.1
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.
- package/dropdown/menuFoundation.ts +4 -2
- package/input/input.scss +44 -9
- package/input/textarea.scss +2 -2
- package/lib/cjs/dropdown/menuFoundation.js +6 -3
- package/lib/cjs/input/input.css +32 -1
- package/lib/cjs/input/input.scss +44 -9
- package/lib/cjs/input/textarea.css +2 -2
- package/lib/cjs/input/textarea.scss +2 -2
- package/lib/cjs/radio/radio.css +75 -20
- package/lib/cjs/radio/radio.scss +36 -22
- package/lib/cjs/radio/rtl.scss +47 -0
- package/lib/cjs/select/select.css +2 -2
- package/lib/cjs/select/variables.scss +4 -4
- package/lib/cjs/slider/foundation.d.ts +9 -2
- package/lib/cjs/slider/foundation.js +195 -5
- package/lib/cjs/slider/slider.css +3 -0
- package/lib/cjs/slider/slider.scss +7 -5
- package/lib/cjs/slider/variables.scss +4 -4
- package/lib/cjs/switch/switch.css +2 -2
- package/lib/cjs/switch/switch.scss +2 -2
- package/lib/cjs/timePicker/foundation.d.ts +1 -1
- package/lib/cjs/timePicker/foundation.js +1 -1
- package/lib/cjs/tooltip/variables.scss +1 -1
- package/lib/cjs/treeSelect/treeSelect.css +2 -0
- package/lib/cjs/treeSelect/treeSelect.scss +2 -0
- package/lib/es/dropdown/menuFoundation.js +6 -3
- package/lib/es/input/input.css +32 -1
- package/lib/es/input/input.scss +44 -9
- package/lib/es/input/textarea.css +2 -2
- package/lib/es/input/textarea.scss +2 -2
- package/lib/es/radio/radio.css +75 -20
- package/lib/es/radio/radio.scss +36 -22
- package/lib/es/radio/rtl.scss +47 -0
- package/lib/es/select/select.css +2 -2
- package/lib/es/select/variables.scss +4 -4
- package/lib/es/slider/foundation.d.ts +9 -2
- package/lib/es/slider/foundation.js +192 -5
- package/lib/es/slider/slider.css +3 -0
- package/lib/es/slider/slider.scss +7 -5
- package/lib/es/slider/variables.scss +4 -4
- package/lib/es/switch/switch.css +2 -2
- package/lib/es/switch/switch.scss +2 -2
- package/lib/es/timePicker/foundation.d.ts +1 -1
- package/lib/es/timePicker/foundation.js +1 -1
- package/lib/es/tooltip/variables.scss +1 -1
- package/lib/es/treeSelect/treeSelect.css +2 -0
- package/lib/es/treeSelect/treeSelect.scss +2 -0
- package/package.json +2 -2
- package/radio/radio.scss +36 -22
- package/radio/rtl.scss +47 -0
- package/select/variables.scss +4 -4
- package/slider/foundation.ts +141 -9
- package/slider/slider.scss +7 -5
- package/slider/variables.scss +4 -4
- package/switch/switch.scss +2 -2
- package/timePicker/foundation.ts +1 -1
- package/tooltip/variables.scss +1 -1
- package/treeSelect/treeSelect.scss +2 -0
- package/utils/a11y.ts +2 -2
package/lib/cjs/radio/radio.scss
CHANGED
|
@@ -6,8 +6,9 @@ $inner-width: $width-icon-medium;
|
|
|
6
6
|
.#{$module} {
|
|
7
7
|
@include box-sizing;
|
|
8
8
|
@include font-size-regular;
|
|
9
|
+
position: relative;
|
|
9
10
|
display: inline-flex;
|
|
10
|
-
|
|
11
|
+
flex-wrap: wrap;
|
|
11
12
|
|
|
12
13
|
&.#{$module}-vertical {
|
|
13
14
|
display: block;
|
|
@@ -77,8 +78,6 @@ $inner-width: $width-icon-medium;
|
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
&-buttonRadioGroup {
|
|
80
|
-
// Button needs to be positioned relative to parent
|
|
81
|
-
position: relative;
|
|
82
81
|
padding: $spacing-radio_buttonRadioGroup_middle-padding;
|
|
83
82
|
border-radius: $radius-radio_buttonRadio;
|
|
84
83
|
line-height: $font-radio_buttonRadioGroup_middle-lineHeight;
|
|
@@ -107,6 +106,7 @@ $inner-width: $width-icon-medium;
|
|
|
107
106
|
border: $width-radio_cardRadioGroup_checked-border solid transparent;
|
|
108
107
|
|
|
109
108
|
.#{$module}-inner {
|
|
109
|
+
position: relative;
|
|
110
110
|
&-display {
|
|
111
111
|
background: $color-radio_card-bg-default;
|
|
112
112
|
}
|
|
@@ -205,19 +205,19 @@ $inner-width: $width-icon-medium;
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
&-inner {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
208
|
+
position: absolute;
|
|
209
|
+
display: inline-block;
|
|
210
|
+
top: 2px;
|
|
211
|
+
left: 0;
|
|
212
212
|
width: $width-radio_inner;
|
|
213
213
|
height: $width-radio_inner;
|
|
214
214
|
vertical-align: sub;
|
|
215
215
|
user-select: none; // prevent text under it will be selected when double click
|
|
216
216
|
|
|
217
217
|
&-display {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
218
|
+
position: absolute;
|
|
219
|
+
left: 0;
|
|
220
|
+
top: 0;
|
|
221
221
|
@include box-sizing;
|
|
222
222
|
width: $width-radio_inner;
|
|
223
223
|
height: $width-radio_inner;
|
|
@@ -226,6 +226,7 @@ $inner-width: $width-icon-medium;
|
|
|
226
226
|
background: $color-radio_default-bg-default;
|
|
227
227
|
|
|
228
228
|
.#{$prefix}-icon {
|
|
229
|
+
position: absolute;
|
|
229
230
|
width: 100%;
|
|
230
231
|
height: 100%;
|
|
231
232
|
font-size: 14px;
|
|
@@ -233,11 +234,6 @@ $inner-width: $width-icon-medium;
|
|
|
233
234
|
}
|
|
234
235
|
}
|
|
235
236
|
|
|
236
|
-
&-content {
|
|
237
|
-
display: flex;
|
|
238
|
-
flex-direction: column;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
237
|
&:hover {
|
|
242
238
|
.#{$module}-inner-display {
|
|
243
239
|
background: $color-radio_default-bg-hover;
|
|
@@ -252,6 +248,8 @@ $inner-width: $width-icon-medium;
|
|
|
252
248
|
|
|
253
249
|
&-addon {
|
|
254
250
|
user-select: none;
|
|
251
|
+
padding-left: $spacing-radio_addon-paddingLeft;
|
|
252
|
+
margin-left: $spacing-radio_addon-marginLeft;
|
|
255
253
|
color: $color-radio_default-text-default;
|
|
256
254
|
display: inline-flex;
|
|
257
255
|
align-items: center;
|
|
@@ -374,7 +372,11 @@ $inner-width: $width-icon-medium;
|
|
|
374
372
|
}
|
|
375
373
|
|
|
376
374
|
&-extra {
|
|
375
|
+
flex-grow: 1;
|
|
376
|
+
flex-basis: 100%;
|
|
377
|
+
flex-shrink: 0;
|
|
377
378
|
color: $color-radio_extra-text-default;
|
|
379
|
+
padding-left: $spacing-radio_extra-paddingLeft;
|
|
378
380
|
box-sizing: border-box;
|
|
379
381
|
}
|
|
380
382
|
|
|
@@ -391,25 +393,37 @@ $inner-width: $width-icon-medium;
|
|
|
391
393
|
@include font-size-regular;
|
|
392
394
|
|
|
393
395
|
&-vertical {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
396
|
+
.#{$module} {
|
|
397
|
+
&:last-of-type {
|
|
398
|
+
margin-bottom: 0;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
398
401
|
&-default {
|
|
399
402
|
.#{$module} {
|
|
400
|
-
display:
|
|
403
|
+
display: block;
|
|
404
|
+
margin-bottom: $spacing-radio_group_vertical-marginBottom;
|
|
405
|
+
|
|
401
406
|
}
|
|
402
407
|
}
|
|
403
408
|
&-card {
|
|
404
409
|
.#{$module} {
|
|
405
410
|
display: flex;
|
|
411
|
+
margin-bottom: $spacing-radio_card_group_vertical-marginBottom;
|
|
406
412
|
}
|
|
407
413
|
}
|
|
408
414
|
}
|
|
409
415
|
|
|
410
416
|
&-horizontal {
|
|
411
|
-
|
|
412
|
-
|
|
417
|
+
.#{$module} {
|
|
418
|
+
margin-right: $spacing-radio_group_horizontal-marginRight;
|
|
419
|
+
|
|
420
|
+
&:last-of-type {
|
|
421
|
+
margin-right: 0;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
&-default {
|
|
425
|
+
display: inline-block;
|
|
426
|
+
}
|
|
413
427
|
}
|
|
414
428
|
|
|
415
429
|
&-buttonRadio {
|
package/lib/cjs/radio/rtl.scss
CHANGED
|
@@ -18,14 +18,61 @@ $inner-width: $width-icon-medium;
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
&-inner {
|
|
22
|
+
left: auto;
|
|
23
|
+
right: 0;
|
|
24
|
+
|
|
25
|
+
&-display {
|
|
26
|
+
left: auto;
|
|
27
|
+
right: 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
21
31
|
&-addon {
|
|
32
|
+
padding-left: 0;
|
|
33
|
+
margin-left: 0;
|
|
34
|
+
padding-right: $spacing-radio_addon-paddingLeft;
|
|
35
|
+
margin-right: $spacing-radio_addon-marginLeft;
|
|
36
|
+
|
|
22
37
|
&-buttonRadio {
|
|
23
38
|
margin-right: $spacing-none;
|
|
24
39
|
}
|
|
25
40
|
}
|
|
41
|
+
|
|
42
|
+
&-extra {
|
|
43
|
+
padding-left: 0;
|
|
44
|
+
padding-right: $spacing-radio_extra-paddingLeft;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&-isCardRadioGroup {
|
|
49
|
+
.#{$module}-inner {
|
|
50
|
+
margin-right: 0;
|
|
51
|
+
margin-left: $spacing-radio_cardRadioGroup_inner-marginRight;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.#{$module}-addon {
|
|
55
|
+
margin-right: 0;
|
|
56
|
+
padding-right: 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.#{$module}-extra {
|
|
60
|
+
padding-right: 0;
|
|
61
|
+
}
|
|
26
62
|
}
|
|
27
63
|
|
|
28
64
|
.#{$module}Group {
|
|
29
65
|
direction: rtl;
|
|
66
|
+
|
|
67
|
+
&-horizontal {
|
|
68
|
+
.#{$module} {
|
|
69
|
+
margin-right: 0;
|
|
70
|
+
margin-left: $spacing-radio_group_horizontal-marginRight;
|
|
71
|
+
|
|
72
|
+
&:last-of-type {
|
|
73
|
+
margin-left: 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
30
77
|
}
|
|
31
78
|
}
|
|
@@ -283,11 +283,11 @@
|
|
|
283
283
|
align-items: center;
|
|
284
284
|
}
|
|
285
285
|
.semi-select-prefix-text, .semi-select-suffix-text {
|
|
286
|
-
margin:
|
|
286
|
+
margin: 0px 12px;
|
|
287
287
|
}
|
|
288
288
|
.semi-select-prefix-icon, .semi-select-suffix-icon {
|
|
289
289
|
color: var(--semi-color-text-2);
|
|
290
|
-
margin:
|
|
290
|
+
margin: 0px 8px;
|
|
291
291
|
}
|
|
292
292
|
.semi-select-suffix {
|
|
293
293
|
display: flex;
|
|
@@ -58,16 +58,16 @@ $width-select_arrow: 32px; // 选择器输入框下拉箭头宽度
|
|
|
58
58
|
$width-select_arrow_empty: 12px; // 选择器输入框下拉箭头为空时(有suffix icon)宽度
|
|
59
59
|
$width-select_clear-icon: 32px; // 选择器输入框清空按钮宽度
|
|
60
60
|
$width-select_group_top-border: $border-thickness-control; // 选择器菜单分组标题描边宽度
|
|
61
|
-
$height-select_multiple_content_wrapper-minHeight: $height-select_default -
|
|
61
|
+
$height-select_multiple_content_wrapper-minHeight: $height-select_default - 2px; // 多项选择器标签组最小宽度
|
|
62
62
|
$width-select-border-hover: $width-select-border; // 选择器输入框描边宽度 - 悬浮
|
|
63
63
|
$width-select-border-focus: $width-select-border-hover; // 选择器输入框描边宽度 - 按下
|
|
64
64
|
$width-select-border-active: $width-select-border-focus; // 选择器输入框描边宽度 - 选中
|
|
65
65
|
// Spacing
|
|
66
66
|
$spacing-select_option_tick-marginRight: $spacing-tight; // 选择器菜单选中对勾右侧外边距
|
|
67
67
|
$spacing-select_prefix_suffix_text-marginX: $spacing-base-tight; // 选择器输入框前后缀文本水平内边距
|
|
68
|
-
$spacing-select_prefix_suffix_text-marginY:
|
|
68
|
+
$spacing-select_prefix_suffix_text-marginY: 0px; // 选择器输入框前后缀文本垂直内边距
|
|
69
69
|
$spacing-select_prefix_suffix_icon-marginX: $spacing-tight; // 选择器输入框前后缀图标水平内边距
|
|
70
|
-
$spacing-select_prefix_suffix_icon-marginY:
|
|
70
|
+
$spacing-select_prefix_suffix_icon-marginY: 0px; // 选择器输入框前后缀图标垂直内边距
|
|
71
71
|
$spacing-select_create_tips-marginRight: $spacing-extra-tight; // 创建新选项右侧外边距
|
|
72
72
|
$spacing-select_group-marginTop: $spacing-extra-tight; // 选择器菜单分组标题顶部外边距
|
|
73
73
|
$spacing-select_group-paddingTop: $spacing-base-tight; // 选择器菜单分组标题顶部内边距
|
|
@@ -106,5 +106,5 @@ $font-select_inset_label-fontWeight: 600; // 选择器内嵌标签文本字重
|
|
|
106
106
|
$font-select_keyword-fontWeight: 600; // 选择器搜索结果命关键词中文本字重
|
|
107
107
|
|
|
108
108
|
// Other
|
|
109
|
-
$opacity-select_selection_text_inactive: .4;
|
|
109
|
+
$opacity-select_selection_text_inactive: 0.4;
|
|
110
110
|
|
|
@@ -26,7 +26,7 @@ export interface SliderProps {
|
|
|
26
26
|
'aria-label'?: string;
|
|
27
27
|
'aria-labelledby'?: string;
|
|
28
28
|
'aria-valuetext'?: string;
|
|
29
|
-
getAriaValueText?: (value: number) => string;
|
|
29
|
+
getAriaValueText?: (value: number, index?: number) => string;
|
|
30
30
|
}
|
|
31
31
|
export interface SliderState {
|
|
32
32
|
currentValue: number | number[];
|
|
@@ -40,6 +40,8 @@ export interface SliderState {
|
|
|
40
40
|
clickValue: 0;
|
|
41
41
|
showBoundary: boolean;
|
|
42
42
|
isInRenderTree: boolean;
|
|
43
|
+
firstDotFocusVisible: boolean;
|
|
44
|
+
secondDotFocusVisible: boolean;
|
|
43
45
|
}
|
|
44
46
|
export interface SliderLengths {
|
|
45
47
|
sliderX: number;
|
|
@@ -53,7 +55,6 @@ export interface ScrollParentVal {
|
|
|
53
55
|
}
|
|
54
56
|
export interface OverallVars {
|
|
55
57
|
dragging: boolean[];
|
|
56
|
-
chooseMovePos: 'min' | 'max';
|
|
57
58
|
}
|
|
58
59
|
export interface SliderAdapter extends DefaultAdapter<SliderProps, SliderState> {
|
|
59
60
|
getSliderLengths: () => SliderLengths;
|
|
@@ -189,7 +190,13 @@ export default class SliderFoundation extends BaseFoundation<SliderAdapter> {
|
|
|
189
190
|
onHandleEnter: (pos: SliderState['focusPos']) => void;
|
|
190
191
|
onHandleLeave: () => void;
|
|
191
192
|
onHandleUp: (e: any) => boolean;
|
|
193
|
+
_handleValueDecreaseWithKeyBoard: (step: number, handler: 'min' | 'max') => number | any[];
|
|
194
|
+
_handleValueIncreaseWithKeyBoard: (step: number, handler: 'min' | 'max') => any;
|
|
195
|
+
_handleHomeKey: (handler: 'min' | 'max') => any;
|
|
196
|
+
_handleEndKey: (handler: 'min' | 'max') => any;
|
|
197
|
+
handleKeyDown: (event: any, handler: 'min' | 'max') => void;
|
|
192
198
|
onFocus: (e: any, handler: 'min' | 'max') => void;
|
|
199
|
+
onBlur: (e: any, handler: 'min' | 'max') => void;
|
|
193
200
|
handleWrapClick: (e: any) => void;
|
|
194
201
|
/**
|
|
195
202
|
* Move the slider to the current click position
|
|
@@ -14,10 +14,16 @@ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
14
14
|
|
|
15
15
|
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
|
|
16
16
|
|
|
17
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
18
|
+
|
|
17
19
|
var _foundation = _interopRequireDefault(require("../base/foundation"));
|
|
18
20
|
|
|
19
21
|
var _touchPolyfill = _interopRequireDefault(require("../utils/touchPolyfill"));
|
|
20
22
|
|
|
23
|
+
var _warning = _interopRequireDefault(require("../utils/warning"));
|
|
24
|
+
|
|
25
|
+
var _a11y = require("../utils/a11y");
|
|
26
|
+
|
|
21
27
|
/* eslint-disable no-param-reassign */
|
|
22
28
|
|
|
23
29
|
/* eslint-disable max-len */
|
|
@@ -547,8 +553,7 @@ class SliderFoundation extends _foundation.default {
|
|
|
547
553
|
const handleMaxDom = this._adapter.getMaxHandleEl().current;
|
|
548
554
|
|
|
549
555
|
if (e.target === handleMinDom || e.target === handleMaxDom) {
|
|
550
|
-
|
|
551
|
-
e.stopPropagation();
|
|
556
|
+
(0, _a11y.handlePrevent)(e);
|
|
552
557
|
const touch = (0, _touchPolyfill.default)(e.touches[0], e);
|
|
553
558
|
this.onHandleDown(touch, handler);
|
|
554
559
|
}
|
|
@@ -612,18 +617,203 @@ class SliderFoundation extends _foundation.default {
|
|
|
612
617
|
this._adapter.setDragging([dragging[0], false]);
|
|
613
618
|
}
|
|
614
619
|
|
|
615
|
-
this._adapter.setStateVal('isDrag', false);
|
|
616
|
-
|
|
620
|
+
this._adapter.setStateVal('isDrag', false);
|
|
617
621
|
|
|
618
622
|
this._adapter.onHandleLeave();
|
|
619
623
|
|
|
620
624
|
this._adapter.onHandleUpAfter();
|
|
621
625
|
|
|
622
626
|
return true;
|
|
627
|
+
};
|
|
628
|
+
|
|
629
|
+
this._handleValueDecreaseWithKeyBoard = (step, handler) => {
|
|
630
|
+
const {
|
|
631
|
+
min,
|
|
632
|
+
currentValue
|
|
633
|
+
} = this.getStates();
|
|
634
|
+
const {
|
|
635
|
+
range
|
|
636
|
+
} = this.getProps();
|
|
637
|
+
|
|
638
|
+
if (handler === 'min') {
|
|
639
|
+
if (range) {
|
|
640
|
+
let newMinValue = currentValue[0] - step;
|
|
641
|
+
newMinValue = newMinValue < min ? min : newMinValue;
|
|
642
|
+
return [newMinValue, currentValue[1]];
|
|
643
|
+
} else {
|
|
644
|
+
let newMinValue = currentValue - step;
|
|
645
|
+
newMinValue = newMinValue < min ? min : newMinValue;
|
|
646
|
+
return newMinValue;
|
|
647
|
+
}
|
|
648
|
+
} else {
|
|
649
|
+
let newMaxValue = currentValue[1] - step;
|
|
650
|
+
newMaxValue = newMaxValue < currentValue[0] ? currentValue[0] : newMaxValue;
|
|
651
|
+
return [currentValue[0], newMaxValue];
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
|
|
655
|
+
this._handleValueIncreaseWithKeyBoard = (step, handler) => {
|
|
656
|
+
const {
|
|
657
|
+
max,
|
|
658
|
+
currentValue
|
|
659
|
+
} = this.getStates();
|
|
660
|
+
const {
|
|
661
|
+
range
|
|
662
|
+
} = this.getProps();
|
|
663
|
+
|
|
664
|
+
if (handler === 'min') {
|
|
665
|
+
if (range) {
|
|
666
|
+
let newMinValue = currentValue[0] + step;
|
|
667
|
+
newMinValue = newMinValue > currentValue[1] ? currentValue[1] : newMinValue;
|
|
668
|
+
return [newMinValue, currentValue[1]];
|
|
669
|
+
} else {
|
|
670
|
+
let newMinValue = currentValue + step;
|
|
671
|
+
newMinValue = newMinValue > max ? max : newMinValue;
|
|
672
|
+
return newMinValue;
|
|
673
|
+
}
|
|
674
|
+
} else {
|
|
675
|
+
let newMaxValue = currentValue[1] + step;
|
|
676
|
+
newMaxValue = newMaxValue > max ? max : newMaxValue;
|
|
677
|
+
return [currentValue[0], newMaxValue];
|
|
678
|
+
}
|
|
679
|
+
};
|
|
680
|
+
|
|
681
|
+
this._handleHomeKey = handler => {
|
|
682
|
+
const {
|
|
683
|
+
min,
|
|
684
|
+
currentValue
|
|
685
|
+
} = this.getStates();
|
|
686
|
+
const {
|
|
687
|
+
range
|
|
688
|
+
} = this.getProps();
|
|
689
|
+
|
|
690
|
+
if (handler === 'min') {
|
|
691
|
+
if (range) {
|
|
692
|
+
return [min, currentValue[1]];
|
|
693
|
+
} else {
|
|
694
|
+
return min;
|
|
695
|
+
}
|
|
696
|
+
} else {
|
|
697
|
+
return [currentValue[0], currentValue[0]];
|
|
698
|
+
}
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
this._handleEndKey = handler => {
|
|
702
|
+
const {
|
|
703
|
+
max,
|
|
704
|
+
currentValue
|
|
705
|
+
} = this.getStates();
|
|
706
|
+
const {
|
|
707
|
+
range
|
|
708
|
+
} = this.getProps();
|
|
709
|
+
|
|
710
|
+
if (handler === 'min') {
|
|
711
|
+
if (range) {
|
|
712
|
+
return [currentValue[1], currentValue[1]];
|
|
713
|
+
} else {
|
|
714
|
+
return max;
|
|
715
|
+
}
|
|
716
|
+
} else {
|
|
717
|
+
return [currentValue[0], max];
|
|
718
|
+
}
|
|
719
|
+
};
|
|
720
|
+
|
|
721
|
+
this.handleKeyDown = (event, handler) => {
|
|
722
|
+
var _context;
|
|
723
|
+
|
|
724
|
+
const {
|
|
725
|
+
min,
|
|
726
|
+
max,
|
|
727
|
+
currentValue
|
|
728
|
+
} = this.getStates();
|
|
729
|
+
const {
|
|
730
|
+
step,
|
|
731
|
+
range
|
|
732
|
+
} = this.getProps();
|
|
733
|
+
let outputValue;
|
|
734
|
+
|
|
735
|
+
switch (event.key) {
|
|
736
|
+
case "ArrowLeft":
|
|
737
|
+
case "ArrowDown":
|
|
738
|
+
outputValue = this._handleValueDecreaseWithKeyBoard(step, handler);
|
|
739
|
+
break;
|
|
740
|
+
|
|
741
|
+
case "ArrowRight":
|
|
742
|
+
case "ArrowUp":
|
|
743
|
+
outputValue = this._handleValueIncreaseWithKeyBoard(step, handler);
|
|
744
|
+
break;
|
|
745
|
+
|
|
746
|
+
case "PageUp":
|
|
747
|
+
outputValue = this._handleValueIncreaseWithKeyBoard(10 * step, handler);
|
|
748
|
+
break;
|
|
749
|
+
|
|
750
|
+
case "PageDown":
|
|
751
|
+
outputValue = this._handleValueDecreaseWithKeyBoard(10 * step, handler);
|
|
752
|
+
break;
|
|
753
|
+
|
|
754
|
+
case "Home":
|
|
755
|
+
outputValue = this._handleHomeKey(handler);
|
|
756
|
+
break;
|
|
757
|
+
|
|
758
|
+
case "End":
|
|
759
|
+
outputValue = this._handleEndKey(handler);
|
|
760
|
+
break;
|
|
761
|
+
|
|
762
|
+
case 'default':
|
|
763
|
+
break;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
if ((0, _includes.default)(_context = ["ArrowLeft", "ArrowDown", "ArrowRight", "ArrowUp", "PageUp", "PageDown", "Home", "End"]).call(_context, event.key)) {
|
|
767
|
+
let update = true;
|
|
768
|
+
|
|
769
|
+
if ((0, _isArray.default)(currentValue)) {
|
|
770
|
+
update = !(currentValue[0] === outputValue[0] && currentValue[1] === outputValue[1]);
|
|
771
|
+
} else {
|
|
772
|
+
update = currentValue !== outputValue;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
if (update) {
|
|
776
|
+
this._adapter.updateCurrentValue(outputValue);
|
|
777
|
+
|
|
778
|
+
this._adapter.notifyChange(outputValue);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
(0, _a11y.handlePrevent)(event);
|
|
782
|
+
}
|
|
623
783
|
}; // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
624
784
|
|
|
625
785
|
|
|
626
|
-
this.onFocus = (e, handler) => {
|
|
786
|
+
this.onFocus = (e, handler) => {
|
|
787
|
+
(0, _a11y.handlePrevent)(e);
|
|
788
|
+
const {
|
|
789
|
+
target
|
|
790
|
+
} = e;
|
|
791
|
+
|
|
792
|
+
try {
|
|
793
|
+
if (target.matches(':focus-visible')) {
|
|
794
|
+
if (handler === 'min') {
|
|
795
|
+
this._adapter.setStateVal('firstDotFocusVisible', true);
|
|
796
|
+
} else {
|
|
797
|
+
this._adapter.setStateVal('secondDotFocusVisible', true);
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
} catch (error) {
|
|
801
|
+
(0, _warning.default)(true, 'Warning: [Semi Slider] The current browser does not support the focus-visible');
|
|
802
|
+
}
|
|
803
|
+
};
|
|
804
|
+
|
|
805
|
+
this.onBlur = (e, handler) => {
|
|
806
|
+
const {
|
|
807
|
+
firstDotFocusVisible,
|
|
808
|
+
secondDotFocusVisible
|
|
809
|
+
} = this.getStates();
|
|
810
|
+
|
|
811
|
+
if (handler === 'min') {
|
|
812
|
+
firstDotFocusVisible && this._adapter.setStateVal('firstDotFocusVisible', false);
|
|
813
|
+
} else {
|
|
814
|
+
secondDotFocusVisible && this._adapter.setStateVal('secondDotFocusVisible', false);
|
|
815
|
+
}
|
|
816
|
+
};
|
|
627
817
|
|
|
628
818
|
this.handleWrapClick = e => {
|
|
629
819
|
const {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//@import '../theme/variables.scss';
|
|
2
|
-
@import
|
|
2
|
+
@import './variables.scss';
|
|
3
3
|
|
|
4
4
|
$module: #{$prefix}-slider;
|
|
5
5
|
|
|
@@ -29,7 +29,7 @@ $module: #{$prefix}-slider;
|
|
|
29
29
|
font-variant: tabular-nums;
|
|
30
30
|
line-height: $font-slider_rail-lineHeight;
|
|
31
31
|
list-style: none;
|
|
32
|
-
font-feature-settings:
|
|
32
|
+
font-feature-settings: 'tnum';
|
|
33
33
|
position: absolute;
|
|
34
34
|
height: $height-slider_rail;
|
|
35
35
|
cursor: pointer;
|
|
@@ -54,7 +54,11 @@ $module: #{$prefix}-slider;
|
|
|
54
54
|
border: none;
|
|
55
55
|
border-radius: 50%;
|
|
56
56
|
cursor: pointer;
|
|
57
|
-
transition: #fff .3s;
|
|
57
|
+
transition: #fff 0.3s;
|
|
58
|
+
|
|
59
|
+
&:focus-visible {
|
|
60
|
+
outline: $width-slider_handle-focus solid $color-slider_handle-focus;
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
|
|
60
64
|
&-handle:hover {
|
|
@@ -133,10 +137,8 @@ $module: #{$prefix}-slider;
|
|
|
133
137
|
text-align: center;
|
|
134
138
|
cursor: pointer;
|
|
135
139
|
transform: translate(-50%, 0) rotate(-180deg);
|
|
136
|
-
|
|
137
140
|
}
|
|
138
141
|
|
|
139
|
-
|
|
140
142
|
&-boundary {
|
|
141
143
|
position: relative;
|
|
142
144
|
font-size: $font-size-small;
|
|
@@ -11,9 +11,10 @@ $color-slider_handle_disabled-border-hover: var(--semi-color-white); // 禁用
|
|
|
11
11
|
$color-slider_handle_disabled-border: var(--semi-color-border); // 禁用滑动条圆形描边颜色 - 默认态
|
|
12
12
|
$color-slider_mark-text-default: var(--semi-color-text-2); // 滑动条刻度文字颜色
|
|
13
13
|
$color-slider_rail-bg-default: var(--semi-color-fill-0); // 滑动条轨道颜色 - 未填充
|
|
14
|
-
$color-slider_rail: rgba(0, 0, 0, .65);
|
|
14
|
+
$color-slider_rail: rgba(0, 0, 0, 0.65);
|
|
15
15
|
$color-slider_track-bg-default: var(--semi-color-primary); // 滑动条轨道颜色 - 已填充
|
|
16
16
|
$color-slider_track_disabled-bg: var(--semi-color-primary-disabled); // 禁用滑动条轨道颜色 - 已填充
|
|
17
|
+
$color-slider_handle-focus: var(--semi-color-primary-light-active); // 圆形按钮轮廓 - 聚焦
|
|
17
18
|
|
|
18
19
|
// Spacing
|
|
19
20
|
$spacing-slider-paddingX: 13px; // 滑动条整体水平内边距
|
|
@@ -33,7 +34,7 @@ $spacing-slider_boundary_min-left: 0;
|
|
|
33
34
|
$spacing-slider_boundary_max-right: 0;
|
|
34
35
|
$spacing-slider_vertical_marks-marginTop: -30px; // 垂直滑动条刻度标签顶部外边距
|
|
35
36
|
$spacing-slider_vertical_marks-marginLeft: 29px; // 垂直滑动条刻度标签左侧外边距
|
|
36
|
-
$spacing-slider_vertical_marks-reverse-marginLeft: -26px
|
|
37
|
+
$spacing-slider_vertical_marks-reverse-marginLeft: -26px; // 垂直滑动条刻度标签左侧外边距(标签在左侧时)
|
|
37
38
|
$spacing-slider_vertical_rail-top: 0; // 垂直滑动条轨道顶部距离
|
|
38
39
|
$spacing-slider_vertical_handle-marginTop: 0; // 垂直滑动条原型按钮顶部外边距
|
|
39
40
|
$spacing-slider_vertical_handle-marginLeft: -10px; // 垂直滑动条原型按钮左侧外边距
|
|
@@ -42,7 +43,6 @@ $spacing-slider_vertical_handle-marginLeft: -10px; // 垂直滑动条原型按
|
|
|
42
43
|
$radius-slider_rail: var(--semi-border-radius-small); // 滚动条未填充轨道圆角
|
|
43
44
|
$radius-slider_track: var(--semi-border-radius-small); // 滚动条已填充轨道圆角
|
|
44
45
|
|
|
45
|
-
|
|
46
46
|
// Width/Height
|
|
47
47
|
$height-slider_wrapper: 32px; // 滚动条容器整体高度
|
|
48
48
|
$height-slider_vertical_wrapper: 4px; // 垂直滚动条整体宽度
|
|
@@ -52,7 +52,7 @@ $width-slider_handle_clicked: 1px; // 滚动条圆形按钮按下后描边宽度
|
|
|
52
52
|
$height-slider_track: 4px; // 滚动条已填充轨道高度
|
|
53
53
|
$width-slider_dot: 4px; // 滚动条圆形刻度点宽度
|
|
54
54
|
$width-slider_handle_border_disabled: 1px; // 禁用滚动条圆形按钮按下后描边宽度
|
|
55
|
-
|
|
55
|
+
$width-slider_handle-focus: 2px; // 圆形按钮轮廓 - 聚焦
|
|
56
56
|
|
|
57
57
|
// Font
|
|
58
58
|
$font-slider_rail-fontSize: 14px; // 滚动条轨道文本字号
|
|
@@ -38,7 +38,7 @@ declare class TimePickerFoundation<P = Record<string, any>, S = Record<string, a
|
|
|
38
38
|
setPanel(open: boolean): void;
|
|
39
39
|
destroy(): void;
|
|
40
40
|
handlePanelOpen(): void;
|
|
41
|
-
|
|
41
|
+
handlePanelClose(clickedOutside: boolean, e: any): void;
|
|
42
42
|
handleVisibleChange(visible: boolean): void;
|
|
43
43
|
handleInputChange(input: string): void;
|
|
44
44
|
doValidate(args: string | Array<Date>): boolean;
|
|
@@ -261,7 +261,7 @@ class TimePickerFoundation extends _foundation.default {
|
|
|
261
261
|
this._adapter.notifyOpenChange(true);
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
|
|
264
|
+
handlePanelClose(clickedOutside, e) {
|
|
265
265
|
if (!this._isControlledComponent('open')) {
|
|
266
266
|
this._adapter.unregisterClickOutSide();
|
|
267
267
|
|
|
@@ -19,7 +19,7 @@ $spacing-tooltip_content-paddingBottom: $spacing-tight; // 工具提示内容底
|
|
|
19
19
|
|
|
20
20
|
$font-tooltip-fontSize: $font-size-regular; // 工具提示文本字号
|
|
21
21
|
$width-tooltip: 240px; // 工具提示宽度 - 默认
|
|
22
|
-
$width-tooltip_arrow: 24px; // 工具提示小三角箭头宽度 - 水平
|
|
22
|
+
$width-tooltip_arrow: 24px; // 工具提示小三角箭头宽度 - 水平 ignore-semi-css-trans
|
|
23
23
|
$height-tooltip_arrow: 7px; // 工具提示小三角箭头高度 - 水平
|
|
24
24
|
|
|
25
25
|
$height-tooltip_arrow_vertical: 24px; // 工具提示小三角箭头高度 - 垂直
|
|
@@ -188,6 +188,7 @@
|
|
|
188
188
|
.semi-tree-select-arrow {
|
|
189
189
|
display: inline-flex;
|
|
190
190
|
align-items: center;
|
|
191
|
+
flex-shrink: 0;
|
|
191
192
|
height: 100%;
|
|
192
193
|
justify-content: center;
|
|
193
194
|
width: 32px;
|
|
@@ -212,6 +213,7 @@
|
|
|
212
213
|
display: inline-flex;
|
|
213
214
|
align-items: center;
|
|
214
215
|
height: 100%;
|
|
216
|
+
flex-shrink: 0;
|
|
215
217
|
justify-content: center;
|
|
216
218
|
width: 32px;
|
|
217
219
|
color: var(--semi-color-text-2);
|