@douyinfe/semi-ui 2.3.1 → 2.5.0-beta.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.
- package/cascader/__test__/cascader.test.js +24 -0
- package/cascader/_story/cascader.stories.js +73 -0
- package/cascader/index.tsx +5 -2
- package/datePicker/_story/RenderDate/index.js +13 -3
- package/datePicker/_story/RenderFullDate/index.js +36 -14
- package/datePicker/_story/RenderFullDate/index.scss +1 -1
- package/datePicker/_story/datePicker.stories.js +19 -11
- package/datePicker/_story/v2/PanelOpen.jsx +39 -0
- package/datePicker/_story/v2/index.js +2 -1
- package/datePicker/datePicker.tsx +1 -0
- package/dist/css/semi.css +84 -36
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +487 -170
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/form/_story/demo.jsx +1 -0
- package/input/index.tsx +1 -0
- package/input/textarea.tsx +6 -4
- package/inputNumber/__test__/inputNumber.test.js +36 -8
- package/lib/cjs/autoComplete/index.d.ts +1 -1
- package/lib/cjs/cascader/index.js +6 -0
- package/lib/cjs/datePicker/datePicker.js +12 -8
- package/lib/cjs/dropdown/index.d.ts +1 -1
- package/lib/cjs/form/baseForm.d.ts +1 -1
- package/lib/cjs/form/field.d.ts +1 -1
- package/lib/cjs/input/index.js +2 -1
- package/lib/cjs/input/textarea.js +5 -3
- package/lib/cjs/navigation/Item.js +1 -1
- package/lib/cjs/navigation/SubNav.js +1 -1
- package/lib/cjs/scrollList/scrollItem.d.ts +5 -1
- package/lib/cjs/scrollList/scrollItem.js +7 -0
- package/lib/cjs/select/index.d.ts +1 -1
- package/lib/cjs/select/index.js +1 -1
- package/lib/cjs/select/option.js +2 -2
- package/lib/cjs/table/Table.d.ts +1 -1
- package/lib/cjs/table/Table.js +17 -7
- package/lib/cjs/table/interface.d.ts +1 -0
- package/lib/cjs/tabs/interface.d.ts +1 -1
- package/lib/cjs/timePicker/TimePicker.d.ts +2 -0
- package/lib/cjs/timePicker/TimePicker.js +4 -4
- package/lib/cjs/timePicker/index.d.ts +1 -0
- package/lib/cjs/tooltip/index.d.ts +1 -1
- package/lib/cjs/tree/index.d.ts +2 -0
- package/lib/cjs/tree/index.js +15 -8
- package/lib/cjs/tree/treeNode.js +10 -1
- package/lib/cjs/treeSelect/index.d.ts +2 -0
- package/lib/cjs/treeSelect/index.js +75 -30
- package/lib/cjs/typography/util.js +0 -1
- package/lib/cjs/upload/fileCard.js +31 -22
- package/lib/cjs/upload/index.d.ts +6 -0
- package/lib/cjs/upload/index.js +15 -8
- package/lib/cjs/upload/interface.d.ts +8 -6
- package/lib/es/autoComplete/index.d.ts +1 -1
- package/lib/es/cascader/index.js +5 -0
- package/lib/es/datePicker/datePicker.js +12 -8
- package/lib/es/dropdown/index.d.ts +1 -1
- package/lib/es/form/baseForm.d.ts +1 -1
- package/lib/es/form/field.d.ts +1 -1
- package/lib/es/input/index.js +2 -1
- package/lib/es/input/textarea.js +5 -3
- package/lib/es/navigation/Item.js +1 -1
- package/lib/es/navigation/SubNav.js +1 -1
- package/lib/es/scrollList/scrollItem.d.ts +5 -1
- package/lib/es/scrollList/scrollItem.js +7 -0
- package/lib/es/select/index.d.ts +1 -1
- package/lib/es/select/index.js +1 -1
- package/lib/es/select/option.js +2 -2
- package/lib/es/table/Table.d.ts +1 -1
- package/lib/es/table/Table.js +19 -7
- package/lib/es/table/interface.d.ts +1 -0
- package/lib/es/tabs/interface.d.ts +1 -1
- package/lib/es/timePicker/TimePicker.d.ts +2 -0
- package/lib/es/timePicker/TimePicker.js +4 -4
- package/lib/es/timePicker/index.d.ts +1 -0
- package/lib/es/tooltip/index.d.ts +1 -1
- package/lib/es/tree/index.d.ts +2 -0
- package/lib/es/tree/index.js +15 -8
- package/lib/es/tree/treeNode.js +9 -1
- package/lib/es/treeSelect/index.d.ts +2 -0
- package/lib/es/treeSelect/index.js +76 -31
- package/lib/es/typography/util.js +0 -1
- package/lib/es/upload/fileCard.js +31 -24
- package/lib/es/upload/index.d.ts +6 -0
- package/lib/es/upload/index.js +14 -8
- package/lib/es/upload/interface.d.ts +8 -6
- package/navigation/Item.tsx +1 -1
- package/navigation/SubNav.tsx +1 -1
- package/package.json +9 -8
- package/scrollList/scrollItem.tsx +10 -3
- package/select/index.tsx +6 -1
- package/select/option.tsx +2 -2
- package/table/Table.tsx +16 -8
- package/table/_story/table.stories.js +1 -0
- package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
- package/table/_story/v2/FixedHeaderMerge/index.jsx +98 -0
- package/table/_story/v2/FixedZIndex/index.jsx +87 -0
- package/table/_story/v2/defaultFilteredValue.tsx +123 -0
- package/table/_story/v2/index.js +4 -0
- package/table/interface.ts +1 -0
- package/tabs/interface.ts +1 -1
- package/timePicker/TimePicker.tsx +4 -1
- package/timePicker/__test__/timePicker.test.js +42 -3
- package/timePicker/_story/timepicker.stories.js +18 -0
- package/tooltip/_story/tooltip.stories.js +83 -1
- package/tree/__test__/treeMultiple.test.js +94 -0
- package/tree/_story/tree.stories.js +169 -0
- package/tree/index.tsx +12 -5
- package/tree/treeNode.tsx +9 -2
- package/treeSelect/__test__/treeMultiple.test.js +94 -0
- package/treeSelect/__test__/treeSelect.test.js +157 -0
- package/treeSelect/_story/treeSelect.stories.js +242 -0
- package/treeSelect/index.tsx +93 -52
- package/typography/_story/typography.stories.js +8 -0
- package/typography/util.tsx +0 -1
- package/upload/_story/upload.stories.js +22 -6
- package/upload/fileCard.tsx +23 -23
- package/upload/index.tsx +15 -6
- package/upload/interface.ts +7 -5
|
@@ -195,6 +195,30 @@ describe('Cascader', () => {
|
|
|
195
195
|
// done();
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
+
it('dynamic treeData in multiple and uncontrolled mode', () => {
|
|
199
|
+
const cascader = render({
|
|
200
|
+
defaultValue: 'Yazhou',
|
|
201
|
+
multiple: true,
|
|
202
|
+
});
|
|
203
|
+
const opt = document.querySelectorAll(`.${BASE_CLASS_PREFIX}-cascader-selection-multiple .${BASE_CLASS_PREFIX}-tag`);
|
|
204
|
+
expect(opt.length).toEqual(1);
|
|
205
|
+
cascader.setProps({ treeData: treeDataWithDisabled });
|
|
206
|
+
cascader.update();
|
|
207
|
+
expect(opt.length).toEqual(1);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
it('dynamic treeData in multiple and controlled mode', () => {
|
|
211
|
+
const cascader = render({
|
|
212
|
+
value: 'Yazhou',
|
|
213
|
+
multiple: true,
|
|
214
|
+
});
|
|
215
|
+
const opt = document.querySelectorAll(`.${BASE_CLASS_PREFIX}-cascader-selection-multiple .${BASE_CLASS_PREFIX}-tag`);
|
|
216
|
+
expect(opt.length).toEqual(1);
|
|
217
|
+
cascader.setProps({ treeData: treeDataWithDisabled });
|
|
218
|
+
cascader.update();
|
|
219
|
+
expect(opt.length).toEqual(1);
|
|
220
|
+
});
|
|
221
|
+
|
|
198
222
|
it('getPopupContainer', () => {
|
|
199
223
|
let cascader = render({
|
|
200
224
|
getPopupContainer: getPopupContainer,
|
|
@@ -1348,4 +1348,77 @@ export const LeafOnly = () => {
|
|
|
1348
1348
|
/>
|
|
1349
1349
|
</div>
|
|
1350
1350
|
);
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
export const DynamicTreeData = () => {
|
|
1354
|
+
const [treeDataDemo1,setTreeData1]=useState(treeData2);
|
|
1355
|
+
const [treeDataDemo2,setTreeData2]=useState(treeData2);
|
|
1356
|
+
const [treeDataDemo3,setTreeData3]=useState(treeData2);
|
|
1357
|
+
const [treeDataDemo4,setTreeData4]=useState(treeData2);
|
|
1358
|
+
const [treeDataDemo5,setTreeData5]=useState(treeData2);
|
|
1359
|
+
const [value3,setValue3]=useState();
|
|
1360
|
+
const [value4,setValue4]=useState();
|
|
1361
|
+
return (
|
|
1362
|
+
<div>
|
|
1363
|
+
<div>多选 + 动态更新 tree</div>
|
|
1364
|
+
<Cascader
|
|
1365
|
+
style={{ width: 300 }}
|
|
1366
|
+
treeData={treeDataDemo1}
|
|
1367
|
+
multiple
|
|
1368
|
+
placeholder="请选择所在地区"
|
|
1369
|
+
/>
|
|
1370
|
+
<Button onClick={()=>{setTreeData1(treeData3)}}>改变treeData</Button>
|
|
1371
|
+
<br />
|
|
1372
|
+
<br />
|
|
1373
|
+
<div>单选 + 动态更新 tree</div>
|
|
1374
|
+
<Cascader
|
|
1375
|
+
style={{ width: 300 }}
|
|
1376
|
+
treeData={treeDataDemo2}
|
|
1377
|
+
placeholder="请选择所在地区"
|
|
1378
|
+
/>
|
|
1379
|
+
<Button onClick={()=>{setTreeData2(treeData3)}}>改变treeData</Button>
|
|
1380
|
+
<br />
|
|
1381
|
+
<br />
|
|
1382
|
+
<div>多选 + 动态更新 tree + 受控</div>
|
|
1383
|
+
<Cascader
|
|
1384
|
+
style={{ width: 300 }}
|
|
1385
|
+
treeData={treeDataDemo3}
|
|
1386
|
+
multiple
|
|
1387
|
+
value={value3}
|
|
1388
|
+
onChange={v=>{
|
|
1389
|
+
console.log(v);
|
|
1390
|
+
setValue3(v);
|
|
1391
|
+
}}
|
|
1392
|
+
placeholder="请选择所在地区"
|
|
1393
|
+
/>
|
|
1394
|
+
<Button onClick={()=>{setTreeData3(treeData3)}}>改变treeData</Button>
|
|
1395
|
+
<br />
|
|
1396
|
+
<br />
|
|
1397
|
+
<div>单选 + 动态更新 tree + 受控</div>
|
|
1398
|
+
<Cascader
|
|
1399
|
+
style={{ width: 300 }}
|
|
1400
|
+
treeData={treeDataDemo4}
|
|
1401
|
+
value={value4}
|
|
1402
|
+
onChange={v=>{
|
|
1403
|
+
console.log(v);
|
|
1404
|
+
setValue4(v);
|
|
1405
|
+
}}
|
|
1406
|
+
placeholder="请选择所在地区"
|
|
1407
|
+
/>
|
|
1408
|
+
<Button onClick={()=>{setTreeData4(treeData3)}}>改变treeData</Button>
|
|
1409
|
+
<br />
|
|
1410
|
+
<br />
|
|
1411
|
+
<div>多选 + 动态更新 tree + defaultValue 为亚洲</div>
|
|
1412
|
+
<Cascader
|
|
1413
|
+
style={{ width: 300 }}
|
|
1414
|
+
treeData={treeDataDemo5}
|
|
1415
|
+
multiple
|
|
1416
|
+
defaultValue='yazhou'
|
|
1417
|
+
placeholder="请选择所在地区"
|
|
1418
|
+
/>
|
|
1419
|
+
<Button onClick={()=>{setTreeData5(treeData3)}}>改变treeData</Button>
|
|
1420
|
+
<br />
|
|
1421
|
+
<br />
|
|
1422
|
+
</div>
|
|
1423
|
+
);
|
|
1351
1424
|
}
|
package/cascader/index.tsx
CHANGED
|
@@ -14,7 +14,7 @@ import CascaderFoundation, {
|
|
|
14
14
|
} from '@douyinfe/semi-foundation/cascader/foundation';
|
|
15
15
|
import { cssClasses, strings } from '@douyinfe/semi-foundation/cascader/constants';
|
|
16
16
|
import { numbers as popoverNumbers } from '@douyinfe/semi-foundation/popover/constants';
|
|
17
|
-
import { isEqual, isString, isEmpty, isFunction, isNumber, noop, flatten } from 'lodash';
|
|
17
|
+
import { isSet, isEqual, isString, isEmpty, isFunction, isNumber, noop, flatten } from 'lodash';
|
|
18
18
|
import '@douyinfe/semi-foundation/cascader/cascader.scss';
|
|
19
19
|
import { IconClear, IconChevronDown } from '@douyinfe/semi-icons';
|
|
20
20
|
import { findKeysForValues, convertDataToEntities, calcMergeType } from '@douyinfe/semi-foundation/cascader/util';
|
|
@@ -426,7 +426,10 @@ class Cascader extends BaseComponent<CascaderProps, CascaderState> {
|
|
|
426
426
|
});
|
|
427
427
|
realKeys = formatKeys;
|
|
428
428
|
}
|
|
429
|
-
|
|
429
|
+
if (isSet(realKeys)) {
|
|
430
|
+
realKeys = [...realKeys];
|
|
431
|
+
}
|
|
432
|
+
const calRes = calcCheckedKeys(flatten(realKeys), keyEntities);
|
|
430
433
|
const checkedKeys = new Set(calRes.checkedKeys);
|
|
431
434
|
const halfCheckedKeys = new Set(calRes.halfCheckedKeys);
|
|
432
435
|
// disableStrictly
|
|
@@ -2,20 +2,30 @@ import React from 'react';
|
|
|
2
2
|
import DatePicker from '../../index';
|
|
3
3
|
import { Tooltip } from '@douyinfe/semi-ui';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* 使用 Chromatic UI 测试
|
|
7
|
+
*/
|
|
5
8
|
export default function Demo() {
|
|
6
9
|
const dateStyle = { width: '100%', height: '100%', border: '1px solid #0077FA', display: 'flex', justifyContent: 'center', alignItems: 'center' };
|
|
10
|
+
const defaultValue = new Date('2021-01-10 00:00:00');
|
|
7
11
|
const renderDate = (dayNumber, fullDate) => {
|
|
8
12
|
if (dayNumber === 1) {
|
|
9
13
|
return <Tooltip content={'Always Day 1'} >
|
|
10
14
|
<div style={dateStyle}>{dayNumber}</div>
|
|
11
|
-
</Tooltip
|
|
15
|
+
</Tooltip>;
|
|
12
16
|
}
|
|
13
17
|
return dayNumber;
|
|
14
18
|
};
|
|
15
19
|
return (
|
|
16
|
-
<div>
|
|
20
|
+
<div style={{ height: '100vh' }}>
|
|
17
21
|
<div>通过 renderDate 可以自定义日期的显示内容</div>
|
|
18
|
-
<DatePicker renderDate={renderDate} />
|
|
22
|
+
<DatePicker motion={false} defaultValue={defaultValue} defaultOpen renderDate={renderDate} />
|
|
19
23
|
</div>
|
|
20
24
|
);
|
|
21
25
|
}
|
|
26
|
+
Demo.parameters = {
|
|
27
|
+
chromatic: {
|
|
28
|
+
disableSnapshot: false,
|
|
29
|
+
delay: 3000,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import DatePicker from '
|
|
2
|
+
import { DatePicker, Space } from '@douyinfe/semi-ui';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import '@douyinfe/semi-foundation/datePicker/datePicker.scss';
|
|
5
|
+
import './index.scss';
|
|
5
6
|
|
|
7
|
+
/**
|
|
8
|
+
* 开启 Chromatic UI 测试
|
|
9
|
+
*/
|
|
6
10
|
export default function Demo() {
|
|
7
11
|
const dayStyle = {
|
|
8
12
|
display: 'flex',
|
|
@@ -33,24 +37,42 @@ export default function Demo() {
|
|
|
33
37
|
</div>
|
|
34
38
|
);
|
|
35
39
|
};
|
|
40
|
+
const props = {
|
|
41
|
+
defaultOpen: true,
|
|
42
|
+
position: 'bottomLeft',
|
|
43
|
+
autoAdjustOverflow: false,
|
|
44
|
+
motion: false,
|
|
45
|
+
};
|
|
46
|
+
const singleDefaultValue = new Date('2021-01-08');
|
|
47
|
+
const multipleDefaultValue = [new Date('2021-01-08'), new Date('2021-01-09'), new Date('2021-01-10'), new Date('2021-01-19')];
|
|
48
|
+
const rangeDefaultValue = [new Date('2021-12-08'), new Date('2021-01-20')];
|
|
36
49
|
|
|
37
50
|
return (
|
|
38
|
-
<div>
|
|
51
|
+
<div style={{ height: '100vh' }}>
|
|
39
52
|
<div>
|
|
40
53
|
通过 renderFullDate 可以自定义日期单元格子的渲染,API 提供日期的当前状态:是否被选中,是否是当前日等。
|
|
41
54
|
</div>
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
<Space wrap spacing={[12, 400]}>
|
|
56
|
+
<div>
|
|
57
|
+
单选选中
|
|
58
|
+
<DatePicker {...props} style={{ width: '230px' }} renderFullDate={renderFullDate} defaultValue={singleDefaultValue} />
|
|
59
|
+
</div>
|
|
60
|
+
<div>
|
|
61
|
+
多选选中
|
|
62
|
+
<DatePicker {...props} style={{ width: '230px' }} multiple={true} renderFullDate={renderFullDate} defaultValue={multipleDefaultValue} />
|
|
63
|
+
</div>
|
|
64
|
+
<div>
|
|
65
|
+
范围选中
|
|
66
|
+
<DatePicker {...props} style={{ width: '230px' }} type={'dateRange'} renderFullDate={renderFullDate} defaultValue={rangeDefaultValue} />
|
|
67
|
+
</div>
|
|
68
|
+
</Space>
|
|
54
69
|
</div>
|
|
55
70
|
);
|
|
56
71
|
}
|
|
72
|
+
Demo.parameters = {
|
|
73
|
+
chromatic: {
|
|
74
|
+
disableSnapshot: false,
|
|
75
|
+
delay: 3000,
|
|
76
|
+
viewports: [1800]
|
|
77
|
+
},
|
|
78
|
+
};
|
|
@@ -36,7 +36,7 @@ import DatePickerSlot from './DatePickerSlot';
|
|
|
36
36
|
import DatePickerTimeZone from './DatePickerTimeZone';
|
|
37
37
|
import BetterRangePicker from './BetterRangePicker';
|
|
38
38
|
import SyncSwitchMonth from './SyncSwitchMonth';
|
|
39
|
-
|
|
39
|
+
export * from './v2';
|
|
40
40
|
|
|
41
41
|
export default {
|
|
42
42
|
title: 'DatePicker',
|
|
@@ -67,7 +67,6 @@ export {
|
|
|
67
67
|
DatePickerTimeZone,
|
|
68
68
|
BetterRangePicker,
|
|
69
69
|
SyncSwitchMonth,
|
|
70
|
-
YearButton
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
const demoDiv = {
|
|
@@ -76,7 +75,7 @@ const demoDiv = {
|
|
|
76
75
|
};
|
|
77
76
|
|
|
78
77
|
export const DatePickerDefault = () => (
|
|
79
|
-
<div style={demoDiv}>
|
|
78
|
+
<div style={{...demoDiv, height: '100vh'}}>
|
|
80
79
|
<span>datePicker施工现场</span>
|
|
81
80
|
<DatePicker
|
|
82
81
|
insetLabel={<span>日期</span>}
|
|
@@ -87,14 +86,7 @@ export const DatePickerDefault = () => (
|
|
|
87
86
|
<br />
|
|
88
87
|
|
|
89
88
|
<span>datePicker默认显示</span>
|
|
90
|
-
<DatePicker
|
|
91
|
-
<br />
|
|
92
|
-
|
|
93
|
-
<span>defaultValue: new Date('2019-07-07')</span>
|
|
94
|
-
<DatePicker
|
|
95
|
-
defaultValue={new Date('2019-07-07')}
|
|
96
|
-
onOpenChange={isOpen => console.log(isOpen)}
|
|
97
|
-
/>
|
|
89
|
+
<DatePicker />
|
|
98
90
|
<br />
|
|
99
91
|
|
|
100
92
|
<span>defaultValue: 2019-07-09</span>
|
|
@@ -106,8 +98,23 @@ export const DatePickerDefault = () => (
|
|
|
106
98
|
defaultValue={1569888000000}
|
|
107
99
|
onChange={(input, value) => console.log({ input, value })}
|
|
108
100
|
/>
|
|
101
|
+
<br />
|
|
102
|
+
|
|
103
|
+
<span>defaultValue: new Date('2019-07-07')</span>
|
|
104
|
+
<DatePicker
|
|
105
|
+
defaultValue={new Date('2019-07-07')}
|
|
106
|
+
onOpenChange={isOpen => console.log(isOpen)}
|
|
107
|
+
defaultOpen
|
|
108
|
+
motion={false}
|
|
109
|
+
/>
|
|
109
110
|
</div>
|
|
110
111
|
);
|
|
112
|
+
DatePickerDefault.parameters = {
|
|
113
|
+
chromatic: {
|
|
114
|
+
disableSnapshot: false,
|
|
115
|
+
delay: 300
|
|
116
|
+
}
|
|
117
|
+
};
|
|
111
118
|
|
|
112
119
|
export const DatePickerCallbacks = () => {
|
|
113
120
|
const printArgs = (...args) => console.log(...args);
|
|
@@ -806,3 +813,4 @@ export const FixTriggerRenderClosePanel = () => {
|
|
|
806
813
|
);
|
|
807
814
|
};
|
|
808
815
|
FixTriggerRenderClosePanel.storyName = "fix triggerRender close bug"
|
|
816
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DatePicker, Space } from '@douyinfe/semi-ui';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Test with Chromatic
|
|
6
|
+
*/
|
|
7
|
+
export default function App() {
|
|
8
|
+
// 使用过去的时间,避免当前日变动引入 UI 测试失败
|
|
9
|
+
const defaultValue = new Date('2021-01-01 00:00:00');
|
|
10
|
+
const props = {
|
|
11
|
+
defaultOpen: true,
|
|
12
|
+
position: 'bottomLeft',
|
|
13
|
+
autoAdjustOverflow: false,
|
|
14
|
+
defaultPickerValue: defaultValue,
|
|
15
|
+
needConfirm: true,
|
|
16
|
+
motion: false,
|
|
17
|
+
};
|
|
18
|
+
const spacing = [48, 400];
|
|
19
|
+
// 使用过去的时间,避免当前日变动引入 UI 测试失败
|
|
20
|
+
const defaultRangeValue = [defaultValue, new Date('2021-03-31 00:00:00')];
|
|
21
|
+
return (
|
|
22
|
+
<div style={{ height: '100vh' }}>
|
|
23
|
+
<Space wrap spacing={spacing}>
|
|
24
|
+
<DatePicker {...props} type="month" defaultValue={defaultValue} />
|
|
25
|
+
<DatePicker {...props} type="dateTimeRange" defaultValue={defaultRangeValue} density="compact" />
|
|
26
|
+
<DatePicker {...props} type="dateTimeRange" defaultValue={defaultRangeValue} />
|
|
27
|
+
</Space>
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
App.parameters = {
|
|
33
|
+
chromatic: {
|
|
34
|
+
disableSnapshot: false,
|
|
35
|
+
delay: 3000,
|
|
36
|
+
viewports: [1800]
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
App.storyName = 'defaultOpen';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default as YearButton } from './YearButton';
|
|
1
|
+
export { default as YearButton } from './YearButton';
|
|
2
|
+
export { default as PanelOpen } from './PanelOpen';
|
|
@@ -525,6 +525,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
525
525
|
};
|
|
526
526
|
|
|
527
527
|
return (
|
|
528
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
|
|
528
529
|
<div
|
|
529
530
|
onClick={this.handleTriggerWrapperClick}
|
|
530
531
|
className={inputCls}>
|
package/dist/css/semi.css
CHANGED
|
@@ -648,6 +648,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
648
648
|
padding-top: 8px;
|
|
649
649
|
padding-bottom: 8px;
|
|
650
650
|
color: var(--semi-color-text-0);
|
|
651
|
+
border-radius: 0;
|
|
651
652
|
position: relative;
|
|
652
653
|
display: flex;
|
|
653
654
|
flex-wrap: nowrap;
|
|
@@ -1667,21 +1668,27 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
1667
1668
|
}
|
|
1668
1669
|
.semi-button-borderless {
|
|
1669
1670
|
background-color: transparent;
|
|
1671
|
+
border: 0 transparent solid;
|
|
1670
1672
|
}
|
|
1671
1673
|
.semi-button-borderless:not(.semi-button-disabled):hover {
|
|
1672
1674
|
background-color: var(--semi-color-fill-0);
|
|
1675
|
+
border: 0 transparent solid;
|
|
1673
1676
|
}
|
|
1674
1677
|
.semi-button-borderless:not(.semi-button-disabled):active {
|
|
1675
1678
|
background-color: var(--semi-color-fill-1);
|
|
1679
|
+
border: 0 transparent solid;
|
|
1676
1680
|
}
|
|
1677
1681
|
.semi-button-light {
|
|
1678
1682
|
background-color: var(--semi-color-fill-0);
|
|
1683
|
+
border: 0 transparent solid;
|
|
1679
1684
|
}
|
|
1680
1685
|
.semi-button-light:not(.semi-button-disabled):hover {
|
|
1681
1686
|
background-color: var(--semi-color-fill-1);
|
|
1687
|
+
border: 0 transparent solid;
|
|
1682
1688
|
}
|
|
1683
1689
|
.semi-button-light:not(.semi-button-disabled):active {
|
|
1684
1690
|
background-color: var(--semi-color-fill-2);
|
|
1691
|
+
border: 0 transparent solid;
|
|
1685
1692
|
}
|
|
1686
1693
|
.semi-button-size-small {
|
|
1687
1694
|
height: 24px;
|
|
@@ -2605,6 +2612,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
2605
2612
|
}
|
|
2606
2613
|
.semi-cascader:hover {
|
|
2607
2614
|
background-color: var(--semi-color-fill-1);
|
|
2615
|
+
border: 1px transparent solid;
|
|
2608
2616
|
}
|
|
2609
2617
|
.semi-cascader-small {
|
|
2610
2618
|
min-height: 24px;
|
|
@@ -12060,6 +12068,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
12060
12068
|
padding: 0 0;
|
|
12061
12069
|
font-size: 14px;
|
|
12062
12070
|
font-weight: 600;
|
|
12071
|
+
background-color: transparent;
|
|
12063
12072
|
color: var(--semi-color-text-0);
|
|
12064
12073
|
border-bottom: 0 solid transparent;
|
|
12065
12074
|
}
|
|
@@ -12082,6 +12091,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
12082
12091
|
text-align: right;
|
|
12083
12092
|
border-radius: 0 0 5px 5px;
|
|
12084
12093
|
border-top: 0 solid transparent;
|
|
12094
|
+
background-color: transparent;
|
|
12085
12095
|
}
|
|
12086
12096
|
.semi-modal-footer .semi-button {
|
|
12087
12097
|
margin-left: 12px;
|
|
@@ -14167,6 +14177,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
14167
14177
|
.semi-scrolllist-header-title {
|
|
14168
14178
|
padding: 16px 0;
|
|
14169
14179
|
font-weight: 600;
|
|
14180
|
+
color: var(--semi-color-text-0);
|
|
14170
14181
|
font-size: 14px;
|
|
14171
14182
|
line-height: 20px;
|
|
14172
14183
|
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
@@ -14336,6 +14347,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
14336
14347
|
padding-top: 8px;
|
|
14337
14348
|
padding-bottom: 8px;
|
|
14338
14349
|
color: var(--semi-color-text-0);
|
|
14350
|
+
border-radius: 0;
|
|
14339
14351
|
position: relative;
|
|
14340
14352
|
display: flex;
|
|
14341
14353
|
flex-wrap: nowrap;
|
|
@@ -14415,9 +14427,11 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
14415
14427
|
}
|
|
14416
14428
|
.semi-select:hover {
|
|
14417
14429
|
background-color: var(--semi-color-fill-1);
|
|
14430
|
+
border: 1px solid transparent;
|
|
14418
14431
|
}
|
|
14419
14432
|
.semi-select:active {
|
|
14420
14433
|
background-color: var(--semi-color-fill-2);
|
|
14434
|
+
border: 1px solid var(--semi-color-focus-border);
|
|
14421
14435
|
}
|
|
14422
14436
|
.semi-select:focus {
|
|
14423
14437
|
border: 1px solid var(--semi-color-focus-border);
|
|
@@ -14697,6 +14711,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
14697
14711
|
.semi-select-option-list {
|
|
14698
14712
|
overflow-x: hidden;
|
|
14699
14713
|
overflow-y: auto;
|
|
14714
|
+
padding: 0 0 0 0;
|
|
14700
14715
|
}
|
|
14701
14716
|
.semi-select-option-list-chosen .semi-select-option-icon {
|
|
14702
14717
|
display: flex;
|
|
@@ -16135,6 +16150,9 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
16135
16150
|
color: var(--semi-color-text-0);
|
|
16136
16151
|
width: 100%;
|
|
16137
16152
|
}
|
|
16153
|
+
.semi-table-wrapper[data-column-fixed=true] {
|
|
16154
|
+
z-index: 1;
|
|
16155
|
+
}
|
|
16138
16156
|
.semi-table-middle .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
|
|
16139
16157
|
padding-top: 12px;
|
|
16140
16158
|
padding-bottom: 12px;
|
|
@@ -17468,6 +17486,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
17468
17486
|
}
|
|
17469
17487
|
.semi-tagInput-hover {
|
|
17470
17488
|
background-color: var(--semi-color-fill-1);
|
|
17489
|
+
border: 1px transparent solid;
|
|
17471
17490
|
}
|
|
17472
17491
|
.semi-tagInput-focus {
|
|
17473
17492
|
background-color: var(--semi-color-fill-0);
|
|
@@ -18859,6 +18878,7 @@ body[theme-mode=dark], body .semi-always-dark {
|
|
|
18859
18878
|
}
|
|
18860
18879
|
.semi-tree-select:hover {
|
|
18861
18880
|
background-color: var(--semi-color-fill-1);
|
|
18881
|
+
border: 1px solid inherit;
|
|
18862
18882
|
}
|
|
18863
18883
|
.semi-tree-select-focus {
|
|
18864
18884
|
border: 1px solid var(--semi-color-focus-border);
|
|
@@ -19419,11 +19439,10 @@ p.semi-typography-extended,
|
|
|
19419
19439
|
}
|
|
19420
19440
|
.semi-upload[x-prompt-pos=left] .semi-upload-add {
|
|
19421
19441
|
display: inline-flex;
|
|
19422
|
-
order: 2;
|
|
19423
19442
|
}
|
|
19424
19443
|
.semi-upload[x-prompt-pos=left] .semi-upload-prompt {
|
|
19425
19444
|
display: inline-flex;
|
|
19426
|
-
order: 1;
|
|
19445
|
+
order: -1;
|
|
19427
19446
|
}
|
|
19428
19447
|
.semi-upload[x-prompt-pos=left] .semi-upload-file-list {
|
|
19429
19448
|
order: 2;
|
|
@@ -19603,15 +19622,9 @@ p.semi-typography-extended,
|
|
|
19603
19622
|
.semi-upload-picture[x-prompt-pos=bottom] .semi-upload-prompt {
|
|
19604
19623
|
order: 1;
|
|
19605
19624
|
}
|
|
19606
|
-
.semi-upload-picture[x-prompt-pos=bottom] .semi-upload-add {
|
|
19607
|
-
order: 0;
|
|
19608
|
-
}
|
|
19609
19625
|
.semi-upload-picture[x-prompt-pos=right] .semi-upload-prompt {
|
|
19610
19626
|
order: 1;
|
|
19611
19627
|
}
|
|
19612
|
-
.semi-upload-picture[x-prompt-pos=right] .semi-upload-add {
|
|
19613
|
-
order: 0;
|
|
19614
|
-
}
|
|
19615
19628
|
.semi-upload-picture-add {
|
|
19616
19629
|
background-color: var(--semi-color-fill-0);
|
|
19617
19630
|
height: 96px;
|
|
@@ -19623,7 +19636,6 @@ p.semi-typography-extended,
|
|
|
19623
19636
|
border: 2px dashed var(--semi-color-border);
|
|
19624
19637
|
color: var(--semi-color-tertiary);
|
|
19625
19638
|
border-radius: var(--semi-border-radius-small);
|
|
19626
|
-
order: 2;
|
|
19627
19639
|
cursor: pointer;
|
|
19628
19640
|
}
|
|
19629
19641
|
.semi-upload-picture-add:hover {
|
|
@@ -19663,35 +19675,32 @@ p.semi-typography-extended,
|
|
|
19663
19675
|
border-radius: var(--semi-border-radius-small);
|
|
19664
19676
|
}
|
|
19665
19677
|
.semi-upload-picture-file-card-close {
|
|
19666
|
-
|
|
19667
|
-
|
|
19668
|
-
background-color: var(--semi-color-overlay-bg);
|
|
19678
|
+
visibility: hidden;
|
|
19679
|
+
display: inline-flex;
|
|
19669
19680
|
position: absolute;
|
|
19670
19681
|
top: 8px;
|
|
19671
19682
|
right: 8px;
|
|
19672
|
-
display: flex;
|
|
19673
|
-
justify-content: center;
|
|
19674
|
-
align-items: center;
|
|
19675
|
-
display: none;
|
|
19676
19683
|
border-radius: var(--semi-border-radius-circle);
|
|
19677
|
-
color: white;
|
|
19678
19684
|
cursor: pointer;
|
|
19679
19685
|
transition: all 0s;
|
|
19680
19686
|
}
|
|
19681
|
-
.semi-upload-picture-file-card
|
|
19682
|
-
|
|
19683
|
-
|
|
19684
|
-
.semi-upload-picture-file-card:hover .semi-upload-picture-file-card-replace {
|
|
19685
|
-
visibility: visible;
|
|
19687
|
+
.semi-upload-picture-file-card-icon-close {
|
|
19688
|
+
font-size: 16px;
|
|
19689
|
+
color: var(--semi-color-white);
|
|
19686
19690
|
}
|
|
19687
|
-
.semi-upload-picture-file-card
|
|
19691
|
+
.semi-upload-picture-file-card::before {
|
|
19692
|
+
visibility: hidden;
|
|
19693
|
+
background-color: var(--semi-color-overlay-bg);
|
|
19694
|
+
content: "";
|
|
19688
19695
|
position: absolute;
|
|
19689
|
-
|
|
19690
|
-
|
|
19691
|
-
|
|
19696
|
+
left: 0;
|
|
19697
|
+
right: 0;
|
|
19698
|
+
top: 0;
|
|
19699
|
+
bottom: 0;
|
|
19692
19700
|
}
|
|
19693
19701
|
.semi-upload-picture-file-card-retry {
|
|
19694
|
-
|
|
19702
|
+
visibility: hidden;
|
|
19703
|
+
background-color: var(--semi-color-white);
|
|
19695
19704
|
width: 24px;
|
|
19696
19705
|
height: 24px;
|
|
19697
19706
|
position: absolute;
|
|
@@ -19719,6 +19728,15 @@ p.semi-typography-extended,
|
|
|
19719
19728
|
color: var(--semi-color-white);
|
|
19720
19729
|
transform: translate3D(-50%, -50%, 0);
|
|
19721
19730
|
}
|
|
19731
|
+
.semi-upload-picture-file-card-preview {
|
|
19732
|
+
visibility: hidden;
|
|
19733
|
+
display: inline-flex;
|
|
19734
|
+
position: absolute;
|
|
19735
|
+
cursor: pointer;
|
|
19736
|
+
top: 50%;
|
|
19737
|
+
left: 50%;
|
|
19738
|
+
transform: translate3D(-50%, -50%, 0);
|
|
19739
|
+
}
|
|
19722
19740
|
.semi-upload-picture-file-card-pic-info {
|
|
19723
19741
|
display: inline-flex;
|
|
19724
19742
|
box-sizing: border-box;
|
|
@@ -19750,6 +19768,30 @@ p.semi-typography-extended,
|
|
|
19750
19768
|
.semi-upload-picture-file-card-error {
|
|
19751
19769
|
outline: 1px solid var(--semi-color-danger);
|
|
19752
19770
|
}
|
|
19771
|
+
.semi-upload-picture-file-card:hover::before {
|
|
19772
|
+
visibility: visible;
|
|
19773
|
+
}
|
|
19774
|
+
.semi-upload-picture-file-card:hover .semi-upload-picture-file-card-close {
|
|
19775
|
+
visibility: visible;
|
|
19776
|
+
}
|
|
19777
|
+
.semi-upload-picture-file-card:hover .semi-upload-picture-file-card-replace {
|
|
19778
|
+
visibility: visible;
|
|
19779
|
+
}
|
|
19780
|
+
.semi-upload-picture-file-card:hover .semi-upload-picture-file-card-retry {
|
|
19781
|
+
visibility: visible;
|
|
19782
|
+
}
|
|
19783
|
+
.semi-upload-picture-file-card:hover .semi-upload-picture-file-card-preview {
|
|
19784
|
+
visibility: visible;
|
|
19785
|
+
}
|
|
19786
|
+
.semi-upload-picture-file-card-uploading::before {
|
|
19787
|
+
visibility: visible;
|
|
19788
|
+
}
|
|
19789
|
+
.semi-upload-picture-file-card .semi-progress-circle {
|
|
19790
|
+
position: absolute;
|
|
19791
|
+
top: 50%;
|
|
19792
|
+
left: 50%;
|
|
19793
|
+
transform: translate(-50%, -50%);
|
|
19794
|
+
}
|
|
19753
19795
|
.semi-upload-drag-area {
|
|
19754
19796
|
border-radius: var(--semi-border-radius-small);
|
|
19755
19797
|
border: 2px dashed var(--semi-color-border);
|
|
@@ -20113,20 +20155,20 @@ p.semi-typography-extended,
|
|
|
20113
20155
|
.semi-input-textarea-wrapper .semi-input-clearbtn-hidden {
|
|
20114
20156
|
visibility: hidden;
|
|
20115
20157
|
}
|
|
20116
|
-
.semi-input-textarea-wrapper-readonly {
|
|
20117
|
-
cursor: default;
|
|
20118
|
-
}
|
|
20119
|
-
.semi-input-textarea-wrapper-disabled {
|
|
20158
|
+
.semi-input-textarea-wrapper-disabled, .semi-input-textarea-wrapper-readonly {
|
|
20120
20159
|
cursor: not-allowed;
|
|
20121
20160
|
color: var(--semi-color-disabled-text);
|
|
20122
20161
|
background-color: var(--semi-color-disabled-fill);
|
|
20123
20162
|
}
|
|
20124
|
-
.semi-input-textarea-wrapper-disabled:hover {
|
|
20163
|
+
.semi-input-textarea-wrapper-disabled:hover, .semi-input-textarea-wrapper-readonly:hover {
|
|
20125
20164
|
background-color: var(--semi-color-disabled-fill);
|
|
20126
20165
|
}
|
|
20127
|
-
.semi-input-textarea-wrapper-disabled::placeholder {
|
|
20166
|
+
.semi-input-textarea-wrapper-disabled::placeholder, .semi-input-textarea-wrapper-readonly::placeholder {
|
|
20128
20167
|
color: var(--semi-color-disabled-text);
|
|
20129
20168
|
}
|
|
20169
|
+
.semi-input-textarea-wrapper-readonly {
|
|
20170
|
+
cursor: text;
|
|
20171
|
+
}
|
|
20130
20172
|
.semi-input-textarea-wrapper-error {
|
|
20131
20173
|
background-color: var(--semi-color-danger-light-default);
|
|
20132
20174
|
border-color: var(--semi-color-danger-light-default);
|
|
@@ -20177,23 +20219,29 @@ p.semi-typography-extended,
|
|
|
20177
20219
|
box-sizing: border-box;
|
|
20178
20220
|
color: var(--semi-color-text-0);
|
|
20179
20221
|
}
|
|
20222
|
+
.semi-input-textarea:hover {
|
|
20223
|
+
border-color: transparent;
|
|
20224
|
+
}
|
|
20180
20225
|
.semi-input-textarea::placeholder {
|
|
20181
20226
|
color: var(--semi-color-text-2);
|
|
20182
20227
|
}
|
|
20183
20228
|
.semi-input-textarea-showClear {
|
|
20184
20229
|
padding-right: 36px;
|
|
20185
20230
|
}
|
|
20186
|
-
.semi-input-textarea-disabled {
|
|
20231
|
+
.semi-input-textarea-disabled, .semi-input-textarea-readonly {
|
|
20187
20232
|
cursor: not-allowed;
|
|
20188
20233
|
color: var(--semi-color-disabled-text);
|
|
20189
20234
|
background-color: transparent;
|
|
20190
20235
|
}
|
|
20191
|
-
.semi-input-textarea-disabled:hover {
|
|
20236
|
+
.semi-input-textarea-disabled:hover, .semi-input-textarea-readonly:hover {
|
|
20192
20237
|
background-color: transparent;
|
|
20193
20238
|
}
|
|
20194
|
-
.semi-input-textarea-disabled::placeholder {
|
|
20239
|
+
.semi-input-textarea-disabled::placeholder, .semi-input-textarea-readonly::placeholder {
|
|
20195
20240
|
color: var(--semi-color-disabled-text);
|
|
20196
20241
|
}
|
|
20242
|
+
.semi-input-textarea-readonly {
|
|
20243
|
+
cursor: text;
|
|
20244
|
+
}
|
|
20197
20245
|
.semi-input-textarea-autosize {
|
|
20198
20246
|
overflow: hidden;
|
|
20199
20247
|
}
|