@douyinfe/semi-ui 2.17.0 → 2.18.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 (183) hide show
  1. package/anchor/index.tsx +1 -1
  2. package/anchor/link.tsx +3 -4
  3. package/autoComplete/__test__/autoComplete.test.js +6 -6
  4. package/autoComplete/index.tsx +3 -1
  5. package/autoComplete/option.tsx +164 -0
  6. package/calendar/__test__/calendar.test.js +21 -2
  7. package/calendar/_story/calendar.stories.js +31 -0
  8. package/calendar/index.tsx +3 -1
  9. package/calendar/interface.ts +2 -1
  10. package/carousel/index.tsx +5 -5
  11. package/checkbox/checkbox.tsx +10 -2
  12. package/dist/css/semi.css +168 -28
  13. package/dist/css/semi.min.css +1 -1
  14. package/dist/umd/semi-ui.js +26879 -28120
  15. package/dist/umd/semi-ui.js.map +1 -1
  16. package/dist/umd/semi-ui.min.js +1 -1
  17. package/dist/umd/semi-ui.min.js.map +1 -1
  18. package/form/_story/FieldProps/labelOptional.jsx +30 -0
  19. package/form/_story/form.stories.js +7 -0
  20. package/form/baseForm.tsx +0 -1
  21. package/form/hoc/withField.tsx +1 -0
  22. package/form/label.tsx +21 -7
  23. package/gulpfile.js +3 -1
  24. package/lib/cjs/_base/base.css +35 -0
  25. package/lib/cjs/anchor/index.js +2 -1
  26. package/lib/cjs/anchor/link.d.ts +1 -1
  27. package/lib/cjs/anchor/link.js +9 -5
  28. package/lib/cjs/autoComplete/index.d.ts +1 -1
  29. package/lib/cjs/autoComplete/index.js +6 -3
  30. package/lib/cjs/autoComplete/option.d.ts +50 -0
  31. package/lib/cjs/autoComplete/option.js +218 -0
  32. package/lib/cjs/calendar/index.d.ts +2 -0
  33. package/lib/cjs/calendar/index.js +3 -1
  34. package/lib/cjs/calendar/interface.d.ts +2 -1
  35. package/lib/cjs/carousel/index.js +2 -2
  36. package/lib/cjs/checkbox/checkbox.d.ts +4 -0
  37. package/lib/cjs/checkbox/checkbox.js +9 -3
  38. package/lib/cjs/form/baseForm.js +0 -1
  39. package/lib/cjs/form/hoc/withField.js +2 -1
  40. package/lib/cjs/form/label.d.ts +8 -5
  41. package/lib/cjs/form/label.js +15 -4
  42. package/lib/cjs/locale/interface.d.ts +3 -0
  43. package/lib/cjs/locale/source/ar.js +3 -0
  44. package/lib/cjs/locale/source/de.js +3 -0
  45. package/lib/cjs/locale/source/en_GB.js +3 -0
  46. package/lib/cjs/locale/source/en_US.js +3 -0
  47. package/lib/cjs/locale/source/es.js +3 -0
  48. package/lib/cjs/locale/source/fr.js +3 -0
  49. package/lib/cjs/locale/source/id_ID.js +3 -0
  50. package/lib/cjs/locale/source/it.js +3 -0
  51. package/lib/cjs/locale/source/ja_JP.js +3 -0
  52. package/lib/cjs/locale/source/ko_KR.js +3 -0
  53. package/lib/cjs/locale/source/ms_MY.js +3 -0
  54. package/lib/cjs/locale/source/pt_BR.js +3 -0
  55. package/lib/cjs/locale/source/ru_RU.js +3 -0
  56. package/lib/cjs/locale/source/th_TH.js +3 -0
  57. package/lib/cjs/locale/source/tr_TR.js +3 -0
  58. package/lib/cjs/locale/source/vi_VN.js +3 -0
  59. package/lib/cjs/locale/source/zh_CN.js +3 -0
  60. package/lib/cjs/locale/source/zh_TW.js +3 -0
  61. package/lib/cjs/modal/Modal.js +0 -8
  62. package/lib/cjs/modal/ModalContent.js +4 -1
  63. package/lib/cjs/radio/radio.d.ts +2 -0
  64. package/lib/cjs/radio/radio.js +33 -8
  65. package/lib/cjs/table/ColumnFilter.js +4 -2
  66. package/lib/cjs/table/ColumnSorter.d.ts +1 -0
  67. package/lib/cjs/table/ColumnSorter.js +9 -6
  68. package/lib/cjs/table/Table.js +11 -4
  69. package/lib/cjs/tabs/TabBar.js +5 -1
  70. package/lib/cjs/tag/group.d.ts +3 -0
  71. package/lib/cjs/tag/group.js +24 -6
  72. package/lib/cjs/tag/index.d.ts +2 -1
  73. package/lib/cjs/tag/index.js +7 -5
  74. package/lib/cjs/tag/interface.d.ts +2 -1
  75. package/lib/cjs/transfer/index.js +7 -2
  76. package/lib/cjs/tree/index.d.ts +3 -1
  77. package/lib/cjs/tree/index.js +23 -0
  78. package/lib/cjs/tree/interface.d.ts +4 -0
  79. package/lib/es/_base/base.css +35 -0
  80. package/lib/es/anchor/index.js +2 -1
  81. package/lib/es/anchor/link.d.ts +1 -1
  82. package/lib/es/anchor/link.js +9 -5
  83. package/lib/es/autoComplete/index.d.ts +1 -1
  84. package/lib/es/autoComplete/index.js +6 -3
  85. package/lib/es/autoComplete/option.d.ts +50 -0
  86. package/lib/es/autoComplete/option.js +188 -0
  87. package/lib/es/calendar/index.d.ts +2 -0
  88. package/lib/es/calendar/index.js +3 -1
  89. package/lib/es/calendar/interface.d.ts +2 -1
  90. package/lib/es/carousel/index.js +2 -2
  91. package/lib/es/checkbox/checkbox.d.ts +4 -0
  92. package/lib/es/checkbox/checkbox.js +10 -4
  93. package/lib/es/form/baseForm.js +0 -1
  94. package/lib/es/form/hoc/withField.js +2 -1
  95. package/lib/es/form/label.d.ts +8 -5
  96. package/lib/es/form/label.js +13 -4
  97. package/lib/es/locale/interface.d.ts +3 -0
  98. package/lib/es/locale/source/ar.js +3 -0
  99. package/lib/es/locale/source/de.js +3 -0
  100. package/lib/es/locale/source/en_GB.js +3 -0
  101. package/lib/es/locale/source/en_US.js +3 -0
  102. package/lib/es/locale/source/es.js +3 -0
  103. package/lib/es/locale/source/fr.js +3 -0
  104. package/lib/es/locale/source/id_ID.js +3 -0
  105. package/lib/es/locale/source/it.js +3 -0
  106. package/lib/es/locale/source/ja_JP.js +3 -0
  107. package/lib/es/locale/source/ko_KR.js +3 -0
  108. package/lib/es/locale/source/ms_MY.js +3 -0
  109. package/lib/es/locale/source/pt_BR.js +3 -0
  110. package/lib/es/locale/source/ru_RU.js +3 -0
  111. package/lib/es/locale/source/th_TH.js +3 -0
  112. package/lib/es/locale/source/tr_TR.js +3 -0
  113. package/lib/es/locale/source/vi_VN.js +3 -0
  114. package/lib/es/locale/source/zh_CN.js +3 -0
  115. package/lib/es/locale/source/zh_TW.js +3 -0
  116. package/lib/es/modal/Modal.js +0 -8
  117. package/lib/es/modal/ModalContent.js +4 -1
  118. package/lib/es/radio/radio.d.ts +2 -0
  119. package/lib/es/radio/radio.js +31 -8
  120. package/lib/es/table/ColumnFilter.js +4 -2
  121. package/lib/es/table/ColumnSorter.d.ts +1 -0
  122. package/lib/es/table/ColumnSorter.js +9 -6
  123. package/lib/es/table/Table.js +10 -4
  124. package/lib/es/tabs/TabBar.js +5 -1
  125. package/lib/es/tag/group.d.ts +3 -0
  126. package/lib/es/tag/group.js +24 -6
  127. package/lib/es/tag/index.d.ts +2 -1
  128. package/lib/es/tag/index.js +7 -5
  129. package/lib/es/tag/interface.d.ts +2 -1
  130. package/lib/es/transfer/index.js +7 -2
  131. package/lib/es/tree/index.d.ts +3 -1
  132. package/lib/es/tree/index.js +22 -0
  133. package/lib/es/tree/interface.d.ts +4 -0
  134. package/locale/interface.ts +3 -0
  135. package/locale/source/ar.ts +3 -0
  136. package/locale/source/de.ts +3 -0
  137. package/locale/source/en_GB.ts +3 -0
  138. package/locale/source/en_US.ts +3 -0
  139. package/locale/source/es.ts +3 -0
  140. package/locale/source/fr.ts +3 -0
  141. package/locale/source/id_ID.ts +3 -0
  142. package/locale/source/it.ts +3 -0
  143. package/locale/source/ja_JP.ts +3 -0
  144. package/locale/source/ko_KR.ts +3 -0
  145. package/locale/source/ms_MY.ts +3 -0
  146. package/locale/source/pt_BR.ts +3 -0
  147. package/locale/source/ru_RU.ts +3 -0
  148. package/locale/source/th_TH.ts +3 -0
  149. package/locale/source/tr_TR.ts +4 -1
  150. package/locale/source/vi_VN.ts +3 -0
  151. package/locale/source/zh_CN.ts +3 -0
  152. package/locale/source/zh_TW.ts +3 -0
  153. package/modal/Modal.tsx +0 -6
  154. package/modal/ModalContent.tsx +4 -1
  155. package/modal/__test__/modal.test.js +1 -1
  156. package/modal/_story/__snapshots__/modal.stories.tsx.snap +203 -0
  157. package/package.json +7 -7
  158. package/radio/_story/radio.stories.js +2 -2
  159. package/radio/radio.tsx +27 -5
  160. package/rating/__test__/rating.test.js +1 -1
  161. package/select/__test__/select.test.js +11 -17
  162. package/select/_story/select.stories.js +6 -6
  163. package/steps/_story/steps.stories.js +3 -3
  164. package/switch/_story/switch.stories.js +4 -4
  165. package/switch/_story/switch.stories.tsx +4 -4
  166. package/table/ColumnFilter.tsx +2 -1
  167. package/table/ColumnSorter.tsx +16 -10
  168. package/table/Table.tsx +7 -4
  169. package/table/_story/v2/FixedFilter/index.tsx +106 -0
  170. package/table/_story/v2/FixedSorter/index.tsx +102 -0
  171. package/table/_story/v2/index.js +4 -2
  172. package/tabs/TabBar.tsx +7 -1
  173. package/tag/_story/tag.stories.js +57 -1
  174. package/tag/group.tsx +20 -3
  175. package/tag/index.tsx +6 -5
  176. package/tag/interface.ts +2 -1
  177. package/transfer/_story/transfer.stories.js +2 -2
  178. package/transfer/index.tsx +7 -2
  179. package/tree/_story/tree.stories.js +152 -3
  180. package/tree/index.tsx +16 -1
  181. package/tree/interface.ts +6 -0
  182. package/upload/_story/upload.stories.js +2 -2
  183. package/webpack.config.js +13 -3
