@douyinfe/semi-ui 2.3.0-beta.0 → 2.4.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 (97) hide show
  1. package/_base/_story/a11y.scss +0 -1
  2. package/_base/_story/index.scss +2 -5
  3. package/avatar/avatarGroup.tsx +1 -1
  4. package/avatar/index.tsx +0 -4
  5. package/button/__test__/button.test.js +1 -1
  6. package/checkbox/_story/checkbox.stories.js +2 -2
  7. package/collapse/index.tsx +1 -1
  8. package/collapse/item.tsx +1 -3
  9. package/datePicker/_story/RenderDate/index.js +13 -3
  10. package/datePicker/_story/RenderFullDate/index.js +36 -14
  11. package/datePicker/_story/RenderFullDate/index.scss +1 -1
  12. package/datePicker/_story/datePicker.stories.js +19 -11
  13. package/datePicker/_story/v2/PanelOpen.jsx +39 -0
  14. package/datePicker/_story/v2/index.js +2 -1
  15. package/dist/css/semi.css +33 -9
  16. package/dist/css/semi.min.css +1 -1
  17. package/dist/umd/semi-ui.js +96 -57
  18. package/dist/umd/semi-ui.js.map +1 -1
  19. package/dist/umd/semi-ui.min.js +1 -1
  20. package/dist/umd/semi-ui.min.js.map +1 -1
  21. package/dropdown/index.tsx +11 -3
  22. package/empty/index.tsx +1 -1
  23. package/input/textarea.tsx +5 -3
  24. package/inputNumber/__test__/inputNumber.test.js +36 -8
  25. package/inputNumber/index.tsx +2 -1
  26. package/lib/cjs/avatar/avatarGroup.js +1 -2
  27. package/lib/cjs/avatar/index.js +1 -6
  28. package/lib/cjs/collapse/index.js +1 -2
  29. package/lib/cjs/collapse/item.js +1 -5
  30. package/lib/cjs/dropdown/index.d.ts +10 -3
  31. package/lib/cjs/empty/index.js +1 -2
  32. package/lib/cjs/input/textarea.js +4 -2
  33. package/lib/cjs/inputNumber/index.js +3 -2
  34. package/lib/cjs/list/index.d.ts +4 -4
  35. package/lib/cjs/navigation/Item.js +1 -1
  36. package/lib/cjs/navigation/SubNav.js +1 -1
  37. package/lib/cjs/scrollList/scrollItem.d.ts +5 -1
  38. package/lib/cjs/scrollList/scrollItem.js +7 -0
  39. package/lib/cjs/select/index.js +1 -1
  40. package/lib/cjs/sideSheet/SideSheetContent.js +5 -9
  41. package/lib/cjs/spin/icon.js +2 -1
  42. package/lib/cjs/table/Table.js +9 -5
  43. package/lib/cjs/timePicker/TimePicker.d.ts +2 -0
  44. package/lib/cjs/timePicker/TimePicker.js +2 -3
  45. package/lib/cjs/timePicker/index.d.ts +1 -0
  46. package/lib/cjs/tooltip/index.js +1 -1
  47. package/lib/cjs/tree/treeNode.js +10 -1
  48. package/lib/cjs/treeSelect/index.js +11 -3
  49. package/lib/cjs/typography/util.js +0 -1
  50. package/lib/cjs/upload/fileCard.js +3 -3
  51. package/lib/es/avatar/avatarGroup.js +1 -2
  52. package/lib/es/avatar/index.js +1 -6
  53. package/lib/es/collapse/index.js +1 -2
  54. package/lib/es/collapse/item.js +1 -5
  55. package/lib/es/dropdown/index.d.ts +10 -3
  56. package/lib/es/empty/index.js +1 -2
  57. package/lib/es/input/textarea.js +4 -2
  58. package/lib/es/inputNumber/index.js +3 -2
  59. package/lib/es/list/index.d.ts +4 -4
  60. package/lib/es/navigation/Item.js +1 -1
  61. package/lib/es/navigation/SubNav.js +1 -1
  62. package/lib/es/scrollList/scrollItem.d.ts +5 -1
  63. package/lib/es/scrollList/scrollItem.js +7 -0
  64. package/lib/es/select/index.js +1 -1
  65. package/lib/es/sideSheet/SideSheetContent.js +5 -9
  66. package/lib/es/spin/icon.js +2 -1
  67. package/lib/es/table/Table.js +9 -5
  68. package/lib/es/timePicker/TimePicker.d.ts +2 -0
  69. package/lib/es/timePicker/TimePicker.js +2 -3
  70. package/lib/es/timePicker/index.d.ts +1 -0
  71. package/lib/es/tooltip/index.js +2 -2
  72. package/lib/es/tree/treeNode.js +9 -1
  73. package/lib/es/treeSelect/index.js +12 -4
  74. package/lib/es/typography/util.js +0 -1
  75. package/lib/es/upload/fileCard.js +3 -3
  76. package/list/index.tsx +5 -5
  77. package/navigation/Item.tsx +1 -1
  78. package/navigation/SubNav.tsx +1 -1
  79. package/package.json +8 -8
  80. package/scrollList/scrollItem.tsx +10 -3
  81. package/select/index.tsx +6 -1
  82. package/sideSheet/SideSheetContent.tsx +6 -8
  83. package/spin/icon.tsx +2 -1
  84. package/table/Table.tsx +9 -6
  85. package/table/_story/table.stories.js +2 -0
  86. package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
  87. package/table/_story/v2/FixedZIndex/index.jsx +87 -0
  88. package/timePicker/TimePicker.tsx +3 -1
  89. package/timePicker/__test__/timePicker.test.js +42 -3
  90. package/timePicker/_story/timepicker.stories.js +18 -0
  91. package/tooltip/index.tsx +3 -2
  92. package/tree/treeNode.tsx +9 -2
  93. package/treeSelect/__test__/treeSelect.test.js +157 -0
  94. package/treeSelect/index.tsx +21 -12
  95. package/typography/_story/typography.stories.js +8 -0
  96. package/typography/util.tsx +0 -1
  97. package/upload/fileCard.tsx +2 -2
@@ -23,7 +23,8 @@ import {
23
23
  getValueOrKey,
24
24
  normalizeKeyList,
25
25
  calcDisabledKeys,
26
- normalizeValue
26
+ normalizeValue,
27
+ updateKeys,
27
28
  } from '@douyinfe/semi-foundation/tree/treeUtil';
28
29
  import { cssClasses, strings } from '@douyinfe/semi-foundation/treeSelect/constants';
29
30
  import { numbers as popoverNumbers } from '@douyinfe/semi-foundation/popover/constants';
@@ -362,7 +363,7 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
362
363
  if (
363
364
  treeData &&
364
365
  props.motion &&
365
- !isEqual(new Set(Object.keys(newState.keyEntities)), new Set(Object.keys(prevState.keyEntities)))
366
+ !isEqual(Object.keys(newState.keyEntities), Object.keys(prevState.keyEntities))
366
367
  ) {
367
368
  if (prevProps && props.motion) {
368
369
  newState.motionKeys = new Set([]);
@@ -432,11 +433,15 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
432
433
  );
433
434
  } else if (treeData) {
434
435
  // If `treeData` changed, we also need check it
435
- newState.selectedKeys = findKeysForValues(
436
- normalizeValue(props.value, withObject) || '',
437
- valueEntities,
438
- isMultiple
439
- );
436
+ if (props.value) {
437
+ newState.selectedKeys = findKeysForValues(
438
+ normalizeValue(props.value, withObject) || '',
439
+ valueEntities,
440
+ isMultiple
441
+ );
442
+ } else {
443
+ newState.selectedKeys = updateKeys(prevState.selectedKeys, keyEntities);
444
+ }
440
445
  }
441
446
  } else {
442
447
  // checkedKeys: multiple mode controlled || data changed
@@ -456,11 +461,15 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
456
461
  );
457
462
  } else if (treeData) {
458
463
  // If `treeData` changed, we also need check it
459
- checkedKeyValues = findKeysForValues(
460
- normalizeValue(props.value, withObject) || [],
461
- valueEntities,
462
- isMultiple
463
- );
464
+ if (props.value) {
465
+ checkedKeyValues = findKeysForValues(
466
+ normalizeValue(props.value, withObject) || [],
467
+ valueEntities,
468
+ isMultiple
469
+ );
470
+ } else {
471
+ checkedKeyValues = updateKeys(prevState.checkedKeys, keyEntities);
472
+ }
464
473
  }
465
474
 
466
475
  if (checkedKeyValues) {
@@ -309,6 +309,14 @@ export const EllipsisMultiple = () => (
309
309
  Web 应用。 区别于其他的设计系统而言,Semi Design
310
310
  以用户中心、内容优先、设计人性化为设计理念,具有四大优势。
311
311
  </Paragraph>
312
+ <br />
313
+ <Paragraph ellipsis={{ rows: 3, expandable: true }} style={{ width: 300, whiteSpace: 'pre-line' }}>
314
+ {'这是一个多行截断的\n例子: Semi Design 是由互娱社区\n前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。 区别于其他的设计系统而言,Semi Design 以用户中心、内容优先、设计人性化为设计理念,具有四大优势。'}
315
+ </Paragraph>
316
+ <br />
317
+ <Paragraph ellipsis={{ rows: 3, expandable: true }} style={{ width: 300, whiteSpace: 'pre-wrap' }}>
318
+ {'这是一个多行截断的\n例子: Semi Des ign 是由互 娱社区\n前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。 区别于其他的设计系统而言,Semi Design 以用户中心、内容优先、设计人性化为设计理念,具有四大优势。'}
319
+ </Paragraph>
312
320
  </div>
313
321
  );
314
322
 
@@ -63,7 +63,6 @@ const getRenderText = (
63
63
 
64
64
  // clean up css overflow
65
65
  ellipsisContainer.style.textOverflow = 'clip';
66
- ellipsisContainer.style.whiteSpace = 'normal';
67
66
  ellipsisContainer.style.webkitLineClamp = 'none';
68
67
 
69
68
  // Render fake container
@@ -163,8 +163,8 @@ class FileCard extends PureComponent<FileCardProps> {
163
163
  {showReplace && replace}
164
164
  {showPicInfo && picInfo}
165
165
  {!disabled && (
166
- <div className={closeCls}>
167
- <IconClose tabIndex={0} role="button" size="extra-small" onClick={e => this.onRemove(e)} />
166
+ <div className={closeCls} onClick={e => this.onRemove(e)}>
167
+ <IconClose tabIndex={0} role="button" size="extra-small" />
168
168
  </div>
169
169
  )}
170
170
  {this.renderPicValidateMsg()}