package/tree/index.tsx CHANGED
@@ -39,7 +39,8 @@ import {
39
39
  TreeNodeData,
40
40
  FlattenNode,
41
41
  KeyEntity,
42
- OptionProps
42
+ OptionProps,
43
+ ScrollData,
43
44
  } from './interface';
44
45
  import CheckboxGroup from '../checkbox/checkboxGroup';
45
46
 
@@ -146,6 +147,7 @@ class Tree extends BaseComponent<TreeProps, TreeState> {
146
147
  onNodeClick: any;
147
148
  onMotionEnd: any;
148
149
  context: ContextValue;
150
+ virtualizedListRef: React.RefObject<any>;
149
151
 
150
152
  constructor(props: TreeProps) {
151
153
  super(props);
@@ -179,6 +181,7 @@ class Tree extends BaseComponent<TreeProps, TreeState> {
179
181
  this.optionsRef = React.createRef();
180
182
  this.foundation = new TreeFoundation(this.adapter);
181
183
  this.dragNode = null;
184
+ this.virtualizedListRef = React.createRef();
182
185
  }
183
186
 
184
187
  /**
@@ -493,6 +496,17 @@ class Tree extends BaseComponent<TreeProps, TreeState> {
493
496
  this.foundation.handleInputChange(value);
494
497
  };
495
498
 
499
+ scrollTo = (scrollData: ScrollData) => {
500
+ const { key, align = 'center' } = scrollData;
501
+ const { flattenNodes } = this.state;
502
+ if (key) {
503
+ const index = flattenNodes?.findIndex((node) => {
504
+ return node.key === key;
505
+ });
506
+ index >= 0 && (this.virtualizedListRef.current as any)?.scrollToItem(index, align);
507
+ }
508
+ }
509
+
496
510
  renderInput() {
497
511
  const {
498
512
  searchClassName,
@@ -664,6 +678,7 @@ class Tree extends BaseComponent<TreeProps, TreeState> {
664
678
  <AutoSizer defaultHeight={virtualize.height} defaultWidth={virtualize.width}>
665
679
  {({ height, width }: { width: string | number; height: string | number }) => (
666
680
  <VirtualList
681
+ ref={this.virtualizedListRef}
667
682
  itemCount={flattenNodes.length}
668
683
  itemSize={virtualize.itemSize}
669
684
  height={height}
package/tree/interface.ts CHANGED
@@ -140,3 +140,9 @@ export interface NodeListState {
140
140
  cachedMotionKeys?: Set<string>;
141
141
  cachedData?: FlattenNode[];
142
142
  }
143
+
144
+ export interface ScrollData {
145
+ key: string;
146
+ // The align parameter is consistent with react-window
147
+ align?: 'center' | 'start' | 'end' | 'smart' | 'auto';
148
+ }
@@ -311,7 +311,7 @@ DefaultFileList.story = {
311
311
  name: 'defaultFileList',
312
312
  };
313
313
 
314
- class ControledUpload extends React.Component {
314
+ class ControlledUpload extends React.Component {
315
315
  constructor(props) {
316
316
  super(props);
317
317
  this.state = {
@@ -344,7 +344,7 @@ class ControledUpload extends React.Component {
344
344
  }
345
345
  }
346
346
 
347
- export const ControlledFileList = () => <ControledUpload></ControledUpload>;
347
+ export const ControlledFileList = () => <ControlledUpload></ControlledUpload>;
348
348
 
349
349
  ControlledFileList.story = {
350
350
  name: 'controlled fileList',
package/webpack.config.js CHANGED
@@ -22,13 +22,16 @@ module.exports = function ({ minimize }) {
22
22
  library: 'SemiUI',
23
23
  libraryTarget: 'umd'
24
24
  },
25
+
25
26
  module: {
26
27
  rules: [
27
28
  {
28
29
  test: /\.tsx?$/,
29
30
  include: [
30
31
  path.join(rootPath, 'packages/semi-ui'),
31
- path.join(rootPath, 'packages/semi-foundation')
32
+ path.join(rootPath, 'packages/semi-foundation'),
33
+ path.join(rootPath, 'packages/semi-animation'),
34
+ path.join(rootPath, 'packages/semi-animation-react')
32
35
  ],
33
36
  use: [
34
37
  {
@@ -45,7 +48,7 @@ module.exports = function ({ minimize }) {
45
48
  }
46
49
  ]
47
50
  },
48
- {
51
+ {
49
52
  test: /semi-icons\/.+\.css$/,
50
53
  loaders: 'null-loader'
51
54
  },
@@ -66,7 +69,14 @@ module.exports = function ({ minimize }) {
66
69
  new HashedModuleIdsPlugin()
67
70
  ],
68
71
  resolve: {
69
- extensions: ['.ts', '.tsx', '.js', '.jsx', '.json']
72
+ extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
73
+ alias: {
74
+ "@douyinfe/semi-foundation": path.resolve(__dirname, "../semi-foundation"),
75
+ "@douyinfe/semi-icons": path.resolve(__dirname, "../semi-icons"),
76
+ "@douyinfe/semi-illustrations":path.resolve(__dirname, "../semi-illustrations"),
77
+ "@douyinfe/semi-animation":path.resolve(__dirname, "../semi-animation"),
78
+ "@douyinfe/semi-animation-react":path.resolve(__dirname, "../semi-animation-react")
79
+ },
70
80
  },
71
81
  externals: {
72
82
  react: {